{ "info": { "author": "Lev Orekhov", "author_email": "lev.orekhov@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "| |GitHub| |BSD| |CI| |PyPI|\n\n########################\n Python Logging Context\n########################\n\n``pylogctx`` is a library for enriching each logs records from a context.\nTypical usage is for adding some ``request_id`` to all logs in order to make\ntroubleshooting more comfortable. This context is shared by all piece of code\nusing ``logging``, transparently.\n\n.. code-block::\n\n import logging.config\n\n from pylogctx import context as log_context\n\n\n logging.config.dictConfig({\n 'formatters': {'json': {\n '()': 'pythonjsonlogger.jsonlogger.JsonFormatter',\n 'format': \"%(asctime)s %(name)s %(levelname)s %(message)s\",\n }},\n 'filters': {'context': {\n '()': 'pylogctx.AddContextFilter',\n }},\n 'handlers': {'console': {\n 'class': 'logging.StreamHandler',\n 'filters': ['context'],\n 'formatter': 'json',\n }},\n 'root': {\n 'level': 'INFO',\n 'handlers': ['console'],\n },\n })\n\n\n logger = logging.getLogger(__name__)\n\n\n def mycode(request, ticket_id):\n # push new fields\n log_context.update(requestId=uuid.uuid4())\n myticket = get_object_or_404(models.Ticket, pk=ticket_id)\n\n # push objects, they will be adapted to log fields\n log_context.update(myticket):\n\n # Log as usual\n logger.info(\"Working on %r\", myticket)\n\n for comment in myticket.comments:\n # A context manager allow to push and pop fields\n with log_context(comment):\n logger.info(\"Working on comment %r\", comment)\n # code, use external libs, etc.\n\n # Don't forget to clear the context for the next request. Use the\n # middleware to have it clean.\n log_context.clear()\n\n\nThe output looks like::\n\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on ', 'ticketId': 1, 'requestId': 'c5521138-031a-4da6-b9db-c9eda3e090f1'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on comment ', 'ticketId': 1, 'ticketCommentId': 4, 'requestId': 'c5521138-031a-4da6-b9db-c9eda3e090f1'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on comment ', 'ticketId': 1, 'ticketCommentId': 5, 'requestId': 'c5521138-031a-4da6-b9db-c9eda3e090f1'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on comment ', 'ticketId': 1, 'ticketCommentId': 78, 'requestId': 'c5521138-031a-4da6-b9db-c9eda3e090f1'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on comment ', 'ticketId': 1, 'ticketCommentId': 9, 'requestId': 'c5521138-031a-4da6-b9db-c9eda3e090f1'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on ', 'ticketId': 890, 'requestId': 'c64aaae7-049b-4a02-929b-2d0ac9141f5c'}\n {'loggerName': 'package.module', 'levelname': 'INFO', 'message': 'Working on comment ', 'ticketId': 890, 'ticketCommentId': 80, 'requestId': 'c64aaae7-049b-4a02-929b-2d0ac9141f5c'}\n\n\nInstall it with your favorite python package installer::\n\n $ pip install pylogctx\n\n\nThere is a few helpers for Celery_ and Django_ projects. See USAGE_ for details!\n\n\nContributors\n============\n\nJoin us to make log rocking better! Read HACKING_ and ask maintainers:\n\n* David STEINBERGER `@dsteinberger `_\n* \u00c9tienne BERSAC `@bersace `_\n* Lev Orekhov `@lorehov `_\n* Malte Baden Hansen `@Moulde `_\n* Vincent RIALLAND `@vrialland `_\n* Hugo SMETT `@hsmett `_\n\n\n.. |BSD| image:: https://img.shields.io/pypi/l/pylogctx.svg?maxAge=2592000\n :target: https://github.com/novafloss/pylogctx/blob/master/LICENSE\n :alt: BSD Licensed\n\n.. |CI| image:: https://travis-ci.org/peopledoc/pylogctx.svg?style=shield\n :target: https://travis-ci.org/peopledoc/pylogctx\n :alt: CI Status\n\n.. |GitHub| image:: https://img.shields.io/github/stars/novafloss/pylogctx.svg?label=GitHub%20stars\n :target: https://github.com/novafloss/pylogctx\n :alt: GitHub homepage\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/pylogctx.svg\n :target: https://pypi.python.org/pypi/pylogctx\n :alt: Version on PyPI\n\n.. _Celery: http://www.celeryproject.org/\n.. _Django: https://www.djangoproject.com/\n.. _HACKING: https://github.com/novafloss/pylogctx/blob/master/HACKING.rst\n.. _USAGE: https://github.com/novafloss/pylogctx/blob/master/USAGE.rst\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/novafloss/pylogctx", "keywords": "logging context logging django", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pylogctx", "package_url": "https://pypi.org/project/pylogctx/", "platform": "", "project_url": "https://pypi.org/project/pylogctx/", "project_urls": { "Homepage": "https://github.com/novafloss/pylogctx" }, "release_url": "https://pypi.org/project/pylogctx/1.12/", "requires_dist": null, "requires_python": "", "summary": "Adding context to log records", "version": "1.12" }, "last_serial": 3920489, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "d80c0abb9226dad2206520de4283b41f", "sha256": "e293a8493e81df7f648b4a79793ab0b4c965f648552c0add656ec0fba7d069c5" }, "downloads": -1, "filename": "pylogctx-1.0.tar.gz", "has_sig": false, "md5_digest": "d80c0abb9226dad2206520de4283b41f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5217, "upload_time": "2016-06-02T13:26:04", "url": "https://files.pythonhosted.org/packages/10/7c/7c014b49ca9f8444c2bf0e598df8183a7c32b5afa4ca30e7fe086c34cf0e/pylogctx-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "389411c38becc2219d802cdc61c5c16e", "sha256": "8ae65c596d201d702f77fbb3236698ef02c83069b6aeadc13e1b61afd5be5506" }, "downloads": -1, "filename": "pylogctx-1.1.tar.gz", "has_sig": false, "md5_digest": "389411c38becc2219d802cdc61c5c16e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6011, "upload_time": "2016-06-10T09:00:49", "url": "https://files.pythonhosted.org/packages/c0/e7/cf80b8f1e3158411ba102758f8f62fc0c1cbc26063c9fa45537c3fb2a014/pylogctx-1.1.tar.gz" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "c21bfd7efa8d9f779194006be9da56e5", "sha256": "6fd190388caa562538494709f5a9db2b710bc13296004aa9cec85526233725d4" }, "downloads": -1, "filename": "pylogctx-1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c21bfd7efa8d9f779194006be9da56e5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9069, "upload_time": "2018-03-12T13:50:59", "url": "https://files.pythonhosted.org/packages/d0/fc/d4cd3005e35a39e88fa4d8b0e54fcec7469b4b8ffaf4a1b048130115ea43/pylogctx-1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da328280ae26bc517d84d6ac62472ea1", "sha256": "1a4f2fbfee39968b7931b9aa776d2b0a4cd4dc695e71a47bb826084131704786" }, "downloads": -1, "filename": "pylogctx-1.10.tar.gz", "has_sig": false, "md5_digest": "da328280ae26bc517d84d6ac62472ea1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7264, "upload_time": "2018-03-12T13:50:57", "url": "https://files.pythonhosted.org/packages/9d/a5/9f92ee0bc599adba9fb0d5055de527b776f4e8b65e4f3c86cdf2d4b15cf8/pylogctx-1.10.tar.gz" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "9800f78d863564c256355c8be3b52906", "sha256": "6b13198c643d10377258c40c31b72a39f6c03910e4c85a0693c99a64df65df1c" }, "downloads": -1, "filename": "pylogctx-1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9800f78d863564c256355c8be3b52906", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9094, "upload_time": "2018-03-28T16:32:52", "url": "https://files.pythonhosted.org/packages/6f/a0/4a44baeb090308a212ad2c4c9f2c63dd116ddf9623dfe294b2270414a513/pylogctx-1.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1a7c41ecbf3177a9af6d30c28a54aed", "sha256": "9037f3cbbf479480535145005c53fa8c52d5fc489f0fff6c3a4a2d6ec3974ef9" }, "downloads": -1, "filename": "pylogctx-1.11.tar.gz", "has_sig": false, "md5_digest": "c1a7c41ecbf3177a9af6d30c28a54aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7288, "upload_time": "2018-03-28T16:32:51", "url": "https://files.pythonhosted.org/packages/26/94/bac84e60df45435a396c096ad2cc5dc90956ec8686745eaa90fcdc5694b4/pylogctx-1.11.tar.gz" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "c051ef2c0adc2611c055daf889b18a7d", "sha256": "23c7ddfee2e97d12c7770e1acca4ecc79a212b0deeb36979de38e0ee62878782" }, "downloads": -1, "filename": "pylogctx-1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c051ef2c0adc2611c055daf889b18a7d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9558, "upload_time": "2018-06-01T12:45:27", "url": "https://files.pythonhosted.org/packages/db/ee/bab27c83669ec55276c3f1f9626eabae504b83e94a1be4c3ca11e20382cf/pylogctx-1.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64a1b28b8598c4ea21dec486dfeab8dd", "sha256": "b5e1995c3867114646f965afa9240201f67f0f10018222ca0ae5ed9d83618197" }, "downloads": -1, "filename": "pylogctx-1.12.tar.gz", "has_sig": false, "md5_digest": "64a1b28b8598c4ea21dec486dfeab8dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7621, "upload_time": "2018-06-01T12:44:36", "url": "https://files.pythonhosted.org/packages/20/80/c3053530878d662fd12089174fbb562919ed4e48227367d6822553fd39cb/pylogctx-1.12.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "6e54c0b4cf34390431d613574edd0d8f", "sha256": "3f3b39e35bdac788612acde59df87b27d1c07f5422ae5c20d9eb3dcaf9d9b1f7" }, "downloads": -1, "filename": "pylogctx-1.2.tar.gz", "has_sig": false, "md5_digest": "6e54c0b4cf34390431d613574edd0d8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5720, "upload_time": "2016-06-24T15:34:35", "url": "https://files.pythonhosted.org/packages/d5/96/4c09cdb9b89832f432d37f089787a406ac1399da05ff111d323218ff1dc0/pylogctx-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "36a162f029701849f12ab68f3fb46343", "sha256": "808d6468a27e3452f2c03bef2e73848d1bd1fcaecadf954cb3b94f9bf349312a" }, "downloads": -1, "filename": "pylogctx-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "36a162f029701849f12ab68f3fb46343", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7613, "upload_time": "2017-12-13T09:17:35", "url": "https://files.pythonhosted.org/packages/d3/cd/99f698a155928f877268bff678f8668ba59583c3f54da02309ac633bcfc0/pylogctx-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77aeca85a6c53546801630213e88ae38", "sha256": "c974c67e187fd24da342e24223b9cce765d00facfa2c9d19ffa3e402395607f9" }, "downloads": -1, "filename": "pylogctx-1.3.tar.gz", "has_sig": false, "md5_digest": "77aeca85a6c53546801630213e88ae38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5719, "upload_time": "2017-12-13T09:17:32", "url": "https://files.pythonhosted.org/packages/ff/c7/4bb049bce63fb9a47ab13d2cd3214e2e94237d4c20b45deb0d4ee492ea03/pylogctx-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "00b8b958fd56663b776432cfc80a8a50", "sha256": "da18b5e1df69d9b5f11adeb6efb63ce3625ee6056fb5aba0f0a54dcac0fad744" }, "downloads": -1, "filename": "pylogctx-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "00b8b958fd56663b776432cfc80a8a50", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 7902, "upload_time": "2017-12-21T15:51:02", "url": "https://files.pythonhosted.org/packages/e1/55/20497eb24c736c450e4d02dbee4de9c5e62aba9b2099b54c98d367c8383f/pylogctx-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d79dc350678227fb27197145bbb4c55", "sha256": "e53caec647204af54586b9f47c2fbff5a0360a44def21df77767fd1bdde411ef" }, "downloads": -1, "filename": "pylogctx-1.4.tar.gz", "has_sig": false, "md5_digest": "1d79dc350678227fb27197145bbb4c55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6202, "upload_time": "2017-12-21T15:51:01", "url": "https://files.pythonhosted.org/packages/73/dd/57688b5bc63470ddbe7583c1fa0dbd3495a036d86309765c7e8fa8578775/pylogctx-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "4da307edcf6659f9fbc373d000c84379", "sha256": "edf2c96dacbc6416c3a1c179dd15dbf59dd8e5eb0045568152a270bd2e779609" }, "downloads": -1, "filename": "pylogctx-1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4da307edcf6659f9fbc373d000c84379", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8764, "upload_time": "2018-01-03T08:28:37", "url": "https://files.pythonhosted.org/packages/c3/ab/3b8ec2679ccd97f35566dada4cad4ba3fb4992fca634b82771920a59ac01/pylogctx-1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eddd5bb9a34de9cb9a7e49141f6d7fe6", "sha256": "54fd42697ef4832e7de5f3ef1a93007a35b9f7d6e25c82c9d03009b569620f10" }, "downloads": -1, "filename": "pylogctx-1.5.tar.gz", "has_sig": false, "md5_digest": "eddd5bb9a34de9cb9a7e49141f6d7fe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6912, "upload_time": "2018-01-03T08:28:36", "url": "https://files.pythonhosted.org/packages/5b/1a/ba2b9753ad8900051329e14cddba1bc71b4cf58cfdf7b378bd5677ed5a8a/pylogctx-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "13bfc94b71745169e51f64196147478f", "sha256": "abb8da15c0f27890840997a767bed993d01a06d5a92e9b8776b748cf18ee750f" }, "downloads": -1, "filename": "pylogctx-1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13bfc94b71745169e51f64196147478f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8761, "upload_time": "2018-01-03T09:33:26", "url": "https://files.pythonhosted.org/packages/ed/9e/7f99280591321a89542dd850e328368ee2eb24a7191903640fa65bb43b0c/pylogctx-1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "222fbeb29904db039fc63979809e723d", "sha256": "28749bbe71d6d3b6826b5ea8ab3adc53d42328578fcdf680ded297b64bfa2c36" }, "downloads": -1, "filename": "pylogctx-1.6.tar.gz", "has_sig": false, "md5_digest": "222fbeb29904db039fc63979809e723d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6933, "upload_time": "2018-01-03T09:33:24", "url": "https://files.pythonhosted.org/packages/58/33/e889e89ad30b192343778e03c9e36120dd01da25d5ca18144fc62a07b799/pylogctx-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "cd30ffbda730a4ba2bef085952e3411b", "sha256": "51a6f7efd76c34fb2f48ff26a9a6fb799c4f7b5bbd8772d238e5fbf8971ccd55" }, "downloads": -1, "filename": "pylogctx-1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd30ffbda730a4ba2bef085952e3411b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8787, "upload_time": "2018-01-17T16:27:10", "url": "https://files.pythonhosted.org/packages/e1/9c/5a5fc8cee01cdb02d10c1b9e055c9f52ed28c3250e3a8233baf5d11773aa/pylogctx-1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "354b187fe43eb14999225a2fd1b735b4", "sha256": "54b40310e83858ce2c78f496ee37ecdb6c1584420364db1f735dd0f298e1bfac" }, "downloads": -1, "filename": "pylogctx-1.7.tar.gz", "has_sig": false, "md5_digest": "354b187fe43eb14999225a2fd1b735b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6985, "upload_time": "2018-01-17T16:27:09", "url": "https://files.pythonhosted.org/packages/cf/cc/3c7db66d27985bf4ad3b4b910f7a58b4f2c8008f491707b44a6c7b6195e8/pylogctx-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "53a2e7bd31b09079de1148183c52621a", "sha256": "533415b23f0e4b14bdf6ca48e9ddc8f6eefa93344bfa648f594c50ad94d6cd6a" }, "downloads": -1, "filename": "pylogctx-1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53a2e7bd31b09079de1148183c52621a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8926, "upload_time": "2018-02-06T13:55:11", "url": "https://files.pythonhosted.org/packages/0f/01/3ae4cc173bdec6426ad5fdc5e00c6955722774f900ac7a0a56fd6a4939bd/pylogctx-1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c26216253b84f18219c3a7d46604b362", "sha256": "10c56e548d4faceace81b4cf00787e9629dbcf586646f1f94781d0fee2c70e93" }, "downloads": -1, "filename": "pylogctx-1.8.tar.gz", "has_sig": false, "md5_digest": "c26216253b84f18219c3a7d46604b362", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7169, "upload_time": "2018-02-06T13:55:09", "url": "https://files.pythonhosted.org/packages/b3/b0/f1060d9a55d854e8b31aeaa1662db183846f724a965d0f6f9dd41b3b822b/pylogctx-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "98661c9de5f95aef3ead2b54bc59cfc1", "sha256": "6f1586ebfacf75f78a79e0edb8e018bb0ab987a6f6a3482775d77db88ebf7259" }, "downloads": -1, "filename": "pylogctx-1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98661c9de5f95aef3ead2b54bc59cfc1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8914, "upload_time": "2018-02-06T19:44:54", "url": "https://files.pythonhosted.org/packages/56/0e/0d7ef9dd4abea7b93795978ed2bb22bcb5b70695f6d4c9ddce661082b861/pylogctx-1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1374c97ba478e7b2b5418d1bbcf79259", "sha256": "d5c3b7e6899d33cf5ac83a7237240d412bb693f0f755a8de64b15f56f05cc9e8" }, "downloads": -1, "filename": "pylogctx-1.9.tar.gz", "has_sig": false, "md5_digest": "1374c97ba478e7b2b5418d1bbcf79259", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7184, "upload_time": "2018-02-06T19:44:53", "url": "https://files.pythonhosted.org/packages/a8/e0/bacc9cc42b6f0462747ed987fbb224d9692e05c82eb1970c3f77f4624020/pylogctx-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c051ef2c0adc2611c055daf889b18a7d", "sha256": "23c7ddfee2e97d12c7770e1acca4ecc79a212b0deeb36979de38e0ee62878782" }, "downloads": -1, "filename": "pylogctx-1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c051ef2c0adc2611c055daf889b18a7d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9558, "upload_time": "2018-06-01T12:45:27", "url": "https://files.pythonhosted.org/packages/db/ee/bab27c83669ec55276c3f1f9626eabae504b83e94a1be4c3ca11e20382cf/pylogctx-1.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64a1b28b8598c4ea21dec486dfeab8dd", "sha256": "b5e1995c3867114646f965afa9240201f67f0f10018222ca0ae5ed9d83618197" }, "downloads": -1, "filename": "pylogctx-1.12.tar.gz", "has_sig": false, "md5_digest": "64a1b28b8598c4ea21dec486dfeab8dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7621, "upload_time": "2018-06-01T12:44:36", "url": "https://files.pythonhosted.org/packages/20/80/c3053530878d662fd12089174fbb562919ed4e48227367d6822553fd39cb/pylogctx-1.12.tar.gz" } ] }