==========
tasklogger
==========
.. image:: https://img.shields.io/pypi/v/tasklogger.svg
:target: https://pypi.org/project/tasklogger/
:alt: Latest PyPi version
.. image:: https://anaconda.org/conda-forge/tasklogger/badges/version.svg
:target: https://anaconda.org/conda-forge/tasklogger/
:alt: Latest Conda version
.. image:: https://api.travis-ci.com/scottgigante/tasklogger.svg?branch=master
:target: https://github.com/scottgigante/tasklogger/actions
:alt: GitHub Actions Build
.. image:: https://ci.appveyor.com/api/projects/status/qi79tqay73uslr0i/branch/master?svg=true
:target: https://ci.appveyor.com/project/scottgigante/tasklogger
:alt: Appveyor Build
.. image:: https://coveralls.io/repos/github/scottgigante/tasklogger/badge.svg?branch=master
:target: https://coveralls.io/github/scottgigante/tasklogger?branch=master
:alt: Coverage Status
.. image:: https://img.shields.io/twitter/follow/scottgigante.svg?style=social&label=Follow
:target: https://twitter.com/scottgigante
:alt: Twitter
.. image:: https://img.shields.io/github/stars/scottgigante/tasklogger.svg?style=social&label=Stars
:target: https://github.com/scottgigante/tasklogger/
:alt: GitHub stars
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Code style: black
.. image:: https://img.shields.io/badge/style%20guide-openstack-eb1a32.svg
:target: https://docs.openstack.org/hacking/latest/user/hacking.html#styleguide
:alt: Style Guide: OpenStack
.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit
An extension to the core python logging library for logging the beginning and completion of tasks and subtasks.
Installation
------------
tasklogger is available on `pip`. Install by running the following in a terminal::
pip install --user tasklogger
Alternatively, tasklogger can be installed using `Conda <https://conda.io/docs/>`_ (most easily obtained via the `Miniconda Python distribution <https://conda.io/miniconda.html>`_)::
conda install -c conda-forge tasklogger
Usage examples
--------------
Receive timed updates mid-computation using ``tasklogger.log_start`` and ``tasklogger.log_complete``::
>>> import tasklogger
>>> import time
>>> tasklogger.log_start("Supertask")
Calculating Supertask...
>>> time.sleep(1)
>>> tasklogger.log_start("Subtask")
Calculating Subtask...
>>> time.sleep(1)
>>> tasklogger.log_complete("Subtask")
Calculated Subtask in 1.01 seconds.
>>> time.sleep(1)
>>> tasklogger.log_complete("Supertask")
Calculated Supertask in 3.02 seconds.
Simplify logging syntax with ``tasklogger.log_task``::
>>> import tasklogger
>>> import time
>>> with tasklogger.log_task("Supertask"):
... time.sleep(1)
... with tasklogger.log_task("Subtask"):
... time.sleep(1)
... time.sleep(1)
Calculating Supertask...
Calculating Subtask...
Calculated Subtask in 1.01 seconds.
Calculated Supertask in 3.02 seconds.
Log wall time, CPU time, or any other counter function with the class API::
>>> import tasklogger
>>> import time
>>> logger = tasklogger.TaskLogger(name='cpu_logger', timer='cpu', min_runtime=0)
>>> with logger.log_task("Supertask"):
... time.sleep(1)
... with logger.log_task("Subtask"):
... _ = [[(i,j) for j in range(i)] for i in range(1000)]
... time.sleep(1)
Calculating Supertask...
Calculating Subtask...
Calculated Subtask in 0.09 seconds.
Calculated Supertask in 0.09 seconds.
>>> logger = tasklogger.TaskLogger(name='nano_logger', timer=time.monotonic_ns)
>>> with logger.log_task("Supertask"):
... time.sleep(1)
... with logger.log_task("Subtask"):
... time.sleep(1)
... time.sleep(1)
Calculating Supertask...
Calculating Subtask...
Calculated Subtask in 1001083511.00 seconds.
Calculated Supertask in 3003702161.00 seconds.
Use ``tasklogger`` for all your logging needs::
>>> tasklogger.log_info("Log some stuff that doesn't need timing")
Log some stuff that doesn't need timing
>>> tasklogger.log_debug("Log some stuff that normally isn't needed")
>>> tasklogger.set_level(2)
Set TaskLogger logging to DEBUG
>>> tasklogger.log_debug("Log some stuff that normally isn't needed")
Log some stuff that normally isn't needed
Raw data
{
"_id": null,
"home_page": "https://github.com/scottgigante/tasklogger",
"name": "tasklogger",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "big-data,tool-development,programming",
"author": "Scott Gigante, Yale University",
"author_email": "scott.gigante@yale.edu",
"download_url": "https://files.pythonhosted.org/packages/08/49/284c99df2cbe3a0d6df5a3d5010dfc5d425bb332f5b04739af469703f9f5/tasklogger-1.2.0.tar.gz",
"platform": null,
"description": "==========\ntasklogger\n==========\n\n.. image:: https://img.shields.io/pypi/v/tasklogger.svg\n :target: https://pypi.org/project/tasklogger/\n :alt: Latest PyPi version\n.. image:: https://anaconda.org/conda-forge/tasklogger/badges/version.svg\n :target: https://anaconda.org/conda-forge/tasklogger/\n :alt: Latest Conda version\n.. image:: https://api.travis-ci.com/scottgigante/tasklogger.svg?branch=master\n :target: https://github.com/scottgigante/tasklogger/actions\n :alt: GitHub Actions Build\n.. image:: https://ci.appveyor.com/api/projects/status/qi79tqay73uslr0i/branch/master?svg=true\n :target: https://ci.appveyor.com/project/scottgigante/tasklogger\n :alt: Appveyor Build\n.. image:: https://coveralls.io/repos/github/scottgigante/tasklogger/badge.svg?branch=master\n :target: https://coveralls.io/github/scottgigante/tasklogger?branch=master\n :alt: Coverage Status\n.. image:: https://img.shields.io/twitter/follow/scottgigante.svg?style=social&label=Follow\n :target: https://twitter.com/scottgigante\n :alt: Twitter\n.. image:: https://img.shields.io/github/stars/scottgigante/tasklogger.svg?style=social&label=Stars\n :target: https://github.com/scottgigante/tasklogger/\n :alt: GitHub stars\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Code style: black\n.. image:: https://img.shields.io/badge/style%20guide-openstack-eb1a32.svg\n :target: https://docs.openstack.org/hacking/latest/user/hacking.html#styleguide\n :alt: Style Guide: OpenStack\n.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white\n :target: https://github.com/pre-commit/pre-commit\n :alt: pre-commit\n\nAn extension to the core python logging library for logging the beginning and completion of tasks and subtasks.\n\nInstallation\n------------\n\ntasklogger is available on `pip`. Install by running the following in a terminal::\n\n pip install --user tasklogger\n\nAlternatively, tasklogger can be installed using `Conda <https://conda.io/docs/>`_ (most easily obtained via the `Miniconda Python distribution <https://conda.io/miniconda.html>`_)::\n\n conda install -c conda-forge tasklogger\n\nUsage examples\n--------------\n\nReceive timed updates mid-computation using ``tasklogger.log_start`` and ``tasklogger.log_complete``::\n\n >>> import tasklogger\n >>> import time\n >>> tasklogger.log_start(\"Supertask\")\n Calculating Supertask...\n >>> time.sleep(1)\n >>> tasklogger.log_start(\"Subtask\")\n Calculating Subtask...\n >>> time.sleep(1)\n >>> tasklogger.log_complete(\"Subtask\")\n Calculated Subtask in 1.01 seconds.\n >>> time.sleep(1)\n >>> tasklogger.log_complete(\"Supertask\")\n Calculated Supertask in 3.02 seconds.\n\nSimplify logging syntax with ``tasklogger.log_task``::\n\n >>> import tasklogger\n >>> import time\n >>> with tasklogger.log_task(\"Supertask\"):\n ... time.sleep(1)\n ... with tasklogger.log_task(\"Subtask\"):\n ... time.sleep(1)\n ... time.sleep(1)\n Calculating Supertask...\n Calculating Subtask...\n Calculated Subtask in 1.01 seconds.\n Calculated Supertask in 3.02 seconds.\n\nLog wall time, CPU time, or any other counter function with the class API::\n\n >>> import tasklogger\n >>> import time\n >>> logger = tasklogger.TaskLogger(name='cpu_logger', timer='cpu', min_runtime=0)\n >>> with logger.log_task(\"Supertask\"):\n ... time.sleep(1)\n ... with logger.log_task(\"Subtask\"):\n ... _ = [[(i,j) for j in range(i)] for i in range(1000)]\n ... time.sleep(1)\n Calculating Supertask...\n Calculating Subtask...\n Calculated Subtask in 0.09 seconds.\n Calculated Supertask in 0.09 seconds.\n >>> logger = tasklogger.TaskLogger(name='nano_logger', timer=time.monotonic_ns)\n >>> with logger.log_task(\"Supertask\"):\n ... time.sleep(1)\n ... with logger.log_task(\"Subtask\"):\n ... time.sleep(1)\n ... time.sleep(1)\n Calculating Supertask...\n Calculating Subtask...\n Calculated Subtask in 1001083511.00 seconds.\n Calculated Supertask in 3003702161.00 seconds.\n\nUse ``tasklogger`` for all your logging needs::\n\n >>> tasklogger.log_info(\"Log some stuff that doesn't need timing\")\n Log some stuff that doesn't need timing\n >>> tasklogger.log_debug(\"Log some stuff that normally isn't needed\")\n >>> tasklogger.set_level(2)\n Set TaskLogger logging to DEBUG\n >>> tasklogger.log_debug(\"Log some stuff that normally isn't needed\")\n Log some stuff that normally isn't needed\n",
"bugtrack_url": null,
"license": "GNU General Public License Version 2",
"summary": "tasklogger",
"version": "1.2.0",
"split_keywords": [
"big-data",
"tool-development",
"programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "162bc1f3fcd983b7bc9b3f7c2e2fe87c",
"sha256": "b320fcabbb6bbd88e63c65cd994d75038c2cde45b58eb28941c3848710855524"
},
"downloads": -1,
"filename": "tasklogger-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "162bc1f3fcd983b7bc9b3f7c2e2fe87c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 14626,
"upload_time": "2022-07-05T14:22:29",
"upload_time_iso_8601": "2022-07-05T14:22:29.849707Z",
"url": "https://files.pythonhosted.org/packages/d6/f5/24855d6d8862ad03ae4dbb8f3ec06baf930a276c92af603b3d9bf32600d0/tasklogger-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "58942e1608a1b42c86b79039c9814ade",
"sha256": "b0a390dbe1d4c6f7465e58ee457b5bb381657b5ede3a85bcf45199cb56ac01a4"
},
"downloads": -1,
"filename": "tasklogger-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "58942e1608a1b42c86b79039c9814ade",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 15965,
"upload_time": "2022-07-05T14:22:31",
"upload_time_iso_8601": "2022-07-05T14:22:31.407306Z",
"url": "https://files.pythonhosted.org/packages/08/49/284c99df2cbe3a0d6df5a3d5010dfc5d425bb332f5b04739af469703f9f5/tasklogger-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-07-05 14:22:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "scottgigante",
"github_project": "tasklogger",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"requirements": [
{
"name": "future",
"specs": []
}
],
"lcname": "tasklogger"
}