{ "info": { "author": "Rotem Yaari", "author_email": "vmalloc@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Overview\n========\n\n.. image:: https://travis-ci.org/Infinidat/infi.pyutils.png?branch=master\n\n*infi.pyutils* is a set of utilities for various tasks in Python.\n\nContents\n========\n\nIteration Utilities\n---------------\n\niterate\n+++++++\n\n*iterate* is a django-style for loop over elements, yielding convenient information about the iterated collection::\n\n >>> from __future__ import print_function\n >>> from infi.pyutils import iterate\n >>> for iteration, element in iterate(range(3)):\n ... print(element)\n ... print(iteration.first)\n ... print(iteration.counter0)\n ... print(iteration.counter1)\n ... print(iteration.last)\n 0\n True\n 0\n 1\n False\n 1\n False\n 1\n 2\n False\n 2\n False\n 2\n 3\n True\n\nThis even works for generators and other iterables::\n\n >>> list(iterate(i for i in range(3)))[-1][0].last\n True\n\n .. note:: For iterated collections which are not simple ones (i.e. generators or other types), some prefetching is made to determing last elements\n\nrenumerate\n++++++++++\n\n*renumerate* is like *enumerate*, only backwards. This is useful for popping from a list in-place::\n\n >>> from infi.pyutils import renumerate\n >>> l = [1, 2, 3, 4]\n >>> for index, element in renumerate(l):\n ... if element % 2 == 0:\n ... unused = l.pop(index)\n >>> l\n [1, 3]\n\nThis also works for generators (although slightly less efficient):\n\n >>> x = list(renumerate(i for i in range(3)))\n >>> x\n [(2, 2), (1, 1), (0, 0)]\n\n*infi.pyutils* provides a set of mixin classes to make objects comparable and hashable based on a single key::\n\n >>> from infi.pyutils import ComparableByKey\n >>> class MyComparableType(ComparableByKey):\n ... def __init__(self, value):\n ... super(MyComparableType, self).__init__()\n ... self.value = value\n ... def _get_key(self):\n ... return self.value\n >>> MyComparableType(\"c\") > MyComparableType(\"b\")\n True\n\nReflection\n----------\n\nMethod Map\n++++++++++\n\nMethod maps is intended for the repeating pattern described below:\n::\n\n >>> class Handler(object):\n ... def handle_string(self, s):\n ... if s == 'some.string.1':\n ... return self._handle_string_1()\n ... elif s == 'some.string.2':\n ... return self._handle_string_2()\n ... raise NotImplementedError()\n\nIf the strings can be legitimate python variable names, one would interpolate the string in the handler name, and then use getattr to get them. Unfortunately, this is not possible with any string (and also not very explicit).\n\nUsing Method Maps is pretty straightforward:\n\n >>> from infi.pyutils.method_map import MethodMap\n >>> class Handler(object):\n ... HANDLERS = MethodMap()\n ... @HANDLERS.registering('some.string.1')\n ... def _handle_string_1(self):\n ... return 1\n ... @HANDLERS.registering('some.string.2')\n ... def _handle_string_2(self):\n ... return 2\n ... def handle_string(self, s):\n ... handler = self.HANDLERS.get(s, None)\n ... if handler is None:\n ... raise NotImplementedError()\n ... return handler()\n >>> h = Handler()\n >>> h.handle_string('some.string.1')\n 1\n >>> h.handle_string('some.string.2')\n 2\n >>> h.handle_string('bla') # doctest: +IGNORE_EXCEPTION_DETAIL\n Traceback (most recent call last):\n ...\n NotImplementedError\n\nFunctors\n--------\n*infi.pyutils.functors* is a utility package for working with function or function-like objects.\n\nMisc. Functors\n++++++++++++++\n*Always* is used to constantly return a value:\n::\n\n >>> from infi.pyutils.functors import Always\n >>> a = Always(5)\n >>> a\n \n >>> a()\n 5\n >>> a(1, 2, 3)\n 5\n\n*Identity* is a functor that always returns its single argument:\n::\n\n >>> from infi.pyutils.functors import Identity\n >>> Identity\n \n >>> Identity(2)\n 2\n >>> obj = object()\n >>> Identity(obj) is obj\n True\n\nPASS\n++++\n\nPASS is a 'null functor'. You can always call it anyway you like, it will always return None::\n\n >>> from infi.pyutils.functors import PASS\n >>> PASS(1, 2, 3)\n >>> PASS(666, a=2, c=4)\n\nYou can also use it as a context manager that does nothing::\n\n >>> with PASS:\n ... pass\n\nPredicates\n++++++++++\nPredicates are functors taking arguments and returning True/False\n::\n\n >>> from infi.pyutils.predicates import Predicate\n >>> p = Predicate(lambda obj: obj is None)\n >>> p(None)\n True\n >>> p(1)\n False\n\nAlwaysTrue and AlwaysFalse are available:\n::\n\n >>> from infi.pyutils.predicates import AlwaysTrue, AlwaysFalse\n >>> AlwaysTrue(1)\n True\n >>> AlwaysTrue()\n True\n >>> AlwaysFalse(1)\n False\n >>> AlwaysFalse(343)\n False\n >>> AlwaysFalse()\n False\n\nIdentity:\n::\n\n >>> from infi.pyutils.predicates import Identity\n >>> is_none = Identity(None)\n >>> is_none\n \n >>> is_none(None)\n True\n >>> is_none(1)\n False\n\nEquality:\n::\n\n >>> from infi.pyutils.predicates import Equality\n >>> class NeverEquals(object):\n ... def __eq__(self, other):\n ... return False\n >>> equals_to_1 = Equality(1)\n >>> equals_to_1\n < == 1>\n >>> equals_to_1(1)\n True\n >>> equals_to_1(2)\n False\n >>> obj = NeverEquals()\n >>> Equality(obj)(obj) # make sure it's not identity\n False\n\nAttribute checks:\n::\n\n >>> class SomeObject(object):\n ... pass\n >>> a = SomeObject()\n >>> a.x = 1\n >>> a.y = 2\n >>> a.z = 4\n >>> b = SomeObject()\n >>> b.x = 2\n >>> b.y = 3\n >>> b.z = 4\n >>> from infi.pyutils.predicates import ObjectAttributes\n >>> match = ObjectAttributes(z=4)\n >>> match\n <.z==4>\n >>> match(a)\n True\n >>> match(b)\n True\n >>> match = ObjectAttributes(x=1, y=2)\n >>> match(a)\n True\n >>> match(b)\n False\n >>> ObjectAttributes(missing_attribute=2)(a)\n False\n\nDictionary items check:\n >>> d = dict(a=1, b=2)\n >>> from infi.pyutils.predicates import DictionaryItems\n >>> match = DictionaryItems(a=1)\n >>> match\n <['a']==1>\n >>>\n >>> match(d)\n True\n >>> match(dict(a=2, b=2))\n False\n >>> match(dict())\n False\n >>> match(dict(b=2))\n False\n\n\nLogical aggregations are done with And, Or, Not:\n::\n\n >>> from infi.pyutils.predicates import And, Or, Not\n >>> obj = object()\n >>> is_none_or_obj = Or(Identity(obj), Identity(None))\n >>> is_none_or_obj #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE\n Or(>, )\n >>> is_none_or_obj(obj)\n True\n >>> is_none_or_obj(None)\n True\n >>> is_none_or_obj(1)\n False\n >>> is_not_none = Not(is_none)\n >>> is_not_none\n >\n >>> is_not_none(None)\n False\n >>> is_not_none(1)\n True\n\nLazy\n----\n*infi.pyutils.lazy* presents utilities for lazy computation and caching\n\ncached_property and cached_method\n+++++++++++++++++++++++++++++++++\n\n >>> from infi.pyutils.lazy import cached_property\n >>> class MyClass(object):\n ... called = False\n ... @cached_property\n ... def value(self):\n ... assert not self.called\n ... self.called = True\n ... return 1\n >>> m = MyClass()\n >>> m.value\n 1\n >>> m.value\n 1\n\n >>> from infi.pyutils.lazy import cached_method\n >>> class MyClass(object):\n ... called = False\n ... @cached_method\n ... def get_value(self):\n ... assert not self.called\n ... self.called = True\n ... return 1\n >>> m = MyClass()\n >>> m.get_value()\n 1\n >>> m.get_value()\n 1\n\nDecorator Utilities\n-------------------\nThe *infi.pyutils.decorators* package contains a specially-crafted *wraps* implementation (functools.wraps counterpart) preserving information on the originally wrapped function. It also patches *inspect.getargspec* and IPython's similar mechanisms in order to display proper argument information on wrapped functions. It is therefore recommended to use it instead of the default ones.\n\n\nContext Utilities\n-----------------\n*infi.pyutils.contexts* contains *contextmanager*, a drop-in replacement for *contextlib.contextmanager*, using the crafted *wraps* implementation from *decorators*.\n\nImport Utilities\n----------------\n*infi.pyutils.importing* contains **import_file**, a function for importing a module by its name::\n\n >>> from infi.pyutils.importing import *\n >>> import tempfile, os\n >>> temp_dir = tempfile.mkdtemp()\n >>> filename = os.path.join(temp_dir, \"my_file.py\")\n >>> with open(filename, \"w\") as f:\n ... _ = f.write(\"a=2\")\n >>> module = import_file(filename)\n >>> module.a\n 2\n\nReference Counters\n------------------\n*infi.pyutils.reference_counter* is an implementation of a reference counter with dependency support::\n\n >>> from infi.pyutils.reference_counter import ReferenceCounter\n >>> r = ReferenceCounter()\n >>> r.get_reference_count()\n 0\n >>> r.add_reference()\n >>> r.get_reference_count()\n 1\n\nSeveral reference counters can be chained via dependency::\n\n >>> r1 = ReferenceCounter()\n >>> r2 = ReferenceCounter()\n >>> r1.depend_on_counter(r2)\n >>> r1.add_reference()\n >>> r2.get_reference_count()\n 1\n\nAlso, as a convenience, if you add a dependency to a counter that already has a nonzero refcount, the dependent counter is automatically increased as well::\n\n >>> r1 = ReferenceCounter()\n >>> r1.add_reference()\n >>> r2 = ReferenceCounter()\n >>> r1.depend_on_counter(r2)\n >>> r2.get_reference_count()\n 1\n\nYou can add a callback to be called when the reference count drops to zero::\n\n >>> r1 = ReferenceCounter()\n >>> def callback(r):\n ... assert r is r1\n ... print(\"called!\")\n >>> r1.add_zero_refcount_callback(callback)\n >>> r1.add_reference()\n >>> r1.remove_reference()\n called!\n\nMisc. Utilities\n---------------\n\nrecursive_getattr\n+++++++++++++++++\n\n >>> from infi.pyutils import recursive_getattr\n >>> class Object(object):\n ... pass\n >>> a = Object()\n >>> a.b = Object()\n >>> a.b.c = 2\n >>> recursive_getattr(a, 'b.c')\n 2\n >>> recursive_getattr(a, 'b.d', 4)\n 4\n\nReprify\n+++++++\n\n*Reprify* is intended to force a __repr__/__str__ on objects that don't properly support them::\n\n >>> from infi.pyutils import Reprify\n >>> class SomeObject(object):\n ... pass\n >>> some_obj = SomeObject()\n >>> s = Reprify(some_obj, repr='some_repr_here', str='some_str_here')\n >>> repr(s)\n 'some_repr_here'\n >>> str(s)\n 'some_str_here'\n\nWhile still preserving the identity and attributes::\n\n >>> some_obj.attr = 2\n >>> s.attr\n 2\n >>> isinstance(s, SomeObject)\n True\n\nException Retry Utilities\n-------------------------\nThe *infi.pyutils.retry* package provides a mechanism to easily define when and how to retry a failed operation. It allows you to wrap methods in your class and plug in an error handling strategy (infinite retries, retry N times, expontential decay timeout, etc.) without changing your code.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Infinidat/infi.pyutils", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "infi.pyutils", "package_url": "https://pypi.org/project/infi.pyutils/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/infi.pyutils/", "project_urls": { "Homepage": "https://github.com/Infinidat/infi.pyutils" }, "release_url": "https://pypi.org/project/infi.pyutils/1.1.3/", "requires_dist": null, "requires_python": "", "summary": "Misc. pure-python utilities", "version": "1.1.3" }, "last_serial": 5612887, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7a57561512a4e936b3887e5d47e92fa9", "sha256": "066fbac2c134530825582a6a07be553cdcdaeb0b5ffa7b4afa78604a767a3bdc" }, "downloads": -1, "filename": "infi.pyutils-0.0.1-py2.6.egg", "has_sig": false, "md5_digest": "7a57561512a4e936b3887e5d47e92fa9", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 20763, "upload_time": "2011-08-03T14:00:57", "url": "https://files.pythonhosted.org/packages/c8/af/82eeb2804a64383318206dd85a79789b95264325cbe3a5944fadc33dfae7/infi.pyutils-0.0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c616f15675811c81c9230c22c214866d", "sha256": "6e5bb3836289eb21480d37333f0e1769f2283bb367529c1ddb94ca182048f631" }, "downloads": -1, "filename": "infi.pyutils-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "c616f15675811c81c9230c22c214866d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 20708, "upload_time": "2011-08-03T14:00:53", "url": "https://files.pythonhosted.org/packages/3f/34/a4cc08d48b989d190a343161b6a0d7b94d9ac9497ef70e846f8cde33c782/infi.pyutils-0.0.1-py2.7.egg" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "7070398a13342ee2ed12a2d2cf960fcb", "sha256": "13cd8e7fe943f88da046b83a9022577751ef282887f9b7192f314064e83d480d" }, "downloads": -1, "filename": "infi.pyutils-0.0.10-py2.6.egg", "has_sig": false, "md5_digest": "7070398a13342ee2ed12a2d2cf960fcb", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 28005, "upload_time": "2011-08-23T12:56:27", "url": "https://files.pythonhosted.org/packages/fb/d9/57dae856ef158ac659e0ef105c4a82341de977612924905546dba795bac2/infi.pyutils-0.0.10-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "7d1c29703d2d699c7366ce4c890dd265", "sha256": "0063bb3ca1f1f8aa4640ca8ef60f54e4af3d585f5326ce97f246cd43de3375dd" }, "downloads": -1, "filename": "infi.pyutils-0.0.10-py2.7.egg", "has_sig": false, "md5_digest": "7d1c29703d2d699c7366ce4c890dd265", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27853, "upload_time": "2011-08-23T12:56:21", "url": "https://files.pythonhosted.org/packages/e8/af/15cbdadfc9f6e06840607fb91aff9e8dae282b7355c1652725dfb82b9d01/infi.pyutils-0.0.10-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2c6a90ab9d9e50d51151aee3d81eaff3", "sha256": "65eff23c6771951154f5eb95559f99ce8273f1c84350b8673beef0bf4a68e5b9" }, "downloads": -1, "filename": "infi.pyutils-0.0.10.tar.gz", "has_sig": false, "md5_digest": "2c6a90ab9d9e50d51151aee3d81eaff3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7868, "upload_time": "2011-08-23T12:56:30", "url": "https://files.pythonhosted.org/packages/09/a3/f08d5f1269d7c49a9c28ffdd7483d8e2e462cf5eb5f5fae8548ab64b9426/infi.pyutils-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "f2f3f1b29ee5efa801c85d6eed848758", "sha256": "e9af198ad77dc98d534bda71b349996f48ff22013c11a7f3b3ddcc083a045409" }, "downloads": -1, "filename": "infi.pyutils-0.0.11-py2.6.egg", "has_sig": false, "md5_digest": "f2f3f1b29ee5efa801c85d6eed848758", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 28080, "upload_time": "2011-08-23T14:58:47", "url": "https://files.pythonhosted.org/packages/28/76/1400008382515a9a384b4e5112e340439b161fe157cfa297034079e5a96b/infi.pyutils-0.0.11-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "1ffe076fb01e087ac0b4f9f19de36678", "sha256": "0fca03c7125d139157a39ecfc98a0099981ce9ff1ebfd8539985012241acfefe" }, "downloads": -1, "filename": "infi.pyutils-0.0.11-py2.7.egg", "has_sig": false, "md5_digest": "1ffe076fb01e087ac0b4f9f19de36678", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27924, "upload_time": "2011-08-23T14:58:43", "url": "https://files.pythonhosted.org/packages/34/40/b1a2b0e276cb746ffbc17cc26529c3c45f09240878e91b53a2c1fa93e482/infi.pyutils-0.0.11-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "73f216e75e3904dcdc70934910401e25", "sha256": "d67b8b4c95454f10f9425a5c7bb3b3b6fa7fb4b9dd41705750584cd1ff95acdd" }, "downloads": -1, "filename": "infi.pyutils-0.0.11.tar.gz", "has_sig": false, "md5_digest": "73f216e75e3904dcdc70934910401e25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7924, "upload_time": "2011-08-23T14:58:50", "url": "https://files.pythonhosted.org/packages/05/a0/ab837ecf6dbc945f0458db65eab9d769bcf771bc015c2dec18ad519a0774/infi.pyutils-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "0500ebccf27ea5a25f5dc39bb43151bf", "sha256": "dc0de6aedbcd5c22a3be62d70b50c1da6bd5ed6834dca79f0ef75cdbb195d359" }, "downloads": -1, "filename": "infi.pyutils-0.0.12.tar.gz", "has_sig": false, "md5_digest": "0500ebccf27ea5a25f5dc39bb43151bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7751, "upload_time": "2011-10-09T13:08:18", "url": "https://files.pythonhosted.org/packages/de/20/1aaadd4a0e47e308723f90232d4eb16bb8c03988fd34d23801187eff58ae/infi.pyutils-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "8ac26a640e95055d1055a00593375954", "sha256": "b2209b4371fbbf92fb5dd2e3a0f8d35ce9a78c0cc1197c7ba5d4bb5b7ae6106f" }, "downloads": -1, "filename": "infi.pyutils-0.0.13.tar.gz", "has_sig": false, "md5_digest": "8ac26a640e95055d1055a00593375954", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8449, "upload_time": "2011-10-16T15:26:30", "url": "https://files.pythonhosted.org/packages/c3/48/eb1b4e478d4515e120cf297d5a2dd076ef4b73840bfb2625df478e7af1fe/infi.pyutils-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "97ee2527d1005be0ffeefa328e147b64", "sha256": "c6b4eb4100372ccccd248cc447b93dde63365cda46acb2652f032fe6d457a33f" }, "downloads": -1, "filename": "infi.pyutils-0.0.14.tar.gz", "has_sig": false, "md5_digest": "97ee2527d1005be0ffeefa328e147b64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8482, "upload_time": "2011-10-16T15:31:13", "url": "https://files.pythonhosted.org/packages/07/c4/12d0e2f29cc28690938f563359c2eaff0582538c015a58f2a2e9fd5f48cf/infi.pyutils-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "680bea6b911c9f40096bb088d8693c76", "sha256": "21776b8134dee03c0d646b056a1e8b2eb6e1c5d4743e7ccce21c074d9987ef87" }, "downloads": -1, "filename": "infi.pyutils-0.0.15.tar.gz", "has_sig": false, "md5_digest": "680bea6b911c9f40096bb088d8693c76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8719, "upload_time": "2011-10-19T11:47:37", "url": "https://files.pythonhosted.org/packages/d4/9b/1d1de86e160fefe092ca6a7b1e6e333a59bac3f4cfb4346c31225d9681a0/infi.pyutils-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "629e6db4c3366aa13a25a8e415f751f4", "sha256": "03ca491a5564ac95908ab0dad4c9790aedc7ec432f01d0713e5404ab735da75a" }, "downloads": -1, "filename": "infi.pyutils-0.0.16.tar.gz", "has_sig": false, "md5_digest": "629e6db4c3366aa13a25a8e415f751f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8931, "upload_time": "2011-11-10T09:54:32", "url": "https://files.pythonhosted.org/packages/a4/ee/3d51d0582b3eda2cfc50e1a520d3036f407f9cd597dfec5d7126879f423c/infi.pyutils-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "92f2a9f0a8984363847fe443560cddbc", "sha256": "eafa4e92e9a7586275c1352ce67355f62974f8010b44dbc4cf0df6ba92b1585a" }, "downloads": -1, "filename": "infi.pyutils-0.0.17.tar.gz", "has_sig": false, "md5_digest": "92f2a9f0a8984363847fe443560cddbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8911, "upload_time": "2011-11-10T09:57:38", "url": "https://files.pythonhosted.org/packages/3e/3b/f03edd8b49deca049089f74dc6265e840e3adc6f8046b1311f8b1c612ece/infi.pyutils-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "2f66d277f89bc521a278ec63a49ea9fd", "sha256": "6d3bcbc9b016f15bf1e8b480444f8d618fbc221bebed5692992d035dbba1750a" }, "downloads": -1, "filename": "infi.pyutils-0.0.18.tar.gz", "has_sig": false, "md5_digest": "2f66d277f89bc521a278ec63a49ea9fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9402, "upload_time": "2011-11-13T14:47:32", "url": "https://files.pythonhosted.org/packages/07/36/cf8db215fb7070d662bc8d1c50cee15fec84df07eb36f6e8773477fa1184/infi.pyutils-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "57d75c1bb6fe6e020cbbd024c864cfc6", "sha256": "b8bb7371c88b78705d5a930fa1edd730fd8da438bb744f0aa8514cf5cca8e7bc" }, "downloads": -1, "filename": "infi.pyutils-0.0.19.tar.gz", "has_sig": false, "md5_digest": "57d75c1bb6fe6e020cbbd024c864cfc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9440, "upload_time": "2011-11-15T12:22:28", "url": "https://files.pythonhosted.org/packages/4e/35/8b2ef40da594237bdb80b867f0dacd60f2c3e5372156a6943f7b113e694b/infi.pyutils-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ce6f7f848471528a10c729f8e78fde6d", "sha256": "fd2bef5c2b5923bf025f9a357f2a14356bc0bd4975860737146ae0aa3b63682d" }, "downloads": -1, "filename": "infi.pyutils-0.0.2-py2.6.egg", "has_sig": false, "md5_digest": "ce6f7f848471528a10c729f8e78fde6d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 22951, "upload_time": "2011-08-03T14:17:17", "url": "https://files.pythonhosted.org/packages/ef/e2/db920b5daed53a2a3a372e041045646415825a32d49f6bb1856ba1b2bfeb/infi.pyutils-0.0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "921850da98d946c2d482354183fd6287", "sha256": "ed7418352ac586ed7895a5808cd14ef830514bfc94a948c083d0eb799155c5e7" }, "downloads": -1, "filename": "infi.pyutils-0.0.2-py2.7.egg", "has_sig": false, "md5_digest": "921850da98d946c2d482354183fd6287", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 22881, "upload_time": "2011-08-03T14:17:16", "url": "https://files.pythonhosted.org/packages/87/2e/1cb080be0b87dadec2f5fc2b2e2073520194f73da72a7e6e74cfc0d3ad33/infi.pyutils-0.0.2-py2.7.egg" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "9bdf916fe5d340cc107e44051127a8ec", "sha256": "2c1ecc03a747de95652f5e0f0ad4838fd3d52db61e1ff048d76317db9f9cd741" }, "downloads": -1, "filename": "infi.pyutils-0.0.20.tar.gz", "has_sig": false, "md5_digest": "9bdf916fe5d340cc107e44051127a8ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9445, "upload_time": "2012-01-18T15:54:34", "url": "https://files.pythonhosted.org/packages/ff/e8/74106e9344a9f1ecca9b9908e8cb8ef21c0989ebb0feff307fd36af8adb0/infi.pyutils-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "bbddc7313c8ef191e5221f560712dfe4", "sha256": "0e39455654958a821712f2e7fab62320c83c1cbcad5d0772e78614c04ae0b709" }, "downloads": -1, "filename": "infi.pyutils-0.0.21.tar.gz", "has_sig": false, "md5_digest": "bbddc7313c8ef191e5221f560712dfe4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9718, "upload_time": "2012-03-19T14:52:27", "url": "https://files.pythonhosted.org/packages/5f/4c/26e7c21633022ffbf0e6e33d677b2c9abf266af51ef41a957773ce2d9adb/infi.pyutils-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "c615938529035ff442b525d8251e7a00", "sha256": "d775eb5807f3cb8c4db6f9537ae13ca0dedfc7fe153218e04a854a026af24c66" }, "downloads": -1, "filename": "infi.pyutils-0.0.22.tar.gz", "has_sig": false, "md5_digest": "c615938529035ff442b525d8251e7a00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9735, "upload_time": "2012-04-16T15:18:39", "url": "https://files.pythonhosted.org/packages/c3/e5/68671fe18db4929a91556046bdcec690bd8ac7547d2467109accb52355e1/infi.pyutils-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "17224f785c22bcf17f66737b8babceb8", "sha256": "f3958161164dc4e41451466b3a167fa797cede6fa631c3764f866093df52753f" }, "downloads": -1, "filename": "infi.pyutils-0.0.23.tar.gz", "has_sig": false, "md5_digest": "17224f785c22bcf17f66737b8babceb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9899, "upload_time": "2012-06-18T14:31:14", "url": "https://files.pythonhosted.org/packages/42/3d/621912a69c1c2da9a06667afa0b54756a04eb43bff4d85671a97508ada2a/infi.pyutils-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "8289b44d33b8748eca3c8221af857839", "sha256": "e47c5f8a5c91292c4010ec91ca70ae180ef91f57830a5493b0039e6a18fd3a7e" }, "downloads": -1, "filename": "infi.pyutils-0.0.24.tar.gz", "has_sig": false, "md5_digest": "8289b44d33b8748eca3c8221af857839", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9898, "upload_time": "2012-07-12T13:20:45", "url": "https://files.pythonhosted.org/packages/09/1d/d901c6657799337cc44e36ead1ef9450df4af106dcfee49956fc2e6805bc/infi.pyutils-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "bcf076b1bd77ce5e40b3c322456075eb", "sha256": "90089419e28bbceed62a964f6f2f6ef9ffc02dbb67abf3d63805af58a7a40fdf" }, "downloads": -1, "filename": "infi.pyutils-0.0.25.tar.gz", "has_sig": false, "md5_digest": "bcf076b1bd77ce5e40b3c322456075eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9941, "upload_time": "2012-07-22T09:15:16", "url": "https://files.pythonhosted.org/packages/62/11/4ab0e5609549bcbd711829f718f16d83fec90b225cd91d1f93cae85990c9/infi.pyutils-0.0.25.tar.gz" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "686079ae2abfc3cb353867fc093c8966", "sha256": "ca40ff760eef4495b7e964966302b26f314cc5c0555f38eb835b8356275690d9" }, "downloads": -1, "filename": "infi.pyutils-0.0.26.tar.gz", "has_sig": false, "md5_digest": "686079ae2abfc3cb353867fc093c8966", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13231, "upload_time": "2012-08-02T12:35:48", "url": "https://files.pythonhosted.org/packages/77/97/5f7748eb6f3ad236c2cf1555e09c73a2354fc6daf709d3aeb7cc710ce102/infi.pyutils-0.0.26.tar.gz" } ], "0.0.27": [ { "comment_text": "", "digests": { "md5": "b0a25787d37e60683e193c7cc80736aa", "sha256": "0546b93a79f2ae44ffc464c16e3f4fc5f6e2ee951543234238355ece802c059f" }, "downloads": -1, "filename": "infi.pyutils-0.0.27.tar.gz", "has_sig": false, "md5_digest": "b0a25787d37e60683e193c7cc80736aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15563, "upload_time": "2012-08-07T16:57:46", "url": "https://files.pythonhosted.org/packages/71/e4/71369824194c6adbad835fdd43440d3241d60cd478ca8caae6fad95834f9/infi.pyutils-0.0.27.tar.gz" } ], "0.0.29": [ { "comment_text": "", "digests": { "md5": "221fc25dd7016ff9fd872a6904e52deb", "sha256": "21b2d36be175164d540b3e30db44b586975878135d19ec52fcb1a292e94ed966" }, "downloads": -1, "filename": "infi.pyutils-0.0.29.tar.gz", "has_sig": false, "md5_digest": "221fc25dd7016ff9fd872a6904e52deb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15983, "upload_time": "2013-01-16T13:44:24", "url": "https://files.pythonhosted.org/packages/01/2a/f59811c0111a93a937d639ba4ec2fe958cdf56e8f954732f032763a8a18a/infi.pyutils-0.0.29.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8e72c9b900e6d490a4568f1c2612b1e1", "sha256": "25a8794bbc1732be0d3d3ce2a69ca062847c25b70e6b9f24e83d8c008f520de0" }, "downloads": -1, "filename": "infi.pyutils-0.0.3-py2.6.egg", "has_sig": false, "md5_digest": "8e72c9b900e6d490a4568f1c2612b1e1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 24162, "upload_time": "2011-08-04T15:18:50", "url": "https://files.pythonhosted.org/packages/c1/6b/6354dc6ccf6233123abf84eaad6f55d8cb1c6b48347b28102050e6a32fb1/infi.pyutils-0.0.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "99c1969f278c739d02ab69f8a44a512f", "sha256": "f2420c80488f67873f0af51e290a80dfc1e055f3b7e5d68b9431d65237778d89" }, "downloads": -1, "filename": "infi.pyutils-0.0.3-py2.7.egg", "has_sig": false, "md5_digest": "99c1969f278c739d02ab69f8a44a512f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24091, "upload_time": "2011-08-04T15:18:46", "url": "https://files.pythonhosted.org/packages/51/55/4f8c9b3c364280ecb86de1302febb158d2715f679b4baf844b1086cdabbb/infi.pyutils-0.0.3-py2.7.egg" } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "8a8a1e7ed7669cd97158377b2974f439", "sha256": "ea812098aeb05c273135f4f677d4058ea699c1020636c88a7279a6c2dcdd4744" }, "downloads": -1, "filename": "infi.pyutils-0.0.30.tar.gz", "has_sig": false, "md5_digest": "8a8a1e7ed7669cd97158377b2974f439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16235, "upload_time": "2013-01-27T13:25:40", "url": "https://files.pythonhosted.org/packages/18/70/58b745a8896301595c509743f599b5686ab4ab4702bf11f712313761b384/infi.pyutils-0.0.30.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "3c91c288c824a04b5d4393b043573ddb", "sha256": "7e4da82086175b59e08337b654f71a86f199019e45778841c13dcb2bf0cb17c3" }, "downloads": -1, "filename": "infi.pyutils-0.0.4-py2.6.egg", "has_sig": false, "md5_digest": "3c91c288c824a04b5d4393b043573ddb", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 24659, "upload_time": "2011-08-04T16:22:07", "url": "https://files.pythonhosted.org/packages/03/92/ae810ae06f81f31c722506e74354437122a3f671bdd6c9f700bf951c58ba/infi.pyutils-0.0.4-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "dc378a3b784ad5023ec8bb148d42e0c7", "sha256": "934616860170c21c11e545836c0464aead3746233362244a14743a1b45c7907f" }, "downloads": -1, "filename": "infi.pyutils-0.0.4-py2.7.egg", "has_sig": false, "md5_digest": "dc378a3b784ad5023ec8bb148d42e0c7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24583, "upload_time": "2011-08-04T16:22:04", "url": "https://files.pythonhosted.org/packages/1f/f1/df79a31839f59e13ed5af5d6ad4db0d1bc327d4508c589fa5d604788c63b/infi.pyutils-0.0.4-py2.7.egg" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a8891296ff4fdd8e9595a0e46146082d", "sha256": "908665539671ce5c92b19720813e52bac5ba021a510689a58c87168a8d2a93fe" }, "downloads": -1, "filename": "infi.pyutils-0.0.5-py2.6.egg", "has_sig": false, "md5_digest": "a8891296ff4fdd8e9595a0e46146082d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 24880, "upload_time": "2011-08-11T15:12:28", "url": "https://files.pythonhosted.org/packages/9d/9f/6bbe3daf8fa4211772fae2d8bbdceaf1326c99c3640b67df05c6f511ab70/infi.pyutils-0.0.5-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "157f57b250b920eec4f26f1a22b52d7f", "sha256": "3c526d0f188680f7638b52f7a9df1a208d0b22206369d7e18393b16bc0a25777" }, "downloads": -1, "filename": "infi.pyutils-0.0.5-py2.7.egg", "has_sig": false, "md5_digest": "157f57b250b920eec4f26f1a22b52d7f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24763, "upload_time": "2011-08-11T15:12:21", "url": "https://files.pythonhosted.org/packages/5c/43/dce444bb0e070a3146132c6ee10e0f89b7f6721d1e906362dfebd4cdf176/infi.pyutils-0.0.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "57594e6bd1ab4c3d970769f1754d8345", "sha256": "e973f2ba41609ae1b83178a0c572f1c3c81fd3a863f81513812eac1bafc63ea3" }, "downloads": -1, "filename": "infi.pyutils-0.0.5.tar.gz", "has_sig": false, "md5_digest": "57594e6bd1ab4c3d970769f1754d8345", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5807, "upload_time": "2011-08-11T15:12:31", "url": "https://files.pythonhosted.org/packages/5d/ad/2230adcebbf285e949bc0da886ba3005f3be130a086639e1b677bcb0372b/infi.pyutils-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "e5c324e2bc0535e80c16d2377d4715b5", "sha256": "3850d512aa42914cf60a2fd931e605925c1c6c45d32c6b809a5bc1ba103cac49" }, "downloads": -1, "filename": "infi.pyutils-0.0.6-py2.6.egg", "has_sig": false, "md5_digest": "e5c324e2bc0535e80c16d2377d4715b5", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 22612, "upload_time": "2011-08-14T07:55:51", "url": "https://files.pythonhosted.org/packages/4b/35/38cbde1958574f45407a236439f400dbb81fe026c9c5938b91dadbdbc788/infi.pyutils-0.0.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "056818b5e8ed8f531b1d18d9a8e1207a", "sha256": "e8fcbb79746b7fdad6285ebe7bbbdb3a15c9c7b24d3846e49e838deb8df64840" }, "downloads": -1, "filename": "infi.pyutils-0.0.6-py2.7.egg", "has_sig": false, "md5_digest": "056818b5e8ed8f531b1d18d9a8e1207a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 22507, "upload_time": "2011-08-14T07:55:48", "url": "https://files.pythonhosted.org/packages/bc/90/f6a505a0400e1291ee06e31a81585898435ededb9d216fed4c3324da6e1e/infi.pyutils-0.0.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9536ce1de052944e51e590bf683988b5", "sha256": "94877c14849565b8140fe2a255f31189ae8b643d95a53c77208387829f7f63ee" }, "downloads": -1, "filename": "infi.pyutils-0.0.6.tar.gz", "has_sig": false, "md5_digest": "9536ce1de052944e51e590bf683988b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6023, "upload_time": "2011-08-14T07:55:53", "url": "https://files.pythonhosted.org/packages/12/d5/bfb1dda9626ff051cd53ba28634ef8b9930a4066a747086aeffcbf52ec16/infi.pyutils-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "ba363db1143dc434a942b14eb7c96158", "sha256": "49c22ec7ac5211bf34e3a9a761e1ef805b18a1080dbe3b1c6fbe6bdae2c22f24" }, "downloads": -1, "filename": "infi.pyutils-0.0.7-py2.6.egg", "has_sig": false, "md5_digest": "ba363db1143dc434a942b14eb7c96158", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 25677, "upload_time": "2011-08-16T11:52:49", "url": "https://files.pythonhosted.org/packages/28/9f/f5570cf133e09475cf6e8dec0c027a0806dad44749890b5b1019c1c2cc2e/infi.pyutils-0.0.7-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "8e8816cba7e265522df8e384d8cdb683", "sha256": "a5a3fd8d1f6923e4ae7ac9e13957f5b90427ffa516eed835f0d9ead67cca7474" }, "downloads": -1, "filename": "infi.pyutils-0.0.7-py2.7.egg", "has_sig": false, "md5_digest": "8e8816cba7e265522df8e384d8cdb683", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 25546, "upload_time": "2011-08-16T11:52:44", "url": "https://files.pythonhosted.org/packages/c2/78/e4303a4bb18436f06ae49af96c9e7eede0ade175b93255beeed774472616/infi.pyutils-0.0.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "f8bd02f593ef2ee1f72b848be8f8ad35", "sha256": "18d268b5ed545cfd1f6ba7a9bf9c66c2bbbbdc3e6e0518c05aea1d91143b3ad7" }, "downloads": -1, "filename": "infi.pyutils-0.0.7.tar.gz", "has_sig": false, "md5_digest": "f8bd02f593ef2ee1f72b848be8f8ad35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7335, "upload_time": "2011-08-16T11:52:51", "url": "https://files.pythonhosted.org/packages/15/1f/a8faa9d1f2583e23357a30db69fb11c17d0e77e12347881db7a42b18375d/infi.pyutils-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "b9106462eea3c90ed8b14fff4023e7e2", "sha256": "729491f1a5aee1abf599f17c1e58e1bb6531a9e5c9b59013d2111563f38c95f5" }, "downloads": -1, "filename": "infi.pyutils-0.0.8-py2.6.egg", "has_sig": false, "md5_digest": "b9106462eea3c90ed8b14fff4023e7e2", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 25799, "upload_time": "2011-08-16T12:08:44", "url": "https://files.pythonhosted.org/packages/e8/9f/9e283845af51ab38fa052adfd46737f77c7c1b3ce15daf432419077ee0ed/infi.pyutils-0.0.8-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "907886505ae93e4f31e27fecafda6421", "sha256": "941b508785a2620907f8a8719e51dec925f84f645e440b812185d1f38ecff092" }, "downloads": -1, "filename": "infi.pyutils-0.0.8-py2.7.egg", "has_sig": false, "md5_digest": "907886505ae93e4f31e27fecafda6421", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 25659, "upload_time": "2011-08-16T12:08:39", "url": "https://files.pythonhosted.org/packages/c1/ed/7f8c72bdb3a634023678893965e2350d4630dc0d0a84602920827a9456b2/infi.pyutils-0.0.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2b102581b71439cc320c4aa108ec6366", "sha256": "712ebe2ec8b1c28ac726db528ccb2798f1ad3b5d3e8257389ae16a962c0c68e5" }, "downloads": -1, "filename": "infi.pyutils-0.0.8.tar.gz", "has_sig": false, "md5_digest": "2b102581b71439cc320c4aa108ec6366", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7360, "upload_time": "2011-08-16T12:08:46", "url": "https://files.pythonhosted.org/packages/2f/22/3415ab241eef62d3704ab33ca40d2737d2215689815b35dba650722922a0/infi.pyutils-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "5b57b8ae01d09a83cce1332d8e1a47fc", "sha256": "4b00c30f0800f71974a8b012b99aafaa0db5ae162649d9fb5fe79f73ad009ee4" }, "downloads": -1, "filename": "infi.pyutils-0.0.9-py2.6.egg", "has_sig": false, "md5_digest": "5b57b8ae01d09a83cce1332d8e1a47fc", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 25328, "upload_time": "2011-08-16T14:23:33", "url": "https://files.pythonhosted.org/packages/21/96/d488cead8116340c85e88c119d39b7ef2158a313aa846442e83d6e095ab4/infi.pyutils-0.0.9-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "e0453391f0adfb492bbd14c6b4b5fcb1", "sha256": "d742525f2a16b086fca37dab4cde2f360ef39aac08931bcab0f1771edf5c29ee" }, "downloads": -1, "filename": "infi.pyutils-0.0.9-py2.7.egg", "has_sig": false, "md5_digest": "e0453391f0adfb492bbd14c6b4b5fcb1", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 25199, "upload_time": "2011-08-16T14:23:28", "url": "https://files.pythonhosted.org/packages/db/0e/bfbd2cfc5379f4734c9429e77652db792d64b8d9d46bedd0815a2a7e2ba0/infi.pyutils-0.0.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9ff78df05c096a67c897179c97ad8771", "sha256": "8fc5130e52d6a30856dce3ee922736b056df779d4c3b444913325c1d2915e374" }, "downloads": -1, "filename": "infi.pyutils-0.0.9.tar.gz", "has_sig": false, "md5_digest": "9ff78df05c096a67c897179c97ad8771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7121, "upload_time": "2011-08-16T14:23:34", "url": "https://files.pythonhosted.org/packages/8b/63/efcb894be96fa3cfc75856547aa5c91b3db4edea4f160087c1fec627f807/infi.pyutils-0.0.9.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "dd73d15b55a10a8f85b088a37ed7327f", "sha256": "4906d96db0210dcc19bb1be5af7d36623fedb6ed03ef19ae8ea6c6568f9d2372" }, "downloads": -1, "filename": "infi.pyutils-1.0.1.tar.gz", "has_sig": false, "md5_digest": "dd73d15b55a10a8f85b088a37ed7327f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22667, "upload_time": "2013-09-12T13:47:36", "url": "https://files.pythonhosted.org/packages/89/83/4ebfa6ea3624052fb2a76ab356a90a8ee208c8c758128bfc95d7784a203c/infi.pyutils-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "bd3377b78a7778dec3b241209d007412", "sha256": "1af43b5ecd998d7cfcd990194a51fa491b043f8ffcb8609f1f7d7a60589c1290" }, "downloads": -1, "filename": "infi.pyutils-1.0.2.tar.gz", "has_sig": false, "md5_digest": "bd3377b78a7778dec3b241209d007412", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38246, "upload_time": "2013-09-29T07:11:19", "url": "https://files.pythonhosted.org/packages/be/c3/9ba3b16ed0fd904f27b7f4a9d8a0fff924c43e3f56b4681b9da1ab21a194/infi.pyutils-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "2424519a632645bac25801d9c5601b1f", "sha256": "4f7f063b199f3176a7187ac60e238efbf3af80db808c7ae1f66c8ba69bf505c4" }, "downloads": -1, "filename": "infi.pyutils-1.0.3.tar.gz", "has_sig": false, "md5_digest": "2424519a632645bac25801d9c5601b1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38436, "upload_time": "2013-10-07T11:21:19", "url": "https://files.pythonhosted.org/packages/c7/81/795cff5156db81eee8b341017a54dbd4d2ce210238fa5074bc785f53a559/infi.pyutils-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "0591668ff0e32a97b0e4bb589060b27a", "sha256": "28b8e7badaa7f04f424d1d914c20ca378ea8ee83650b8b843c7a15f9b532a74b" }, "downloads": -1, "filename": "infi.pyutils-1.0.4.tar.gz", "has_sig": false, "md5_digest": "0591668ff0e32a97b0e4bb589060b27a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39151, "upload_time": "2014-04-03T09:20:41", "url": "https://files.pythonhosted.org/packages/07/57/77ff58894e1889a8963936d8d7953c62a81f70888837c59a93e43e07694a/infi.pyutils-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "286a8e6c4e838b2df7131c26dee3ac03", "sha256": "42af9e238ca15d36465dae13ece2b3063a3afcc268b5a9f546cf02a7d465f851" }, "downloads": -1, "filename": "infi.pyutils-1.0.5.tar.gz", "has_sig": false, "md5_digest": "286a8e6c4e838b2df7131c26dee3ac03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40419, "upload_time": "2014-04-09T12:16:39", "url": "https://files.pythonhosted.org/packages/12/cf/440338109ae9d111e3a7fa9c1ae5c21f62300bf53858ab1e304560dd7cdb/infi.pyutils-1.0.5.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "420064d4c21c34b202cc3761a3a40d43", "sha256": "39ac7c2d9f1cd4369678c1e1b0351feb39cfa20a69dc19aac4cc486c6179207c" }, "downloads": -1, "filename": "infi.pyutils-1.0.7.tar.gz", "has_sig": false, "md5_digest": "420064d4c21c34b202cc3761a3a40d43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39279, "upload_time": "2014-06-17T10:54:52", "url": "https://files.pythonhosted.org/packages/06/fa/70b29c726647d07ef5f2d8af0447df5c122b86ad9d239ae595a41e075a43/infi.pyutils-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "1ce50f4806028ea1a82a38e7d853f170", "sha256": "02980468d7afaf111426c0175616cea5e1a958608a53dae4e4f89847367db857" }, "downloads": -1, "filename": "infi.pyutils-1.0.8.tar.gz", "has_sig": false, "md5_digest": "1ce50f4806028ea1a82a38e7d853f170", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39303, "upload_time": "2014-06-17T12:26:20", "url": "https://files.pythonhosted.org/packages/9d/4a/8bd96bb67edde6d7f58743c5d2fad6ff99c14eab8ebbdba01ec0f83f5f6f/infi.pyutils-1.0.8.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "c92dc2948495ac1606ee42a9c63dc703", "sha256": "ad43f8e2e10325726fb7dc7ce4e7a804a0e9c0bd217dccf430515371334823d8" }, "downloads": -1, "filename": "infi.pyutils-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c92dc2948495ac1606ee42a9c63dc703", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43904, "upload_time": "2015-11-08T13:12:45", "url": "https://files.pythonhosted.org/packages/24/91/c38ccef50a17e5aebea50a8d0ba2d06bb07fe4fed5c7bc3630eaefa5624c/infi.pyutils-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "5af3ff35091e623552459d435c370100", "sha256": "e9f36d8aa25df38cdbf0ad996ea43fe2e2dbf842f001d1c75635e2554096ffd7" }, "downloads": -1, "filename": "infi.pyutils-1.1.1.tar.gz", "has_sig": false, "md5_digest": "5af3ff35091e623552459d435c370100", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44006, "upload_time": "2016-01-13T13:38:46", "url": "https://files.pythonhosted.org/packages/ca/b4/45b9123572253a2a58ef0bf9fbc55d64c2bc66d3fb0935c0944e6e9895a7/infi.pyutils-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "66e79b2677c6767d97cdc0ba1bfc24cf", "sha256": "173160a01527d292e3d8b3cbe154cfada37064070bc9c5bc22b45a8dc45f256b" }, "downloads": -1, "filename": "infi.pyutils-1.1.2.tar.gz", "has_sig": false, "md5_digest": "66e79b2677c6767d97cdc0ba1bfc24cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25883, "upload_time": "2016-01-19T15:07:56", "url": "https://files.pythonhosted.org/packages/8f/57/a458156add6b86026e98be35fdcbf17cf24748817fc69a6c56480f65e2b7/infi.pyutils-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "590c96d5e8a7c5ea67518ad7ac8fa2d5", "sha256": "b869af08570429d6e1e00ffc2c86d97647bf4a060abef2e30d1d1e822e034070" }, "downloads": -1, "filename": "infi.pyutils-1.1.3.tar.gz", "has_sig": false, "md5_digest": "590c96d5e8a7c5ea67518ad7ac8fa2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44177, "upload_time": "2016-09-14T10:55:50", "url": "https://files.pythonhosted.org/packages/fb/09/f721dd16a5a1204b5f1a7712f27b68b52c7e141652392bcaa3304c0f5c7f/infi.pyutils-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "590c96d5e8a7c5ea67518ad7ac8fa2d5", "sha256": "b869af08570429d6e1e00ffc2c86d97647bf4a060abef2e30d1d1e822e034070" }, "downloads": -1, "filename": "infi.pyutils-1.1.3.tar.gz", "has_sig": false, "md5_digest": "590c96d5e8a7c5ea67518ad7ac8fa2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44177, "upload_time": "2016-09-14T10:55:50", "url": "https://files.pythonhosted.org/packages/fb/09/f721dd16a5a1204b5f1a7712f27b68b52c7e141652392bcaa3304c0f5c7f/infi.pyutils-1.1.3.tar.gz" } ] }