{ "info": { "author": "Hong Minhee", "author_email": "hong.minhee@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: System :: Logging", "Topic :: Terminals" ], "description": "logging-spinner: non-intrusive spinner for Python\n=================================================\n\n.. image:: https://badge.fury.io/py/logging-spinner.svg\n :target: https://pypi.python.org/pypi/logging-spinner\n :alt: Latest PyPI version\n\n.. image:: https://travis-ci.org/dahlia/logging-spinner.svg\n :alt: Build Status\n :target: https://travis-ci.org/dahlia/logging-spinner\n\n.. image:: https://raw.githubusercontent.com/dahlia/logging-spinner/0.2.2/sample.gif\n :alt: Demo session\n\nThis library helps to display loading spinners in CLI in non-intrusive manner.\nApplications/libraries don't have to depend on any third-party API, but only\nneed to log loading messages through Python's standard ``logging`` library:\n\n.. code-block:: python\n\n logger = logging.getLogger('myapp.logger')\n logger.info('Loading data...', extra={'user_waiting': True})\n # some long taking process goes here...\n logger.info('Finished loading!', extra={'user_waiting': False})\n\nAt the outest code of the application, setup a ``SpinnerHandler``:\n\n.. code-block:: python\n\n from logging_spinner import SpinnerHandler\n\n logger = logging.getLogger('myapp')\n logger.setLevel(logging.INFO)\n logger.addHandler(SpinnerHandler())\n\n``SpinnerHandler`` is only aware of log records with ``user_waiting`` extra\nfield and displays them with a spinner.\n\nSee also `sample.py `_ code.\n\n\nAuthor and license\n------------------\n\nWritten by `Hong Minhee`__ and distributed under GPLv3_ or later.\n\n__ https://hongminhee.org/\n.. _GPLv3: https://www.gnu.org/licenses/gpl-3.0.html\n\n\n\nChangelog\n---------\n\nVersion 0.2.2\n-------------\n\nReleased on June 22, 2017.\n\n- Fixed a ``ValueError`` raised when a log record with\n ``{'user_waiting': Flase}`` is made without any previous log records\n with ``{'user_waiting': True}``.\n\n\nVersion 0.2.1\n-------------\n\nReleased on May 21, 2017.\n\n- Fixed a bug that ``SpinerHandler`` had crashed when ``user_waiting`` log\n records show a spinner again after a previous spinner was hidden.\n\n\nVersion 0.2.0\n-------------\n\nReleased on May 21, 2017.\n\n- ``logging_spinner.UserWaitingFilter`` was introduced to avoid duplicate\n prints of a log record with ``user_waiting`` extra field.\n\n\nVersion 0.1.0\n-------------\n\nReleased on May 21, 2017. The initial release.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dahlia/logging-spinner", "keywords": "", "license": "GPLv3 or later", "maintainer": "", "maintainer_email": "", "name": "logging-spinner", "package_url": "https://pypi.org/project/logging-spinner/", "platform": "", "project_url": "https://pypi.org/project/logging-spinner/", "project_urls": { "Homepage": "https://github.com/dahlia/logging-spinner" }, "release_url": "https://pypi.org/project/logging-spinner/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "Non-intrusive spinner through standard logging library", "version": "0.2.2" }, "last_serial": 2967350, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4b19a1c8357c18c3648242a08de0b8ef", "sha256": "023557506e0dbcfc9e9e114dcb62271457a43df47ef0a60e3199a38a536b9c94" }, "downloads": -1, "filename": "logging_spinner-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4b19a1c8357c18c3648242a08de0b8ef", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4852, "upload_time": "2017-05-20T20:02:34", "url": "https://files.pythonhosted.org/packages/0f/d1/0117e533841a39f47e711d6d0d711f6ed9064b832c8277f2fe0cdd000254/logging_spinner-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed8d2b0b482509b4ef2e8574bba6dff9", "sha256": "6bfd1a063ce8191fcbec19e6dbbce25486037459823012fe1fce524a09fc1791" }, "downloads": -1, "filename": "logging-spinner-0.1.0.tar.gz", "has_sig": true, "md5_digest": "ed8d2b0b482509b4ef2e8574bba6dff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3476, "upload_time": "2017-05-20T20:02:30", "url": "https://files.pythonhosted.org/packages/c3/17/f3cb5b08f50901cd53c055dab97f27048472281e34b34d559b02c7d853fb/logging-spinner-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e1d7c601b4e7c03390f7c33c4b458557", "sha256": "48109b55b8c4c3aecfb083109dd9629c307a40f798fb9405e81406bb28be5b21" }, "downloads": -1, "filename": "logging_spinner-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e1d7c601b4e7c03390f7c33c4b458557", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5154, "upload_time": "2017-05-20T20:47:46", "url": "https://files.pythonhosted.org/packages/74/cc/a2abe16c73501384e8bf9506057181e89c99493668a6ef0de831c571f0b9/logging_spinner-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16d73cefe3e27713308b6a60d7badf5b", "sha256": "69a31295ed70008173bfed6b441460dc6c70a3e2c8b924d4ec9f0c50a7ce4101" }, "downloads": -1, "filename": "logging-spinner-0.2.0.tar.gz", "has_sig": true, "md5_digest": "16d73cefe3e27713308b6a60d7badf5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3678, "upload_time": "2017-05-20T20:47:43", "url": "https://files.pythonhosted.org/packages/ec/11/3d760fd347fefaaa70ceeb623bd4d3e0c92afd7792266346b5e44bfc3460/logging-spinner-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "69db177620ba35dd2a2e8161635f8d9c", "sha256": "0b03d716404b2bae3bcf2d7216423765448325261556883cb7d3198862214ec3" }, "downloads": -1, "filename": "logging_spinner-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "69db177620ba35dd2a2e8161635f8d9c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5269, "upload_time": "2017-05-20T21:25:06", "url": "https://files.pythonhosted.org/packages/d9/2d/a454ebb8f5a181582ed95fb7f38c9446016336fa2036132ab5d87133c262/logging_spinner-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2abfa831804ddf627014a23ddaf2717d", "sha256": "626d37e76b1b1b995b9e88eb53b6140007543d68b6478e005a5b466a94f312f2" }, "downloads": -1, "filename": "logging-spinner-0.2.1.tar.gz", "has_sig": true, "md5_digest": "2abfa831804ddf627014a23ddaf2717d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3754, "upload_time": "2017-05-20T21:25:03", "url": "https://files.pythonhosted.org/packages/ac/2c/e0794a4687979d43f788fee21351943ec3eb20ad5a45f41b0bf078f683ec/logging-spinner-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "46d83a60e83f9a7ea947670a60cd77d3", "sha256": "5371342fbd5aa498bd7de81f158b032c1a611b219d2e324d7cdecaaf3f0b0bea" }, "downloads": -1, "filename": "logging_spinner-0.2.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "46d83a60e83f9a7ea947670a60cd77d3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5406, "upload_time": "2017-06-22T08:12:36", "url": "https://files.pythonhosted.org/packages/2b/f3/73f854648cad03e23fdb0b6bbff293f2173d28f36839d65bc2315bec0533/logging_spinner-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48c535d816a2b1a43451b94e66432761", "sha256": "d31ce3399a6f2aa87f72f90e8cacbdcb470ffbeeb33fc1bce084526ddd3e6e16" }, "downloads": -1, "filename": "logging-spinner-0.2.2.tar.gz", "has_sig": true, "md5_digest": "48c535d816a2b1a43451b94e66432761", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3838, "upload_time": "2017-06-22T08:12:34", "url": "https://files.pythonhosted.org/packages/e8/e6/b2cf8e992323ae9313cfea9be3fa10c07207052f19194f150555997bde27/logging-spinner-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46d83a60e83f9a7ea947670a60cd77d3", "sha256": "5371342fbd5aa498bd7de81f158b032c1a611b219d2e324d7cdecaaf3f0b0bea" }, "downloads": -1, "filename": "logging_spinner-0.2.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "46d83a60e83f9a7ea947670a60cd77d3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5406, "upload_time": "2017-06-22T08:12:36", "url": "https://files.pythonhosted.org/packages/2b/f3/73f854648cad03e23fdb0b6bbff293f2173d28f36839d65bc2315bec0533/logging_spinner-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48c535d816a2b1a43451b94e66432761", "sha256": "d31ce3399a6f2aa87f72f90e8cacbdcb470ffbeeb33fc1bce084526ddd3e6e16" }, "downloads": -1, "filename": "logging-spinner-0.2.2.tar.gz", "has_sig": true, "md5_digest": "48c535d816a2b1a43451b94e66432761", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3838, "upload_time": "2017-06-22T08:12:34", "url": "https://files.pythonhosted.org/packages/e8/e6/b2cf8e992323ae9313cfea9be3fa10c07207052f19194f150555997bde27/logging-spinner-0.2.2.tar.gz" } ] }