{ "info": { "author": "Maksym Sladkov", "author_email": "sladkovm@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Healthcare Industry", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering" ], "description": "\n=======================================\nVMPY - Performance Velo Metrics Toolbox\n=======================================\n\n**VMPY** is a toolbox for evaluating *typical*\n*Cycling Performance Metrics* from the ride data e.g. power, heart-rate, velocity,\ngradient, cadence streams.\n\nAll functions within the package do follow the convention, where input/output\nformats are either traditional *Python* built-in data structures\nor are the *nd-arrays*. This design choice favors easy integration into other projects,\ne.g. `velometria.com `_\n\nTo help you getting started VMPY also provides a very thin wrapper around the\n`Strava API `_.\n\n\nInstallation\n============\n\nOfficial release:\n\n``pip install vmpy``\n\nThe bleeding edge work in progress:\n\n``pip install git+git://github.com/sladkovm/vmpy.git@development``\n\n\nScope\n=====\n\nThe *VMPY* package provides the following functionality:\n\n``streams.py``: Streams shape preserving calculations e.g. masking, filtering, zone conversions\n\n``metrics.py``: Cycling Performance Metrics\n\n``strava.py``: Python wrapper around the Strava API v3 for fetching Athletes, Activities and Stream data\n\n\nUsage\n=====\n\n>>> from vmpy import strava\n>>> stream = strava.retrieve_streams(activity_id=1282167861, access_token=STRAVA_ACCESS_TOKEN)\n\n\n>>> from vmpy import streams\n>>> power_zones = streams.compute_zones(stream['watts'], ftp=270)\n>>> hr_zones = streams.compute_zones(stream['heartrate'], lthr=160)\n>>> watts_3sec = streams.rolling_mean(stream['watts'], window=3, mask=stream['moving'])\n>>> gradient_wo_outliers = streams.median_filter(stream['grade_smooth'], window=31, threshold=1)\n\n\n>>> from vmpy import metrics\n>>> normalizes_power = metrics.normalized_power(stream['watts'])\n>>> time_in_power_zones = metrics.time_in_zones(stream['watts'], ftp=260)\n\n\nQuick Start\n===========\n\n**Register Strava App**\n\nIn order to be able to use Strava API the user App must be registered at the ``_:\n\n*Application Name:* ex.: *My Awesome App*\n\n*Website:* ex.: *myawesomeapp.com* (can be anything, even your FB or Strava page will do)\n\n*Application Description* ex.: *Just fooling around with some Strava data*\n\n*Authorization Callback Domain* *127.0.0.1* (unless you are building a serious App)\n\n**Access Token**\n\nThe *Access Token* will be found at the `users profile page `_\nIt will look like this: *83ebeabdec09f6670863766f792ead24d61fe3f9*\n\nAccess Token must be passed explicitly as an argument\nto the functions found in ``strava.py`` module\n\n\nContribution guidelines\n=======================\n\nThis project is absolutely open for contributions. No strong guidelines yet, except for:\n\n1. Don't push on master branch\n2. Test\n3. Write docstrings in NumPy style\n\n\nUseful links\n============\n\n- Strava API v3 documentation - https://strava.github.io/api/\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sladkovm/vmpy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "vmpy", "package_url": "https://pypi.org/project/vmpy/", "platform": "", "project_url": "https://pypi.org/project/vmpy/", "project_urls": { "Homepage": "https://github.com/sladkovm/vmpy" }, "release_url": "https://pypi.org/project/vmpy/0.1.6/", "requires_dist": [ "numpy", "pandas", "requests" ], "requires_python": "", "summary": "Performance Velo Metrics Toolbox", "version": "0.1.6" }, "last_serial": 3633096, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d3faf5c0f145fa08ba2351e7637efb50", "sha256": "898297d20d23e401fed7e134126c65708c21f1f53eb84c34d6a9aa41c080044b" }, "downloads": -1, "filename": "vmpy-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3faf5c0f145fa08ba2351e7637efb50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5256, "upload_time": "2018-01-31T11:19:05", "url": "https://files.pythonhosted.org/packages/8d/87/3fd557943652ddd06d20ba690066a9186afc823eb6ac307c4e083c9139bb/vmpy-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20b75d651b8eb05fbe1b7c9c9a32fdaf", "sha256": "c6eb6ff1dc32699aaaf966176bd09340fc72a2dec9cd40faa84eb8847a7f1c28" }, "downloads": -1, "filename": "vmpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "20b75d651b8eb05fbe1b7c9c9a32fdaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3518, "upload_time": "2018-01-30T20:53:33", "url": "https://files.pythonhosted.org/packages/05/b1/1726cfb2170642b745f0f5602aa14c4da14aa6f5042e9b5243dec91b11a0/vmpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "af3e76fbec0acf307e905b724d1d6773", "sha256": "d7e7d6dc3409531a9d77f96653840a93da895ada73c6ee7ef080507b2785dca2" }, "downloads": -1, "filename": "vmpy-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af3e76fbec0acf307e905b724d1d6773", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5255, "upload_time": "2018-01-31T11:19:35", "url": "https://files.pythonhosted.org/packages/3b/fa/5c97b0fbf8e89c4e0605354c4ae337862e2c58e4ccfba8ccd08da9ad293b/vmpy-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09b31192e88d70918f5520cc3332062e", "sha256": "eb6a82d9547a2563a428319dcb42280acb3493dd222c863ae24e400b96ebfdb0" }, "downloads": -1, "filename": "vmpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "09b31192e88d70918f5520cc3332062e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5193, "upload_time": "2018-01-31T11:19:38", "url": "https://files.pythonhosted.org/packages/78/cf/e1eb75d50b10b415b66886db7426b5c5b993984dc306e4a9408753e6a5ee/vmpy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7681f961be274611b8848ba98af6b8f5", "sha256": "c62db1f62cb111723e09b6c89b07425f15542a1822e8ee724c5836738accb01c" }, "downloads": -1, "filename": "vmpy-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7681f961be274611b8848ba98af6b8f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5257, "upload_time": "2018-01-31T13:32:56", "url": "https://files.pythonhosted.org/packages/ba/42/cc11c9958e95a7965a6f4bac5488b5907db2db7a2eb43801fddcb6257c56/vmpy-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87e4106a4796d88d400edf68507391b3", "sha256": "6e19174846f3a3dcf67505c4a20f8f86bd623e163204ddeb99dd24ec451ec543" }, "downloads": -1, "filename": "vmpy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "87e4106a4796d88d400edf68507391b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5201, "upload_time": "2018-01-31T13:32:57", "url": "https://files.pythonhosted.org/packages/23/98/89285cb21a1304e2f09da1ee6c74e65c2bafec594b42bc12e3edd5888a85/vmpy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "86793c73888d999aec7cce49ddf1cc30", "sha256": "9926848bafd09f0f369e9b4c492858d8ec563af4d67beb5f62351d5020f36285" }, "downloads": -1, "filename": "vmpy-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "86793c73888d999aec7cce49ddf1cc30", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7029, "upload_time": "2018-02-01T20:50:14", "url": "https://files.pythonhosted.org/packages/74/af/319ca65554bdea0f8f386a4f10d0bcfab4fd011f7b2d52cad968500139b2/vmpy-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55373c253657a1392d8c6e7cb000bfa7", "sha256": "c4ac6f5606a45a296dcfd446dde9bd06e2fb32ab99cbe4505cf4df47e4a2baf3" }, "downloads": -1, "filename": "vmpy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "55373c253657a1392d8c6e7cb000bfa7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6046, "upload_time": "2018-02-01T20:50:15", "url": "https://files.pythonhosted.org/packages/d2/3e/5213766b5286be0c51c4b5b248a248b8638536cdecb15ed3073d71ef1142/vmpy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "1f102aa53526671811d9f0f861568010", "sha256": "748e07f3a90b52118161b91a347dbf0ae4a6b65a64f9ce4a80a7dfc3ab3f1276" }, "downloads": -1, "filename": "vmpy-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f102aa53526671811d9f0f861568010", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8900, "upload_time": "2018-02-11T14:39:54", "url": "https://files.pythonhosted.org/packages/4a/f2/788cd0d226dcf745f467c709572b4ad9c1ad5b0819845c797a725a04ab15/vmpy-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4e873c984651fc43a08f45c5f0c874b", "sha256": "c07691e24a2a0bfc98b46c917ab5802c23c129f4f195515fb242da9ecb50bdaa" }, "downloads": -1, "filename": "vmpy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e4e873c984651fc43a08f45c5f0c874b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7460, "upload_time": "2018-02-11T14:39:58", "url": "https://files.pythonhosted.org/packages/f2/f2/29e650587c497f25b7eb604fc8f5c046432ea12c6be874e0225cca4aca9e/vmpy-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2b9848c2c1c44e7b6f35d0e5d4175abe", "sha256": "cd14e45d2204ab14620adbd96cacf90fae2dbd0d98a6a28de33752790b39278c" }, "downloads": -1, "filename": "vmpy-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b9848c2c1c44e7b6f35d0e5d4175abe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8900, "upload_time": "2018-02-11T14:40:37", "url": "https://files.pythonhosted.org/packages/86/5a/e45240967e8c7a30b7664acc150af3e5b7d06fbf99a4530880c669e335ea/vmpy-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c5e02b577654e1940f7ba0ec5b1af3d", "sha256": "6db58c7adb368f3825f35df997c40f51b5540f23f16110e842eb5940051b8361" }, "downloads": -1, "filename": "vmpy-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4c5e02b577654e1940f7ba0ec5b1af3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7467, "upload_time": "2018-02-11T14:40:39", "url": "https://files.pythonhosted.org/packages/6b/15/29d144ac6e9163d2f0405fde3c5239408836de13e9c868e9823ed6a8d486/vmpy-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "87e081676072bfd0354919d15a540152", "sha256": "d1d6e4e18bd961fdda47b99c73005b010a40244953462edf82042549984d9174" }, "downloads": -1, "filename": "vmpy-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87e081676072bfd0354919d15a540152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11840, "upload_time": "2018-03-02T21:19:29", "url": "https://files.pythonhosted.org/packages/28/61/929b10072054839e31e28abf21c898fe1d5cca244c219f6a8f829ac970aa/vmpy-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89d623ef451025072906d1ebdda409f6", "sha256": "6c725ca5c26564bd7d4ac5d9eb2e3ddfd3fea46147129334f07619980a2fbda1" }, "downloads": -1, "filename": "vmpy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "89d623ef451025072906d1ebdda409f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9329, "upload_time": "2018-03-02T21:19:30", "url": "https://files.pythonhosted.org/packages/b6/4d/f2a8becac4bb113eab992775ab9829d509a903f49a7a0651401d35ff7195/vmpy-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87e081676072bfd0354919d15a540152", "sha256": "d1d6e4e18bd961fdda47b99c73005b010a40244953462edf82042549984d9174" }, "downloads": -1, "filename": "vmpy-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87e081676072bfd0354919d15a540152", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11840, "upload_time": "2018-03-02T21:19:29", "url": "https://files.pythonhosted.org/packages/28/61/929b10072054839e31e28abf21c898fe1d5cca244c219f6a8f829ac970aa/vmpy-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89d623ef451025072906d1ebdda409f6", "sha256": "6c725ca5c26564bd7d4ac5d9eb2e3ddfd3fea46147129334f07619980a2fbda1" }, "downloads": -1, "filename": "vmpy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "89d623ef451025072906d1ebdda409f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9329, "upload_time": "2018-03-02T21:19:30", "url": "https://files.pythonhosted.org/packages/b6/4d/f2a8becac4bb113eab992775ab9829d509a903f49a7a0651401d35ff7195/vmpy-0.1.6.tar.gz" } ] }