{ "info": { "author": "Ben Bangert", "author_email": "ben@groovie.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: Public Domain", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Dozer\n=====\n\n.. image:: https://travis-ci.org/mgedmin/dozer.svg?branch=master\n :target: https://travis-ci.org/mgedmin/dozer\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/mgedmin/dozer?branch=master&svg=true\n :target: https://ci.appveyor.com/project/mgedmin/dozer\n\n.. image:: https://coveralls.io/repos/mgedmin/dozer/badge.svg?branch=master\n :target: https://coveralls.io/r/mgedmin/dozer\n\nDozer was originally a WSGI middleware version of Robert Brewer's\n`Dowser CherryPy tool `_ that\ndisplays information as collected by the gc module to assist in\ntracking down memory leaks. It now also has middleware for profiling\nand for looking at logged messages.\n\n\nTracking down memory leaks\n--------------------------\n\nUsage::\n\n from dozer import Dozer\n\n # my_wsgi_app is a WSGI application\n wsgi_app = Dozer(my_wsgi_app)\n\nAssuming you're serving your application on the localhost at port 5000,\nyou can then load up ``http://localhost:5000/_dozer/index`` to view the\ngc info.\n\n\nProfiling requests\n------------------\n\nUsage::\n\n from dozer import Profiler\n\n # my_wsgi_app is a WSGI application\n wsgi_app = Profiler(my_wsgi_app)\n\nAssuming you're serving your application on the localhost at port 5000,\nyou can then load up ``http://localhost:5000/_profiler`` to view the\nlist of recorded request profiles.\n\nHere's a blog post by Marius Gedminas that contains `a longer description\nof Dozer's profiler `_.\n\n\nInspecting log messages\n-----------------------\n\nUsage::\n\n from dozer import Logview\n\n # my_wsgi_app is a WSGI application\n wsgi_app = Logview(my_wsgi_app)\n\nEvery text/html page served by your application will get some HTML and\nJavascript injected into the response body listing all logging messages\nproduced by the thread that generated this response.\n\nHere's a blog post by Marius Gedminas that contains `a longer description\nof Dozer's logview `_.\n\n\nDozer Changelog\n===============\n\n0.7 (April 23, 2019)\n--------------------\n\n* Add support for Python 3.7.\n* Drop support for Python 3.3 and 3.4.\n* Stop using cgi.escape on Python 3, which is especially important now that\n it's been removed from Python 3.8.\n\n\n0.6 (May 18, 2017)\n------------------\n\n* Add support for Python 3.6.\n* Drop support for Python 2.6.\n* Fix rare TypeError when listing profiles, if two profiles happen to have\n the exact same timestamp (https://github.com/mgedmin/dozer/pull/4).\n\n0.5 (December 2, 2015)\n----------------------\n* Make /_dozer show the index page (instead of an internal server\n error).\n* Add support for Python 3.4 and 3.5.\n* Drop support for Python 2.5.\n* Move to GitHub.\n\n0.4 (March 21, 2013)\n--------------------\n* 100% test coverage.\n* Add support for Python 3.2 or newer.\n* Drop dependency on Paste.\n\n0.3.2 (February 10, 2013)\n--------------------------\n* More comprehensive fixes for issue #5 by Mitchell Peabody.\n* Fix TypeError: unsupported operand type(s) for +: 'property' and 'str'\n (https://bitbucket.org/bbangert/dozer/issue/3).\n* Add a small test suite.\n\n0.3.1 (February 6, 2013)\n------------------------\n* Fix TypeError: You cannot set Response.body to a text object\n (https://bitbucket.org/bbangert/dozer/issue/5). Patch by Mitchell Peabody.\n\n0.3 (December 13, 2012)\n-----------------------\n* Emit the \"PIL is not installed\" only if the Dozer middleware is\n actually used.\n* Give a name to the Dozer memleak thread.\n* You can now supply a function directly to Logview(stack_formatter=fn) \n* New configuration option for Logview middleware: tb_formatter, similar\n to stack_formatter, but for exception tracebacks.\n\n0.2 (December 5, 2012)\n----------------------\n* Adding logview that appends log events for the current request to the bottom\n of the html output for html requests.\n* Adding profiler for request profiling and call tree viewing.\n* Refactored Dozer into its own leak package.\n* New maintainer: Marius Gedminas.\n\n0.1 (June 14, 2008)\n-------------------\n* Initial public release, port from Dowser, a CherryPy tool.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mgedmin/dozer", "keywords": "web wsgi memory profiler", "license": "Public Domain", "maintainer": "Marius Gedminas", "maintainer_email": "marius@gedmin.as", "name": "Dozer", "package_url": "https://pypi.org/project/Dozer/", "platform": "", "project_url": "https://pypi.org/project/Dozer/", "project_urls": { "Homepage": "https://github.com/mgedmin/dozer" }, "release_url": "https://pypi.org/project/Dozer/0.7/", "requires_dist": [ "Mako", "WebOb (>=1.2)", "Pillow ; extra == 'test'", "WebTest ; extra == 'test'", "mock ; extra == 'test'", "pytest ; extra == 'test'" ], "requires_python": "", "summary": "WSGI Middleware version of the CherryPy memory leak debugger", "version": "0.7" }, "last_serial": 5176315, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b5029286158f2920750aac058f13f180", "sha256": "838dbeccf75e8c6a68eeac7c224df8d609215ee1b2a831be178d5473eddacede" }, "downloads": -1, "filename": "Dozer-0.1-py2.5.egg", "has_sig": false, "md5_digest": "b5029286158f2920750aac058f13f180", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 17797, "upload_time": "2008-06-15T01:41:14", "url": "https://files.pythonhosted.org/packages/c2/fd/2dd627c948fa3a0650895ee86cfae56adb01e327b9bb216e65e0ec2580c1/Dozer-0.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "6f826fcdcf2ce676c57f02e6b57d32aa", "sha256": "e54e92c459f8eb557bb8f24489886c5e3367a58ea89ce3f2f1f2c79869bb7508" }, "downloads": -1, "filename": "Dozer-0.1.tar.gz", "has_sig": false, "md5_digest": "6f826fcdcf2ce676c57f02e6b57d32aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7786, "upload_time": "2008-06-15T01:41:15", "url": "https://files.pythonhosted.org/packages/3d/0f/cfc2b5889d6b7432d410f4be336a01294ce158a98996fae68e766e15cc7b/Dozer-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "941dd81f832685a2f57c7b6b0a6fe803", "sha256": "f0e997df0ae8c51f6f06b453cc9d0684d3b13a7fa50a3722a7631c9044dfbe2e" }, "downloads": -1, "filename": "Dozer-0.2.tar.gz", "has_sig": false, "md5_digest": "941dd81f832685a2f57c7b6b0a6fe803", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73204, "upload_time": "2012-12-05T19:00:08", "url": "https://files.pythonhosted.org/packages/28/72/9cfd6b23024a19629aaa0da0e6a76f2678f74243ff6986b7e98eda681292/Dozer-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "62adff956b437334df9010bf2d1e5b76", "sha256": "d6952b109c455515f6b2eafc65c101f1909164140354bc4ec2cf0630f2754f7e" }, "downloads": -1, "filename": "Dozer-0.3.tar.gz", "has_sig": false, "md5_digest": "62adff956b437334df9010bf2d1e5b76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73678, "upload_time": "2012-12-13T15:57:43", "url": "https://files.pythonhosted.org/packages/db/04/2f7e8f82c787dade569d84afe253cba962ca744c18b76bdbde553c29ab27/Dozer-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "389da13970bdf577bfde48fe17750a60", "sha256": "70502de9519b01aa7bdd0e4db7c5e190880fb82809d06a7608b009adb543340c" }, "downloads": -1, "filename": "Dozer-0.3.1.tar.gz", "has_sig": false, "md5_digest": "389da13970bdf577bfde48fe17750a60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73774, "upload_time": "2013-02-06T08:18:44", "url": "https://files.pythonhosted.org/packages/f7/5c/7ea24ecfa50cba2114632fef96a5dd83dc8e7f355ecbce88ae294a73ad9a/Dozer-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "56c2ad521008b5381dd30cd9945ea0e3", "sha256": "7010a31826972f4571d0849815cd618381310f696bb9f51114e0523e1a44bfac" }, "downloads": -1, "filename": "Dozer-0.3.2.tar.gz", "has_sig": false, "md5_digest": "56c2ad521008b5381dd30cd9945ea0e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74827, "upload_time": "2013-02-10T20:03:47", "url": "https://files.pythonhosted.org/packages/b6/ef/4df0b0790248a02ce7cab1bdd425c9e7629c88e182d96521b92ad4d683d1/Dozer-0.3.2.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "6b8fabb2ac5d3013451e76d1572986f7", "sha256": "fcfb7decfec17e3d3417bc0520f0e6c723ab0f9464090c33a4ae0af60e974f9c" }, "downloads": -1, "filename": "Dozer-0.4.tar.gz", "has_sig": false, "md5_digest": "6b8fabb2ac5d3013451e76d1572986f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80627, "upload_time": "2013-03-21T14:04:51", "url": "https://files.pythonhosted.org/packages/2b/cd/fd7587b11c840311903465166029935d6f107170e410f81883c9c33b9e24/Dozer-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "dd243b42a2962a1ae11323985a83e3a1", "sha256": "f8c6a7176d1fbc4d41d81824a5db77d9b30faaaf1633eb453bd49c547481b8e9" }, "downloads": -1, "filename": "Dozer-0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "dd243b42a2962a1ae11323985a83e3a1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 90630, "upload_time": "2015-12-02T09:08:21", "url": "https://files.pythonhosted.org/packages/bd/23/4edff3565ed9f39667e718421dd4f718f69e73d1e6264b0fe0ace74fbb87/Dozer-0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39147ee71cbd24b605bf5c40e12e78a6", "sha256": "e844da8fcad20bf5bb7197cbcac8b6b757ca3f4cc7bab475bfd5c42e5a631b1e" }, "downloads": -1, "filename": "Dozer-0.5.tar.gz", "has_sig": false, "md5_digest": "39147ee71cbd24b605bf5c40e12e78a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81496, "upload_time": "2015-12-02T09:08:27", "url": "https://files.pythonhosted.org/packages/a2/e5/e938d82c7aa96b64d8a5c7144517d5db2b45c18d1e1590866d20a05acde0/Dozer-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e320d6d79b6aa30e144c8544da3a5785", "sha256": "542b9d9d68be584e86fb4aead48397c9a5a07892c33a5f00285311481af8d98a" }, "downloads": -1, "filename": "Dozer-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e320d6d79b6aa30e144c8544da3a5785", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 91691, "upload_time": "2017-05-18T11:33:18", "url": "https://files.pythonhosted.org/packages/5c/54/e6f826c4aad981e815bf91412143d226cbc238401938536cdc3f23f9e5f8/Dozer-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5e27887f04dbd4513ea6521c418bf80", "sha256": "e80ce4b415751e94f6a160ead95f82b449c02fca6f907e8c43ea43d766c7cab3" }, "downloads": -1, "filename": "Dozer-0.6.tar.gz", "has_sig": false, "md5_digest": "f5e27887f04dbd4513ea6521c418bf80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83756, "upload_time": "2017-05-18T11:30:10", "url": "https://files.pythonhosted.org/packages/19/96/5ded7176d62ee98f27cd185e66c2a5e5985ab75b7456603da1d1815d368d/Dozer-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "894da9bb634c83dec660f824881d4a44", "sha256": "07f117a13386e5ac194676e18be1bd4af40f6f3c8899a9d6cb1804b8954716b9" }, "downloads": -1, "filename": "Dozer-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "894da9bb634c83dec660f824881d4a44", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 89198, "upload_time": "2019-04-23T09:35:18", "url": "https://files.pythonhosted.org/packages/f8/5f/9335a6598f01632ec37306d2a419f830fcd73738145d031c4948183fe1bc/Dozer-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7343951b6c3c7f5ff56b7afdb2d248a1", "sha256": "7a5695fb2531de4961dac6759a256fb3b79370545cf0b247271ae31e84ce9c05" }, "downloads": -1, "filename": "Dozer-0.7.tar.gz", "has_sig": false, "md5_digest": "7343951b6c3c7f5ff56b7afdb2d248a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84967, "upload_time": "2019-04-23T09:35:20", "url": "https://files.pythonhosted.org/packages/a0/8c/e425442634faabf840c24d5ba0188d38db1151c2566ff86066857b900f7f/Dozer-0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "894da9bb634c83dec660f824881d4a44", "sha256": "07f117a13386e5ac194676e18be1bd4af40f6f3c8899a9d6cb1804b8954716b9" }, "downloads": -1, "filename": "Dozer-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "894da9bb634c83dec660f824881d4a44", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 89198, "upload_time": "2019-04-23T09:35:18", "url": "https://files.pythonhosted.org/packages/f8/5f/9335a6598f01632ec37306d2a419f830fcd73738145d031c4948183fe1bc/Dozer-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7343951b6c3c7f5ff56b7afdb2d248a1", "sha256": "7a5695fb2531de4961dac6759a256fb3b79370545cf0b247271ae31e84ce9c05" }, "downloads": -1, "filename": "Dozer-0.7.tar.gz", "has_sig": false, "md5_digest": "7343951b6c3c7f5ff56b7afdb2d248a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84967, "upload_time": "2019-04-23T09:35:20", "url": "https://files.pythonhosted.org/packages/a0/8c/e425442634faabf840c24d5ba0188d38db1151c2566ff86066857b900f7f/Dozer-0.7.tar.gz" } ] }