{ "info": { "author": "Andrew McFague", "author_email": "redmumba@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware" ], "description": "``linesman`` is a much needed profiler-for-WSGI applications. It installs as\nmiddleware, can be configured entirely from any ``paster`` config, and aims to\nbe a jack-of-all-trades when it comes to profiling WSGI apps.\n\nSince a picture is worth a thousand words, here are a few screenshots of the\ninterface:\n\n- `Session listing\n `_\n- `Profile page\n `_\n- `Profile page w/ pie chart\n `_\n- `Generated callgraph\n `_\n\nThe changelog can always be viewed `from the source\n`_, or `on\nPyPi `_. Keep in mind,\nPyPi is only updated with each release, and does not include development\ndocumentation.\n\nReasoning behind this library\n=============================\n\nOne of my team's stories at work was to investigate existing Python profiling\ntools for use with some of our new web stacks (all in Pylons). I looked at a\nfew--``repoze.profile``, ``kea.profile``, and even ``dozer`` (still in\n0.2alpha)--but couldn't find any that suited our use case. We wanted to...\n\n- visualize the flow of our code\n- identify bottlenecks quickly and easily\n- have the ability to strip out extraneous calls\n\nMany of the tools simply outputted the ``pstats`` object from ``cProfile``,\nwhich can be difficult to parse, and even more difficult to identify the call\norder. Considering that ``cProfile`` provided all the information needed, I\nfigured it would be just as easy to write our own middleware.\n\n``linesman`` is a name given to people who inspect electrical ``Pylons``, and\nwas a meek attempt at having a relevant library name.\n\nSetting up middleware\n=====================\n\nNow, you'll need to tell your WSGI application how to use Linesman. Assuming\nyou're using Paster, you can do this very easily in your `development.ini` (or\nsimilar) config file. Add a new filter section::\n\n [filter:linesman]\n use = egg:linesman#profiler\n\nThen, find the section for your specific application. Typically, it will have\na section header that looks like ``[app:main]``. Add the following config\noption somewhere within this section::\n\n filter-with = linesman\n\nWallah! Once you start your paster server, you'll be all set. Verify that all\nis working correctly by accessing pages on your server. This will also create\nprofile entries for the next step.\n\nAccessing the profiles\n======================\n\nThis will assume that your application is mounted at the root directory,\n`/`, and that your server is running on `localhost` at port 5000. If\nnot, make sure you adjust your URLs accordingly.\n\nAccess the URL at http://127.0.0.1:5000/__profiler__, which should present\nyou with a list of profiles and times, with a link to the `stats` page. If you\ncan see this (and view the profiles), then you're all set!\n\nHappy profiling!", "description_content_type": null, "docs_url": "https://pythonhosted.org/linesman/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/linesman", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "linesman", "package_url": "https://pypi.org/project/linesman/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/linesman/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/linesman" }, "release_url": "https://pypi.org/project/linesman/0.3.2/", "requires_dist": null, "requires_python": null, "summary": "WSGI Profiling middleware", "version": "0.3.2" }, "last_serial": 2137718, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "968cc2b5fb8e16bdf9ee40b626c81c70", "sha256": "ab672ad1e04266c841d221e854ac5f92852c79297159d6c300ccc51a8c210a47" }, "downloads": -1, "filename": "linesman-0.1.tar.gz", "has_sig": false, "md5_digest": "968cc2b5fb8e16bdf9ee40b626c81c70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9133, "upload_time": "2011-05-01T06:06:49", "url": "https://files.pythonhosted.org/packages/ee/0f/1879e3a189bc9b4360eb0c5fe6dbbfad707a667d1566391300e944d92842/linesman-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2dbf4182096cd179c2eff405320d3a88", "sha256": "e8361a28dc6e86195811b5293e88f71a6dbce7e46343ca4f903caaa3a5b4c535" }, "downloads": -1, "filename": "linesman-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2dbf4182096cd179c2eff405320d3a88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42629, "upload_time": "2011-05-06T17:04:49", "url": "https://files.pythonhosted.org/packages/3b/fd/9634d72e91466404b5c356d9eaf1cc4ca9758c03da872b54b9b91104e6c2/linesman-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "321700cdbabaa4d140cd3dcbfe2b5309", "sha256": "864e5e9ce4f115f481e5a116572f96e6202b7b83ec842686abf62c4cc5210cb5" }, "downloads": -1, "filename": "linesman-0.2.tar.gz", "has_sig": false, "md5_digest": "321700cdbabaa4d140cd3dcbfe2b5309", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104174, "upload_time": "2011-05-15T05:49:48", "url": "https://files.pythonhosted.org/packages/2a/0a/dcf4db8964ae25faad2c27ca51fb99203fe99f19d482c1f0c81056381d53/linesman-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3bcb6ee7b89d3532da194e5e6b1efed2", "sha256": "9a90a60b2083e320cad0afdb62bc316b0b697ff5dd5fa99b0fc1e94d72047d65" }, "downloads": -1, "filename": "linesman-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3bcb6ee7b89d3532da194e5e6b1efed2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102106, "upload_time": "2011-08-25T13:38:47", "url": "https://files.pythonhosted.org/packages/7e/af/343cf02ca18f9dd4fe30ed41fcd57ec06b9364eca8fa283e0106b662d53a/linesman-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a405bc0547db87b58bf00b51c7734504", "sha256": "acf2c01ec20f9c754536fac502cc3ac00672d6cd8b767d2122de9d22b3c8b222" }, "downloads": -1, "filename": "linesman-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a405bc0547db87b58bf00b51c7734504", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104533, "upload_time": "2011-09-30T17:40:27", "url": "https://files.pythonhosted.org/packages/b4/f3/dbdb83ac1797494aee9a3c229d303aa9649d80aa2fa028f07962b63e9d99/linesman-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "7942e900a5aa428d739b0805d1c46dd4", "sha256": "b4af41a55d8103ee2ffd080bbf949e0abe8879c11a89ed59e1861f2ce896956f" }, "downloads": -1, "filename": "linesman-0.2.3.tar.gz", "has_sig": false, "md5_digest": "7942e900a5aa428d739b0805d1c46dd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102392, "upload_time": "2013-01-16T19:20:44", "url": "https://files.pythonhosted.org/packages/4f/ee/0333e7b9dad0f61d41588782357bbf87f4d2508a704ad12ad542c95b495c/linesman-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "cea704d217ac7dae4e0e55053cea022a", "sha256": "c08173856af862d15f1a7b844f3fdcb7e280a0862044c663dd1d9613300a7564" }, "downloads": -1, "filename": "linesman-0.3.0.tar.gz", "has_sig": false, "md5_digest": "cea704d217ac7dae4e0e55053cea022a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102085, "upload_time": "2013-03-13T02:13:38", "url": "https://files.pythonhosted.org/packages/d0/a4/3334af57538b28c595063234460157448f784181cc19f3a17fbd26e63189/linesman-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9a83bc191e6e0da5a24796a89f8648bb", "sha256": "60a9607aab23aa432e99b1371af2175079f4a7c64e9686f2fc5bf154ffe9937b" }, "downloads": -1, "filename": "linesman-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9a83bc191e6e0da5a24796a89f8648bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102271, "upload_time": "2013-05-03T02:19:36", "url": "https://files.pythonhosted.org/packages/c4/13/0a1762036f344e29ed17cf2c597e4a5e434aea0559150a57e374a852da13/linesman-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8fadb0af5426d3d2b1aa36a3b75419ec", "sha256": "319b6085ee89981409edaa436457446f6ac96c1dff1af5de90eeccd76a1ec0b0" }, "downloads": -1, "filename": "linesman-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8fadb0af5426d3d2b1aa36a3b75419ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102411, "upload_time": "2016-05-28T00:10:12", "url": "https://files.pythonhosted.org/packages/00/db/bbe43c0d4622187a4bae2ba8fd176f18a904a0c36c7a2283280fff2a1c9a/linesman-0.3.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "2bd91d144487634654cf4d1b87d186c3", "sha256": "34ff78d17a90a7d5b20e12537b77dcb4b2b092ac24b97206d8e379ee15fb7ebe" }, "downloads": -1, "filename": "linesman-0.3.2.zip", "has_sig": false, "md5_digest": "2bd91d144487634654cf4d1b87d186c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115068, "upload_time": "2016-05-28T00:10:16", "url": "https://files.pythonhosted.org/packages/9e/38/b0d18f65a077711ee5c37fcc46ca28cfd7a3017c6652bf951b1f0afc39cc/linesman-0.3.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8fadb0af5426d3d2b1aa36a3b75419ec", "sha256": "319b6085ee89981409edaa436457446f6ac96c1dff1af5de90eeccd76a1ec0b0" }, "downloads": -1, "filename": "linesman-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8fadb0af5426d3d2b1aa36a3b75419ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102411, "upload_time": "2016-05-28T00:10:12", "url": "https://files.pythonhosted.org/packages/00/db/bbe43c0d4622187a4bae2ba8fd176f18a904a0c36c7a2283280fff2a1c9a/linesman-0.3.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "2bd91d144487634654cf4d1b87d186c3", "sha256": "34ff78d17a90a7d5b20e12537b77dcb4b2b092ac24b97206d8e379ee15fb7ebe" }, "downloads": -1, "filename": "linesman-0.3.2.zip", "has_sig": false, "md5_digest": "2bd91d144487634654cf4d1b87d186c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115068, "upload_time": "2016-05-28T00:10:16", "url": "https://files.pythonhosted.org/packages/9e/38/b0d18f65a077711ee5c37fcc46ca28cfd7a3017c6652bf951b1f0afc39cc/linesman-0.3.2.zip" } ] }