{ "info": { "author": "Manuel Aguado Mart\u00ednez", "author_email": "manuelaguadomtz@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering" ], "description": "# PyEER\n\n**PyEER** is a python package intended for biometric systems performance evaluation but it can be used to evaluate binary\nclassification systems also. It has been developed with the idea of providing researchers and the scientific community in\ngeneral with a tool to correctly evaluate and report the performance of their systems.\n\nWithin this package, two command line programs are provided:\n\n* **geteerinf:** Useful to evaluate biometrics systems in verification scenarios as well as binary classification systems.\n\n* **getcmcinf:** Useful to evaluate biometrics systems in identification scenarios.\n\nUtilities provided within this package can also be used to develop other scripts by importing the module **pyeer**.\n\n## Installing\n\nTo install the **PyEER** package you only need to type into a terminal the following line:\n\n pip install pyeer\n\n## Usage\n\nUsing **PyEER** is very easy and straightforward. Don't you believe? Let's see if we can convince you.\n\n### geteerinf\n\nWhen evaluating biometric systems in verification scenarios some researchers will only report Equal Error Rate (EER) values\nto show the accuracy of their proposals. However, this is wrong. The behavior of biometric systems cannot be fully assessed in this way. In other to achieve that, Receiver Operating Characteristic (ROC) or Detection Error Tradeoff (DET) graph must\nbe reported. It is also very common to report other operating points besides EER (i.e. MR100, FMR1000, ZeroFMR, and ZeroFNMR).\n**geteerinf** provides these and more. You will only need to provide genuine match scores and impostor match scores [1]. Genuine\nmatch scores are obtained by matching feature sets of the same class (same person), while impostor matching scores are obtained\nby matching feature sets of different classes (different persons).\n\n#### Input file formats\n\nGenuine match scores and impostor match scores must be provided in separated files one score per line. Each line can have any\nnumber of columns but the scores must be in the last column. Additionally, impostor match scores can be provided in a different\nformat which explained next\n\n###### Histogram format \n\nAlthough the vast majority of the systems report scores normalized between 0 and 1, there are some that\nreport integer scores [3]. When computing a lot of impostor scores, millions of them, it can be computationally expensive to read\nall those scores from a file. Therefore, in those cases may be worth it to use this format.\n\nRestrictions: Only integer scores are supported\n\nFile format: Each line contains the number of scores equals to the index of the line in the file (starting from zero).\n\nRecommendations: Use this format for very large experiments (millions of scores).\n\nIf you have any doubts left, you should check the example files on [GitHub](https://github.com/manuelaguadomtz/pyeer/tree/master/pyeer/example_files).\n\n#### Usage examples\n\n##### To print the help\n\n geteerinf -h\n\n##### One experiment (Non-histogram format):\n\n geteerinf -p \"example_files/non_hist/\" -i \"exp3_false.txt\" -g \"exp3_true.txt\" -e \"exp3\"\n\n##### More than one experiment (Non-histogram format):\n\n geteerinf -p \"example_files/non_hist/\" -i \"exp1_false.txt,exp2_false.txt\" -g \"exp1_true.txt,exp2_true.txt\" -e \"exp1,exp2\"\n\n##### One experiment (Histogram format):\n\n geteerinf -p \"example_files/hist/\" -i \"exp1_false.txt\" -g \"exp1_true.txt\" -e \"exp1\" -ht\n\n#### Output\n\nAll of the above examples will generate the following information:\n\n* Graphs: \n * Receiver operating characteristic (ROC)\n * Detection error tradeoff (DET)\n * False Match Rate (FMR) and False Non-Match Rate(FNMR)\n * Genuine and impostor score histograms\n* pyeer_report.csv: \n * Genuine scores mean\n * Genuine sores standard deviation\n * Impostor scores mean\n * Impostor sores standard deviation\n * Sensitivity index (d') (See [NICE:II](http://nice2.di.ubi.pt/) protocol evaluation)\n * Equal Error Rate (EER) (EER values are reported as specified in [2]).\n * Area under the ROC curve\n * Youden's J statistic (Youden's Index)\n * Youden's Index threshold\n * Matthews Correlation Coefficient (MCC)\n * Matthews Correlation Coefficient threshold\n * Equal Error Rate (EER) (EER values are reported as specified in [2]).\n * ZeroFMR, FMR1000, FMR100, FMR20, FMR10, and ZeroFNMR\n * Equal Error Rate threshold\n * ZeroFMR, FMR1000, FMR100, FMR20, FMR10, and ZeroFNMR thresholds\n* rates.csv:\n * False Match Rates\n * False Non-Match Rates\n\n#### To use from your own scripts\n\n from pyeer.eer_info import get_eer_stats\n from pyeer.report import generate_eer_report, export_error_rates\n from pyeer.plot import plot_eer_stats\n\n # Calculating stats for classifier A\n stats_a = get_eer_stats(gscores_a, iscores_a)\n\n # Calculating stats for classifier B\n stats_b = get_eer_stats(gscores_b, iscores_b)\n\n # Generating CSV report\n generate_eer_report([stats_a, stats_b], ['A', 'B'], 'pyeer_report.csv')\n\n # Generating HTML report\n generate_eer_report([stats_a, stats_b], ['A', 'B'], 'pyeer_report.html')\n\n # Generating Latex report\n generate_eer_report([stats_a, stats_b], ['A', 'B'], 'pyeer_report.tex')\n\n # Generating JSON report\n generate_eer_report([stats_a, stats_b], ['A', 'B'], 'pyeer_report.json')\n\n # Exporting error rates (Exporting FMR and FNMR to a CSV file)\n # This is the DET curve, the ROC curve is a plot of FMR against 1 - FNMR\n export_error_rates(stats_a.fmr, stats_a.fnmr, 'A_DET.csv')\n export_error_rates(stats_b.fmr, stats_b.fnmr, 'B_DET.csv')\n\n # Plotting\n plot_eer_stats([stats_a, stats_b], ['A', 'B'])\n\n### getcmcinf\n\nIn identification experiments in closed sets sometimes only rank values are reported [1]. To obtain rank values and the Cumulative match curve (CMC) **getcmcinf** is provided. It receives the match scores and genuine correspondences. The input format will be described\nnext.\n\n#### Input files format\n\nInput files must have the following formats:\n\n* **Match scores:** Each line must have the following format: (query template score)\n\n* **Genuine query-template pairs:** Each line must have the following format: (query corresponding_template)\n\nFor more clarification, you should check the example files on [GitHub](https://github.com/manuelaguadomtz/pyeer/tree/master/pyeer/example_files).\n\n#### Usage examples\n\n##### To print the script help\n\n getcmcinf -h\n\n##### One experiment\n\n getcmcinf -p \"example_files/cmc/\" -ms \"exp1_scores.txt\" -t \"exp1_tp.txt\" -e \"Exp1\"\n\n##### More than one experiment\n\n getcmcinf -p \"example_files/cmc/\" -ms \"exp1_scores.txt,exp2_scores.txt\" -t \"exp1_tp.txt,exp2_tp.txt\" -e \"Exp1,Exp2\"\n\n\n#### Output\n\nAll of the above examples will generate the following information:\n\n* Graphs: \n * Cumulative match curve (CMC)\n \n* pyeer_report.csv: \n * Rank identification rates\n\n#### To use from your own scripts\n\n from pyeer.cmc_stats import load_scores_from_file, get_cmc_curve, CMCstats\n from pyeer.report import generate_cmc_report\n from pyeer.plot import plot_cmc_stats\n\n # CMC maximum rank\n r = 20\n\n # Loading scores\n sfile = 'cmc/exp1_scores.txt' # The scores file\n tp_file = 'cmc/exp1_tp.txt' # The genuine pairs relationship in \"sfile\"\n scores = load_scores_from_file(sfile, tp_file)\n\n # Calculating CMC curve\n ranks = get_cmc_curve(scores, r)\n\n # Creating stats\n stats = [CMCstats(exp_id='A', ranks=ranks)]\n\n # Generating CSV report\n generate_cmc_report(stats, r, 'pyeer_report.csv')\n\n # Generating HTML report\n generate_cmc_report(stats, r, 'pyeer_report.html')\n\n # Generating Latex report\n generate_cmc_report(stats, r, 'pyeer_report.tex')\n\n # Generating Latex report\n generate_cmc_report(stats, r, 'pyeer_report.json')\n\n # Plotting\n plot_cmc_stats(stats, r)\n\n\n## Contributing\n\nDo you find **PyEER** useful? You can collaborate with us:\n\n[GitHub](https://github.com/manuelaguadomtz/pyeer>)\n\nPlease follow our contributing guidelines.\n\n## References\n\n[1] D. Maltoni et al., Handbook of Fingerprint Recognition, Springer-Verlag London Limited 2009\n\n[2] Maio D., Maltoni D., Cappelli R., Wayman J.L., and Jain A.K., \"FVC2000: Fingerprint verification\ncompetition,\"\" IEEE Transactions on Pattern Analysis Machine Intelligence, vol. 24, no. 3, pp. 402\u00e2\u20ac\u201c412,\n2002\n\n[3] Hernandez-Palancar, J., Munoz-Briseno, A., & Gago-Alonso, A. (2014). Using a triangular matching\napproach for latent fingerprint and palmprint identification. International Journal of Pattern \nRecognition and Artificial Intelligence, 28, 1460004.", "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/manuelaguadomtz/pyeer", "keywords": "Equal Error Rate,False Match Rate,ROC,DET,False Non-Match Rate,EER,FMR,FNMR,ZeroFNMR,ZeroFMR,CMC,Biometric Systems", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyeer", "package_url": "https://pypi.org/project/pyeer/", "platform": "", "project_url": "https://pypi.org/project/pyeer/", "project_urls": { "Homepage": "https://github.com/manuelaguadomtz/pyeer" }, "release_url": "https://pypi.org/project/pyeer/0.5.3/", "requires_dist": null, "requires_python": "", "summary": "A python package for biometric and binary classification systems performance evaluation", "version": "0.5.3" }, "last_serial": 5538192, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c57e1bddd1badbfc575b8d7f4891aad9", "sha256": "d9f3a1936648eba8e945d82fff52eb0ab9cf7e3f57a84725efab37df1f4e2ba3" }, "downloads": -1, "filename": "pyeer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c57e1bddd1badbfc575b8d7f4891aad9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78013, "upload_time": "2017-10-23T15:54:41", "url": "https://files.pythonhosted.org/packages/06/f9/743eb032366086a873f473e94b97dfffbf9cc5633cf1c84ce39f5d1aec37/pyeer-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f163d30a39abf979ebf3d4ca4391477f", "sha256": "be73f9999eca65ef2e2335c2c42fa4c96d81968ac2e276a39dd4457935972e84" }, "downloads": -1, "filename": "pyeer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f163d30a39abf979ebf3d4ca4391477f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78370, "upload_time": "2017-10-23T19:19:30", "url": "https://files.pythonhosted.org/packages/87/4c/5f4571a7c1f41bf5eeb223516a50605ce30d18c87a849180a883986c3828/pyeer-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ade705c2775f31454fbd8920e258651d", "sha256": "4fc943fd38c90e4db4f67a0533cea9a68441d5db490285ad3c0c6d57096d666a" }, "downloads": -1, "filename": "pyeer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ade705c2775f31454fbd8920e258651d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78536, "upload_time": "2017-11-01T13:33:11", "url": "https://files.pythonhosted.org/packages/a3/7b/625697677745559ead944bc50a09eeebd359bd3203b2ccc6798633c59239/pyeer-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "49a111215911346a04bd58663371892d", "sha256": "ca17d1003f8ac765f63ff32d32f716c58ebeeddb26c9d05344cdbfe1e2e68e0b" }, "downloads": -1, "filename": "pyeer-0.3.0.tar.gz", "has_sig": false, "md5_digest": "49a111215911346a04bd58663371892d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89952, "upload_time": "2017-11-07T16:43:33", "url": "https://files.pythonhosted.org/packages/62/76/13dfdeaae964946ba95f2bbbe17c9f82e14d19f00059334889db4f92da87/pyeer-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "81ab28c48d4c90cadc76d1b12847da59", "sha256": "dcf93606cba204e4b1d4d5ed7383ce08e8e0536de2e5deff7f66f81e077a15af" }, "downloads": -1, "filename": "pyeer-0.3.1.tar.gz", "has_sig": false, "md5_digest": "81ab28c48d4c90cadc76d1b12847da59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89974, "upload_time": "2017-11-07T17:08:07", "url": "https://files.pythonhosted.org/packages/6e/02/08eb10ac414b3d3307b8dbb43f905310b929f09da48c062a381cfb097b47/pyeer-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "91cc58b241dfe7be1a8353c6d78d2de8", "sha256": "9a5084c0b029d62a3a6bb7598e9201e75b902791938ba1d66a89307c98fe7dd9" }, "downloads": -1, "filename": "pyeer-0.3.2.tar.gz", "has_sig": false, "md5_digest": "91cc58b241dfe7be1a8353c6d78d2de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90117, "upload_time": "2017-11-15T18:02:25", "url": "https://files.pythonhosted.org/packages/2f/2f/efac8b226b2a6ddc105943c52feb3e4416059223cff5121d8f7c6744b34f/pyeer-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ef04add7d1be207e24edbe17937ef876", "sha256": "27ac3aa32f5b5dc26a3d306f45558e9646fd45e590cd527994fa6e0390a948e7" }, "downloads": -1, "filename": "pyeer-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ef04add7d1be207e24edbe17937ef876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591109, "upload_time": "2018-01-10T14:49:38", "url": "https://files.pythonhosted.org/packages/82/34/5c31bce5544ee5411c610bd9bc6f501cf950194ec82e65ca7ad4d969c33b/pyeer-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "edf6bd71f77fa2821040f9f1fdd8c48a", "sha256": "4ce6e3da6ac4c9a2e115520b096a533b71b4c00aff60031df13bc40bfeb20a66" }, "downloads": -1, "filename": "pyeer-0.4.1.tar.gz", "has_sig": false, "md5_digest": "edf6bd71f77fa2821040f9f1fdd8c48a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591282, "upload_time": "2018-01-15T14:41:21", "url": "https://files.pythonhosted.org/packages/08/24/aa7a2981df1fd1e1398d887974ca9cb990b2b0b758656c690efbea35418e/pyeer-0.4.1.tar.gz" } ], "0.4.10": [ { "comment_text": "", "digests": { "md5": "bdd8d9e602bb3bca1e92063dc5e8dd2e", "sha256": "db289c1298e15e392cc742337e07e08fa5be85786380301636b048e5644375d4" }, "downloads": -1, "filename": "pyeer-0.4.10.tar.gz", "has_sig": false, "md5_digest": "bdd8d9e602bb3bca1e92063dc5e8dd2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 593571, "upload_time": "2018-05-08T17:09:29", "url": "https://files.pythonhosted.org/packages/43/00/2ad283b3a023c80fcad6f0f36cabcbd1a0c5617552426489e2f6a8bdbece/pyeer-0.4.10.tar.gz" } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "89e55898107df52581dc8eb0f7a7801d", "sha256": "6587fe7c02fe0e796da4f92b1a55f0fcbd5afe1f64614ea0ad23881b7fbd239f" }, "downloads": -1, "filename": "pyeer-0.4.11.tar.gz", "has_sig": false, "md5_digest": "89e55898107df52581dc8eb0f7a7801d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 593943, "upload_time": "2018-05-25T16:59:52", "url": "https://files.pythonhosted.org/packages/5c/e7/e2fb38799f8d81df49d92ffcf08f10502ba77fa7945709b2be0e9aff6829/pyeer-0.4.11.tar.gz" } ], "0.4.12": [ { "comment_text": "", "digests": { "md5": "dec664c0704f4fcfa4c85886b9c2d9eb", "sha256": "4285eebb853fbd37966145559851e8e95d40efb1d90d5b7d411e5ca42d4b2799" }, "downloads": -1, "filename": "pyeer-0.4.12.tar.gz", "has_sig": false, "md5_digest": "dec664c0704f4fcfa4c85886b9c2d9eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 594014, "upload_time": "2018-06-08T14:35:41", "url": "https://files.pythonhosted.org/packages/38/61/951ca6a570e4a80e1b5e1de571a015578d9fec62826b94f0c48e949fa516/pyeer-0.4.12.tar.gz" } ], "0.4.13": [ { "comment_text": "", "digests": { "md5": "c662b16ce4b340bc74806231710844b9", "sha256": "fc35a8f3e78770a8d83a621d4e880e70f022f797790f45d4d7a83e373adaf5d5" }, "downloads": -1, "filename": "pyeer-0.4.13.tar.gz", "has_sig": false, "md5_digest": "c662b16ce4b340bc74806231710844b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 594277, "upload_time": "2018-07-04T15:14:53", "url": "https://files.pythonhosted.org/packages/68/20/57d9700ae59eddba3081b31b30fa555ac9139e94d09b7037d440309b395e/pyeer-0.4.13.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "63820e5091ac15ba83d5b54e489e000b", "sha256": "2b90ea012a050063172077938453e748d1684eebe058e1be93eaddd4ff46d973" }, "downloads": -1, "filename": "pyeer-0.4.2.tar.gz", "has_sig": false, "md5_digest": "63820e5091ac15ba83d5b54e489e000b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591401, "upload_time": "2018-02-06T13:07:23", "url": "https://files.pythonhosted.org/packages/e3/73/e7b7ac8844d51996ed4d9988d4f0007425316345de8ed04d25999cdfdc78/pyeer-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "bd212332b1cf1ce9422d50dd7faddb5e", "sha256": "1b0f4e45e812b98d45e8b65d96cc14a3224c4a7b67c5ccb29baa041264f59b88" }, "downloads": -1, "filename": "pyeer-0.4.3.tar.gz", "has_sig": false, "md5_digest": "bd212332b1cf1ce9422d50dd7faddb5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591463, "upload_time": "2018-02-06T20:15:03", "url": "https://files.pythonhosted.org/packages/25/34/974994c97b7e623b510010be78ef9284ea2664a56126fa9d13d8feb0f8f0/pyeer-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "d28ef5f88f32f190f67fff496b95ae5a", "sha256": "00cc74513b0431db4be8774ccdb0c4f2ca57941ad65b4db32d7743a07cd96637" }, "downloads": -1, "filename": "pyeer-0.4.4.tar.gz", "has_sig": false, "md5_digest": "d28ef5f88f32f190f67fff496b95ae5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 591980, "upload_time": "2018-02-15T20:13:27", "url": "https://files.pythonhosted.org/packages/90/91/db7a31eb3fd78c76138461bde231271e0b54b4c44e8b2e8940e27267b5bc/pyeer-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "ee020900d5839c5f375905cc714ffd5a", "sha256": "4d50e4fed42d86df2c55ccd00fbdee57e35f42c6f82b17dc40e0f226fcf728a2" }, "downloads": -1, "filename": "pyeer-0.4.5.tar.gz", "has_sig": false, "md5_digest": "ee020900d5839c5f375905cc714ffd5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 592768, "upload_time": "2018-02-21T15:13:56", "url": "https://files.pythonhosted.org/packages/f1/e6/4ebb7ff16f1a8089b18c791717c30bc50fa711cc5c20a9fa28e3c3428844/pyeer-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "a0403894d7cd23446be7d01e5708b168", "sha256": "58e65110d1c9a4efcc0cd9dc151cde47e9a05beccb3528d5f909feee7a251f49" }, "downloads": -1, "filename": "pyeer-0.4.6.tar.gz", "has_sig": false, "md5_digest": "a0403894d7cd23446be7d01e5708b168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 592796, "upload_time": "2018-03-15T20:03:42", "url": "https://files.pythonhosted.org/packages/6d/54/4f3251da26bd8bde4ca2dcc288145749985e2014147fadcf9763158f23b8/pyeer-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "c2ac0a3e4d9049b361ce60ae5b8dcee6", "sha256": "64d445d5560f0ac2481eeb9f040503d9f978536af1cc04798bfda48e82a1103f" }, "downloads": -1, "filename": "pyeer-0.4.7.tar.gz", "has_sig": false, "md5_digest": "c2ac0a3e4d9049b361ce60ae5b8dcee6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 593504, "upload_time": "2018-04-10T17:44:22", "url": "https://files.pythonhosted.org/packages/23/ed/305526ca9b10f834feafd526c6fdd47ac5265693cc579bdc16243234807b/pyeer-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "84260aa839a9f1dc356df9f61cd5b628", "sha256": "f352c4c3521aa703f645ba05b91baf62ebac1f0853dba8f4c536b1f700fe92aa" }, "downloads": -1, "filename": "pyeer-0.4.8.tar.gz", "has_sig": false, "md5_digest": "84260aa839a9f1dc356df9f61cd5b628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 593499, "upload_time": "2018-04-10T18:13:29", "url": "https://files.pythonhosted.org/packages/cb/49/efe71f46fdddcc401200498f4ad8fbd57957ddb00799539edd43e8bc7af6/pyeer-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "8b6c95d4329810572a8d58841fc284ae", "sha256": "42db2df8a26c9f05aace84d7b9d228fde98142ccb29e6caa03620abfbf2c6c9f" }, "downloads": -1, "filename": "pyeer-0.4.9.tar.gz", "has_sig": false, "md5_digest": "8b6c95d4329810572a8d58841fc284ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 593573, "upload_time": "2018-04-30T14:26:45", "url": "https://files.pythonhosted.org/packages/a9/d4/d3594571be605e968ccfebec18d8d35e625e0866a2aac7000f4c662343d2/pyeer-0.4.9.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "789e2bd3e7529ea772059ffe7bb5d178", "sha256": "271b51b4ffe0e7ff88f052699bcb70813fd676dd54a349c88751b5200c44d1e4" }, "downloads": -1, "filename": "pyeer-0.5.0.tar.gz", "has_sig": false, "md5_digest": "789e2bd3e7529ea772059ffe7bb5d178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 597068, "upload_time": "2018-09-11T17:54:06", "url": "https://files.pythonhosted.org/packages/20/fe/2c834d54679bb4ec752581bbf2e1aecae597bb3ee543c9699f4758c379de/pyeer-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "285c4e9c47e5aba2b9c29d30bc838717", "sha256": "d3966aa17742578f5d6bc105f949f28944690402af2b4c426cd6b78e5925f5a6" }, "downloads": -1, "filename": "pyeer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "285c4e9c47e5aba2b9c29d30bc838717", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 597102, "upload_time": "2018-09-11T18:04:37", "url": "https://files.pythonhosted.org/packages/34/15/dca40a1b6a752da3f2f55db854e258f5da384d321fd9d21f6fd5176ce090/pyeer-0.5.1.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "d92b363ae72dc227756e12392215b960", "sha256": "6f0e795a01aa775e9e266615a0ec06bac4e619cf311cc4a5bfeee280a743f437" }, "downloads": -1, "filename": "pyeer-0.5.3.tar.gz", "has_sig": false, "md5_digest": "d92b363ae72dc227756e12392215b960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 604178, "upload_time": "2019-04-24T10:52:16", "url": "https://files.pythonhosted.org/packages/0d/92/3543cf1274040a5cab64a43e90bcd284ec016b2238fa718b8c5a32cb83cb/pyeer-0.5.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d92b363ae72dc227756e12392215b960", "sha256": "6f0e795a01aa775e9e266615a0ec06bac4e619cf311cc4a5bfeee280a743f437" }, "downloads": -1, "filename": "pyeer-0.5.3.tar.gz", "has_sig": false, "md5_digest": "d92b363ae72dc227756e12392215b960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 604178, "upload_time": "2019-04-24T10:52:16", "url": "https://files.pythonhosted.org/packages/0d/92/3543cf1274040a5cab64a43e90bcd284ec016b2238fa718b8c5a32cb83cb/pyeer-0.5.3.tar.gz" } ] }