{ "info": { "author": "Kevin Greenan", "author_email": "kmgreen2@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "PyEClib\n-------\n\nThis library provides a simple Python interface for implementing erasure codes\nand is known to work with Python v2.6, 2.7 and 3.x. To obtain the best possible\nperformance, the library utilizes liberasurecode, which is a C based erasure\ncode library.\n\nPyECLib supports a variety of Erasure Coding backends including the standard\nReed-Solomon implementations provided by Jerasure [1], liberasurecode [3],\nIntel's ISA-L [4] and Phazr.IO's libphazr. It also provides support for a flat\nXOR-based encoder and decoder (part of liberasurecode) - a class of HD\nCombination Codes based on \"Flat XOR-based erasure codes in storage systems:\nConstructions, efficient recovery, and tradeoffs\" in IEEE MSST 2010[2]).\nThese codes are well-suited to archival use-cases, have a simple construction\nand require a minimum number of participating disks during single-disk\nreconstruction (think XOR-based LRC code).\n\n-----\n\nInstallation\n============\n\nInstall pre-requisites:\n\n* Python 2.6, 2.7 or 3.x (including development packages), argparse, setuptools\n* liberasurecode v1.3.1 or greater [3]\n* Erasure code backend libraries, gf-complete and Jerasure [1],[2], ISA-L [4], etc\n\nInstall dependencies:\n\nDebian/Ubuntu hosts::\n\n $ sudo apt-get install build-essential python-dev python-pip liberasurecode-dev\n $ sudo pip install -U bindep -r test-requirements.txt\n\nRHEL/CentOS hosts::\n \n $ sudo yum install -y redhat-lsb python2-pip python-devel liberasurecode-devel\n $ sudo pip install -U bindep -r test-requirements.txt\n $ tools/test-setup.sh\n\nIf you want to confirm all dependency packages installed successfully, try::\n\n $ sudo bindep -f bindep.txt\n\n*Note*: Currently, for Ubuntu, liberasurecode-dev in package repo is older than v1.2.0.\nFor CentOS, make sure to install the latest Openstack Cloud SIG repo\nto be able to install the latest available version of liberasurecode-devel.\n\nInstall PyECLib::\n\n $ sudo python setup.py install\n\nRun test suite included::\n\n $ ./.unittests\n\nIf the test suite fails because it cannot find any of the shared libraries,\nthen you probably need to add /usr/local/lib to the path searched when loading\nlibraries. The best way to do this (on Linux) is to add '/usr/local/lib' to::\n\n /etc/ld.so.conf\n\nand then make sure to run::\n\n $ sudo ldconfig\n\n-----\n\nGetting started\n===============\n\nExamples of using PyECLib are provided in the \"tools\" directory:\n\nCommand-line encoder::\n\n tools/pyeclib_encode.py\n\nCommand-line decoder::\n\n tools/pyeclib_decode.py\n\nUtility to determine what is needed to reconstruct missing fragments::\n\n tools/pyeclib_fragments_needed.py\n\nA configuration utility to help compare available EC schemes in terms of\nperformance and redundancy::\n\n tools/pyeclib_conf_tool.py\n\nPyEClib initialization::\n\n ec_driver = ECDriver(k=,\n m=,\n ec_type=))\n\nSupported ``ec_type`` values:\n\n* ``liberasurecode_rs_vand`` => Vandermonde Reed-Solomon encoding, software-only backend implemented by liberasurecode [3]\n* ``jerasure_rs_vand`` => Vandermonde Reed-Solomon encoding, based on Jerasure [1]\n* ``jerasure_rs_cauchy`` => Cauchy Reed-Solomon encoding (Jerasure variant), based on Jerasure [1]\n* ``flat_xor_hd_3``, ``flat_xor_hd_4`` => Flat-XOR based HD combination codes, liberasurecode [3]\n* ``isa_l_rs_vand`` => Intel Storage Acceleration Library (ISA-L) - SIMD accelerated Erasure Coding backends [4]\n* ``isa_l_rs_cauchy`` => Cauchy Reed-Solomon encoding (ISA-L variant) [4]\n* ``shss`` => NTT Lab Japan's Erasure Coding Library [5]\n* ``libphazr`` => Phazr.IO's erasure code library with built-in privacy [6]\n\n-----\n\nCode Maintenance\n================\n\nThis library is currently mainly maintained by the Openstack Swift community.\nFor questions or any other help, come ask in #openstack-swift on freenode.\n\n-----\n\nReferences\n==========\n\n[1] Jerasure, C library that supports erasure coding in storage applications, http://jerasure.org\n\n[2] Greenan, Kevin M et al, \"Flat XOR-based erasure codes in storage systems\", http://www.kaymgee.com/Kevin_Greenan/Publications_files/greenan-msst10.pdf\n\n[3] liberasurecode, C API abstraction layer for erasure coding backends, https://github.com/openstack/liberasurecode\n\n[4] Intel(R) Storage Acceleration Library (Open Source Version), https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version\n\n[5] Kota Tsuyuzaki , \"NTT SHSS Erasure Coding backend\"\n\n[6] Jim Cheung , \"Phazr.IO libphazr erasure code backend with built-in privacy\"", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://git.openstack.org/cgit/openstack/pyeclib/", "keywords": "", "license": "BSD", "maintainer": "Kevin Greenan and Tushar Gohad", "maintainer_email": "kmgreen2@gmail.com, tusharsg@gmail.com", "name": "pyeclib", "package_url": "https://pypi.org/project/pyeclib/", "platform": "Linux", "project_url": "https://pypi.org/project/pyeclib/", "project_urls": { "Homepage": "http://git.openstack.org/cgit/openstack/pyeclib/" }, "release_url": "https://pypi.org/project/pyeclib/1.6.0/", "requires_dist": null, "requires_python": "", "summary": "This library provides a simple Python interface for implementing erasure codes. To obtain the best possible performance, the underlying erasure code algorithms are written in C.", "version": "1.6.0" }, "last_serial": 5081293, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "ed6cd88f2654b487e6dcb7c4533c7175", "sha256": "a78206822a07a55da457fa70987123dc7ad96ae6f21abdd9f0b318a8cd797507" }, "downloads": -1, "filename": "PyECLib-0.1.10.tar.gz", "has_sig": false, "md5_digest": "ed6cd88f2654b487e6dcb7c4533c7175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7023543, "upload_time": "2013-10-19T16:23:30", "url": "https://files.pythonhosted.org/packages/4a/3f/8e5c2f219a8c7a896164f3bbd64008b46d410be46ad37284ae185db327b4/PyECLib-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "c3feba2ffe05949d95ba2e501eeab2bc", "sha256": "e6b6f1e5679a1758d984bd7005dce9b640f54e7c153e8b79b009434a3140351b" }, "downloads": -1, "filename": "PyECLib-0.1.11.tar.gz", "has_sig": false, "md5_digest": "c3feba2ffe05949d95ba2e501eeab2bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7702879, "upload_time": "2013-10-20T21:03:00", "url": "https://files.pythonhosted.org/packages/54/0d/3dcd54d837847e5ab2241ab4f06d9a57329cccdc6e1cb68a0e9dd51c1ef7/PyECLib-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "fb629de31b3edc12007a14408311de4e", "sha256": "910e1abb44ba3d159046257aab60fcc0342301812b80d3761e72474e11ab1883" }, "downloads": -1, "filename": "PyECLib-0.1.12.tar.gz", "has_sig": false, "md5_digest": "fb629de31b3edc12007a14408311de4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9256882, "upload_time": "2013-12-19T20:59:02", "url": "https://files.pythonhosted.org/packages/c3/f0/48e8889fb577de4b971631829dc5bc4080e8316cb5d28754949a397a9935/PyECLib-0.1.12.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "558dfa0c3a4df136828b1085b7301ce9", "sha256": "1e74fc49d86eef843d4293e0be688d87f225c3d78b4320f95d9ffca91137479c" }, "downloads": -1, "filename": "PyECLib-0.1.14.tar.gz", "has_sig": false, "md5_digest": "558dfa0c3a4df136828b1085b7301ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7693550, "upload_time": "2013-12-19T21:13:41", "url": "https://files.pythonhosted.org/packages/b4/2d/16c2d7f561af2c0c8d7ba7941652f584f787c2bb606fec1514ef61349139/PyECLib-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "f288cd9e65117cd3b7119ba192c9e190", "sha256": "7789d53ec2764a3681e28ae09eafdce4b8670dec2bbc694320215ec372688166" }, "downloads": -1, "filename": "PyECLib-0.1.15.tar.gz", "has_sig": false, "md5_digest": "f288cd9e65117cd3b7119ba192c9e190", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9656381, "upload_time": "2014-01-12T02:45:53", "url": "https://files.pythonhosted.org/packages/fd/4d/152e761e7a383e577b543043fab8a53565cbafe950c7da6847629a67747a/PyECLib-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "2c1506abe1518933efbbf94ddf93fe44", "sha256": "85f6790d64a1793022dceef96f9b2c2e8c265bcca2d0d777a73e2f13c83831e1" }, "downloads": -1, "filename": "PyECLib-0.1.16.tar.gz", "has_sig": false, "md5_digest": "2c1506abe1518933efbbf94ddf93fe44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7695329, "upload_time": "2014-01-12T03:01:17", "url": "https://files.pythonhosted.org/packages/30/fc/aff209e4cc1092ddc88917fcc8e34183121cb20c50bd559adeb85e1f5118/PyECLib-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "ff3648212116649b7634f322d4bb04b6", "sha256": "0625b8eef6727e3d32b64cb6713ba64dd67303a3e104ec3b70a5c11c4f31fe7d" }, "downloads": -1, "filename": "PyECLib-0.1.17.tar.gz", "has_sig": false, "md5_digest": "ff3648212116649b7634f322d4bb04b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7695358, "upload_time": "2014-01-12T03:03:27", "url": "https://files.pythonhosted.org/packages/36/7d/390cf32848ed5318fbfea6b6df82bd7b7a6f55113ce8486351703b2da1f2/PyECLib-0.1.17.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "442d9b64db946b11b3448189f9d95ad5", "sha256": "83c73e866f93e92eb786c3ae6ecb5ae20aa6080d229abcc9db5b43d4b31d2835" }, "downloads": -1, "filename": "PyECLib-0.2.0.tar.gz", "has_sig": false, "md5_digest": "442d9b64db946b11b3448189f9d95ad5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7002148, "upload_time": "2014-02-24T23:14:41", "url": "https://files.pythonhosted.org/packages/16/6d/bb7df40f6255f263ee2a1ef62f4ce8a5f240121d8480697816b3120a715f/PyECLib-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "81d2d3623ce92ab0d1f80a11a30facaf", "sha256": "2f4904b9b223b7d04792afbfccc8d11181380a0bb8d3a6bedaa1d9e52f19cfb2" }, "downloads": -1, "filename": "PyECLib-0.2.1.tar.gz", "has_sig": false, "md5_digest": "81d2d3623ce92ab0d1f80a11a30facaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7002186, "upload_time": "2014-02-24T23:39:35", "url": "https://files.pythonhosted.org/packages/5d/9f/f9f69cc80255960494d2da7dc05ce533a209a565ac29b18e767c5641902e/PyECLib-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a4c5714dd00885a1d0c4b47b6766e239", "sha256": "47676edcc6f1f6e4e8dbd7041a0232a2dd2a72e895bd198a173f5ed1f367b7a6" }, "downloads": -1, "filename": "PyECLib-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a4c5714dd00885a1d0c4b47b6766e239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7005602, "upload_time": "2014-03-03T05:24:28", "url": "https://files.pythonhosted.org/packages/3e/ae/7f73ae3b8e4d79096bdf384b628b20f308630e20fd0e77b1feca8828f0fe/PyECLib-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "3789ed5ad83b0a53db4330cb2639e949", "sha256": "30656920f7743d02211f00d3a9269ea80b115df6f2fb3821cc51821a8be4c44e" }, "downloads": -1, "filename": "PyECLib-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3789ed5ad83b0a53db4330cb2639e949", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7006450, "upload_time": "2014-03-07T05:21:39", "url": "https://files.pythonhosted.org/packages/6a/af/d0120f91880a7d6136de97bbc97a819026e3ec5f44d389eba29d3610578b/PyECLib-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "8bb1dc1ad7d631044f14eabb7efb4846", "sha256": "a797c1118d58d68cc1f9e58cb9725972c642a2d56f536a5b2b5f1147df7b2ba5" }, "downloads": -1, "filename": "PyECLib-0.2.4.tar.gz", "has_sig": false, "md5_digest": "8bb1dc1ad7d631044f14eabb7efb4846", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7008031, "upload_time": "2014-03-09T18:45:34", "url": "https://files.pythonhosted.org/packages/4c/e5/cfe5461788da9f03df14f12a86fc38e7e4eb74be027ef0a83df7a5300a80/PyECLib-0.2.4.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "ca996dfc964b85220c20cfd2872ff3ea", "sha256": "1dafd051b0e0ba8e7354a2f7dfcc6f6da223da8d484c4aa013b78af50e22dfff" }, "downloads": -1, "filename": "PyECLib-0.9.1.tar.gz", "has_sig": false, "md5_digest": "ca996dfc964b85220c20cfd2872ff3ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7034658, "upload_time": "2014-04-21T06:09:06", "url": "https://files.pythonhosted.org/packages/c3/a4/8123b4fb81a141a1d1bfb705ae5b4755efcefa87b6616a5c4237b00efb31/PyECLib-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "c705ac227d07a2f10b23e5c148db617c", "sha256": "77b04200dbfb84e38697c90a3441282d49abc50f6bab5c7bcc142d3cd5a262ca" }, "downloads": -1, "filename": "PyECLib-0.9.2.tar.gz", "has_sig": false, "md5_digest": "c705ac227d07a2f10b23e5c148db617c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7034557, "upload_time": "2014-04-22T04:13:37", "url": "https://files.pythonhosted.org/packages/a6/b3/20d5bd0f40bf70006ab81bf16d4ecd49aac00b1cce3828d7cce62f709af6/PyECLib-0.9.2.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "03a01336baa042c8133964810163e94a", "sha256": "6dff67f2c21d11501a093e360dfbc10b8e217d7a78354d5926096e97f7597891" }, "downloads": -1, "filename": "PyECLib-0.9.4.tar.gz", "has_sig": false, "md5_digest": "03a01336baa042c8133964810163e94a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7059478, "upload_time": "2014-07-10T01:00:33", "url": "https://files.pythonhosted.org/packages/98/99/46e5a67c7abb5e1291b42a379886beb10884f8ee14d47e41cf6835d076bb/PyECLib-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "7e468ab76f4c3ce34394b01af705f659", "sha256": "2c80166871a243448b445c6e98a5ae0a38bef6b9d5d2faa74f69a8b992a03246" }, "downloads": -1, "filename": "PyECLib-0.9.5.tar.gz", "has_sig": false, "md5_digest": "7e468ab76f4c3ce34394b01af705f659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13135360, "upload_time": "2014-08-05T19:00:37", "url": "https://files.pythonhosted.org/packages/e7/20/43b4488b0fe40e68598ac1398efc8cfbba4ad4afcf65fc436eca2bc89529/PyECLib-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "f631649ac6e4433a8df925efd4013903", "sha256": "dfd7ce9a0d947a111cb22212b784889eb7734cb1064393b95ce8e841332dbaaa" }, "downloads": -1, "filename": "PyECLib-0.9.6.tar.gz", "has_sig": false, "md5_digest": "f631649ac6e4433a8df925efd4013903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13137473, "upload_time": "2014-08-05T21:40:49", "url": "https://files.pythonhosted.org/packages/df/24/7a3931b5e3939f7a8c6da507552b0c2e98d700111bc88f3f584b263372b9/PyECLib-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "29d9a1d4ee88462fb11ee984df4db432", "sha256": "c186138aa202ae5253a1e2f63223e5abff9c960bb01f644fab4559451329044a" }, "downloads": -1, "filename": "PyECLib-0.9.7.tar.gz", "has_sig": false, "md5_digest": "29d9a1d4ee88462fb11ee984df4db432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7082035, "upload_time": "2014-08-05T22:03:07", "url": "https://files.pythonhosted.org/packages/db/a4/55a9a151d0635d5cd9205d97f348117def05f8e51447cc4ab596e5b51112/PyECLib-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "22df309b39f8efb5df38f29d7f66905f", "sha256": "753459d60e3feefc1f95620f6d85bf34886535b2261b521ecfbe0605ca7a3af0" }, "downloads": -1, "filename": "PyECLib-0.9.8.tar.gz", "has_sig": false, "md5_digest": "22df309b39f8efb5df38f29d7f66905f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7082051, "upload_time": "2014-08-06T00:39:38", "url": "https://files.pythonhosted.org/packages/09/61/938055deb711082645e970c63bddc73cad0c450405f6896a942b54030795/PyECLib-0.9.8.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "81fc1ae82c211522008373d9ad40b367", "sha256": "bb1761005f9590018b5be1a0ca36e00cc9b3a7f7fba0f345d4ae428ec1ea4351" }, "downloads": -1, "filename": "PyECLib-1.0.1.tar.gz", "has_sig": false, "md5_digest": "81fc1ae82c211522008373d9ad40b367", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8438240, "upload_time": "2015-03-11T19:59:12", "url": "https://files.pythonhosted.org/packages/f8/28/85623770b756fd29d6ca8d7ef56be678b86d52576da236909fc5e5739443/PyECLib-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "05d55aa7fcdca5418a58c180979862b0", "sha256": "dc59dc35f356f342b0e65e38b234ddc329c3b8845032fb39069041a3217e5f86" }, "downloads": -1, "filename": "PyECLib-1.0.2.tar.gz", "has_sig": false, "md5_digest": "05d55aa7fcdca5418a58c180979862b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8438230, "upload_time": "2015-03-11T20:38:36", "url": "https://files.pythonhosted.org/packages/35/3b/008698b6c8cce9fbbc728ee782b2966519839b6eae75b05fbfaa6d10c611/PyECLib-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "011291f48d58c01ada29698de70acb8e", "sha256": "175466e7ddc882fc282cb6b12e976e7a12d742237fc9482452bae0064c3bac05" }, "downloads": -1, "filename": "PyECLib-1.0.3.tar.gz", "has_sig": false, "md5_digest": "011291f48d58c01ada29698de70acb8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8438254, "upload_time": "2015-03-11T22:56:54", "url": "https://files.pythonhosted.org/packages/e2/89/d48fbda51744746a4f451b9c8fac5f9c5b3b1d51531edf8b441103f782b7/PyECLib-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "9886dd9a4b3d66fa40a642945fd70077", "sha256": "1ad467eea07f445cd9b47c85d524a31f09b136e766f4eaa6d0366542d3a5dc4a" }, "downloads": -1, "filename": "PyECLib-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9886dd9a4b3d66fa40a642945fd70077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8386746, "upload_time": "2015-03-13T08:04:34", "url": "https://files.pythonhosted.org/packages/5a/91/7de4d95cf9a4ed3856e11340aa21330f10df272cf89e0d51ae4b6acbfa2d/PyECLib-1.0.4.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "f0aa443e535b1ad7556f8dbab889cb84", "sha256": "ef64bc6ee58f4da6dc95cd6a547116eb83d0d057bd404f5a4f194b44325debcf" }, "downloads": -1, "filename": "PyECLib-1.0.6.tar.gz", "has_sig": false, "md5_digest": "f0aa443e535b1ad7556f8dbab889cb84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8375294, "upload_time": "2015-03-29T20:18:53", "url": "https://files.pythonhosted.org/packages/a4/c4/73d7e9174608fb4d9aedb7d916fbb7290a9384fda103481696081eeac6c7/PyECLib-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "33eec243995d7ebf32e9ef5ea74966cb", "sha256": "f2136f187900fe3b84c75fea671c9bcb3d4d4a6307e44d9f960ed8296ce52dc3" }, "downloads": -1, "filename": "PyECLib-1.0.7.tar.gz", "has_sig": false, "md5_digest": "33eec243995d7ebf32e9ef5ea74966cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8376329, "upload_time": "2015-04-15T23:14:18", "url": "https://files.pythonhosted.org/packages/d1/a3/be869342883d51ffb5602e45c14567b8f85d39f6b485be51355dd0d86523/PyECLib-1.0.7.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "05dc61eb10664481c5d10ec1c3bd392f", "sha256": "cb9406ef98d8104656a4b8493715274d6393e49d539ebd460e98c895f27dd7f3" }, "downloads": -1, "filename": "PyECLib-1.0.9.tar.gz", "has_sig": false, "md5_digest": "05dc61eb10664481c5d10ec1c3bd392f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7161937, "upload_time": "2015-09-10T06:41:08", "url": "https://files.pythonhosted.org/packages/6f/72/2f88b7c2f970cf6c4ceef8ddba9319b1afc83af6fe6651a4fd56b262cae1/PyECLib-1.0.9.tar.gz" } ], "1.0c1": [ { "comment_text": "", "digests": { "md5": "9645ab64aac0b0c1536c867fddefa370", "sha256": "cb465076b49bfcfa142546cd5715ea66347330a86b978f1946486beedab3e9ad" }, "downloads": -1, "filename": "PyECLib-1.0c1.tar.gz", "has_sig": false, "md5_digest": "9645ab64aac0b0c1536c867fddefa370", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8438096, "upload_time": "2015-03-11T08:35:59", "url": "https://files.pythonhosted.org/packages/b5/02/ce881f2a34d52fc14e61a2f77c9eff32d9bf1612cc8c7d9e581545c49edd/PyECLib-1.0c1.tar.gz" } ], "1.0c2": [ { "comment_text": "", "digests": { "md5": "af665373f02d6777a4e212de85392f92", "sha256": "ec548f49793a1a7b4a4d2d90924c444a93272f806c8bb70d31ec2c43bafae2a7" }, "downloads": -1, "filename": "PyECLib-1.0c2.tar.gz", "has_sig": false, "md5_digest": "af665373f02d6777a4e212de85392f92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8450889, "upload_time": "2015-03-11T17:13:32", "url": "https://files.pythonhosted.org/packages/4b/81/a06125102f602bb0a569eb061c57b792c0e3973219aa78ac208157944783/PyECLib-1.0c2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "8ddcf28454569058717bc75bb3dd6a6c", "sha256": "21acedb3e8094f856f611b29e07f7ddea0ea6b8aaa3cbe43de19e783dd604819" }, "downloads": -1, "filename": "PyECLib-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8ddcf28454569058717bc75bb3dd6a6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7187925, "upload_time": "2015-10-22T04:48:53", "url": "https://files.pythonhosted.org/packages/85/9f/5682b4c205004198fec61755c9386cd9ae1553f4b583979e3500d847e102/PyECLib-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "53ba4101e01e22728bc25fcd43287565", "sha256": "1f2810fa6040e8f3a1c261c4d4b699cfe6e036df4a3431cba66411470f9274d6" }, "downloads": -1, "filename": "PyECLib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "53ba4101e01e22728bc25fcd43287565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7186386, "upload_time": "2015-10-25T01:00:13", "url": "https://files.pythonhosted.org/packages/7d/e9/b951d2619a68c5047d937fee0653a949c92ca9616d9f2fad40f4a6f90a6b/PyECLib-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "1377ced1a602b3a7bb9521cc2a1bb77e", "sha256": "0f55656b4288fef1cc85978ebb8eef2e83515482f68bb1cf19903c048c9f8c9b" }, "downloads": -1, "filename": "PyECLib-1.2.0.tar.gz", "has_sig": false, "md5_digest": "1377ced1a602b3a7bb9521cc2a1bb77e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6677880, "upload_time": "2016-01-13T01:31:18", "url": "https://files.pythonhosted.org/packages/39/32/08c9654ce08bb69c459bc8832bf37a2d236b0d721d5aae8aea02b263ba11/PyECLib-1.2.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "03d4d9beb2234eec2ec0b18d3c33cb09", "sha256": "7953e3d9f37070060877264c08aa114b47992ac87e0cd2121d12ec5a2973832a" }, "downloads": -1, "filename": "pyeclib-1.3.1.tar.gz", "has_sig": false, "md5_digest": "03d4d9beb2234eec2ec0b18d3c33cb09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6676435, "upload_time": "2016-09-30T16:31:31", "url": "https://files.pythonhosted.org/packages/bf/87/bfec569d085a8b0c5b197687ed5514d394787c6027b3776458056d87b06a/pyeclib-1.3.1.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "92d01ceb6acf09ede8722adc41e9024c", "sha256": "f5c49956eaef84ff8fe76378d215a21e6f46fdbea4872facc0c97e503f8b5d2c" }, "downloads": -1, "filename": "pyeclib-1.4.0.tar.gz", "has_sig": false, "md5_digest": "92d01ceb6acf09ede8722adc41e9024c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6682441, "upload_time": "2016-12-08T21:09:54", "url": "https://files.pythonhosted.org/packages/23/2e/e87647be8fe0e9edeb433f92fa322d93ed779dce809cca06c799aface99d/pyeclib-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "4cdda585bfbe923c80771923ef44f062", "sha256": "a201f2d3d4b925e1e54443cb251432809a59eeae50e9b85693ca0047c8ec9023" }, "downloads": -1, "filename": "pyeclib-1.5.0.tar.gz", "has_sig": false, "md5_digest": "4cdda585bfbe923c80771923ef44f062", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6682493, "upload_time": "2017-06-30T14:57:58", "url": "https://files.pythonhosted.org/packages/e3/02/2814399e18c10f0ea6912bf7e7ce5e20c9482b4b5fae9f756c72c97cc144/pyeclib-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "5fe79795ed390bc06e8829629886a357", "sha256": "8011e31ee89ae7fb99ca6916660c87e0108466a9962bd497a3001020974e3bb1" }, "downloads": -1, "filename": "pyeclib-1.6.0.tar.gz", "has_sig": false, "md5_digest": "5fe79795ed390bc06e8829629886a357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6685306, "upload_time": "2019-04-02T22:28:49", "url": "https://files.pythonhosted.org/packages/aa/d6/ca6bba5e66fc7a9810a995b17a3675492da2bec405806d8ac3db18cfd93b/pyeclib-1.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5fe79795ed390bc06e8829629886a357", "sha256": "8011e31ee89ae7fb99ca6916660c87e0108466a9962bd497a3001020974e3bb1" }, "downloads": -1, "filename": "pyeclib-1.6.0.tar.gz", "has_sig": false, "md5_digest": "5fe79795ed390bc06e8829629886a357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6685306, "upload_time": "2019-04-02T22:28:49", "url": "https://files.pythonhosted.org/packages/aa/d6/ca6bba5e66fc7a9810a995b17a3675492da2bec405806d8ac3db18cfd93b/pyeclib-1.6.0.tar.gz" } ] }