progress_bar module¶
Progress bar.
- class gemseo.algos.progress_bar.ProgressBar(*_, **__)[source]¶
Bases:
tqdm
Extend tqdm progress bar with better time units.
Use hour, day or week for slower processes.
- clear(nolock=False)¶
Clear current bar display.
- close()¶
Cleanup and (if leave=False) close the progressbar.
- display(msg=None, pos=None)¶
Use self.sp to display msg in the specified pos.
Consider overloading this function when inheriting to use e.g.: self.some_frontend(**self.format_dict) instead of self.sp.
- Parameters:
msg (str, optional. What to display (default: repr(self)).) –
pos (int, optional. Position to moveto) – (default: abs(self.pos)).
- classmethod external_write_mode(file=None, nolock=False)¶
Disable tqdm within context and refresh tqdm when exits. Useful when writing to standard output stream
- static format_interval(t)¶
Formats a number of seconds as a clock time, [H:]MM:SS
- classmethod format_meter(n, total, elapsed, **kwargs)[source]¶
Return a string-based progress bar given some parameters
- Parameters:
total (int or float) – The expected total number of iterations. If meaningless (None), only basic progress statistics are displayed (no ETA).
elapsed (float) – Number of seconds passed since start.
ncols (int, optional) – The width of the entire output message. If specified, dynamically resizes {bar} to stay within this bound [default: None]. If 0, will not print any bar (only stats). The fallback is {bar:10}.
prefix (str, optional) – Prefix message (included in total width) [default: ‘’]. Use as {desc} in bar_format string.
ascii (bool, optional or str, optional) – If not set, use unicode (smooth blocks) to fill the meter [default: False]. The fallback is to use ASCII characters “ 123456789#”.
unit (str, optional) – The iteration unit [default: ‘it’].
unit_scale (bool or int or float, optional) – If 1 or True, the number of iterations will be printed with an appropriate SI metric prefix (k = 10^3, M = 10^6, etc.) [default: False]. If any other non-zero number, will scale total and n.
rate (float, optional) – Manual override for iteration rate. If [default: None], uses n/elapsed.
bar_format (str, optional) –
Specify a custom bar string formatting. May impact performance. [default: ‘{l_bar}{bar}{r_bar}’], where l_bar=’{desc}: {percentage:3.0f}%|’ and r_bar=’| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, ‘
’{rate_fmt}{postfix}]’
- Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
percentage, elapsed, elapsed_s, ncols, nrows, desc, unit, rate, rate_fmt, rate_noinv, rate_noinv_fmt, rate_inv, rate_inv_fmt, postfix, unit_divisor, remaining, remaining_s, eta.
Note that a trailing “: “ is automatically removed after {desc} if the latter is empty.
postfix (*, optional) – Similar to prefix, but placed at the end (e.g. for additional stats). Note: postfix is usually a string (not a dict) for this method, and will if possible be set to postfix = ‘, ‘ + postfix. However other types are supported (#382).
unit_divisor (float, optional) – [default: 1000], ignored unless unit_scale is True.
initial (int or float, optional) – The initial counter value [default: 0].
colour (str, optional) – Bar colour (e.g. ‘green’, ‘#00ff00’).
kwargs (Any) –
- Returns:
out
- Return type:
Formatted meter and stats, ready to display.
- static format_num(n)¶
Intelligent scientific notation (.3g).
- static format_sizeof(num, suffix='', divisor=1000)¶
Formats a number (greater than unity) with SI Order of Magnitude prefixes.
- Parameters:
- Returns:
out – Number with Order of Magnitude SI unit postfix.
- Return type:
- classmethod get_lock()¶
Get the global lock. Construct it if it does not exist.
- moveto(n)¶
- classmethod pandas(**tqdm_kwargs)¶
- Registers the current tqdm class with
pandas.core. ( frame.DataFrame | series.Series | groupby.(generic.)DataFrameGroupBy | groupby.(generic.)SeriesGroupBy ).progress_apply
A new instance will be created every time progress_apply is called, and each instance will automatically close() upon completion.
- Parameters:
tqdm_kwargs (arguments for the tqdm instance) –
Examples
>>> import pandas as pd >>> import numpy as np >>> from tqdm import tqdm >>> from tqdm.gui import tqdm as tqdm_gui >>> >>> df = pd.DataFrame(np.random.randint(0, 100, (100000, 6))) >>> tqdm.pandas(ncols=50) # can use tqdm_gui, optional kwargs, etc >>> # Now you can use `progress_apply` instead of `apply` >>> df.groupby(0).progress_apply(lambda x: x**2)
References
<https://stackoverflow.com/questions/18603270/ progress-indicator-during-pandas-operations-python>
- refresh(nolock=False, lock_args=None)¶
Force refresh the display of this bar.
- reset(total=None)¶
Resets to 0 iterations for repeated use.
Consider combining with leave=True.
- set_description(desc=None, refresh=True)¶
Set/modify description of the progress bar.
- set_description_str(desc=None, refresh=True)¶
Set/modify description without ‘: ‘ appended.
- classmethod set_lock(lock)¶
Set the global lock.
- set_postfix(ordered_dict=None, refresh=True, **kwargs)¶
Set/modify postfix (additional stats) with automatic formatting based on datatype.
- set_postfix_str(s='', refresh=True)¶
Postfix without dictionary expansion, similar to prefix handling.
- status_printer(file)[source]¶
Overload the status_printer method to avoid the use of closures.
- Parameters:
file (io.TextIOWrapper | io.StringIO) – Specifies where to output the progress messages.
- Returns:
The function to print the status in the progress bar.
- Return type:
Callable[[str], None]
- unpause()¶
Restart tqdm timer from last print time.
- update(n=1)¶
Manually update the progress bar, useful for streams such as reading files. E.g.: >>> t = tqdm(total=filesize) # Initialise >>> for current_buffer in stream: … … … t.update(len(current_buffer)) >>> t.close() The last line is highly recommended, but possibly not necessary if t.update() will be called in such a way that filesize will be exactly reached and printed.
- Parameters:
Increment to add to the internal counter of iterations [default: 1]. If using float, consider specifying {n:.3f} or similar in bar_format, or specifying unit_scale.
By default it is set to 1.
- Returns:
out – True if a display() was triggered.
- Return type:
bool or None
- classmethod wrapattr(stream, method, total=None, bytes=True, **tqdm_kwargs)¶
stream : file-like object. method : str, “read” or “write”. The result of read() and
the first argument of write() should have a len().
>>> with tqdm.wrapattr(file_obj, "read", total=file_obj.size) as fobj: ... while True: ... chunk = fobj.read(chunk_size) ... if not chunk: ... break
- classmethod write(s, file=None, end='\n', nolock=False)¶
Print a message via tqdm (without overlap with bars).
- property format_dict¶
Public API for read-only member access.
- monitor = <TMonitor(Thread-2, started daemon 139693245368064)>¶
- monitor_interval = 10¶
- class gemseo.algos.progress_bar.TqdmToLogger(initial_value='', newline='\n')[source]¶
Bases:
StringIO
Redirect tqdm output to the gemseo logger.
- close()¶
Close the IO object.
Attempting any further operation after the object is closed will raise a ValueError.
This method has no effect if the file is already closed.
- detach()¶
Separate the underlying buffer from the TextIOBase and return it.
After the underlying buffer has been detached, the TextIO is in an unusable state.
- fileno()¶
Returns underlying file descriptor if one exists.
OSError is raised if the IO object does not use a file descriptor.
- flush()¶
Flush write buffers, if applicable.
This is not implemented for read-only and non-blocking streams.
- getvalue()¶
Retrieve the entire contents of the object.
- isatty()¶
Return whether this is an ‘interactive’ stream.
Return False if it can’t be determined.
- read(size=-1, /)¶
Read at most size characters, returned as a string.
If the argument is negative or omitted, read until EOF is reached. Return an empty string at EOF.
- readable()¶
Returns True if the IO object can be read.
- readline(size=-1, /)¶
Read until newline or EOF.
Returns an empty string if EOF is hit immediately.
- readlines(hint=-1, /)¶
Return a list of lines from the stream.
hint can be specified to control the number of lines read: no more lines will be read if the total size (in bytes/characters) of all lines so far exceeds hint.
- seek(pos, whence=0, /)¶
Change stream position.
- Seek to character offset pos relative to position indicated by whence:
0 Start of stream (the default). pos should be >= 0; 1 Current position - pos must be 0; 2 End of stream - pos must be 0.
Returns the new absolute position.
- seekable()¶
Returns True if the IO object can be seeked.
- tell()¶
Tell the current file position.
- truncate(pos=None, /)¶
Truncate size to pos.
The pos argument defaults to the current file position, as returned by tell(). The current file position is unchanged. Returns the new absolute position.
- writable()¶
Returns True if the IO object can be written.
- writelines(lines, /)¶
Write a list of lines to stream.
Line separators are not added, so it is usual for each of the lines provided to have a line separator at the end.
- closed¶
- encoding¶
Encoding of the text stream.
Subclasses should override.
- errors¶
The error setting of the decoder or encoder.
Subclasses should override.
- line_buffering¶
- newlines¶