{ "info": { "author": "Ali-Akber Saifee", "author_email": "ali@indydevs.org.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Testing" ], "description": ".. |travis| image:: https://img.shields.io/travis/alisaifee/hiro/master.svg?style=flat-square\n :target: https://travis-ci.org/#!/alisaifee/hiro?branch=master\n.. |coveralls| image:: https://img.shields.io/coveralls/alisaifee/hiro/master.svg?style=flat-square\n :target: https://coveralls.io/r/alisaifee/hiro?branch=master\n.. |license| image:: https://img.shields.io/pypi/l/hiro.svg?style=flat-square\n :target: https://pypi.python.org/pypi/hiro\n.. |pypi| image:: https://img.shields.io/pypi/v/hiro.svg?style=flat-square\n :target: https://pypi.python.org/pypi/hiro\n\n\n*********************************************\nHiro - time manipulation utilities for python\n*********************************************\n|travis| |coveralls| |pypi| |license|\n\n Yatta!\n\n -- Hiro Nakamura\n\n\n\n====================\nHiro context manager\n====================\n\n\nTimeline context\n================\nThe ``hiro.Timeline`` context manager hijacks a few commonly used time functions\nto allow time manipulation within its context. Specifically ``time.sleep``, ``time.time``,\n``time.gmtime``, ``datetime.now``, ``datetime.utcnow`` and ``datetime.today`` behave according the configuration of the context.\n\nThe context provides the following manipulation options:\n\n* ``rewind``: accepts seconds as an integer or a ``timedelta`` object.\n* ``forward``: accepts seconds as an integer or a ``timedelta`` object.\n* ``freeze``: accepts a floating point time since epoch or ``datetime`` or ``date`` object to freeze the time at.\n* ``unfreeze``: resumes time from the point it was frozen at.\n* ``scale``: accepts a floating point to accelerate/decelerate time by. ``> 1 = acceleration, < 1 = deceleration``\n* ``reset``: resets all time alterations.\n\n.. code-block:: python\n\n import hiro\n from datetime import timedelta, datetime\n import time\n\n datetime.now().isoformat()\n # OUT: '2013-12-01T06:55:41.706060'\n with hiro.Timeline() as timeline:\n\n # forward by an hour\n timeline.forward(60*60)\n datetime.now().isoformat()\n # OUT: '2013-12-01T07:55:41.707383'\n\n # jump forward by 10 minutes\n timeline.forward(timedelta(minutes=10))\n datetime.now().isoformat()\n # OUT: '2013-12-01T08:05:41.707425'\n\n # jump to yesterday and freeze\n timeline.freeze(datetime.now() - timedelta(hours=24))\n datetime.now().isoformat()\n # OUT: '2013-11-30T09:15:41'\n\n timeline.scale(5) # scale time by 5x\n time.sleep(5) # this will effectively only sleep for 1 second\n\n # since time is frozen the sleep has no effect\n datetime.now().isoformat()\n # OUT: '2013-11-30T09:15:41'\n\n timeline.rewind(timedelta(days=365))\n\n datetime.now().isoformat()\n # OUT: '2012-11-30T09:15:41'\n\n\n\nTo reduce the amount of statements inside the context, certain timeline setup\ntasks can be done via the constructor and/or by using the fluent interface.\n\n.. code-block:: python\n\n import hiro\n import time\n from datetime import timedelta, datetime\n\n start_point = datetime(2012,12,12,0,0,0)\n my_timeline = hiro.Timeline(scale=5).forward(60*60).freeze()\n with my_timeline as timeline:\n print datetime.now()\n # OUT: '2012-12-12 01:00:00.000315'\n time.sleep(5) # effectively 1 second\n # no effect as time is frozen\n datetime.now()\n # OUT: '2012-12-12 01:00:00.000315'\n timeline.unfreeze()\n # back to starting point\n datetime.now()\n # OUT: '2012-12-12 01:00:00.000317'\n time.sleep(5) # effectively 1 second\n # takes effect (+5 seconds)\n datetime.now()\n # OUT: '2012-12-12 01:00:05.003100'\n\n\n``Timeline`` can additionally be used as a decorator\n\n.. code-block:: python\n\n import hiro\n import time, datetime\n\n @hiro.Timeline(scale=50000)\n def sleeper():\n datetime.datetime.now()\n # OUT: '2013-11-30 14:27:43.409291'\n time.sleep(60*60) # effectively 72 ms\n datetime.datetime.now()\n # OUT: '2013-11-30 15:28:36.240675'\n\n @hiro.Timeline()\n def sleeper_aware(timeline):\n datetime.datetime.now()\n # OUT: '2013-11-30 14:27:43.409291'\n timeline.forward(60*60)\n datetime.datetime.now()\n # OUT: '2013-11-30 15:28:36.240675'\n\n==============\nHiro executors\n==============\n\nIn order to execute certain callables within a ``Timeline`` context, two\nshortcut functions are provided.\n\n* ``run_sync(factor=1, callable, *args, **kwargs)``\n* ``run_async(factor=1, callable, *args, **kwargs)``\n\nBoth functions return a ``ScaledRunner`` object which provides the following methods\n\n* ``get_execution_time``: The actual execution time of the ``callable``\n* ``get_response`` (will either return the actual return value of ``callable`` or raise the exception that was thrown)\n\n``run_async`` returns a derived class of ``ScaledRunner`` that additionally provides the following methods\n\n* ``is_running``: ``True/False`` depending on whether the callable has completed execution\n* ``join``: blocks until the ``callable`` completes execution\n\n\nExample\n=======\n\n.. code-block:: python\n\n\n import hiro\n import time\n\n def _slow_function(n):\n time.sleep(n)\n if n > 10:\n raise RuntimeError()\n return n\n\n runner = hiro.run_sync(10, _slow_function, 10)\n runner.get_response()\n # OUT: 10\n \n # due to the scale factor 10 it only took 1s to execute\n runner.get_execution_time()\n # OUT: 1.1052658557891846\n\n runner = hiro.run_async(10, _slow_function, 11)\n runner.is_running()\n # OUT: True\n runner.join()\n runner.get_execution_time()\n # OUT: 1.1052658557891846\n runner.get_response()\n # OUT: Traceback (most recent call last):\n # ....\n # OUT: File \"\", line 4, in _slow_function\n # OUT: RuntimeError", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://hiro.readthedocs.org", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hiro", "package_url": "https://pypi.org/project/hiro/", "platform": "", "project_url": "https://pypi.org/project/hiro/", "project_urls": { "Homepage": "http://hiro.readthedocs.org" }, "release_url": "https://pypi.org/project/hiro/0.5.1/", "requires_dist": null, "requires_python": "", "summary": "time manipulation utilities for python", "version": "0.5.1" }, "last_serial": 5957891, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "39d9bdcef164c787ec4580dbbafee334", "sha256": "ba0766b6a77ea2d1aa1b480f6c6d084ac8260c1bfc4a5dff8e860a707ab7c203" }, "downloads": -1, "filename": "hiro-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "39d9bdcef164c787ec4580dbbafee334", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17701, "upload_time": "2013-11-30T05:22:15", "url": "https://files.pythonhosted.org/packages/d9/9d/d97fe55dd59cf488ad90f36dd1ffff4c23a5c0be9fc17de676219e586752/hiro-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "971143947098f52b7863997e477b6ee4", "sha256": "b667f1c5a3219bb12e118485c01337b1cf133209d406768c1be26c8373496af3" }, "downloads": -1, "filename": "hiro-0.0.1.tar.gz", "has_sig": false, "md5_digest": "971143947098f52b7863997e477b6ee4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6496, "upload_time": "2013-11-30T05:22:13", "url": "https://files.pythonhosted.org/packages/32/ae/0bfae18cb7096401d3da07f419ca0485faa1d507b62d9406a53738e7da2a/hiro-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0efbd17ad0d6405eecba9bb40b66f0cc", "sha256": "12933dd76a806581c12c9b892720a848833cd09cf65bee8279214e637e3102ff" }, "downloads": -1, "filename": "hiro-0.0.2-py2.7.egg", "has_sig": false, "md5_digest": "0efbd17ad0d6405eecba9bb40b66f0cc", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17911, "upload_time": "2013-11-30T06:10:54", "url": "https://files.pythonhosted.org/packages/23/d5/e48cc345a06a6f9aa3858b33d05db430f37a229eed94de2a995cce2cfb6f/hiro-0.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d02de4f2661df12372d01994408e3b08", "sha256": "4ae025ca9c0de2edcdfa37f6852e71d666cf31539139baca3166d0f8ff7c4194" }, "downloads": -1, "filename": "hiro-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d02de4f2661df12372d01994408e3b08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6560, "upload_time": "2013-11-30T06:10:48", "url": "https://files.pythonhosted.org/packages/ff/64/3e295a5beb861f8e09f7ed21f9a50f9d445cb47f978018e45d786a7ef353/hiro-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b2ddcc86a788c5707d6b7853f6fd5049", "sha256": "85fb480d8baee22003cfa2c3e5c723426b2462171a552a4d711b617237dbed05" }, "downloads": -1, "filename": "hiro-0.0.3-py2.7.egg", "has_sig": false, "md5_digest": "b2ddcc86a788c5707d6b7853f6fd5049", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18089, "upload_time": "2013-11-30T06:28:24", "url": "https://files.pythonhosted.org/packages/e5/3b/fe8e40b13bb60251085161a40d4c398f44dcffc2bd3dc2978967d07a0082/hiro-0.0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5457cd822a1547561a887b9bbd85c744", "sha256": "da343c26675350599ce4cf112c2b869f5875063e3b64b523a068d320b441a5ec" }, "downloads": -1, "filename": "hiro-0.0.3.tar.gz", "has_sig": false, "md5_digest": "5457cd822a1547561a887b9bbd85c744", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6716, "upload_time": "2013-11-30T06:28:22", "url": "https://files.pythonhosted.org/packages/19/5f/382cd024872b2902e81faabfb63cf9ab50b01f201b5b169f003966bdc2c4/hiro-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "76bd0fe74fdca76135f46930e1da69d7", "sha256": "42f748f2714fa523d526ee28e1a715fbf1a7554e1673fc86f2fe8a223ff6da47" }, "downloads": -1, "filename": "hiro-0.0.4-py2.7.egg", "has_sig": false, "md5_digest": "76bd0fe74fdca76135f46930e1da69d7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24546, "upload_time": "2013-12-01T01:17:55", "url": "https://files.pythonhosted.org/packages/19/5c/e86352deda3408449263dda7c2657f1f565730b1dce2905c7d820601cc51/hiro-0.0.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9215292c1fd9e04b69c2356649f3d5a6", "sha256": "e60856a1a3d1621cee01713c445c930452414c212c8eebcb48fedcaa21c845fb" }, "downloads": -1, "filename": "hiro-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9215292c1fd9e04b69c2356649f3d5a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8231, "upload_time": "2013-12-01T01:17:52", "url": "https://files.pythonhosted.org/packages/e6/33/4754ebd877ef2d778dbc6a703fde7f4a0c9ab7b251feac5d19cb04470586/hiro-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "09b2f8b8fcdba94116415c7c08ea934b", "sha256": "7a78c59a2c300959c4addc3a760732ef5804399e62c4b410b4390b8ea839ce7b" }, "downloads": -1, "filename": "hiro-0.0.5-py2.7.egg", "has_sig": false, "md5_digest": "09b2f8b8fcdba94116415c7c08ea934b", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27846, "upload_time": "2013-12-01T03:27:05", "url": "https://files.pythonhosted.org/packages/4f/4f/8cfcd64c186250a60394f9ad8ddc07fe23d5e27ec5657053bf7ae014a472/hiro-0.0.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bd38553a81a475e788402e32d82f5011", "sha256": "f0c80dfc5067d58e5e87ce82003d0333257f8e7206d4389c6fdf1dcf72f62e5b" }, "downloads": -1, "filename": "hiro-0.0.5.tar.gz", "has_sig": false, "md5_digest": "bd38553a81a475e788402e32d82f5011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8274, "upload_time": "2013-12-01T03:27:02", "url": "https://files.pythonhosted.org/packages/96/f6/9235d1abb1c2ed4fcb312ea425a77db03da071fd921c7a9d527e53b5ce30/hiro-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "1248a994e15a8857df87dcbede72720e", "sha256": "63a0ddc10f3441011ae06434c4f796861205948ae7f666ee9f6e6bac44d990e5" }, "downloads": -1, "filename": "hiro-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "1248a994e15a8857df87dcbede72720e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 30123, "upload_time": "2013-12-02T01:43:53", "url": "https://files.pythonhosted.org/packages/34/27/d9b0d847b0d033f6dc6c1d8ad8c0d5816e9831b3587daaa88b57529e3247/hiro-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "20875c9e28afc333654c4bd1a0599c2e", "sha256": "4f89daf30e427a21c4f1057d1e44e8ef8490f934357f72840dbc6d141301bbae" }, "downloads": -1, "filename": "hiro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "20875c9e28afc333654c4bd1a0599c2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8925, "upload_time": "2013-12-02T01:43:50", "url": "https://files.pythonhosted.org/packages/f7/b5/c8a1e3fc3d3537a74222ce6a6e86c9a1d806209d53083c26b36024a54c96/hiro-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8051a3279f69d64e1fbc481bc84a244a", "sha256": "bc0e42a4e1729f2091e6ad7398c8f3825df8ab990bd5dcf773d2396cd6c3efc5" }, "downloads": -1, "filename": "hiro-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "8051a3279f69d64e1fbc481bc84a244a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18041, "upload_time": "2013-12-05T00:28:19", "url": "https://files.pythonhosted.org/packages/51/09/e994074e30c1861a8a9772a01764af19841ab3317f2ae83955e4c318f718/hiro-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ac236fc752ccd96d7c791af7684ecf08", "sha256": "339c1deee8d4907056e0feec688765628b6725c4a91cdb432d119a3bd23cd4e1" }, "downloads": -1, "filename": "hiro-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ac236fc752ccd96d7c791af7684ecf08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9082, "upload_time": "2013-12-05T00:28:18", "url": "https://files.pythonhosted.org/packages/e3/2f/6758e6fc7891d8942cf880f28a07f426c419889a136f08c1a5ff18895232/hiro-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ed3e17122d5ca4754b65c215961e060c", "sha256": "40dd958f9312c168bc32dbc50a365597ec9103f593ed3e65eb64a5c8c79a7250" }, "downloads": -1, "filename": "hiro-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "ed3e17122d5ca4754b65c215961e060c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17873, "upload_time": "2014-02-20T10:32:04", "url": "https://files.pythonhosted.org/packages/37/5c/9a68c81a1da1985c7c7bcfc01b249c5d4781dc3b5ed71944b0a96ab93a9c/hiro-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bad2bac812e0e04f5b9441888a1461e5", "sha256": "dbc21c959d4fc478a5a9b36be8b8ad1eb95485b179eef63bc64c614a9f8e61d5" }, "downloads": -1, "filename": "hiro-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bad2bac812e0e04f5b9441888a1461e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15041, "upload_time": "2014-02-20T10:32:02", "url": "https://files.pythonhosted.org/packages/b5/de/65d034fa846943938a4f52e849cb652a3fb1a88193066a8630b579408e9b/hiro-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4bf61c2aea6aee1ce4582b198c47b61a", "sha256": "83ba406750c1dedff576b301e5c5dffac760bc33739706616fc24cb7daebb080" }, "downloads": -1, "filename": "hiro-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "4bf61c2aea6aee1ce4582b198c47b61a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18340, "upload_time": "2014-04-01T08:01:42", "url": "https://files.pythonhosted.org/packages/fb/9e/aec7b78c45c14be3062b1bfce40259c3575d6a880a2f33eca53141ff131f/hiro-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "fdb6fb53c3aa581fbde76fd45861f3a9", "sha256": "2312ae4ded18ef9d4ed77fe9da14258708e37221c10080795c10a25596ee6740" }, "downloads": -1, "filename": "hiro-0.1.3.tar.gz", "has_sig": false, "md5_digest": "fdb6fb53c3aa581fbde76fd45861f3a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15210, "upload_time": "2014-04-01T08:01:39", "url": "https://files.pythonhosted.org/packages/c6/66/e470aeb186a11abede5a3bc6abadba5cc0a3191efff6eed5a21786be142d/hiro-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "d3296fcf50e65f037f6b75ae805d6c20", "sha256": "53a2900fd2dd4065501ba189ec0d9a00837e15992a22ef1bebddb94d4df877fe" }, "downloads": -1, "filename": "hiro-0.1.4-py2.7.egg", "has_sig": false, "md5_digest": "d3296fcf50e65f037f6b75ae805d6c20", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18323, "upload_time": "2014-04-01T08:02:42", "url": "https://files.pythonhosted.org/packages/5d/40/6952a95fbe1e88e0e6591834ea1fee4ded381a5a332eddd9334d6fb66f73/hiro-0.1.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "36e5cef965ca140fcafa377800b87492", "sha256": "e847ce4a65f8c473eae7dc55021097f5908543a153c5f22f5e4294791ea4808c" }, "downloads": -1, "filename": "hiro-0.1.4.tar.gz", "has_sig": false, "md5_digest": "36e5cef965ca140fcafa377800b87492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15194, "upload_time": "2014-04-01T08:02:40", "url": "https://files.pythonhosted.org/packages/5b/72/ea67cf802cb9a201c65cc9b98c18c715d8692c467603387a0005752a7e09/hiro-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "6e9b144577f70615e82a816f389d6895", "sha256": "306c046d06e900a9b9f92fb60edb882886e7d4c31501771b58dd9c6f1ee9eb9d" }, "downloads": -1, "filename": "hiro-0.1.5-py2.7.egg", "has_sig": false, "md5_digest": "6e9b144577f70615e82a816f389d6895", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18553, "upload_time": "2014-04-02T23:44:59", "url": "https://files.pythonhosted.org/packages/bd/e0/9b9c087ed6109d79c2266ff2f53671351440f8d3989ee33a8b5669f67834/hiro-0.1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "6957ad8b745801ea2b8fdb86a6efc659", "sha256": "828ebc5a2888306828b57d22aff4c0e846301379bf1a2e0e1b833b6454fda6db" }, "downloads": -1, "filename": "hiro-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6957ad8b745801ea2b8fdb86a6efc659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15328, "upload_time": "2014-04-02T23:44:57", "url": "https://files.pythonhosted.org/packages/07/a6/8f1ce13d4485832dc47ce57a44c1ff1362afd6a9cf1d09ab677176950388/hiro-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "755e28c5ac51fc43d634067a278a727a", "sha256": "15275016bf210fda9696fa086157b667168245800416902e5320650449713630" }, "downloads": -1, "filename": "hiro-0.1.6-py2.7.egg", "has_sig": false, "md5_digest": "755e28c5ac51fc43d634067a278a727a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18552, "upload_time": "2014-04-22T07:32:52", "url": "https://files.pythonhosted.org/packages/e7/8d/dfde0fe0de6497daa4d43920eea273583d5f772f378249092edeecf1a0af/hiro-0.1.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9f67e0eba7440e16b6fadcdfc5b0e89d", "sha256": "e1d1683105542715a7296d31dd5f4368576a5d53472fb7f3c8ac5b5af7dfe264" }, "downloads": -1, "filename": "hiro-0.1.6.tar.gz", "has_sig": false, "md5_digest": "9f67e0eba7440e16b6fadcdfc5b0e89d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15326, "upload_time": "2014-04-22T07:32:48", "url": "https://files.pythonhosted.org/packages/ce/89/73e95e8e12fdd82f7149f2d81f8fd77d2d7b10e68cd778151005e26b48db/hiro-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "68ce55ec7d7d06f094955d9dfb5d9680", "sha256": "4dddd0d1fd17b4e4081cf07aa3f82f79a781825946196d016b7ac6e9d32554ed" }, "downloads": -1, "filename": "hiro-0.1.7-py2.7.egg", "has_sig": false, "md5_digest": "68ce55ec7d7d06f094955d9dfb5d9680", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18508, "upload_time": "2014-06-13T01:33:24", "url": "https://files.pythonhosted.org/packages/01/0a/c498c3bb8b6462a69b6a0ba5dd9c134f3a36e21f13818a9f277209ef75bc/hiro-0.1.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2c947811741f69ca7cdc2146c1a4d652", "sha256": "fd65df851524d7da8fa5a83f53ccfdbceba8c0a90bb561f8d6ff911be2aa98a3" }, "downloads": -1, "filename": "hiro-0.1.7.tar.gz", "has_sig": false, "md5_digest": "2c947811741f69ca7cdc2146c1a4d652", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15554, "upload_time": "2014-06-13T01:33:20", "url": "https://files.pythonhosted.org/packages/f9/7f/399ded605e10fa501794a8b6375d7393cce0adb69cf3fc5fed318ae2428e/hiro-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "cf63e8f7666d507abe25e92d2e96f676", "sha256": "2b69060e8da5df22329c499154170c928bc8a2883cda4869955471bd7bbe0f16" }, "downloads": -1, "filename": "hiro-0.1.8-py2.7.egg", "has_sig": false, "md5_digest": "cf63e8f7666d507abe25e92d2e96f676", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17800, "upload_time": "2015-06-06T23:35:06", "url": "https://files.pythonhosted.org/packages/c8/1d/a8f448a2ba578f926f096f135db12056e59a3c0e4ab4606616a5a377320c/hiro-0.1.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bc641cc096ed57703b08be8a74a3db3d", "sha256": "ff5385c83ee2be8055d5d9f786e284f36e82a83719315d9f0246fdbd5f26ec5e" }, "downloads": -1, "filename": "hiro-0.1.8.tar.gz", "has_sig": false, "md5_digest": "bc641cc096ed57703b08be8a74a3db3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9218, "upload_time": "2015-06-06T23:35:02", "url": "https://files.pythonhosted.org/packages/4f/a6/b18a6e72d8eebd79a98c2c03a3be92c89d03180deeaa474a10c5d03f4de1/hiro-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "4e959231983e2a3e2cb22f93eceab55f", "sha256": "472345c453ccd031fbf6fcd4d907f738833a964f70c3e4e3e07c737b3bed70a2" }, "downloads": -1, "filename": "hiro-0.1.9-py2.7.egg", "has_sig": false, "md5_digest": "4e959231983e2a3e2cb22f93eceab55f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17819, "upload_time": "2015-06-07T00:01:26", "url": "https://files.pythonhosted.org/packages/78/78/f0640b2be070adc4204d812c657e5084f4a47ba131eea9ecd98d517da7f0/hiro-0.1.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3032deeb82c571f4e8761a174687d41c", "sha256": "3b19abd8873880ad59575788279731c07838e803c4f31d62410920fa6b1f95d5" }, "downloads": -1, "filename": "hiro-0.1.9.tar.gz", "has_sig": false, "md5_digest": "3032deeb82c571f4e8761a174687d41c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9354, "upload_time": "2015-06-07T00:01:22", "url": "https://files.pythonhosted.org/packages/92/12/45ce0029488cbb92bd4847b9efc7b98fec285ea6773018dd69b2ec22996f/hiro-0.1.9.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b6d991adc78d24e069e0ac43d096fe90", "sha256": "2ffd34c64003ce304fad86ddaec925a9fef4932c99c6fcf437f5efbc3c512c08" }, "downloads": -1, "filename": "hiro-0.2-py2.7.egg", "has_sig": false, "md5_digest": "b6d991adc78d24e069e0ac43d096fe90", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17915, "upload_time": "2015-06-07T23:20:56", "url": "https://files.pythonhosted.org/packages/40/56/336bd13500c6fe6d700316bf38e2a080e43a3b5980649c2240bdc9aff202/hiro-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bcac79a3e73613b79fc3db28a2cf9dcb", "sha256": "5b71a8d446c4c4efbebab4e06c9973a173c425e0eda218a86fa47244b61a9187" }, "downloads": -1, "filename": "hiro-0.2.tar.gz", "has_sig": false, "md5_digest": "bcac79a3e73613b79fc3db28a2cf9dcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9384, "upload_time": "2015-06-07T23:20:52", "url": "https://files.pythonhosted.org/packages/a3/22/0635659dbe3ea5335fc230556da45cc77bcbd981380b54ae574d29ffce63/hiro-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "7d08e5af2b8a909fd2425190d3a8aed1", "sha256": "996646d4d64f7914382b0c92e6d826b6326d3107f7f4e9f9d8cce8593f7e7d19" }, "downloads": -1, "filename": "hiro-0.3-py2.7.egg", "has_sig": false, "md5_digest": "7d08e5af2b8a909fd2425190d3a8aed1", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17894, "upload_time": "2017-05-16T02:09:37", "url": "https://files.pythonhosted.org/packages/c6/73/0962878c6256ecda0933c421a0d954d0696301ffed086795d45137921f77/hiro-0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c4e58ed0aabffa54d55cd4ca04e86b72", "sha256": "33c0a32d709fc980d54b096f1b1055a18e8dffb8e307f8ac7543fae10ededbfd" }, "downloads": -1, "filename": "hiro-0.3.tar.gz", "has_sig": false, "md5_digest": "c4e58ed0aabffa54d55cd4ca04e86b72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9355, "upload_time": "2017-05-16T02:09:34", "url": "https://files.pythonhosted.org/packages/dd/70/c8fbecf1e4d161d9d8a7f6210bde3e986cebf7b18ad242b344358ec20782/hiro-0.3.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "283eb2b47a157e052a49a66be78c1bf6", "sha256": "fcfffebeb0557409b6234a1b8afa57175f31282defa7356f9ad498e81b462316" }, "downloads": -1, "filename": "hiro-0.5-py2.7.egg", "has_sig": false, "md5_digest": "283eb2b47a157e052a49a66be78c1bf6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17924, "upload_time": "2017-07-25T23:21:22", "url": "https://files.pythonhosted.org/packages/55/cd/5a46a9d4f17e5151a227e8cc3cecc8ba1c443676fcba41dcd67910a44764/hiro-0.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "efd53cb605336e3d62750f0b983508f8", "sha256": "57d9dac63077f24c3d0132c02ac5c71e4bd1d79bdac30dccad4c83fadd49fa1c" }, "downloads": -1, "filename": "hiro-0.5.tar.gz", "has_sig": false, "md5_digest": "efd53cb605336e3d62750f0b983508f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11022, "upload_time": "2017-07-25T23:21:15", "url": "https://files.pythonhosted.org/packages/4f/88/9d052e01c66cd47d2d6cbb6b97b64752e3b68a0a53263ea6d6c36a776325/hiro-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "2e6f6a05e89009de312d9df80d49c8be", "sha256": "8fb52fac61a360a4bd955a2e0c975483da28aba99196febb99d5dda38b5f48e0" }, "downloads": -1, "filename": "hiro-0.5.1-py3.7.egg", "has_sig": false, "md5_digest": "2e6f6a05e89009de312d9df80d49c8be", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 18368, "upload_time": "2019-10-11T01:35:20", "url": "https://files.pythonhosted.org/packages/da/4d/dd859a600f050ba1ebe79d524853959fb24173839441850cff083580f070/hiro-0.5.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "673573a6663fb513ff07c43ff126d0d9", "sha256": "d10e3b7f27b36673b4fa1283cd38d610326ba1ff1291260d0275152f15ae4bc7" }, "downloads": -1, "filename": "hiro-0.5.1.tar.gz", "has_sig": false, "md5_digest": "673573a6663fb513ff07c43ff126d0d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10110, "upload_time": "2019-10-11T01:35:22", "url": "https://files.pythonhosted.org/packages/d9/0c/df8455f9dfae521a9c5ee23fb1be42885ac9507290cb5c72a34c2ea916b8/hiro-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2e6f6a05e89009de312d9df80d49c8be", "sha256": "8fb52fac61a360a4bd955a2e0c975483da28aba99196febb99d5dda38b5f48e0" }, "downloads": -1, "filename": "hiro-0.5.1-py3.7.egg", "has_sig": false, "md5_digest": "2e6f6a05e89009de312d9df80d49c8be", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 18368, "upload_time": "2019-10-11T01:35:20", "url": "https://files.pythonhosted.org/packages/da/4d/dd859a600f050ba1ebe79d524853959fb24173839441850cff083580f070/hiro-0.5.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "673573a6663fb513ff07c43ff126d0d9", "sha256": "d10e3b7f27b36673b4fa1283cd38d610326ba1ff1291260d0275152f15ae4bc7" }, "downloads": -1, "filename": "hiro-0.5.1.tar.gz", "has_sig": false, "md5_digest": "673573a6663fb513ff07c43ff126d0d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10110, "upload_time": "2019-10-11T01:35:22", "url": "https://files.pythonhosted.org/packages/d9/0c/df8455f9dfae521a9c5ee23fb1be42885ac9507290cb5c72a34c2ea916b8/hiro-0.5.1.tar.gz" } ] }