Source code for pygeostat.utility.logging
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''utils.py: Contains utility functions for providing status alerts in a script'''
__author__ = 'pygeostat development team'
__date__ = '2015'
__version__ = '1.000'
import textwrap
[docs]
def printerr(text, width=80, errtype=None):
"""
Small utility to print custom errors with proper indentation and text wrapping. The only error
types coded are `error` and `warning`.
Parameters:
text (str): String of text without the preceding error flag that will be formated
width (int): The maximum length of wrapped lines
errtype (str): Indicate which type of error to format the string as. The default value of
`None` will only text wrap the string to the specified `width`.
.. codeauthor:: pygeostat development team 2015-11-01
"""
import pygeostat as gs
if isinstance(errtype, str):
errtype.lower()
if errtype == 'error':
text = 'ERROR: ' + text
subsequent_indent = " "
elif errtype == 'warning':
text = 'WARNING: ' + text
subsequent_indent = " "
else:
subsequent_indent = ""
print(textwrap.fill(text, width=width, subsequent_indent=subsequent_indent))
[docs]
def log_progress(sequence, size=None, name='Items'):
"""
Parameters:
sequence: The thing that is being iterated over
Example:
>>> from pygeostat import log_progress
>>> from time import sleep
>>> for i in log_progress(range(200)):
... sleep(0.1)
.. image:: ./figures/log_progress.gif
"""
try:
from tqdm import tqdm, tqdm_notebook
except:
print("pip install tqdm to install the progressbar functionality !")
try:
get_ipython()
return tqdm_notebook(sequence, desc=name, total=size)
except:
return tqdm(sequence, name, total=size, ascii=True)