{ "info": { "author": "Kevin Yap", "author_email": "me@kevinyap.ca", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Utilities" ], "description": "**********************************\nEulerPy |Travis| |PyPI| |Homebrew|\n**********************************\n\nEulerPy is a command line tool designed to streamline the process of solving\nProject Euler problems using Python. The package focuses on two main tasks:\nfirstly, to create Python \"template\" files with a docstring containing the\ntext of a Project Euler problem for ease-of-reference, and secondly, to check\nwhether a problem has been solved correctly.\n\n\n============\nInstallation\n============\n\nEulerPy can be installed (and updated) from PyPI using `pip`_:\n\n.. code-block:: bash\n\n $ pip install --upgrade EulerPy\n\n\nConversely, it can be uninstalled using `pip`_ as well.\n\n.. code-block:: bash\n\n $ pip uninstall EulerPy\n\n\nAlternatively, OS X users can install EulerPy using `Homebrew`_:\n\n.. code-block:: bash\n\n $ brew install euler-py\n\n\n=====\nUsage\n=====\n\nFirst, you'll want to ``cd`` to the directory where your Project Euler files\nare being stored.\n\n.. code-block:: bash\n\n $ mkdir ~/project-euler\n $ cd ~/project-euler\n\n\nAt this point, you'll probably want to run the ``euler`` command, which will\nprompt to create ``001.py``, a file containing the text to Project Euler problem\n#1 as its docstring.\n\n.. code-block:: bash\n\n $ euler\n No Project Euler files found in the current directory.\n Generate file for problem 1? [Y/n]: Y\n Successfully created \"001.py\".\n\n $ cat 001.py\n \"\"\"\n Project Euler Problem 1\n =======================\n\n If we list all the natural numbers below 10 that are multiples of 3 or 5,\n we get 3, 5, 6 and 9. The sum of these multiples is 23.\n\n Find the sum of all the multiples of 3 or 5 below 1000.\n \"\"\"\n\nAt this point, you can open up your editor of choice and code up a solution\nto the problem, making sure to ``print()`` the output. Once you feel that\nyou've solved the problem, run the ``euler`` command again to verify your\nsolution is correct. If the answer is correct, the solution will be printed\nin green and the script will ask to generate the next problem file. If\nincorrect, the solution will be printed in red instead. Additionally, the\ntime elapsed during the solution-checking process will also be printed.\n\n.. code-block:: bash\n\n $ euler\n Checking \"001.py\" against solution: [no output] # (output in red)\n\n $ echo print 42 >> 001.py\n $ euler\n Checking \"001.py\" against solution: 42 # (output in green)\n Generate file for problem 2? [Y/n]: Y\n Successfully created \"002.py\".\n\n\nEulerPy also has a few command line options that act as different commands\n(use ``euler --help`` to see a summary of all the options).\n\n\n``--cheat / -c``\n----------------\n\nThe ``--cheat`` option will print the answer to a problem after prompting\nthe user to ensure that they want to see it. If no problem argument is given,\nit will print the answer to the problem that they are currently working on.\n\n.. code-block:: bash\n\n $ euler --cheat\n View answer to problem 2? [y/N]: Y\n The answer to problem 2 is .\n\n $ euler --cheat 100\n View answer to problem 100? [y/N]: Y\n The answer to problem 100 is .\n\n\n``--generate / -g``\n-------------------\n\nThe ``--generate`` option will create a Python file for the given problem\nnumber. If no problem number is given, it will overwrite the most recent\nproblem with a file containing only the problem docstring (after prompting\nthe user).\n\n.. code-block:: bash\n\n $ euler --generate\n Generate file for problem 2? [Y/n]: Y\n \"002.py\" already exists. Overwrite? [y/N]:\n Successfully created \"002.py\".\n\n $ euler --generate 5\n Generate file for problem 5? [Y/n]: n\n Aborted!\n\n``euler `` is equivalent to ``euler --generate `` if the file\n**does not** exist.\n\n.. code-block:: bash\n\n $ cat 005.py\n cat: 005.py: No such file or directory\n\n $ euler 5\n Generate file for problem 5? [Y/n]: n\n Aborted!\n\nThe file generation process will also automatically copy any relevant\nresource files to a ``resources`` subdirectory.\n\n.. code-block:: bash\n\n $ euler 22\n Generate file for problem 22? [Y/n]: Y\n Successfully created \"022.py\".\n Copied \"names.txt\" to project-euler/resources.\n\n\n``--preview / -p``\n------------------\n\nThe ``--preview`` option will print the text of a given problem to the terminal;\nif no problem number is given, it will print the next problem instead.\n\n.. code-block:: bash\n\n $ euler --preview\n Project Euler Problem 3\n The prime factors of 13195 are 5, 7, 13 and 29.\n\n What is the largest prime factor of the number 600851475143?\n\n $ euler --preview 5\n Project Euler Problem 5\n 2520 is the smallest number that can be divided by each of the numbers\n from 1 to 10 without any remainder.\n\n What is the smallest number that is evenly divisible by all of the numbers\n from 1 to 20?\n\n\n``--skip / -s``\n---------------\n\nThe ``--skip`` option will prompt the user to \"skip\" to the next problem. As\nof EulerPy v1.1, it will also append a \"skipped\" suffix to the skipped problem\nfile.\n\n.. code-block:: bash\n\n $ euler --skip\n Current problem is problem 2.\n Generate file for problem 3? [y/N]: Y\n Successfully created \"003.py\".\n Renamed \"002.py\" to \"002-skipped.py\".\n\n\n``--verify / -v``\n-----------------\n\nThe ``--verify`` option will check whether a given problem file outputs the\ncorrect solution to the problem. If no problem number is given, it will\ncheck the current problem.\n\n.. code-block:: bash\n\n $ euler --verify\n Checking \"003.py\" against solution: [no output] # (output in red)\n\n $ euler --verify 1\n Checking \"001.py\" against solution: # (output in green)\n\nAs of EulerPy v1.1, verifying a skipped problem file will remove the \"skipped\"\nsuffix from its filename.\n\n.. code-block:: bash\n\n $ euler --verify 2\n Checking \"002-skipped.py\" against solution: \n Renamed \"002-skipped.py\" to \"002.py\".\n\n``euler `` is equivalent to ``euler --verify `` if the file\n**does** exist.\n\n.. code-block:: bash\n\n $ cat 001.py\n \"\"\"\n Project Euler Problem 1\n =======================\n\n If we list all the natural numbers below 10 that are multiples of 3 or 5,\n we get 3, 5, 6 and 9. The sum of these multiples is 23.\n\n Find the sum of all the multiples of 3 or 5 below 1000.\n \"\"\"\n\n\n $ euler 1\n Checking \"001.py\" against solution: \n\n\n``--verify-all``\n----------------\n\nThe ``--verify-all`` option was added in EulerPy v1.1. It essentially runs\n``--verify`` on all the problem files it can find in the current directory,\nbut also prints an overview of all of the problems in the directory. Note\nthat if the verification encounters a ``KeyboardInterrupt`` exception, it will\nskip the verification of that specific file. This allows for the ability to\nskip verifying some files but not others, in the case that some solutions are\ntaking too long to compute.\n\n.. code-block:: bash\n\n $ euler --verify-all\n Checking \"001.py\" against solution: \n\n Checking \"002.py\" against solution: ^C\n\n Checking \"003.py\" against solution: [no output]\n\n ---------------------------------------------------------------\n C = correct, I = incorrect, E = error, S = skipped, . = missing\n\n Problems 001-020: C S I . . . . . . . . . . . . . . . . .\n\nThis option should be run after upgrading to v1.1 from EulerPy v1.0, as it will\nautomatically rename any problems that have been skipped using ``--skip``,\nmaking them easy to distinguish from those that have been correctly solved.\n\n\nFile Prefixes\n-------------\n\nAs of v1.3.0, EulerPy will attempt to keep the prefix of problem files\nconsistent. The motivation behind this is that ``import 001`` results in a\nsyntax error whereas ``import euler001`` is valid. By using the latter\nnaming scheme, it is possible to reuse code written in previous files.\n\n.. code-block:: bash\n\n $ mv 003.py euler003.py\n\n $ euler --skip\n Current problem is problem 3.\n Generate file for problem 4? [y/N]: Y\n Successfully created \"euler004.py\".\n Renamed \"euler003.py\" to \"euler003-skipped.py\".\n\n\n============\nContributing\n============\n\nSee `CONTRIBUTING.rst`_.\n\n\n=============\nMiscellaneous\n=============\n\nThe text for the problems in `problems.txt`_ were derived from Kyle Keen's\n`Local Euler`_ project, and the solutions in `solutions.txt`_ were derived\nfrom the `projecteuler-solutions wiki`_.\n\nSee `this blog post`_ for insight into the development process.\n\nEulerPy uses `Click`_ as a dependency for its CLI functionality.\n\n\n=======\nLicense\n=======\n\nEulerPy is licensed under the `MIT License`_.\n\n\n.. |Travis| image:: https://img.shields.io/travis/iKevinY/EulerPy/master.svg\n :alt: Build Status\n :target: http://travis-ci.org/iKevinY/EulerPy\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/EulerPy.svg\n :alt: PyPI Version\n :target: https://pypi.python.org/pypi/EulerPy/\n \n.. |Homebrew| image:: https://img.shields.io/homebrew/v/euler-py.svg\n :alt: Homebrew Version\n :target: https://github.com/Homebrew/homebrew-core/blob/master/Formula/euler-py.rb\n\n.. _pip: http://www.pip-installer.org/en/latest/index.html\n.. _Homebrew: http://brew.sh\n.. _CONTRIBUTING.rst: https://github.com/iKevinY/EulerPy/blob/master/CONTRIBUTING.rst\n.. _Local Euler: http://kmkeen.com/local-euler/\n.. _problems.txt: https://github.com/iKevinY/EulerPy/blob/master/EulerPy/data/problems.txt\n.. _solutions.txt: https://github.com/iKevinY/EulerPy/blob/master/EulerPy/data/solutions.txt\n.. _projecteuler-solutions wiki: https://code.google.com/p/projecteuler-solutions/\n.. _this blog post: http://kevinyap.ca/2014/06/eulerpy-streamlining-project-euler/\n.. _click: https://github.com/mitsuhiko/click\n.. _MIT License: https://github.com/iKevinY/EulerPy/blob/master/LICENSE", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/iKevinY/EulerPy", "keywords": "EulerPy,euler,project-euler,projecteuler", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "EulerPy", "package_url": "https://pypi.org/project/EulerPy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/EulerPy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/iKevinY/EulerPy" }, "release_url": "https://pypi.org/project/EulerPy/1.3.0/", "requires_dist": null, "requires_python": null, "summary": "Python-based Project Euler command line tool.", "version": "1.3.0" }, "last_serial": 2107799, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "b813fe0d6353818c184cde624af13268", "sha256": "265ccc3145a369fcc84a8c4ffc944c9968f0040f7c18dfa19b1015d750feee06" }, "downloads": -1, "filename": "EulerPy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b813fe0d6353818c184cde624af13268", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60688, "upload_time": "2014-06-27T17:14:44", "url": "https://files.pythonhosted.org/packages/3f/4c/a2868533a67e8d2a4c918f397c041f6bf537c8dc301f0ab4583cc67e4ada/EulerPy-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "331e5a17a4ac0c3e16517cf225608dfa", "sha256": "5c7350f845cb134b2dc22dc27f51c3b469860a97189deb6fff081d3f80052707" }, "downloads": -1, "filename": "EulerPy-1.0.1.tar.gz", "has_sig": false, "md5_digest": "331e5a17a4ac0c3e16517cf225608dfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60777, "upload_time": "2014-06-27T18:24:14", "url": "https://files.pythonhosted.org/packages/1a/20/347743ffe5cd27a1f69ceeb2bc5c49a37a8b13620bac55dac8e07f739a08/EulerPy-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "13d991bc0b31d906d6047509d2e4816e", "sha256": "5da938dcb4157e001e2f79f2de5a4e2563d616709b970d92782ed0865508e780" }, "downloads": -1, "filename": "EulerPy-1.0.2.tar.gz", "has_sig": false, "md5_digest": "13d991bc0b31d906d6047509d2e4816e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60960, "upload_time": "2014-06-28T06:38:13", "url": "https://files.pythonhosted.org/packages/a6/a1/49b59de18cdba250033964a997e6ee678db8bdc03c4cea19c90226d8b206/EulerPy-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "2aa412a2cae580ea3cc2412ac67c9c46", "sha256": "b61a7e6e5142ffdd91d2079a00a6204764ad3b18e9b18d464a9f6917781bf5f2" }, "downloads": -1, "filename": "EulerPy-1.0.3.tar.gz", "has_sig": false, "md5_digest": "2aa412a2cae580ea3cc2412ac67c9c46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62389, "upload_time": "2014-06-29T03:48:09", "url": "https://files.pythonhosted.org/packages/ac/65/ac1f1de9df4caa8089d89af9bc9c79871a7de9960d304708960c13c16eaf/EulerPy-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "bbcc6e612b26c1a22c0d8df20479fe37", "sha256": "94cd9cfac37ad0982f0e39705f89d85e8ea8dfb9abb0599ac07659bb77a04679" }, "downloads": -1, "filename": "EulerPy-1.0.4.tar.gz", "has_sig": false, "md5_digest": "bbcc6e612b26c1a22c0d8df20479fe37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74700, "upload_time": "2014-06-29T20:16:26", "url": "https://files.pythonhosted.org/packages/44/56/3bf223135fd61db1c4ad84681b1603f0df395412dc23ffc422b17a69f933/EulerPy-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "e03b14f7c1ad5b8ea04f0c19916d1615", "sha256": "c2f287da121bd9376e019998358a4855cabdce5658e613ba38bb313cff8bca59" }, "downloads": -1, "filename": "EulerPy-1.0.5.tar.gz", "has_sig": false, "md5_digest": "e03b14f7c1ad5b8ea04f0c19916d1615", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74906, "upload_time": "2014-06-30T07:37:44", "url": "https://files.pythonhosted.org/packages/2d/fd/660448cb17256557fab34ab1a541c247b9d1364e7bb90f921ef4084347a9/EulerPy-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "cf7ccffe17724a2b7abaca566ce60dcb", "sha256": "3641f2257775c41946b90d6e929585408427915d83cde3e2b7c400e9f84ea5ed" }, "downloads": -1, "filename": "EulerPy-1.0.6.tar.gz", "has_sig": false, "md5_digest": "cf7ccffe17724a2b7abaca566ce60dcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74987, "upload_time": "2014-07-01T00:14:34", "url": "https://files.pythonhosted.org/packages/30/47/61d780d6b304f7320a00e24979c755cb98fd7f506d20fdc162acd5b73272/EulerPy-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "17337b69477ba5f53c00505c41436bbd", "sha256": "163a19dea3e090fd9be97fade15b72b3680b3a6361080319329ef8af19f04743" }, "downloads": -1, "filename": "EulerPy-1.0.7.tar.gz", "has_sig": false, "md5_digest": "17337b69477ba5f53c00505c41436bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75606, "upload_time": "2014-07-03T16:49:18", "url": "https://files.pythonhosted.org/packages/b4/cd/cdb1475fa2a4cf8d432397195186914db6771734e7212afdb52bb4ab545a/EulerPy-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "d2296a003e5bc45d885c0460bbfdb6a8", "sha256": "1f63ac6302d16ff4f6b7643a909aac723c65fae4525d6d9852a93d4edd6e50f3" }, "downloads": -1, "filename": "EulerPy-1.0.8.tar.gz", "has_sig": false, "md5_digest": "d2296a003e5bc45d885c0460bbfdb6a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76129, "upload_time": "2014-07-07T21:22:01", "url": "https://files.pythonhosted.org/packages/61/b2/fe310a85f5b426c58b2e92c10d440ecbac6c4ce63dd0e38d6d089a62af4a/EulerPy-1.0.8.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "65d6b2b210234e8b254a8c340084456a", "sha256": "36b4a7c3f18b545682ecb2942fa66989772c38f83576d2fabc18bb729e88d043" }, "downloads": -1, "filename": "EulerPy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "65d6b2b210234e8b254a8c340084456a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78070, "upload_time": "2014-07-20T19:17:17", "url": "https://files.pythonhosted.org/packages/f3/d1/efe1768f3ce35b5e2b3dd42325282fefaf1d4feba77b5b2a773586629c99/EulerPy-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "c787567ee5d1cb431d52cd5622e40182", "sha256": "01f1a184ca23fee1e513de408d73739c1b1c2f1752b8f21fd449274d4fe8d914" }, "downloads": -1, "filename": "EulerPy-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c787567ee5d1cb431d52cd5622e40182", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 395464, "upload_time": "2014-08-08T19:32:51", "url": "https://files.pythonhosted.org/packages/a1/c0/ea5f508988c284b3e34a8a6869f55fca89d0eac3e94d5dad26e9e2f0e629/EulerPy-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96147a795f1b79e0e69f1239a4f02056", "sha256": "285aebb2b94952123c232b28f0dba1011debc3691757a80aef2727f5d840fa01" }, "downloads": -1, "filename": "EulerPy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "96147a795f1b79e0e69f1239a4f02056", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 392710, "upload_time": "2014-08-06T21:33:48", "url": "https://files.pythonhosted.org/packages/2c/18/75bfdfe7e076175e29da95a0be812fb74d5c6fa26298934f7e38fe7d86f1/EulerPy-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ec71223b112e42eee1e2a484e523b34f", "sha256": "dcff67c7da8cd8b42414b005773f1e44e9410ac678618bba661b31a6ee5b9d27" }, "downloads": -1, "filename": "EulerPy-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ec71223b112e42eee1e2a484e523b34f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 395508, "upload_time": "2014-08-10T07:48:39", "url": "https://files.pythonhosted.org/packages/40/35/ce02a92c4bf1ce73b0983a6c02ead266d304e2c56be268c0e865fbf3b746/EulerPy-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a27404fd307c1f88b8513a553bc82bf3", "sha256": "37d89c366d21f1a8bdce943f9d2309cf2bae89e5ef15bb9cb4041790b34011a1" }, "downloads": -1, "filename": "EulerPy-1.2.1.tar.gz", "has_sig": false, "md5_digest": "a27404fd307c1f88b8513a553bc82bf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 392797, "upload_time": "2014-08-10T07:48:35", "url": "https://files.pythonhosted.org/packages/22/31/3263d51b7e9f0360c783ae2dcdfd1b6157a21e0738e3316fb221fcb06314/EulerPy-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "38d0f01af8df1a5ee2679b45f6f0862b", "sha256": "a5608d8719532f84f4afeac5fc4da24c1ce88803347851b1feaba8ce7d2908c9" }, "downloads": -1, "filename": "EulerPy-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38d0f01af8df1a5ee2679b45f6f0862b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 395548, "upload_time": "2014-08-11T20:19:29", "url": "https://files.pythonhosted.org/packages/f4/b7/01674503be7b5fb6c5255e40d00d375503ed3f5354be58d30c1e7ce23531/EulerPy-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8a78e78efe7cb754554478850dbfe40", "sha256": "53cd367dc8048cc7a5921622eaae923819af432d5ea0de3f9db54003ed6399b3" }, "downloads": -1, "filename": "EulerPy-1.2.2.tar.gz", "has_sig": false, "md5_digest": "b8a78e78efe7cb754554478850dbfe40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 392849, "upload_time": "2014-08-11T20:19:25", "url": "https://files.pythonhosted.org/packages/bb/a1/944cca7803caa54fb5a28ce14623eeb00a3bf1a7addea36679f0625596ae/EulerPy-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "ac2ad2f00302c73fbeda7b4395092db6", "sha256": "593d98abb77ec29412b93b0086e9642882526ae951c747771f84ac6b022c86f2" }, "downloads": -1, "filename": "EulerPy-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac2ad2f00302c73fbeda7b4395092db6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 497049, "upload_time": "2014-09-03T04:11:10", "url": "https://files.pythonhosted.org/packages/31/6b/2d3eca8b2838be37ca20066daf90db7c94c95578fd56bc26849d68c3e4ed/EulerPy-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb4bfa8278b73e58b32e0b79aeb12b9f", "sha256": "edc38db1a60f5bd20aa7fd2054f8ee3ff48e969a217a563e9e25406c7678354f" }, "downloads": -1, "filename": "EulerPy-1.2.3.tar.gz", "has_sig": false, "md5_digest": "eb4bfa8278b73e58b32e0b79aeb12b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 486645, "upload_time": "2014-09-03T04:11:05", "url": "https://files.pythonhosted.org/packages/31/c3/89af2faa52625fa00be2dc960b91f1767dbbf679704671c329c8ad25540a/EulerPy-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "463a6c7a4538d99d079ba88d22ca0425", "sha256": "f204e5c2dfc1a219f2c664be075c940a9b93674c3a240995c5326abdb1da5e6d" }, "downloads": -1, "filename": "EulerPy-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "463a6c7a4538d99d079ba88d22ca0425", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 650766, "upload_time": "2016-05-10T05:39:52", "url": "https://files.pythonhosted.org/packages/4e/fd/5c98d393a04b18c700804be403074c9d57831840e958403a588a44435851/EulerPy-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfd6c5841f0319b8b226584ca195164a", "sha256": "648253768edd297a99bfdcc4ee46234770f3265aeaf7823fa1f3d64af87b70fd" }, "downloads": -1, "filename": "EulerPy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cfd6c5841f0319b8b226584ca195164a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 619259, "upload_time": "2016-05-10T05:35:51", "url": "https://files.pythonhosted.org/packages/31/22/4c67fff0116f6fdb801fd7a17c26ac13ab684a1601444c933ba8da3fe3d8/EulerPy-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "463a6c7a4538d99d079ba88d22ca0425", "sha256": "f204e5c2dfc1a219f2c664be075c940a9b93674c3a240995c5326abdb1da5e6d" }, "downloads": -1, "filename": "EulerPy-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "463a6c7a4538d99d079ba88d22ca0425", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 650766, "upload_time": "2016-05-10T05:39:52", "url": "https://files.pythonhosted.org/packages/4e/fd/5c98d393a04b18c700804be403074c9d57831840e958403a588a44435851/EulerPy-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfd6c5841f0319b8b226584ca195164a", "sha256": "648253768edd297a99bfdcc4ee46234770f3265aeaf7823fa1f3d64af87b70fd" }, "downloads": -1, "filename": "EulerPy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cfd6c5841f0319b8b226584ca195164a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 619259, "upload_time": "2016-05-10T05:35:51", "url": "https://files.pythonhosted.org/packages/31/22/4c67fff0116f6fdb801fd7a17c26ac13ab684a1601444c933ba8da3fe3d8/EulerPy-1.3.0.tar.gz" } ] }