{ "info": { "author": "M. Olcay TERCANLI", "author_email": "molcay@mail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.7" ], "description": "PyCTX for Django\n================\n\n**django-pyctx** is a context package to use data between function calls, use timers and log it.\n\nFor detailed documentation please visit [Wiki](https://github.com/molcay/django-pyctx/wiki).\n\nQuick Start\n-----------\n\n1. Add **django_pyctx** to your ``INSTALLED_APPS``\u00a0 setting like this:\n\n ```python\n INSTALLED_APPS = [\n #...,\n \"django_pyctx\",\n ]\n ```\n\n2. Add **django_pyctx.middlewares.RequestCTXMiddleware** to your ``MIDDLEWARE`` setting like this:\n\n ```python\n MIDDLEWARE = [\n \"django_pyctx.middlewares.RequestCTXMiddleware\",\n # ...,\n ]\n ```\n\n> Please add \"django_pyctx.middlewares.RequestCTXMiddleware\" to at the beginning of the MIDDLEWARE list.\n\n3. Start the development server and enjoy :)\n\nSample Usage\n------------\n\n- You can reach `RequestContext` instance in **views** from `request`: `request.ctx`\n\n- Example django function-based `view`:\n\n ```python\n from django.http import JsonResponse\n\n\n def index(request):\n y = 5\n with request.ctx.log.timeit('index_timer'):\n request.ctx.log.set_data('isEven', y % 2)\n request.ctx.log.set_data('y', y)\n request.ctx.log.start_timer('timer1')\n import time\n time.sleep(0.3)\n request.ctx.log.stop_timer('timer1')\n time.sleep(0.8)\n return JsonResponse({})\n ```\n\nYou can see the stdout. You are probably seeing something like this:\n\n```json\n{\n \"type\": \"REQ\",\n \"ctxId\": \"a9b66113-aa96-4419-b9ec-961ce0ebf3ae\",\n \"startTime\": \"2019-08-23 13:47:46.146172\",\n \"endTime\": \"2019-08-23 13:47:47.258287\",\n \"data\": {\n \"isEven\": 1,\n \"y\": 5\n },\n \"timers\": {\n \"ALL\": 1.112128,\n \"request\": 1.112115,\n \"index_timer\": 1.107513,\n \"timer1\": 0.302767\n },\n \"http\": {\n \"request\": {\n \"method\": \"GET\",\n \"path\": \"/ctxtest\",\n \"qs\": \"\",\n \"full_path\": \"/ctxtest\",\n \"is_secure\": false,\n \"is_xhr\": false,\n \"headers\": {\n \"Content-Length\": \"\",\n \"Content-Type\": \"text/plain\",\n \"Host\": \"localhost:8000\",\n \"Connection\": \"keep-alive\",\n \"Cache-Control\": \"max-age=0\",\n \"Upgrade-Insecure-Requests\": \"1\",\n \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\",\n \"Sec-Fetch-Mode\": \"navigate\",\n \"Sec-Fetch-User\": \"?1\",\n \"Dnt\": \"1\",\n \"Accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\",\n \"Sec-Fetch-Site\": \"none\",\n \"Accept-Encoding\": \"gzip, deflate, br\",\n \"Accept-Language\": \"tr,en-GB;q=0.9,en;q=0.8,en-US;q=0.7\",\n \"Cookie\": \"Pycharm-358d8f24=40efd37d-3767-43c2-8704-8abdbc8e441c; hblid=2S0d7GIKtYrYxbaF3m39N0M07TEBJbrW; olfsk=olfsk09308937734654421; Pycharm-358d92e3=f744a971-3d23-48a3-8188-7818d8efeb90; jenkins-timestamper-offset=-10800000; Pycharm-358d92e4=39469e28-3138-45a1-8133-16b05a158037; __test=1; csrftoken=qAbZmh519QGb6c1h702qe3YOtL8Q0ADakbXqqj4o5G5UznTybJVPigGG1mDBTtgP; Idea-535a2bcb=d87ec75d-65c5-46dd-a04b-6e914b434b5a; lang=en-US; iconSize=32x32; JSESSIONID.3e560a2e=node015mpq963ev6tulzcbplgyu8i1438.node0\"\n }\n },\n \"client\": {\n \"ip\": \"127.0.0.1\",\n \"host\": \"\",\n \"agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\"\n },\n \"status\": {\n \"code\": 200,\n \"phrase\": \"OK\"\n },\n \"server\": {\n \"name\": \"1.0.0.127.in-addr.arpa\",\n \"port\": \"8000\"\n },\n \"view\": \"run\"\n }\n}\n```\n> NOTE: this output formatted\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/molcay/django-pyctx", "keywords": "pyctx django django-pyctx django-request-logger django-req-ctx", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-pyctx", "package_url": "https://pypi.org/project/django-pyctx/", "platform": "", "project_url": "https://pypi.org/project/django-pyctx/", "project_urls": { "Homepage": "https://github.com/molcay/django-pyctx" }, "release_url": "https://pypi.org/project/django-pyctx/0.1.4/", "requires_dist": [ "pyctx", "django" ], "requires_python": "", "summary": "Context package to use data between function calls, use timers and log it for Django.", "version": "0.1.4" }, "last_serial": 5858899, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "97dde247b5fcaa9bf0bbb25396173e12", "sha256": "cc39bf827e8127292455a25f85f42fa9880841b2288cbb8821008e83f565f30b" }, "downloads": -1, "filename": "django_pyctx-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "97dde247b5fcaa9bf0bbb25396173e12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6051, "upload_time": "2019-08-23T10:48:19", "url": "https://files.pythonhosted.org/packages/5d/30/9c15a383e050fffc2d4028b834254a81e34286c8721a829fa53f22c5cf38/django_pyctx-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3720dc8b1b01882be846e5bf9036ed8a", "sha256": "985d49d08036496b6f76d88c8274ffa9cd0b1ea7e6fdcd24a48e8dfeef8d48a9" }, "downloads": -1, "filename": "django-pyctx-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3720dc8b1b01882be846e5bf9036ed8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4472, "upload_time": "2019-08-23T10:48:22", "url": "https://files.pythonhosted.org/packages/68/fc/261fe0d5094c34a17ee6122cb291a569486b690c0c5642ae1c2b1cc37df5/django-pyctx-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "29f2d1331e83da2550d656a84a89cb13", "sha256": "9919491d1292366641a29df8c128c41e4b3fd5404cb8d6e1a85acef39767a464" }, "downloads": -1, "filename": "django_pyctx-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29f2d1331e83da2550d656a84a89cb13", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7305, "upload_time": "2019-08-23T13:52:47", "url": "https://files.pythonhosted.org/packages/e1/35/2ace3baca14deb68bed689f6f893ae52502dc95f9c93d004b2f6538db454/django_pyctx-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "defa60aa8e62650b1ccbadd92f32068e", "sha256": "2e20ac7d6fcc477a51167c2ea4e6f57aa66b8e1af6a30c7849e77a1220a36dbf" }, "downloads": -1, "filename": "django-pyctx-0.1.1.tar.gz", "has_sig": false, "md5_digest": "defa60aa8e62650b1ccbadd92f32068e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5911, "upload_time": "2019-08-23T13:52:49", "url": "https://files.pythonhosted.org/packages/7e/5b/94c66ea284eeea98a934ca012a2eb294c828e686e891eb0c18e03bb9e493/django-pyctx-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1d237d1e691daa0895250832b01744db", "sha256": "c35e1441c5732776da9948b50f9477e467ecd965ef87e9f9ee7be5cf75430226" }, "downloads": -1, "filename": "django_pyctx-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d237d1e691daa0895250832b01744db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7313, "upload_time": "2019-09-01T19:36:23", "url": "https://files.pythonhosted.org/packages/69/6e/6b6ac1bf84b7219a0161d9616acc0561cfe774a33a30d12870ce5004ad38/django_pyctx-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ffed1f4a374d5f2363cccd703bd7965", "sha256": "a2097ae1ed1d8512d76ee68fb12da352212ae28c1a7df30fbc89decd45dcc1bd" }, "downloads": -1, "filename": "django-pyctx-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1ffed1f4a374d5f2363cccd703bd7965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5925, "upload_time": "2019-09-01T19:36:25", "url": "https://files.pythonhosted.org/packages/8e/09/12cca9279d7a308951805b6fa4da9afddd5c62f772dcf6af17f5c870f4ac/django-pyctx-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "106ae22997a79ae9eaa2093158809d05", "sha256": "96af89fdb3b49065074f401db08a872d0ac2bb9185006b2a419fc68f8d939f15" }, "downloads": -1, "filename": "django_pyctx-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "106ae22997a79ae9eaa2093158809d05", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7314, "upload_time": "2019-09-19T21:25:15", "url": "https://files.pythonhosted.org/packages/3f/5f/ee03167504dbb4dd08ac25f5ad005e0423810e88e280173324120d438dbb/django_pyctx-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e0c3a375445210a319be2db870f4b85", "sha256": "a0e2db0eced355c3854b5bc3dff5f0ff354ac045e07eccec160f2a0e93b6e5af" }, "downloads": -1, "filename": "django-pyctx-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4e0c3a375445210a319be2db870f4b85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5918, "upload_time": "2019-09-19T21:25:17", "url": "https://files.pythonhosted.org/packages/42/c7/3c0df6cdfe3d0409b0f0f09082281b29b22a06a1d0c5ebab1bab92be3475/django-pyctx-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "881dc8adc845e0b89dd2e2f6a7b85e60", "sha256": "354d0851d1345d10217c442a9a823f90e0e5d2653771cca040431c6a4d1766f3" }, "downloads": -1, "filename": "django_pyctx-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "881dc8adc845e0b89dd2e2f6a7b85e60", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7311, "upload_time": "2019-09-19T21:31:32", "url": "https://files.pythonhosted.org/packages/a3/f0/5784926e8b0080aed6c3c1e81f27aabc516294bff0f97608f090081ed13e/django_pyctx-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60bd0f877a2208d0927bd899f826bc53", "sha256": "add58e6f750b91a36503cb9a51d2de22731086c750384efb72ac3b9956c030ef" }, "downloads": -1, "filename": "django-pyctx-0.1.4.tar.gz", "has_sig": false, "md5_digest": "60bd0f877a2208d0927bd899f826bc53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5922, "upload_time": "2019-09-19T21:31:34", "url": "https://files.pythonhosted.org/packages/66/ba/92491059a267f2f6096962b0039fbbf10eb1f5f6cfe740c5def7c2e0891c/django-pyctx-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "881dc8adc845e0b89dd2e2f6a7b85e60", "sha256": "354d0851d1345d10217c442a9a823f90e0e5d2653771cca040431c6a4d1766f3" }, "downloads": -1, "filename": "django_pyctx-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "881dc8adc845e0b89dd2e2f6a7b85e60", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7311, "upload_time": "2019-09-19T21:31:32", "url": "https://files.pythonhosted.org/packages/a3/f0/5784926e8b0080aed6c3c1e81f27aabc516294bff0f97608f090081ed13e/django_pyctx-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60bd0f877a2208d0927bd899f826bc53", "sha256": "add58e6f750b91a36503cb9a51d2de22731086c750384efb72ac3b9956c030ef" }, "downloads": -1, "filename": "django-pyctx-0.1.4.tar.gz", "has_sig": false, "md5_digest": "60bd0f877a2208d0927bd899f826bc53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5922, "upload_time": "2019-09-19T21:31:34", "url": "https://files.pythonhosted.org/packages/66/ba/92491059a267f2f6096962b0039fbbf10eb1f5f6cfe740c5def7c2e0891c/django-pyctx-0.1.4.tar.gz" } ] }