{ "info": { "author": "Jim Fan", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Programming Language :: Python :: 3" ], "description": "nanolog\n=======\n\nLife is too short. Use ``nanolog`` to make logging and printing simpler!\n\n``nanolog`` features a convenient logger API built on top of python's\nbuiltin ``logging``.\n\nThe library also ships with many printing utilities. Python 3 only.\n\nInstallation\n------------\n\nFrom stable package on PyPI\n\n.. code:: bash\n\n pip install nanolog\n\nFrom bleeding edge master branch\n\n.. code:: bash\n\n pip install git+git://github.com/SurrealAI/nanolog.git\n\nnanolog.Logger\n==============\n\nLogging levels, from least severe to most:\n\n- ``LOG_ALL``: log everything\n- ``TRACE``: fine-grained debugging messages\n- ``DEBUG``: normal debugging\n- ``INFO``: messages you usually don't want to see\n- ``NOTICE`` (i.e. ``INFO5``): non-error messages you usually want to\n see\n- ``WARNING``: exceptional circumstances that might not be errors\n- ``ERROR``: errors that occur, but are anticipated and handled\n- ``CRITICAL``: fatal errors that lead to termination\n- ``LOG_OFF``: turn off all logging\n\n.. code:: python\n\n import nanolog as nl\n\n logger = nl.Logger.create_logger(\n 'main',\n stream='out',\n level='debug',\n )\n\n logger.info('my', 3, 'world', 1/16.) # just like print\n # >>> my 3 world 0.0625\n\n # nanolog use 'warn' instead of 'warning'\n logger.warnfmt('{}, we are {:.3f} miles from {planet}',\n 'Houston', 17/7, planet='Mars') # just like str.format\n # >>> Houston, we are 2.429 miles from Mars\n\nUse a trailing number to indicate level, the larger the higher priority\n\n.. code:: python\n\n logger.info7(...) # info level 7\n logger.errorfmt8(...) # error level 8\n\nDisplay a banner line or block\n\n.. code:: python\n\n logger.infobanner3('my', 3, 'world', symbol='!', banner_len=16, banner_lines=3)\n\nprints:\n\n::\n\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !!!!!!!! my 3 world !!!!!!!!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nOf course, banner method also comes with a ``str.format`` version\n\n.. code:: python\n\n logger.debugbannerfmt(\n '{3}&{0}&{2}&{1}', 'a', 'b', 'c', 'd', \n symbol='<*_*>', banner_len=16, banner_lines=6\n )\n\ndisplays:\n\n::\n\n <*_*><*_*><*_*><*_*><*_*>\n <*_*><*_*><*_*><*_*><*_*>\n <*_*><*_ d&a&c&b <*_*><*_\n <*_*><*_*><*_*><*_*><*_*>\n <*_*><*_*><*_*><*_*><*_*>\n <*_*><*_*><*_*><*_*><*_*>\n\nPrettyprint support (uses the thirdparty lib ``prettyprinter``)\n\n.. code:: python\n\n logger.infopp7(...)\n logger.warnppfmt('my warning {:.3f} format {:.2f} string', 1/7., 1/9.)\n\nLogger config\n-------------\n\nTODO\n\nTime formatting\n---------------\n\nTODO\n\nPrinting utililites\n===================\n\nprettyprint\n-----------\n\nBetter alternatives for the ``pprint`` module in python standard lib.\n\n- ``pprint``: takes variable number of objects, just like ``print()``\n\n- ``pprintstr``: return string instead of printing to IO stream\n\n- ``pprintfmt``: just like ``print('...'.format)``\n\n- ``pprintfmtstr``: return string instead of printing to IO stream\n\nConvenient aliases (``pp`` stands for ``prettyprint``; a single ``p``\nmeans normal print)\n\n+--------------+--------------------+\n| short | original |\n+==============+====================+\n| ``pf`` | ``printfmt`` |\n+--------------+--------------------+\n| ``pferr`` | ``printfmterr`` |\n+--------------+--------------------+\n| ``pstr`` | ``printstr`` |\n+--------------+--------------------+\n| ``perr`` | ``printerr`` |\n+--------------+--------------------+\n| ``pp`` | ``pprint`` |\n+--------------+--------------------+\n| ``ppstr`` | ``pprintstr`` |\n+--------------+--------------------+\n| ``ppf`` | ``pprintfmt`` |\n+--------------+--------------------+\n| ``ppfstr`` | ``pprintfmtstr`` |\n+--------------+--------------------+\n\nTODO: talk about global configs\n\nPrint redirection context managers\n----------------------------------\n\n- PrintRedirection\n- PrintFile\n- PrintSuppress\n- PrintString\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/SurrealAI/nanolog", "keywords": "logging,utility", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "nanolog", "package_url": "https://pypi.org/project/nanolog/", "platform": "", "project_url": "https://pypi.org/project/nanolog/", "project_urls": { "Homepage": "http://github.com/SurrealAI/nanolog" }, "release_url": "https://pypi.org/project/nanolog/0.1.3/", "requires_dist": [ "prettyprinter" ], "requires_python": ">=3.0", "summary": "python logging on steroids, lightweight and convenient", "version": "0.1.3" }, "last_serial": 3866328, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "fdc51721f5240b042bd82ae6e93cebca", "sha256": "9c2d3edbd0340a9033590b54145db4552c7596f461b1b38d16deceea80e06bcb" }, "downloads": -1, "filename": "nanolog-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fdc51721f5240b042bd82ae6e93cebca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2975, "upload_time": "2018-05-12T15:42:46", "url": "https://files.pythonhosted.org/packages/d1/03/309aa7848b2fdb9b9416e8bb591cc7908ce753a627e73d1d81f898a5065d/nanolog-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b280f5981b7181a87b0f6b7be5bdc1f3", "sha256": "0efc93850b4be64b16df21181e284b326130c38a8a5de97615290b3b28c71f78" }, "downloads": -1, "filename": "nanolog-0.0.0.tar.gz", "has_sig": false, "md5_digest": "b280f5981b7181a87b0f6b7be5bdc1f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1047, "upload_time": "2018-05-12T15:42:47", "url": "https://files.pythonhosted.org/packages/5c/34/0b24b09e49a11ad63ec8f1bb704ab7bc93546b9b2dc40a0d11011cdabd6e/nanolog-0.0.0.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "7faa91d303a3c71e280fd89c760f2fa4", "sha256": "4a2e983654c5c3cadd4125394669bd37af2431a1ac8a91a7f620aae05cabd669" }, "downloads": -1, "filename": "nanolog-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7faa91d303a3c71e280fd89c760f2fa4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 14739, "upload_time": "2018-05-13T05:08:56", "url": "https://files.pythonhosted.org/packages/23/30/f84417c732950d40d902d1f042537f4e42063a16580115d803f813bf6ac5/nanolog-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b7525f3e29793e84edcb9c2f6e122b6", "sha256": "f075abf732091fbf132b26d1260ac604d6557df52ee241b1ec59f80a7f958525" }, "downloads": -1, "filename": "nanolog-0.1.tar.gz", "has_sig": false, "md5_digest": "9b7525f3e29793e84edcb9c2f6e122b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 12930, "upload_time": "2018-05-13T05:08:58", "url": "https://files.pythonhosted.org/packages/52/2d/2325b8ca37cfce45fbd69216a8cd0774646b725bc14d90e92a46d25a241a/nanolog-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "be0e63ac711152a5de5c9def05625be3", "sha256": "ac27ecfd3e64d8e515dcaece3b3bec9a4bfc40a6965359633db485e17ce534ba" }, "downloads": -1, "filename": "nanolog-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "be0e63ac711152a5de5c9def05625be3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 14955, "upload_time": "2018-05-13T16:32:09", "url": "https://files.pythonhosted.org/packages/0d/96/9b5c18152f50af60b6d1f3b8971548ac8728fd36831e5f47ea019860a2f3/nanolog-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b593b69c2bc627f1b86885e64b63ca29", "sha256": "27d278a4decac9d066e28b8adbbe9f6eb986e62021196c4bd10bc83710bbb3af" }, "downloads": -1, "filename": "nanolog-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b593b69c2bc627f1b86885e64b63ca29", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 13228, "upload_time": "2018-05-13T16:32:10", "url": "https://files.pythonhosted.org/packages/c8/e9/d6d72bf100a0763973116a40aad823bfa2965c1f2e7ed4d1db812e03cd8a/nanolog-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0de315f1fd9d7c66725ec3245ca66141", "sha256": "3257362446a6089b754d7cc7bfd8d8dc8d69a067ea43af212733e73e52809603" }, "downloads": -1, "filename": "nanolog-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0de315f1fd9d7c66725ec3245ca66141", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 16351, "upload_time": "2018-05-14T17:55:47", "url": "https://files.pythonhosted.org/packages/9b/5a/63738fd5537f39405db49f7ebac1af75e3ea52614717a43011feb2ad7cc2/nanolog-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2678b3373712af0b79dbf663aa480cb1", "sha256": "d239ba6702568866049f89e3d9658c8bd833f50175e88a5cbc336b5806a09d08" }, "downloads": -1, "filename": "nanolog-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2678b3373712af0b79dbf663aa480cb1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 14338, "upload_time": "2018-05-14T17:55:49", "url": "https://files.pythonhosted.org/packages/9a/28/fe3a1b6b55aa662f60a2df420d8ac2a45c4ada1aff4f8f7ba864109f20c0/nanolog-0.1.2.tar.gz" } ], "0.1.2.post1": [ { "comment_text": "", "digests": { "md5": "4b42e076b964ddcb6be03a21f4a2e41f", "sha256": "3ef4a42efd562a4495c7fb3f5b947785f2443823d43483bbf1b98120c51d6ac8" }, "downloads": -1, "filename": "nanolog-0.1.2.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b42e076b964ddcb6be03a21f4a2e41f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 16450, "upload_time": "2018-05-14T18:10:08", "url": "https://files.pythonhosted.org/packages/6c/b4/41d3430fbcbc71d012a33d582916c2baff0dffb5e70577a93ada1d76098b/nanolog-0.1.2.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b641069e1e93a7b0d125e628afb55129", "sha256": "fdcdd35e781407031720fe6f5292846ac0d31ed665ddd83e999dfb92552eb246" }, "downloads": -1, "filename": "nanolog-0.1.2.post1.tar.gz", "has_sig": false, "md5_digest": "b641069e1e93a7b0d125e628afb55129", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 14365, "upload_time": "2018-05-14T18:10:09", "url": "https://files.pythonhosted.org/packages/e8/61/41308d6f854f7b7064755eb8e644db0c3cb5286cf2975b15563168550988/nanolog-0.1.2.post1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c7d1c24c570575e761e108aea0471ae2", "sha256": "173d95aaa3ede2e2521b4d1f742fdd2462ab16e0b0bc478cf42dc800d1f1cb21" }, "downloads": -1, "filename": "nanolog-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c7d1c24c570575e761e108aea0471ae2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 17461, "upload_time": "2018-05-15T21:33:55", "url": "https://files.pythonhosted.org/packages/94/6c/c629e4b4bc3474aae6b60974f61d83849fd6343b007a095f613f8c693654/nanolog-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a206bc723038838663d4fd7e3c815dbb", "sha256": "a85ef8e441b76bba9daf7ba7b1fdafc79097f91c80b4cd2ef16f08c5eb38f433" }, "downloads": -1, "filename": "nanolog-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a206bc723038838663d4fd7e3c815dbb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 16132, "upload_time": "2018-05-15T21:33:57", "url": "https://files.pythonhosted.org/packages/0b/46/f7161ded9682d7b341cf6399bb43c4341b2b0a40bef2f2c6a760b9f99b4a/nanolog-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c7d1c24c570575e761e108aea0471ae2", "sha256": "173d95aaa3ede2e2521b4d1f742fdd2462ab16e0b0bc478cf42dc800d1f1cb21" }, "downloads": -1, "filename": "nanolog-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c7d1c24c570575e761e108aea0471ae2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 17461, "upload_time": "2018-05-15T21:33:55", "url": "https://files.pythonhosted.org/packages/94/6c/c629e4b4bc3474aae6b60974f61d83849fd6343b007a095f613f8c693654/nanolog-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a206bc723038838663d4fd7e3c815dbb", "sha256": "a85ef8e441b76bba9daf7ba7b1fdafc79097f91c80b4cd2ef16f08c5eb38f433" }, "downloads": -1, "filename": "nanolog-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a206bc723038838663d4fd7e3c815dbb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 16132, "upload_time": "2018-05-15T21:33:57", "url": "https://files.pythonhosted.org/packages/0b/46/f7161ded9682d7b341cf6399bb43c4341b2b0a40bef2f2c6a760b9f99b4a/nanolog-0.1.3.tar.gz" } ] }