{ "info": { "author": "Roland Zimmermann, Luca Thiede", "author_email": "rzrolandzimmermann@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "\n# easyesn\n`easyesn` is a library for recurrent neural networks using echo state networks (`ESN`s, also called `reservoir computing`) with a high level easy to use API that is closely oriented towards `sklearn`. It aims to make the use of `ESN` as easy as possible, by providing algorithms for automatic gradient based hyperparameter tuning (of ridge regression penalty, spectral radius, leaking rate and feedback scaling), as well as transient time estimation. Furtheremore, it incorporates the ability to use spatio temporal `ESN`s for prediction and classification of geometrically extended input signals. \n\n`easyesn` can either use the CPU or make use of the GPU thanks to `cupy`. At the moment the use of the CPU is recommended though!\n\nThis project is based on research results for the gradient based hyperparameter optimization and transient time estimation of Luca Thiede and the spatio temporal prediction and classification techniques of Roland Zimmermann.\n\n# Getting started\n\n## Installation\nThe `easyesn` library is built using `python 3`. You cannot use it in a `python 2.x` environment. The recommended way to install `easyesn` at the moment is via `pip`. Nevertheless, you can also install `easyesn` on your own without `pip`.\n\n### pip\nYou can install `easyesn` via `pip` by executing\n```\npip install easyesn\n``` \nfrom a valid `python 3.x` environment, which will automatically install `easyesn` and its dependencies.\n\n### manually\nTo install the library without `pip`, there are four steps you have to perform: \n1. Go to the `pypi` [page](https://pypi.python.org/pypi/easyesn) of `easyesn` and download the latest version as a `*.tar.gz` archive.\n2. Extract the archive.\n3. Open your command line/terminal and cd into the directory containing the `setup.py`.\n4. Execute `python setup.py install` to start the installation.\n\n## First steps\nAs already mentioned, the API is very similar to the one of sklearn, which makes it as easy as possible for beginners. \nFor every task there is a specialized module, e.g. `ClassificationESN` for the classification of input signals, `PredictionESN` for the prediction or generation (that is a several step ahead prediction by always feeding the previous prediction back in), `RegressionESN` for mapping a signal to a real number, or `SpatioTemporalESN` for the prediction of geometrically extended input signals (for example the electric excitation on the heart surface or video frames).\n\nImport the module typing\n```python\nfrom easyesn import PredictionESN\n```\nNow simply fit the esn using\n```python\nesn.fit(x_train, y_train, transientTime=100, verbose=1)\n```\nand predict by using\n```python\ny_test_pred = esn.predict(x_test, transientTime=100, verbose=1)\n```\n\nFor automatic hyperparamter optimization import\n```python\nfrom easyesn.optimizers import GradientOptimizer\nfrom easyesn.optimizers import GridSearchOptimizer\n```\nNext create a new object\n```python\nesn = PredictionESN(n_input=1, n_output=1, n_reservoir=500, leakingRate=0.2, spectralRadius=0.2, regressionParameters=[1e-2])\n```\nwhith a penalty `1e-2` for the ridge regression. To optimize the hyperparameter also create an optimizer object\n```python\nopt = GradientOptimizer(esn, learningRate=0.001)\n```\nand use it with\n```python\nvalidationLosses, fitLosses, inputScalings, spectralRadiuses, leakingRates, learningRates = opt.optimizeParameterForTrainError(inputDataTraining, outputDataTraining, inputDataValidation, outputDataValidation, epochs=150, transientTime=100)\nvalidationLosses, fitLosses, penalties = opt.optimizePenalty(inputDataTraining, outputDataTraining, inputDataValidation, outputDataValidation, epochs=150, transientTime=100)\n```\nMore extensive examples can be found in the examples directory.\n\n## Backends\nAs already mentioned in the beginning, `easyesn` can be used either on the CPU or on the GPU. To achieve this, all low level calculations are outsourced into a backend (similiar to the backend technology of `keras`). To change the `backend` to another backend named `backendName`, there are currently two ways:\n\n1. Modify the settings file, stored at `~/.easyesn/easyesn.json` to contain to look like this:\n ```json\n {\n \"backend\": \"backendName\"\n }\n ``` \n and use `easyesn` without any further modification inside your code.\n\n2. Set the `EASYESN_BACKEND` environment variable to `backendName` and use `easyesn` without any further modification inside your code.\n\nAt the moment, these are supported backend names:\n\n| backend name | backend type |\n| ------------ |:------------:|\n| `numpy` | `numpy` (CPU)|\n| `np` | `numpy` (CPU)|\n| `cupy` | `cupy` (GPU)|\n| `cp` | `cupy` (GPU)|\n\n# Documentation\n\n# Develop\n\n## Todo\nAt the moment the `easyesn` library covers not only all basic features of reservoir computing but also some new, state of the art methods for its application. Nevertheless, there are still some more things which should be implemented in future versions. In the following, these feature requests and ideas are listed together which their progress:\n\n- Ensemble ESNs (25%)\n- Adding support for deep learning methods as the output method (still open)\n- Improved GPU computing performance (still open)\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/kalekiu/easyesn", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "easyesn", "package_url": "https://pypi.org/project/easyesn/", "platform": "", "project_url": "https://pypi.org/project/easyesn/", "project_urls": { "Homepage": "https://github.com/kalekiu/easyesn" }, "release_url": "https://pypi.org/project/easyesn/0.1.5.5/", "requires_dist": [ "dill", "multiprocess", "numpy", "progressbar2", "sklearn" ], "requires_python": ">=3.6.0", "summary": "Python library for Reservoir Computing using Echo State Networks", "version": "0.1.5.5" }, "last_serial": 4405299, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "988a0153d8082949763f4f9fae4aac42", "sha256": "4eee51534f3cc3a3009fe37038062de1b4b9b04b4ad3f8a8d8bd1b99b5d46aa6" }, "downloads": -1, "filename": "easyesn-0.1.1.tar.gz", "has_sig": false, "md5_digest": "988a0153d8082949763f4f9fae4aac42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16037, "upload_time": "2017-12-07T14:40:31", "url": "https://files.pythonhosted.org/packages/f7/a6/7a59714c2c4ee57e797ecd27cedc4ce3643e6731beeef4fb0a4c335f5506/easyesn-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f150c059a577cb05b198db122891c3e6", "sha256": "c23214a01cf0b6d3d501eb7c341ede78573a343f2848b39263154862329dbc7b" }, "downloads": -1, "filename": "easyesn-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f150c059a577cb05b198db122891c3e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22285, "upload_time": "2017-12-07T21:54:47", "url": "https://files.pythonhosted.org/packages/16/08/d8f2a187c56b6284dfe2e42eb5502987d469fee3ced303f63cafeb35d59c/easyesn-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5536975bab348077faec784224634c05", "sha256": "94a4b63545a7711f3a768977614a787e8aac0ea2280d73080d8ece8591ce3f05" }, "downloads": -1, "filename": "easyesn-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5536975bab348077faec784224634c05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24967, "upload_time": "2018-02-05T19:48:49", "url": "https://files.pythonhosted.org/packages/38/fa/26e6f157e43e6e7f71600f66749280e55e38befc3bb4537bf376de727d36/easyesn-0.1.3.tar.gz" } ], "0.1.3.1": [ { "comment_text": "", "digests": { "md5": "958df4f610ff540d9f01b481c823c296", "sha256": "1ad8e037ef7c2988028e1fef3643f441dda3760a1d01475ab2f379984b5daf29" }, "downloads": -1, "filename": "easyesn-0.1.3.1.tar.gz", "has_sig": false, "md5_digest": "958df4f610ff540d9f01b481c823c296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25279, "upload_time": "2018-02-06T22:05:48", "url": "https://files.pythonhosted.org/packages/75/e5/f8e836836a7f1e69d1a706fc591a00c71f35b54c48864e3c50c71d640c07/easyesn-0.1.3.1.tar.gz" } ], "0.1.3.2": [ { "comment_text": "", "digests": { "md5": "a6ba6bb9b2000345fc5eb3fe6dabf6b6", "sha256": "f0a36003affc5410b10adba781d4ed7ea07aacd2a6bb9d003919f96a9b8cb151" }, "downloads": -1, "filename": "easyesn-0.1.3.2.tar.gz", "has_sig": false, "md5_digest": "a6ba6bb9b2000345fc5eb3fe6dabf6b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25319, "upload_time": "2018-02-06T22:41:50", "url": "https://files.pythonhosted.org/packages/b8/c3/97e2983775d0612be004073bb467d4b1b0a6cbb3508f8868c1e68d3fd8f3/easyesn-0.1.3.2.tar.gz" } ], "0.1.3.3": [ { "comment_text": "", "digests": { "md5": "5e97f9a98c1af51a658079b4f101e1b2", "sha256": "3ebec1ecc872140b3028285b811929d392ce49014a17541d3335099c565cc782" }, "downloads": -1, "filename": "easyesn-0.1.3.3.tar.gz", "has_sig": false, "md5_digest": "5e97f9a98c1af51a658079b4f101e1b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25271, "upload_time": "2018-02-06T22:50:56", "url": "https://files.pythonhosted.org/packages/34/b7/106f0fc70e3a58b36bcefc65d668edfe8182bd63579eb5078082866f7e8f/easyesn-0.1.3.3.tar.gz" } ], "0.1.3.4": [ { "comment_text": "", "digests": { "md5": "502e70a859805b2ce53504ea6a104eae", "sha256": "a5383d5ff680e2ab75459e4f6222793608e84442a56b685e60088ce0726a4e16" }, "downloads": -1, "filename": "easyesn-0.1.3.4.tar.gz", "has_sig": false, "md5_digest": "502e70a859805b2ce53504ea6a104eae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25272, "upload_time": "2018-02-17T14:59:46", "url": "https://files.pythonhosted.org/packages/de/d0/3b828bdf65084cf408d47cd351f01c33d1e9e7cac58cceabb31285a3d471/easyesn-0.1.3.4.tar.gz" } ], "0.1.3.5": [ { "comment_text": "", "digests": { "md5": "d140bb5a45f2c3b7b4d32ec1713a3ecc", "sha256": "4aac86808037a406dd8d23ca0d7156e679f7b050ededd44caa8dc7e37d245d30" }, "downloads": -1, "filename": "easyesn-0.1.3.5.tar.gz", "has_sig": false, "md5_digest": "d140bb5a45f2c3b7b4d32ec1713a3ecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25511, "upload_time": "2018-02-19T19:03:58", "url": "https://files.pythonhosted.org/packages/0e/e1/9e1129ee183da10f1ff2e4f7d9b4e8c198d20d08d2ec988d379f8dd643fd/easyesn-0.1.3.5.tar.gz" } ], "0.1.3.6": [ { "comment_text": "", "digests": { "md5": "db73e20ad2cc650d2fd10fc47084b3b4", "sha256": "cb16844e86188461ca7ea9940ec8ac3e9a25fb80ecba1b4e24ab1ccaf7903699" }, "downloads": -1, "filename": "easyesn-0.1.3.6.tar.gz", "has_sig": false, "md5_digest": "db73e20ad2cc650d2fd10fc47084b3b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25540, "upload_time": "2018-03-18T15:55:31", "url": "https://files.pythonhosted.org/packages/37/7a/b1320574afd04306a99e53b4d124cd4514132f5c620934db5df156332b76/easyesn-0.1.3.6.tar.gz" } ], "0.1.3.7": [ { "comment_text": "", "digests": { "md5": "f92b52b61cdf00db3cb73a756de4da5e", "sha256": "5fb69fa12a03e2648d19ab7f568b83d39fb2eab13907a0b3de998fa6dbf1f69c" }, "downloads": -1, "filename": "easyesn-0.1.3.7.tar.gz", "has_sig": false, "md5_digest": "f92b52b61cdf00db3cb73a756de4da5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25522, "upload_time": "2018-03-18T19:15:07", "url": "https://files.pythonhosted.org/packages/b7/e2/4636e7c91ad9b413a711ae4d8fecc261d5cc9fd6563d8babd179b8feb3ad/easyesn-0.1.3.7.tar.gz" } ], "0.1.3.8": [ { "comment_text": "", "digests": { "md5": "78f352b21a03d230c851dcd1947204cd", "sha256": "4d5602346c7cf827c53344660223b86a67ef323d2c0c5014aa49f32cf1b0816d" }, "downloads": -1, "filename": "easyesn-0.1.3.8.tar.gz", "has_sig": false, "md5_digest": "78f352b21a03d230c851dcd1947204cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25525, "upload_time": "2018-03-18T19:17:31", "url": "https://files.pythonhosted.org/packages/26/e1/8365ca5451d1eb80f5a887ae079e4c1a930fbf064686e5d2418c1b79b2d3/easyesn-0.1.3.8.tar.gz" } ], "0.1.3.9": [ { "comment_text": "", "digests": { "md5": "46fd4bd5532b006dd06fb54d00de0379", "sha256": "d20387e03c95067ccc3c2c40fc7437385f2f8a7c7c64fb5f3411bec037351da0" }, "downloads": -1, "filename": "easyesn-0.1.3.9.tar.gz", "has_sig": false, "md5_digest": "46fd4bd5532b006dd06fb54d00de0379", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25524, "upload_time": "2018-03-18T19:40:10", "url": "https://files.pythonhosted.org/packages/4f/1f/44bf846e0963861dbfbbe4be3da72a760363c7a78f42b5c6f97a70010fdd/easyesn-0.1.3.9.tar.gz" } ], "0.1.4.0": [ { "comment_text": "", "digests": { "md5": "f397713bbf4bdbf5dc66945d37839637", "sha256": "dcdce8f04fe6eae2150d624921fa3da4565b494f0a68c949fb9a845abf975e12" }, "downloads": -1, "filename": "easyesn-0.1.4.0.tar.gz", "has_sig": false, "md5_digest": "f397713bbf4bdbf5dc66945d37839637", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25938, "upload_time": "2018-03-20T22:40:37", "url": "https://files.pythonhosted.org/packages/c8/81/ef62e7414dfc4c560b94b006955117e43237665d0c4e71e629aca0a7e314/easyesn-0.1.4.0.tar.gz" } ], "0.1.4.1": [ { "comment_text": "", "digests": { "md5": "f9a347647af77338b4b0772bb46a84f6", "sha256": "18353e12da4057c5265f20aa4b5b2fa9205e3aa0f3e3aa34bf5db45ec8d1f68d" }, "downloads": -1, "filename": "easyesn-0.1.4.1.tar.gz", "has_sig": false, "md5_digest": "f9a347647af77338b4b0772bb46a84f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26675, "upload_time": "2018-04-03T19:03:53", "url": "https://files.pythonhosted.org/packages/89/88/9d56801426ff01e484c7580b7af51b7db28047ebbc53cdda4e6659250c7b/easyesn-0.1.4.1.tar.gz" } ], "0.1.4.2": [ { "comment_text": "", "digests": { "md5": "ece649967664d3b898df32462c512218", "sha256": "21b0910f6d3c43514ccb0737178a5b6ebdd05289e39f7d60e8a2d043b2cdc03c" }, "downloads": -1, "filename": "easyesn-0.1.4.2.tar.gz", "has_sig": false, "md5_digest": "ece649967664d3b898df32462c512218", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26827, "upload_time": "2018-04-04T21:02:16", "url": "https://files.pythonhosted.org/packages/25/4f/ad3ae8e46d947864024a414a1046a593b2dd53f269f3a730d11fa9c2d901/easyesn-0.1.4.2.tar.gz" } ], "0.1.4.3": [ { "comment_text": "", "digests": { "md5": "891907baaf9071134de22ca5a96d7e07", "sha256": "91f535bf5ae9de8d259ac5dde7a952925fff04166fdc98038f1b055b747b0d71" }, "downloads": -1, "filename": "easyesn-0.1.4.3.tar.gz", "has_sig": false, "md5_digest": "891907baaf9071134de22ca5a96d7e07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27024, "upload_time": "2018-04-07T18:45:43", "url": "https://files.pythonhosted.org/packages/50/6c/27f4c7671674ab9b240386aede828af361641920b5e46e81908d452aaff8/easyesn-0.1.4.3.tar.gz" } ], "0.1.4.4": [ { "comment_text": "", "digests": { "md5": "abae4aa5a319adc882df421b28b7fb00", "sha256": "098f4d482fec8f62da5b12eecdf6ff501ab5c3039b7ec513cc0663545baeb1a0" }, "downloads": -1, "filename": "easyesn-0.1.4.4.tar.gz", "has_sig": false, "md5_digest": "abae4aa5a319adc882df421b28b7fb00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27006, "upload_time": "2018-04-07T18:52:32", "url": "https://files.pythonhosted.org/packages/6e/bd/3ced6ecaf1c08bc66f4e752e9e8efe71bbc18c089d4048f54f7dea831c37/easyesn-0.1.4.4.tar.gz" } ], "0.1.4.5": [ { "comment_text": "", "digests": { "md5": "b43e85f88d23af38fed5d9661e5086d4", "sha256": "1685cdd5fd056c9a76fbd955a813cfc1730aa36a6c581e266ca7e3886a912e63" }, "downloads": -1, "filename": "easyesn-0.1.4.5.tar.gz", "has_sig": false, "md5_digest": "b43e85f88d23af38fed5d9661e5086d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27004, "upload_time": "2018-04-07T19:12:24", "url": "https://files.pythonhosted.org/packages/63/2e/23faba292aeefaa76586bfa730a8fb9f4388759d44f741e195dbcc7cf061/easyesn-0.1.4.5.tar.gz" } ], "0.1.5.0": [ { "comment_text": "", "digests": { "md5": "db0ba3b2564f1f7a31232c98630ff164", "sha256": "f84adbf483a9f59ed6e3dc0ec5bdba00075a09da48dadfe9c50fe459ce320d40" }, "downloads": -1, "filename": "easyesn-0.1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db0ba3b2564f1f7a31232c98630ff164", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 38204, "upload_time": "2018-10-19T09:23:37", "url": "https://files.pythonhosted.org/packages/fa/40/26125e96b870e87a30c51eb5ba70d9931b43ed92b24c23a6d514e9bc658f/easyesn-0.1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "422d3b4fbe454891efd4a2ac1c6c891a", "sha256": "6e04754f2acb20aaba8d697ed413d8dd5bc3f2e4512f8ed33cb751679c5ab389" }, "downloads": -1, "filename": "easyesn-0.1.5.0.tar.gz", "has_sig": false, "md5_digest": "422d3b4fbe454891efd4a2ac1c6c891a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 30560, "upload_time": "2018-10-19T09:23:39", "url": "https://files.pythonhosted.org/packages/c9/ba/3e75a0045f4c2e69935f9a3ab6d77db8a0e71ca76150934ac8c8b517078d/easyesn-0.1.5.0.tar.gz" } ], "0.1.5.1": [ { "comment_text": "", "digests": { "md5": "691fd1722c82e6796d9b83584e36307b", "sha256": "dd23e4e6f80718b08c22633bef2193892712baeebba951813e6372e32736c180" }, "downloads": -1, "filename": "easyesn-0.1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "691fd1722c82e6796d9b83584e36307b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 41336, "upload_time": "2018-10-23T07:44:32", "url": "https://files.pythonhosted.org/packages/c1/19/6c9718e53ba1515cfe1918d2c850fd0f3da57320b81492fd1213402d9a12/easyesn-0.1.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb1dcb072c8cbf84f3f58fd7c8a56bc2", "sha256": "1bf8d39b0cb8a36e30c8b9ae3ea3f475d285ca957036a10f98988e785779f7ce" }, "downloads": -1, "filename": "easyesn-0.1.5.1.tar.gz", "has_sig": false, "md5_digest": "fb1dcb072c8cbf84f3f58fd7c8a56bc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 30632, "upload_time": "2018-10-23T07:44:33", "url": "https://files.pythonhosted.org/packages/4d/fe/386cf8f0e57a9cd2441ba4825d05dc9fce337d200ea491252d86a7524d49/easyesn-0.1.5.1.tar.gz" } ], "0.1.5.5": [ { "comment_text": "", "digests": { "md5": "0d6f4e6029d5791021d5a7e05f3dcffe", "sha256": "bf46af32138f53b262dc21d13b718e615509ea312891d6a0a9d4f571c17da625" }, "downloads": -1, "filename": "easyesn-0.1.5.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0d6f4e6029d5791021d5a7e05f3dcffe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 41335, "upload_time": "2018-10-23T07:45:28", "url": "https://files.pythonhosted.org/packages/f7/8a/93537b3987e3062967ce468099587e71ddf432963d67f1d9b71e2741139a/easyesn-0.1.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99543603b6ce9ed152b416ff7c4302fd", "sha256": "1fc9887ca465c19860bf76cccdc6a8ce91e11de0cfcdb1ac0d4dfd5f0e175d92" }, "downloads": -1, "filename": "easyesn-0.1.5.5.tar.gz", "has_sig": false, "md5_digest": "99543603b6ce9ed152b416ff7c4302fd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 30629, "upload_time": "2018-10-23T07:45:30", "url": "https://files.pythonhosted.org/packages/7f/35/0fb76bdeeff2633b8b4554340d7dba72efe9a906eb640cabba7cbb62a1c2/easyesn-0.1.5.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0d6f4e6029d5791021d5a7e05f3dcffe", "sha256": "bf46af32138f53b262dc21d13b718e615509ea312891d6a0a9d4f571c17da625" }, "downloads": -1, "filename": "easyesn-0.1.5.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0d6f4e6029d5791021d5a7e05f3dcffe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 41335, "upload_time": "2018-10-23T07:45:28", "url": "https://files.pythonhosted.org/packages/f7/8a/93537b3987e3062967ce468099587e71ddf432963d67f1d9b71e2741139a/easyesn-0.1.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99543603b6ce9ed152b416ff7c4302fd", "sha256": "1fc9887ca465c19860bf76cccdc6a8ce91e11de0cfcdb1ac0d4dfd5f0e175d92" }, "downloads": -1, "filename": "easyesn-0.1.5.5.tar.gz", "has_sig": false, "md5_digest": "99543603b6ce9ed152b416ff7c4302fd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 30629, "upload_time": "2018-10-23T07:45:30", "url": "https://files.pythonhosted.org/packages/7f/35/0fb76bdeeff2633b8b4554340d7dba72efe9a906eb640cabba7cbb62a1c2/easyesn-0.1.5.5.tar.gz" } ] }