{ "info": { "author": "Brian Curtin", "author_email": "brian@python.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://readthedocs.org/projects/pine/badge/?version=latest\n :target: http://pine.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/briancurtin/pine.svg?branch=master\n :target: https://travis-ci.org/briancurtin/pine\n :alt: Test Status\n\npine\n====\n\nA benchmark utility to make requests to a REST API.\n\nPine makes requests to URLs a bunch of times and computes some statistics\nabout how those requests were responded to. This is ideally useful to run\non every change to your codebase so you can identify changes early.\n\nPine isn't a load testing tool. If you're trying to solve C10K, this won't\nhelp you. Pine (currently) runs requests serially.\n\nDocumentation\n=============\n\nDocumentation is available at http://pine.readthedocs.io/en/latest/\n\nInstallation\n============\n\nOn Python 3.6, ``pip install pine`` will do it.\n\nOn Python 3.7, there is an additional step required before running the\nsame command. Until PyYAML supports Python 3.7 in a released version,\nyou will need to install PyYAML from GitHub::\n\n pip install git+https://github.com/yaml/pyyaml.git\n pip install pine\n\nhttps://github.com/briancurtin/pine/issues/1 and\nhttps://github.com/yaml/pyyaml/issues/126 are tracking this issue.\n\nUsage\n=====\n\n``pine -c myconfig.yaml`` is the simplest way to begin. This will run your\nconfiguration and output the results to stdout. If you'd like to write\nthe output to a file, ``-o myoutputfile.json`` will do it. If you'd like\nto specify a particular run ID, other than the default of the current\ntimestamp, ``-i 32a63ab`` will do it. That's useful for tracking the\ncommit hash of what you're testing.\n\nRun ``pine -h`` for complete details.\n\nConfiguration\n=============\n\nPine uses YAML for configuration. See\n`conf/example.yaml `_\nfor an example.\n\nOutput\n======\n\nPine writes its results in JSON, either to stdout or the path you specified\nin ``-o``. It looks like the following::\n\n {\"results\": [\n {\"times\": [1.580882219500005, 1.8884545513215, 1.52546876846],\n \"timeouts\": 0, \"failures\": [], \"name\": \"get_all_things\",\n \"description\": \"Get all of the things\",\n \"mean\": 1.668359371049998,\n \"median\": 1.580882219500005,\n \"stdev\": 0.0969358463985873},\n {\"times\": [0.4894684654656654, 0.508042131499991, 1.054654684684],\n \"timeouts\": 0, \"failures\": [], \"name\": \"get_one_thing\",\n \"description\": \"Get one thing\",\n \"mean\": 0.856881387399993,\n \"median\": 0.508042131499991,\n \"stdev\": 0.0646515285845596},\n ],\n \"name\": \"Testing the things\",\n \"version\": \"1.0\",\n \"id\": \"7155eb\"}\n\nThanks\n======\n\nThanks to Francis Horsman for the ``pine`` package name.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pine.readthedocs.io/en/latest/", "keywords": "benchmarks,testing", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "pine", "package_url": "https://pypi.org/project/pine/", "platform": "", "project_url": "https://pypi.org/project/pine/", "project_urls": { "Homepage": "http://pine.readthedocs.io/en/latest/" }, "release_url": "https://pypi.org/project/pine/0.9/", "requires_dist": [ "aiohttp (>=3.0)", "certifi (>=2018.1.18)", "dataclasses (>=0.5); python_version < \"3.7\"", "pyyaml (>=3.12); python_version == \"3.6\"" ], "requires_python": "", "summary": "A benchmark utility to make requests to a REST API.", "version": "0.9" }, "last_serial": 3844608, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "44cc31cc938dcf95c4bea05b1abbfd9d", "sha256": "7a57dd81a46733cbdc01a6a6121737af003ba86e1cf8e03fd1823f2290c9c05e" }, "downloads": -1, "filename": "pine-0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "44cc31cc938dcf95c4bea05b1abbfd9d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10310, "upload_time": "2018-03-07T21:45:02", "url": "https://files.pythonhosted.org/packages/34/a7/08bef468c4f6fa35363c6a574703b7375c1cb5fa750a0c3411b827ffee82/pine-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "982c6b5c780442b46adc56fd3fc9eb9b", "sha256": "0b0a0aee8cccce901f0aa3d074064fe57e9b51e313f9d237e9d274d4ffb480e4" }, "downloads": -1, "filename": "pine-0.1.tar.gz", "has_sig": true, "md5_digest": "982c6b5c780442b46adc56fd3fc9eb9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4425, "upload_time": "2018-03-07T21:45:03", "url": "https://files.pythonhosted.org/packages/d1/25/78baba3958a42f21cd82e2f8d45307753824c7ea2d52c14d331db3848838/pine-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "4e05ec7f5ef8ad2ff19f26975a35c7b0", "sha256": "fd3a27027425d9c50650e54edb6c1c138ee4367b7e7d448c1bd300f9a67d504a" }, "downloads": -1, "filename": "pine-0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4e05ec7f5ef8ad2ff19f26975a35c7b0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10950, "upload_time": "2018-03-08T14:11:07", "url": "https://files.pythonhosted.org/packages/76/da/baf05132ae6cb1eb1883b8c3df1487c6936c7774e556ab36d1d7b433bbed/pine-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d24196e7985104bd560562846d7e77e4", "sha256": "329562a65d8538e2ac180bb05a3b53379ff9502e74322ed684014579ed3bf5e9" }, "downloads": -1, "filename": "pine-0.2.tar.gz", "has_sig": true, "md5_digest": "d24196e7985104bd560562846d7e77e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4681, "upload_time": "2018-03-08T14:11:12", "url": "https://files.pythonhosted.org/packages/3a/99/df88dc01e78772c0bdfef97e9ca5c3e221b4811fff6ff8fb18cca29dd057/pine-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "22f46f6b59460d8305739b89fd482b75", "sha256": "aa6a559b8d3687eff33c2002eaf6133ebafb8d1af70a33d18926c3110b8305b5" }, "downloads": -1, "filename": "pine-0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "22f46f6b59460d8305739b89fd482b75", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11190, "upload_time": "2018-03-08T17:01:32", "url": "https://files.pythonhosted.org/packages/55/38/5bb73c704551d21d598e4388a47c6985dfe414ccc7e710b9f1a446176745/pine-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36c3d5bf82e372d09ee7673a3f0200f0", "sha256": "2273930e70fe0f14150dd8414b67327d5ce358b59e37b73cfa16e6d48e83535d" }, "downloads": -1, "filename": "pine-0.3.tar.gz", "has_sig": true, "md5_digest": "36c3d5bf82e372d09ee7673a3f0200f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4872, "upload_time": "2018-03-08T17:01:33", "url": "https://files.pythonhosted.org/packages/20/a0/3fe595b30555bb5237687e510db68a09e4d8a9bdedf9278a69f04c0e599a/pine-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "566545dcd755fae7abddab3177cf3a14", "sha256": "00360e5c8f7d189337861ea9ce6a6c6eeeec9047980a368059a7c1fadf073b40" }, "downloads": -1, "filename": "pine-0.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "566545dcd755fae7abddab3177cf3a14", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10915, "upload_time": "2018-03-08T18:25:34", "url": "https://files.pythonhosted.org/packages/67/ca/bce563f9c8f8ae1a3871f3750258a46c1020da5d9c0b6dcb584ca8966e36/pine-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3a7fdf56e99e01017ec144891abd43f", "sha256": "b146caf81c98ed09e2010f3b227b65bc66c44a5f57a669d74bd801a5a73366dd" }, "downloads": -1, "filename": "pine-0.4.tar.gz", "has_sig": true, "md5_digest": "b3a7fdf56e99e01017ec144891abd43f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4941, "upload_time": "2018-03-08T18:25:36", "url": "https://files.pythonhosted.org/packages/85/d2/eb2873811ce27ed3575569d50bb12901a13c4baf9820c6839d23fca0d23e/pine-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "b38d95a0c29ce25323c9d3bf469deafc", "sha256": "e314dbb7c8b94688a8800fa2ed786d7f3ec9b0b7c2f805d0ea808a805360b87a" }, "downloads": -1, "filename": "pine-0.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b38d95a0c29ce25323c9d3bf469deafc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10887, "upload_time": "2018-03-08T19:26:55", "url": "https://files.pythonhosted.org/packages/d0/7e/26b7e9cd1168fa288a65209f6657cf097f2a702df4516604e0d0b8a860e0/pine-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7af95a738bb1a3a98c02fe99d8765af", "sha256": "721fc4d4986d7fce7f4e7212cbfc73bd3e21bcedf2c53d35072c6fe19124b08a" }, "downloads": -1, "filename": "pine-0.5.tar.gz", "has_sig": true, "md5_digest": "b7af95a738bb1a3a98c02fe99d8765af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4878, "upload_time": "2018-03-08T19:26:57", "url": "https://files.pythonhosted.org/packages/ac/33/b6e9480c27ee40f75c8220cf2356fc765f83dce50e11e261e9f3d2332564/pine-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "d306a9d5ddaa741a8784aea61ea21d82", "sha256": "73d9253cc55203c3ba994a94a6fe6dd55f93c09324f75138437f0371fd32e500" }, "downloads": -1, "filename": "pine-0.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d306a9d5ddaa741a8784aea61ea21d82", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11355, "upload_time": "2018-03-11T21:33:30", "url": "https://files.pythonhosted.org/packages/12/a5/dee294a437cd5c9a4d9597f7b2a612b3749a71830b095c3ef164d5eb646e/pine-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5af31f5e820f2bff1323e9d60edcdf9a", "sha256": "6c1c9cdbfd20282862c1908788a172e0c8174424127d3570a60342e26515bb18" }, "downloads": -1, "filename": "pine-0.6.tar.gz", "has_sig": true, "md5_digest": "5af31f5e820f2bff1323e9d60edcdf9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5230, "upload_time": "2018-03-11T21:33:32", "url": "https://files.pythonhosted.org/packages/77/85/4844cadab3dbeac8798ea12b6fd5ccf26aee7d1a222ace4f57e1b1c19f06/pine-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "8a3bf4c01ed79adaf53eacf4d882d591", "sha256": "62dd8351b002cd8a23831a994ce6bdd08b982129f6de514d8062c3e6e4ae84eb" }, "downloads": -1, "filename": "pine-0.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8a3bf4c01ed79adaf53eacf4d882d591", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11584, "upload_time": "2018-03-30T20:12:55", "url": "https://files.pythonhosted.org/packages/cb/64/a27359f61859a6a7a29d1defd7e467f4626483a0fe1f23d9bfbe754bc78f/pine-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18b0da2b90b342ccc1a04315c77c03f7", "sha256": "1acd77f1a1281537f98c804e6d7f9bdd34308d8b8fcb98ad03aa371d31b1069c" }, "downloads": -1, "filename": "pine-0.7.tar.gz", "has_sig": true, "md5_digest": "18b0da2b90b342ccc1a04315c77c03f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5416, "upload_time": "2018-03-30T20:12:56", "url": "https://files.pythonhosted.org/packages/c8/da/749a8b5b8c04a73af8a55b8c13482b7580a01f0e2544eb308a910cb06869/pine-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "1619844ae55e7bbfc6c62234b2aa99b9", "sha256": "9e6fad1bf5589db660af0841dfe0588bb9c57bfc8ff0575315abf0c0a953522e" }, "downloads": -1, "filename": "pine-0.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1619844ae55e7bbfc6c62234b2aa99b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11700, "upload_time": "2018-04-02T14:42:06", "url": "https://files.pythonhosted.org/packages/a9/3a/ce8680a11288dc8deed9a3d0328b5a418284d6f7f0db9906d896a82c00ba/pine-0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "232a16e816017d5552330049dbb8a1fc", "sha256": "c0a4b6f30a1af10912daebc20c0142352c244a94bb7f858ed505aca39ec415e5" }, "downloads": -1, "filename": "pine-0.8.tar.gz", "has_sig": true, "md5_digest": "232a16e816017d5552330049dbb8a1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5474, "upload_time": "2018-04-02T14:42:07", "url": "https://files.pythonhosted.org/packages/e6/d6/65b77c670cca9a252a65c9dc26cf0ed8e2570fc467f93cda81508ceac0a1/pine-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "53b450e113ff7358951e038d270a5ace", "sha256": "0b1281bc1a4c104fb4e3e68b07f0d5c014c21bc8c6f79ed94aa710b3f2f5ae9c" }, "downloads": -1, "filename": "pine-0.8.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "53b450e113ff7358951e038d270a5ace", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11730, "upload_time": "2018-04-02T17:08:56", "url": "https://files.pythonhosted.org/packages/3b/c3/39e837a1e9b7178bd26e7c6df2cca29c74aed6991dca04852d4a50bb2ec0/pine-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab12c09baebaa4b2d6aa81a25df12697", "sha256": "bf6a02b07b3b282b30de80c8c4f5a0b54a19dd75d17650bb67d19fea6df32b03" }, "downloads": -1, "filename": "pine-0.8.1.tar.gz", "has_sig": true, "md5_digest": "ab12c09baebaa4b2d6aa81a25df12697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5484, "upload_time": "2018-04-02T17:08:57", "url": "https://files.pythonhosted.org/packages/0d/00/febe7b58c2c96485372ee8bede46ed8b33ed9c67ec5965311868a7c81d1b/pine-0.8.1.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "e3be19111534a9afc34d33e56748b7e8", "sha256": "bda4c8e08a0f3775480f9f67878a5f238519997e62edd65f66fea4d738a9f5d0" }, "downloads": -1, "filename": "pine-0.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e3be19111534a9afc34d33e56748b7e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11713, "upload_time": "2018-05-08T15:29:26", "url": "https://files.pythonhosted.org/packages/f8/5a/2b9005c12ecd9a9c71e64a9ed397aaf056e8bbb9a7663ef6ffc6d6aeb953/pine-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e33db6948e7f3d2ca4123c733b063947", "sha256": "1cfad94423665882d51fa758bff7a61d7f90681aed433bae357527aaf38a9e64" }, "downloads": -1, "filename": "pine-0.9.tar.gz", "has_sig": true, "md5_digest": "e33db6948e7f3d2ca4123c733b063947", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5501, "upload_time": "2018-05-08T15:29:28", "url": "https://files.pythonhosted.org/packages/14/a0/58cf6bee3357ca43382f747b09e8695e9bc86b9149b0accb2921f03299b2/pine-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e3be19111534a9afc34d33e56748b7e8", "sha256": "bda4c8e08a0f3775480f9f67878a5f238519997e62edd65f66fea4d738a9f5d0" }, "downloads": -1, "filename": "pine-0.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e3be19111534a9afc34d33e56748b7e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11713, "upload_time": "2018-05-08T15:29:26", "url": "https://files.pythonhosted.org/packages/f8/5a/2b9005c12ecd9a9c71e64a9ed397aaf056e8bbb9a7663ef6ffc6d6aeb953/pine-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e33db6948e7f3d2ca4123c733b063947", "sha256": "1cfad94423665882d51fa758bff7a61d7f90681aed433bae357527aaf38a9e64" }, "downloads": -1, "filename": "pine-0.9.tar.gz", "has_sig": true, "md5_digest": "e33db6948e7f3d2ca4123c733b063947", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5501, "upload_time": "2018-05-08T15:29:28", "url": "https://files.pythonhosted.org/packages/14/a0/58cf6bee3357ca43382f747b09e8695e9bc86b9149b0accb2921f03299b2/pine-0.9.tar.gz" } ] }