Skip to main content

an empirical progress library

Project description

docbrown

docbrown is an empirical progress library. It determines the overall duration and progression of a process by looking at the time it took in the past.

docbrown might be an option for you, if you have one long running task which parts take very different amounts of time. It is also helpful when used in environments where you can’t inform consumers about the progress of a task out-of-band (like a WSGI request/response cycle vs a WebSocket).

Installation

pip install docbrown

This repository allows you to create a deb Package for Debian and derivatives if you’re into that kind of thing. Just run make dist-deb.

Example Usage

Record progress:

import time
from docbrown import record_progress

with record_progress('process_name', ident='my_ident') as record:
    # ident normally is random and unique, but you can override it with
    # your own id. Just make sure it is not used more than once at a time.
    print(record.ident)
    # do some stuff that takes time
    record('loading_data')
    time.sleep(4)
    record('calculating_matrices')
    time.sleep(9)
    record('rendering_structures')
    time.sleep(23)
    record('uploading_models')
    time.sleep(15)

As docbrown determines progression by looking at the past every process needs to run at least once before get_progress can return any meaningful data. This is why get_progress will just return None on the first run of the code above.

Get the progression of our process:

from docbrown import get_progress
print(get_progress('my_ident'))

Future

There are some things that would be nice, but have not been implemented yet.

  • additional storage backends apart from SQLite
  • code path detection that takes optional phases into account and updates the expected duration and progress on-the-fly

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docbrown-0.5.0.tar.gz (18.6 kB view details)

Uploaded Source

File details

Details for the file docbrown-0.5.0.tar.gz.

File metadata

  • Download URL: docbrown-0.5.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for docbrown-0.5.0.tar.gz
Algorithm Hash digest
SHA256 ccb33e2b18c691beba12e150de8b1871c5db82d69ec5dcf126736b14ec194192
MD5 aee5fa72e444bb13314d56038841c1f6
BLAKE2b-256 1929db60c8f0db56978439bf20cf4eaab4a22afa6393d3cd9f733be4d48d4367

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page