{ "info": { "author": "Thibault Hallouin, Eva Mockler, and Michael Bruen", "author_email": "thibault.hallouin@ucdconnect.ie", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Hydrology" ], "description": "[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![PyPI Version](https://badge.fury.io/py/smartpy.svg)](https://pypi.python.org/pypi/smartpy)\n[![Travis CI Build Status](https://www.travis-ci.org/ThibHlln/smartpy.svg?branch=master)](https://www.travis-ci.org/ThibHlln/smartpy)\n[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/ThibHlln/smartpy?branch=master&svg=true)](https://ci.appveyor.com/project/ThibHlln/smartpy)\n[![DOI](https://zenodo.org/badge/118467753.svg)](https://zenodo.org/badge/latestdoi/118467753)\n\n# SMARTpy - An open-source version of the rainfall-runoff model SMART in Python\n\nSMARTpy is an open-source hydrological catchment model in Python. It is licensed under GNU GPL-3.0 (see [licence file](LICENCE.md) provided). SMART (Soil Moisture Accounting and Routing for Transport) is a top-down rainfall-runoff model composed of a soil moisture accounting component and linear routing components. It requires rainfall and potential evapotranspiration time series as inputs, it features a set of ten parameters, and it yields a discharge time series.\n\n## How to Install\n\nSMARTpy is available on PyPI, so you can simply use pip:\n\n python -m pip install smartpy\n\nYou can also use a link to the GitHub repository directly:\n\n\tpython -m pip install git+https://github.com/ThibHlln/smartpy.git\n\nAlternatively, you can download the source code (*i.e.* the GitHub repository) and, from the downloaded directory itself, run the command:\n\n python setup.py install\n\n## How to Use\n\nA tutorial in the form of a [Jupyter notebook](examples/api_usage_example.ipynb) is available to get started with the usage of SMARTpy's API. The input files required for the tutorial are all provided in the `examples/` folder.\n\n## How to Cite\n\nIf you are using SMARTpy, please consider citing the software as follows (click on the link to get the DOI of a specific version):\n* Hallouin, T., Mockler, E., Bruen, M. (XXXX). SMARTpy: Conceptual Rainfall-Runoff Model (Version X.X.X). Zenodo. https://doi.org/10.5281/zenodo.2564041\n\n## Dependencies\n\nSMARTpy requires the popular Python packages `numpy` and `scipy` to be installed on the Python implementation where `smartpy` is installed. The package `future` is also required (used for Python 2 to 3 compatibilities). Additional optional dependencies include `netCDF4` if one wishes to use NetCDF files as input or output, and `smartcpp` if one wishes to use an accelerator module for the SMART model ([C++ extension for the SMART model](https://github.com/ThibHlln/smartcpp)).\n\n## Model Specifications\n\n### Model Inputs\n\n* aerial rainfall time series [mm/time step]\n* aerial potential evapotranspiration time series [mm/time step]\n\n### Model Parameters\n\n* T: rainfall aerial correction coefficient [-]\n* C: evaporation decay parameter [-]\n* H: quick runoff coefficient [-]\n* D: drain flow parameter - fraction of saturation excess diverted to drain flow [-]\n* S: soil outflow coefficient [-]\n* Z: effective soil depth [mm]\n* SK: surface routing parameter [hours]\n* FK: inter flow routing parameter [hours]\n* GK: groundwater routing parameter [hours]\n* RK: river channel routing parameter [hours]\n\n### Model Outputs\n\n* discharge time series at catchment outlet [m3/s]\n\n### References\n\nMockler, E., O\u2019Loughlin, F., and Bruen, M.: Understanding hydrological flow paths in conceptual catchment models using uncertainty and sensitivity analysis, *Computers & Geosciences*, 90, 66\u201377,[doi:10.1016/j.cageo.2015.08.015](https://dx.doi.org/10.1016/j.cageo.2015.08.015), 2016\n\n## Input/Output File Formats\n\nSMARTpy is designed to read CSV (Comma-Separated Values) files and NetCDF (Network Common Data Form) input files (for rain, peva, and flow), as well as to write CSV and NetCDF output files (for discharge series, and monte carlo simulation results). However, the use of NetCDF files requires the Python package `netCDF4` to be installed on the Python implementation where SMARTpy is installed (specific pre-requisites prior the installation of `netCDF4` exist and can be found at [unidata.github.io/netcdf4-python](http://unidata.github.io/netcdf4-python/)).\n\n## Monte Carlo Simulations\n\nThe `montecarlo` suite of classes that comes with `smartpy` gives access to various options for Monte Carlo simulations. The parameter space of the SMART model can be explored using Latin Hypercube Sampling (`LHS`) for any sample size required. Once the sampling is complete for on a given simulation period, the performance of the whole set of parameter sets can be evaluated on another simulation period with `Total`, or the set of parameter sets can be conditioned according to their own performances against observed discharge data on any of the objective function(s) calculated by SMARTpy (using `GLUE` to distinguish from behavioural and non-behavioural parameter sets, or using `Best` to retain a pre-defined number of best performing samples) and the resulting subset of parameter sets can be evaluated on another simulation period.\n\n## Parallel Computing\n\nIf Monte Carlo simulations are required, it is important to make use of the available computer power to reduce the runtime. Personal Computers now commonly feature several processor cores that can be used to run as many runs of the SMART model in parallel (*i.e.* at the same time), not to mention High Performance Clusters, where the benefits of parallel computing will be even more significant. The `montecarlo` classes of `smartpy` are using the `spotpy` package to give access to an easy way to run simulations in parallel. `spotpy` itself requires `mpi4py` to operate, which applies to `smartpy` by extension. So before using `montecarlo` with `parallel='mpi'`, a Message Passing Interface (MPI) library (*e.g.* Open MPI) and `mpi4py` need to be installed on your machine, and `spotpy` needs to be installed too. Any of the `montecarlo` classes can take an optional argument parallel, its default value is set to 'seq' (for sequential computing), but can be set to 'mpi' if your setup allows it (for parallel computing).\n\n## Version History\n\n* 0.2.1 [24 Aug 2019]: [General enhancements](https://github.com/ThibHlln/smartpy/releases/tag/v0.2.1)\n* 0.2.0 [16 Nov 2018]: [Speed improvement by making use of new version of SMARTcpp](https://github.com/ThibHlln/smartpy/releases/tag/v0.2.0)\n* 0.1.4 [12 Nov 2018]: [General enhancements](https://github.com/ThibHlln/smartpy/releases/tag/v0.1.4)\n* 0.1.3 [24 Jul 2018]: [Version improved for Monte Carlo simulations with parallel computing](https://github.com/ThibHlln/smartpy/releases/tag/v0.1.3)\n* 0.1.2 [18 Jul 2018]: [Version functioning without evaluation data](https://github.com/ThibHlln/smartpy/releases/tag/v0.1.2)\n* 0.1.1 [17 Jul 2018]: [Version with proper PyPI display](https://github.com/ThibHlln/smartpy/releases/tag/v0.1.1)\n* 0.1.0 [17 Jul 2018]: [First version of SMARTpy](https://github.com/ThibHlln/smartpy/releases/tag/v0.1.0)\n\n## Acknowledgment\n\nThis tool was developed with the financial support of Ireland's Environmental Protection Agency (Grant Number 2014-W-LS-5).\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/ThibHlln/smartpy", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "smartpy", "package_url": "https://pypi.org/project/smartpy/", "platform": "", "project_url": "https://pypi.org/project/smartpy/", "project_urls": { "Homepage": "https://github.com/ThibHlln/smartpy" }, "release_url": "https://pypi.org/project/smartpy/0.2.1/", "requires_dist": [ "numpy", "scipy", "future", "netCDF4 ; extra == 'with_all_extras'", "spotpy ; extra == 'with_all_extras'", "smartcpp ; extra == 'with_all_extras'", "netCDF4 ; extra == 'with_netcdf'", "smartcpp ; extra == 'with_smartcpp'", "spotpy (>=1.3.27) ; extra == 'with_spotpy'" ], "requires_python": "", "summary": "SMARTpy: an open-source rainfall-runoff model in Python", "version": "0.2.1" }, "last_serial": 5724712, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4f744274f65874ff40280f7cfeba3015", "sha256": "f80e1a58c756aedd3358f8f620ec5bdd2d34e672203aec3645ccdf0313930050" }, "downloads": -1, "filename": "smartpy-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4f744274f65874ff40280f7cfeba3015", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 30845, "upload_time": "2018-07-17T16:32:08", "url": "https://files.pythonhosted.org/packages/7a/20/389cf6d9951732f54a1536cf4433bcd83c42e002d2a73accc4aba64b640c/smartpy-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53a48177b184e35f5c28db0ec3f9d059", "sha256": "cf87ce21ca88281c3d3a817ba4644d629d22ca8df63f4d4941f1a271a75ccd1b" }, "downloads": -1, "filename": "smartpy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "53a48177b184e35f5c28db0ec3f9d059", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28509, "upload_time": "2018-07-17T16:32:09", "url": "https://files.pythonhosted.org/packages/92/e2/dd7bfb8e745ffa84151fd8872202d768e635f35464f9afeca0b95da78c5e/smartpy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b59c0e36ea9cfde83882733c7b73bfd5", "sha256": "f364defc737e992e519dd0f270433553177702b4b15f6c3bf5e764a7db6dfeee" }, "downloads": -1, "filename": "smartpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b59c0e36ea9cfde83882733c7b73bfd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20669, "upload_time": "2018-07-17T16:32:10", "url": "https://files.pythonhosted.org/packages/bf/40/64ad1dbbf8b9fd0f6efff4572ccda1c835d47d91fae3903d400406de4956/smartpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "beb2816c5532e959fe14c3b493b20b38", "sha256": "f86e1ed3674409cef4b8650ecb418199d36202d3a4186317ab2f1f070d44e23e" }, "downloads": -1, "filename": "smartpy-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "beb2816c5532e959fe14c3b493b20b38", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29017, "upload_time": "2018-07-17T17:15:52", "url": "https://files.pythonhosted.org/packages/3b/b9/10c35a849674782234327d5ce65b33e08791b83a0b3140dc165525fd8e04/smartpy-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d461a0ce246a5f443c1ff7b80ffb972", "sha256": "94bbd3b0f80fa08d437ab5043239608c1177fcf6a1d90ab7d4df181ec571d48c" }, "downloads": -1, "filename": "smartpy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2d461a0ce246a5f443c1ff7b80ffb972", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29019, "upload_time": "2018-07-17T17:15:53", "url": "https://files.pythonhosted.org/packages/17/73/8e39ffd46acdb9b990bfee7979baee749b51d76561c419ec334990c56a3b/smartpy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e26d53d80567e5d3a241221d78c5ad8", "sha256": "3e2cce842146bde318cc1a59c430fd68bf4a78091a2ef48e936a08a28664a55d" }, "downloads": -1, "filename": "smartpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2e26d53d80567e5d3a241221d78c5ad8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21426, "upload_time": "2018-07-17T17:15:55", "url": "https://files.pythonhosted.org/packages/f2/0b/e8eb9bbc16cd1fce1281c63b81b22538096e454abb74c30dc372eae9f4be/smartpy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "202fa83911da3d0250d5c5d8cce5c899", "sha256": "995ac91299aef92cff1e84e251cc1cceab59a03a62294c96c38679b53e35da6a" }, "downloads": -1, "filename": "smartpy-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "202fa83911da3d0250d5c5d8cce5c899", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29487, "upload_time": "2018-07-18T15:46:09", "url": "https://files.pythonhosted.org/packages/8d/a7/8d88d9e2c324bea6135b0bb2d68e725b6e3e2ce6a9df46b30d2fde08e54f/smartpy-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c51d940107e9f298449a50626cc99f2", "sha256": "e7e3dedc4e0e5f04611a1e8f0cdad5e4a7cc1125e6368b3fe55469961198227c" }, "downloads": -1, "filename": "smartpy-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7c51d940107e9f298449a50626cc99f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29486, "upload_time": "2018-07-18T15:46:11", "url": "https://files.pythonhosted.org/packages/00/2a/64d95ea032837c56139728ab3e7d34476dad522860690e9fbb6e494bd353/smartpy-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ff054065c57eb5ff7cb6cc4b3e516d6", "sha256": "5162689cb8935f45b75344d1c8a0dbb5494374a89e0fb50f1d3f96abe6d8fecc" }, "downloads": -1, "filename": "smartpy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8ff054065c57eb5ff7cb6cc4b3e516d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22206, "upload_time": "2018-07-18T15:46:12", "url": "https://files.pythonhosted.org/packages/33/01/037ba66969c6c08264eab02e324f27864e0f9b05a33540fa77346f22979e/smartpy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a8cc15aef118ec3601dbcf18cde017c6", "sha256": "c05420685e50eff6c45c3c18e9b60c7b9f7c4d687c8fa343b5098fda54929769" }, "downloads": -1, "filename": "smartpy-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "a8cc15aef118ec3601dbcf18cde017c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 35565, "upload_time": "2018-07-25T13:08:14", "url": "https://files.pythonhosted.org/packages/8e/4d/ff67b0f186ad13042d4fc7482eca5a8496622eddb6c17339b95f8438d9a4/smartpy-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73fb94b15fa56bc60ebc1d8affc01d46", "sha256": "78ac858609dbc72cca53d96b70e6505c70ea205b99f3110f1c0be54c8035cee7" }, "downloads": -1, "filename": "smartpy-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "73fb94b15fa56bc60ebc1d8affc01d46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 35554, "upload_time": "2018-07-25T13:08:15", "url": "https://files.pythonhosted.org/packages/9c/6a/caea21a24fb205ae6c44190931cfb1d754d405db924eea80ea80ccf7808f/smartpy-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "338bde10fb062b2a69c81c92c94b2a7a", "sha256": "b3d02f414eb25fe272599d6af0dabb60b212775b70ac69ce5a9565f2962addfd" }, "downloads": -1, "filename": "smartpy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "338bde10fb062b2a69c81c92c94b2a7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28377, "upload_time": "2018-07-25T13:08:16", "url": "https://files.pythonhosted.org/packages/b5/cb/8d0ce22ad83122f3c1cfaf138022416ebcb83370c2ab9cabc8093f2607f1/smartpy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "58afd61995eea780514dcc8d391dbab1", "sha256": "0e6749e6b9c1706f3e1bef7a20e9373b9d70920bd8fc6900f8f311e91c24389f" }, "downloads": -1, "filename": "smartpy-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "58afd61995eea780514dcc8d391dbab1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 37875, "upload_time": "2018-11-12T14:54:21", "url": "https://files.pythonhosted.org/packages/8a/c7/9ead2113030ba9af574de35f3d65c4ab0af5f54a8ed4a64c8f60bedc52c0/smartpy-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2aa28a2662df65b65eed126ebb11f386", "sha256": "4bafcc6f3b32255a765c8347053de4cf6bfb1651bd157ec27a7aea82acb46bd9" }, "downloads": -1, "filename": "smartpy-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2aa28a2662df65b65eed126ebb11f386", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50252, "upload_time": "2018-11-12T14:54:23", "url": "https://files.pythonhosted.org/packages/f0/e6/ff3ba6982f487119efe8af30f6b3a45b1ae2b0b576ddcbe894e3aac22d7c/smartpy-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5220e33c1048eb57dd30ba25219379a9", "sha256": "1fd34d33cdc9cd88d14c48a77cae958d82a185992c4f63423f4df999b98725df" }, "downloads": -1, "filename": "smartpy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "5220e33c1048eb57dd30ba25219379a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29042, "upload_time": "2018-11-12T14:54:24", "url": "https://files.pythonhosted.org/packages/77/1c/5b600f4e664eca84ad4de72b14ecee4688ea000e6c0038b8d05d5b5dfb03/smartpy-0.1.4.tar.gz" } ], "0.1.4.post1": [ { "comment_text": "", "digests": { "md5": "e41bd365b3bce59da07884d7322baff9", "sha256": "8d9b35307a4bdcdf3a8e401ed496cabafa3e46017a97dab8af28b5aff27411bd" }, "downloads": -1, "filename": "smartpy-0.1.4.post1-py2-none-any.whl", "has_sig": false, "md5_digest": "e41bd365b3bce59da07884d7322baff9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 37914, "upload_time": "2018-11-12T15:24:22", "url": "https://files.pythonhosted.org/packages/f7/d2/00cfeb141df9d853363faf7eb42d7ddcda3f6da87920eb50c82f228b6eb3/smartpy-0.1.4.post1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b816fbd895182d409d7b0df9f0f25c0", "sha256": "9146888fa99fb85ad6f843cf7bc5c53b726330eec3f52471cc18c7884acf52b1" }, "downloads": -1, "filename": "smartpy-0.1.4.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "2b816fbd895182d409d7b0df9f0f25c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50305, "upload_time": "2018-11-12T15:24:23", "url": "https://files.pythonhosted.org/packages/c8/51/d65777e4d93b6c275da09d2608feb5caf3a90d03f38928035d2a797f81f8/smartpy-0.1.4.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebdb86a366f656388a92055295b357bc", "sha256": "15f23350736256457aaf5c82bab9c2d6485f620d5e0b0d0ddf9c613380b9ae89" }, "downloads": -1, "filename": "smartpy-0.1.4.post1.tar.gz", "has_sig": false, "md5_digest": "ebdb86a366f656388a92055295b357bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29036, "upload_time": "2018-11-12T15:24:25", "url": "https://files.pythonhosted.org/packages/a5/9e/74efe3c1577caa911425e4292a0bc3f7d98a217d6898a6d9076a1439411e/smartpy-0.1.4.post1.tar.gz" } ], "0.1.4.post2": [ { "comment_text": "", "digests": { "md5": "e86049d47fb1117ec2b6f918d5638f97", "sha256": "ed2b38e6d35081974fef8fdf02e378fee7fd7a93b201e840cff8bf8854c51240" }, "downloads": -1, "filename": "smartpy-0.1.4.post2-py2-none-any.whl", "has_sig": false, "md5_digest": "e86049d47fb1117ec2b6f918d5638f97", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 37913, "upload_time": "2018-11-12T16:10:02", "url": "https://files.pythonhosted.org/packages/4c/da/a9b2ac1380efe9085f4a2d0183603db26ff675acfaba530540a4adec7c51/smartpy-0.1.4.post2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "761895d44d76a1b7d45ac3cd13ba2cb6", "sha256": "3277ae0bc4c1ab43dd59d9bbef4d4370d64d7eccf0dd28c6eff914212614b606" }, "downloads": -1, "filename": "smartpy-0.1.4.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "761895d44d76a1b7d45ac3cd13ba2cb6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50304, "upload_time": "2018-11-12T16:10:04", "url": "https://files.pythonhosted.org/packages/28/8d/9a41e570d0acd75ea5dadd390ae74b0a75ecb059c5d7498d5fe55629e255/smartpy-0.1.4.post2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e2640ca1d0d29bed5cbb0399a4f8b27", "sha256": "50524ee9379129ed80fdf4c67334db731e27e4791aae21a0d5b547a0b833c56a" }, "downloads": -1, "filename": "smartpy-0.1.4.post2.tar.gz", "has_sig": false, "md5_digest": "8e2640ca1d0d29bed5cbb0399a4f8b27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29033, "upload_time": "2018-11-12T16:10:05", "url": "https://files.pythonhosted.org/packages/b9/ea/5dc4753ce94c7295557876488189a2bb4b7c400e067f9255fe2ee3b954c5/smartpy-0.1.4.post2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "850a3aba3c10feefdf1ba54e83e10bfd", "sha256": "20d02de6e9f4c6aa606364784b7fe05b0d7a7fd3e8d45b423b91d00e0dd1191a" }, "downloads": -1, "filename": "smartpy-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "850a3aba3c10feefdf1ba54e83e10bfd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 49216, "upload_time": "2018-11-16T14:50:20", "url": "https://files.pythonhosted.org/packages/75/df/c748b07fb3b8960b2196fc97203b87e1838adbd89f341ee7aafa2e555563/smartpy-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74b74a2a2627f7149ff140ccf41c3d11", "sha256": "d69cce8ef4a166dffd7564b5528d191a09cab84510012190c935d275aade5fe0" }, "downloads": -1, "filename": "smartpy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "74b74a2a2627f7149ff140ccf41c3d11", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49205, "upload_time": "2018-11-16T14:50:22", "url": "https://files.pythonhosted.org/packages/47/b2/a9bd7c9182d0bd0539675e269efc34d35fbf618f1515c5beea8c622367cf/smartpy-0.2.0-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "87e6f4bd4acebf6d69192d2e9f076821", "sha256": "d906a388c328dac406cdde98fdbc0a47a37e5f5d6b8fe870973e7a4fef675760" }, "downloads": -1, "filename": "smartpy-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "87e6f4bd4acebf6d69192d2e9f076821", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 48929, "upload_time": "2019-08-24T15:59:15", "url": "https://files.pythonhosted.org/packages/62/c2/35f91c1c62f2ff6bf4bad77a353e47cca6392b9c1f1352a5b307914d64bc/smartpy-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55da0a1981baf02065250b63a688c8d1", "sha256": "3048985b88ffc49834d7a4c8cc29ae5338455254c4d0e1941d09d68547fafe24" }, "downloads": -1, "filename": "smartpy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "55da0a1981baf02065250b63a688c8d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 48929, "upload_time": "2019-08-24T15:59:17", "url": "https://files.pythonhosted.org/packages/c6/43/9405c0707b6545c7f985b46fba6622d27eb5d5aed34654778b2deda42ae6/smartpy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "688b7eaa65af100f743358047ee1f546", "sha256": "670800ccd3c15c2e93b9cc803113ae7e5bea6c230790ce36fc0f10de63383969" }, "downloads": -1, "filename": "smartpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "688b7eaa65af100f743358047ee1f546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27315, "upload_time": "2019-08-24T15:59:19", "url": "https://files.pythonhosted.org/packages/ac/48/f5813bdd8cd6289b7a0fcda99d6e5734227bff1c9e4bc6fbb58fff2222b5/smartpy-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87e6f4bd4acebf6d69192d2e9f076821", "sha256": "d906a388c328dac406cdde98fdbc0a47a37e5f5d6b8fe870973e7a4fef675760" }, "downloads": -1, "filename": "smartpy-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "87e6f4bd4acebf6d69192d2e9f076821", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 48929, "upload_time": "2019-08-24T15:59:15", "url": "https://files.pythonhosted.org/packages/62/c2/35f91c1c62f2ff6bf4bad77a353e47cca6392b9c1f1352a5b307914d64bc/smartpy-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55da0a1981baf02065250b63a688c8d1", "sha256": "3048985b88ffc49834d7a4c8cc29ae5338455254c4d0e1941d09d68547fafe24" }, "downloads": -1, "filename": "smartpy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "55da0a1981baf02065250b63a688c8d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 48929, "upload_time": "2019-08-24T15:59:17", "url": "https://files.pythonhosted.org/packages/c6/43/9405c0707b6545c7f985b46fba6622d27eb5d5aed34654778b2deda42ae6/smartpy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "688b7eaa65af100f743358047ee1f546", "sha256": "670800ccd3c15c2e93b9cc803113ae7e5bea6c230790ce36fc0f10de63383969" }, "downloads": -1, "filename": "smartpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "688b7eaa65af100f743358047ee1f546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27315, "upload_time": "2019-08-24T15:59:19", "url": "https://files.pythonhosted.org/packages/ac/48/f5813bdd8cd6289b7a0fcda99d6e5734227bff1c9e4bc6fbb58fff2222b5/smartpy-0.2.1.tar.gz" } ] }