{ "info": { "author": "Ge Yang", "author_email": "yangge1987@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3" ], "description": ".. figure:: https://github.com/episodeyang/waterbear/blob/master/figures/waterbear_resized.jpg?raw=true\n :width: 355px\n :height: 266px\n :scale: 50%\n :alt: waterbear\\_is\\_a\\_bear\n\n waterbear\\_is\\_a\\_bear\n\n``waterbear``, A Base Classs That Makes Python Dictionary Accessible With The Dot Notation, Recursively and with Default Values\n===============================================================================================================================\n\nNow introducing the smallest bear! **Waterbear**.\n\nWaterbear makes it easy to use python dictionaries with dot notation!\n\nWhat does ``Waterbear``:bear: do?\n---------------------------------\n\n``Waterbear`` is like ``defaultdict`` + ``SimpleNameSpace`` +\n``namedtuples``.\n\n``Waterbear`` is similar in usage to ``namedtuples`` or ``recordtypes``,\nbut it is not a tuple or array type but a dictionary. The distinction is\nthat ``Waterbear`` attributes are accessible via ``key`` strings instead\nof index numbers.\n\n``Waterbear`` is more similar to ``types.SimpleNamespace``. However, a\nmajor difference is that ``Waterbear`` enables:\n\n- setting default values via a ``default_factory`` during instantiation\n- all attributes are recognized by IDE's static type-checking so they\n have auto-completion without having to be used first.\n- work recursively\n\nNow with all of these three, there isn't an alternative solution\navailable. libraries like ``Munch`` has bad support for pythonic idioms.\nIn this case ``Waterbear`` allows you to:\n\n- use ``vars(bear)`` to convert the bear object into a dictionary.\n- use ``dict(bear)`` for the same purpose\n- use ``print(bear)`` and get a dictionary string\n- ... all methods that are available in a python ``dict`` object\n\nTODOs\n-----\n\n- [ ] fix class extension usage pattern\n- [ ] [STRIKEOUT:merge ``python2.7`` version with ``python3``]\n- [ ] [STRIKEOUT:make another package called ``tardigrade``]\n\nInstallation\n------------\n\n.. code-block:: python\n\n pip install waterbear\n\nUsage\n-----\n\nFor more usage examples, take a look at the\n`test.py `__!\n\nThere are two classes, the ``Bear`` and the ``DefaultBear``. Default\nBear allows you to pass in a default factory as the first argument.\n``Bear`` allows you do do so via a keyword argument ``__default``\n\nExample usage below:\n\n.. code-block:: python\n\n # Waterbear is a bear!\n from waterbear import Bear\n\n waterbear = Bear(**{\"key\": 100})\n assert waterbear.key == 100, 'now waterbear.key is accessible!'\n assert waterbear['key'] == 100, 'item access syntax is also supported!'\n\nSimilar to ``collection.defaultdict``, there is ``DefaultBear``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n bear = DefaultBear(None, a=10, b=100)\n assert vars(bear) == {'a': 10, 'b': 100}\n\n assert bear.does_not_exist is None, \"default value works\"\n\nDefaultBear like ``defaultdict``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can use the ``DefaultBear`` class and pass in a default factor as\nthe first parameter.\n\n.. code-block:: python\n\n bear = DefaultBear(tuple, a=10, b=100)\n assert bear.does_not_exist is (), \"default factory also works!\"\n\nYou can also use it with ``vars``, ``str``, ``print(repr)``, ``dict`` etc.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: python\n\n bear = Bear(a=10, b=100)\n assert str(bear) == \"{'a': 10, 'b': 100}\"\n assert dir(bear) == ['a', 'b']\n assert list(iter(bear)) == ['a', 'b']\n assert dict(bear) == {'a': 10, 'b': 100}\n\nAs Bool in Condition Logic\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhen used in conditional logic, ``Bear`` and ``DefaultBear`` behaves\nexactly like an ordinary dictionary!\n\n.. code-block:: python\n\n def test_dict_comparison():\n bear = Bear()\n assert not {}, 'empty dictionary are treated as False value.'\n assert not bear, 'bear should be treated as False value too!'\n\nUsing with Pickle\n~~~~~~~~~~~~~~~~~\n\nWhen using with default factories, only non-callables are picklable.\n\n.. code-block:: python\n\n def test_pickle_setstate_getstate():\n # create a default bear with a default factory\n bear = DefaultBear('hey', a=10, b=100)\n pickle_string = pickle.dumps(bear)\n bear_reborn = pickle.loads(pickle_string)\n assert type(bear_reborn) == DefaultBear\n assert vars(bear_reborn) == {'a': 10, 'b': 100}\n\n bear = DefaultBear(lambda: 'hey', a=10, b=100)\n function_fails = False\n try:\n pickle.dumps(bear)\n except AttributeError as e:\n function_fails = True\n assert function_fails\n\nUsing deepcopy\n~~~~~~~~~~~~~~\n\nYou can just do ``copy.deepcopy(bear)``!\n\n.. code-block:: python\n\n def test_deepcopy():\n from copy import deepcopy\n original = Bear(a=1, b={'ha': 0})\n copy = deepcopy(original)\n copy.b.ha += 1\n assert copy.b.ha == 1\n assert original.b.ha == 0\n\nAs A Base Class\n~~~~~~~~~~~~~~~\n\nWaterbear is completely rewritten to play well with class extension!\n\n.. code-block:: python\n\n class ExtendBear(Bear):\n @property\n def _hidden_stuff(self):\n return \"._hidden_stuff\"\n\n @property\n def __mangled_stuff(self):\n return \".__mangled_stuff\"\n\n @property\n def __dict__(self):\n return \".__dict__\"\n\n e = ExtendBear()\n assert e.__dict__ == \".__dict__\"\n assert e._hidden_stuff == '._hidden_stuff'\n assert e._ExtendBear__mangled_stuff == \".__mangled_stuff\"\n\nOrder Preserving SimpleNamespace\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn tensorflow, you frequently need order preserving namespaces that you\ncan use for ``sess.run([tensors...``. We built ``OrderedBear`` exactly\nfor this purpose. It is an extension of the ``types.SimpleNamespace``\nclass.\n\n::\n\n # First declare the typings (namespace) for your model\n class Reporting:\n loss=None\n entropy=None\n mean_kl=None\n\n # Now, you can instantiate this with new values\n\n ... inside model\n\n r = Reporting(entropy=-5, loss=1)\n # Notice that 1. we are putting values in out-of-order, and 2. We are missing `mean_kl` in our construction.\n\n tems = r.items()\n assert items[0] == ('loss', 1), 'order follows class declaration.'\n assert items[1] == ('entropy', -5), 'entropy goes after loss even though this is the second atrribute'\n assert items[2] == ('mean_kl', None), 'undefined falls back to the default'\n\n values = r.values()\n assert values[0] == 1, 'order follows class declaration.'\n assert values[1] == -5, 'entropy goes after loss even though this is the second atrribute'\n assert values[2] == None, 'undefined falls back to the default'\n\n keys = r.keys()\n assert keys[0] == 'loss', 'order follows class declaration.'\n assert keys[1] == 'entropy', 'entropy goes after loss even though this is the second atrribute'\n assert keys[2] == 'mean_kl', 'undefined falls back to the default'\n\nMore Usages Could Be Found in The Tests!\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFor more usage examples, take a look at\n`test.py `__.\n\n.. code-block:: python\n\n test_dict = {\n 'a': 0,\n 'b': 1\n }\n\n # Use spread operators to construct with a dictionary!\n test_args = Bear(**test_dict)\n assert test_args.a == 0\n assert test_args.b == 1\n # the value should now be accessible through the key name.\n test_args.haha = 0\n assert test_args.haha == 0\n\n\n # You can also use a nested dictionary.\n test_args.haha = {'a': 1}\n assert test_args.haha != {'a': 1}\n assert vars(test_args.haha) == {'a': 1}\n assert test_args.haha.a == 1\n assert test_args.__dict__['haha']['a'] == 1\n assert vars(test_args)['haha']['a'] == 1\n assert str(test_args) == \"{'a': 0, 'b': 1, 'haha': {'a': 1}}\", \\\n 'test_args should be this value \"{\\'a\\': 0, \\'b\\': 1, \\'haha\\': {\\'a\\': 1}}\"'\n\n # To set recursion to false, use this `__recursive` parameter.\n test_args = Bear(__recursive=False, **test_dict)\n assert test_args.__is_recursive == False\n assert test_args.a == 0\n assert test_args.b == 1\n test_args.haha = {'a': 1}\n assert test_args.haha['a'] == 1\n assert test_args.haha == {'a': 1}\n\n # Some other usage patterns\n test_args = Bear(**test_dict, **{'ha': 'ha', 'no': 'no'})\n assert test_args.ha == 'ha', 'key ha should be ha'\n\nTo Develop\n----------\n\n.. code-block:: python\n\n git clone https://github.com/episodeyang/waterbear.git\n cd waterbear\n make dev\n\nThis ``make dev`` command should build the wheel and install it in your\ncurrent python environment. Take a look at the\n`https://github.com/episodeyang/waterbear/blob/master/Makefile `__ for details.\n\n**To publish**, first update the version number, then do:\n\n.. code-block:: bash\n\n make publish\n\n\\* image credit goes to BBC `waterbear: The Smallest\nBear! `__\n\ud83d\ude1b |tardigrade|\n\n.. |tardigrade| image:: https://github.com/episodeyang/waterbear/blob/master/figures/waterbear_2_resized.jpg?raw=true\n :width: 355px\n :height: 266px\n :scale: 50%\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/episodeyang/waterbear", "keywords": "waterbear,dict,dot-notation", "license": "", "maintainer": "", "maintainer_email": "", "name": "waterbear", "package_url": "https://pypi.org/project/waterbear/", "platform": "", "project_url": "https://pypi.org/project/waterbear/", "project_urls": { "Homepage": "https://github.com/episodeyang/waterbear" }, "release_url": "https://pypi.org/project/waterbear/2.6.3/", "requires_dist": null, "requires_python": "", "summary": "A utility that makes it easy to use dot notation with python dictionaries", "version": "2.6.3" }, "last_serial": 4163733, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "9af5d7558a5cb7b89cae3c3786495606", "sha256": "d547d5fe4b74a774fe117092903ed61723b646872a5126d785e4f1c8bfde0f43" }, "downloads": -1, "filename": "waterbear-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9af5d7558a5cb7b89cae3c3786495606", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3572, "upload_time": "2017-06-14T02:04:58", "url": "https://files.pythonhosted.org/packages/30/42/6e0ef5db708f343943e017745d8591dbbbf9e2e3b1cb7bf5d3f3d09f7df6/waterbear-0.0.0-py3-none-any.whl" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "186c005e73984f35ee51147a454ea472", "sha256": "4ac3284372d69b6cb2c1205959461924330e120f72525db77ca2a5df98167390" }, "downloads": -1, "filename": "waterbear-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "186c005e73984f35ee51147a454ea472", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3946, "upload_time": "2017-09-06T23:08:07", "url": "https://files.pythonhosted.org/packages/bf/4b/e18fc1e00a0c9f509276cc18010b7af48dbb93e073fd98e587145bf62ab2/waterbear-1.0.0-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "efe3d06c2a79546aa5e9d5144c4026d8", "sha256": "bcc96d46b76afb010379e58883cdbf60fb2f1282ceed377dbe2aff070f998034" }, "downloads": -1, "filename": "waterbear-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "efe3d06c2a79546aa5e9d5144c4026d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4213, "upload_time": "2017-09-07T01:20:27", "url": "https://files.pythonhosted.org/packages/0f/6d/5de3890311b9b4ba6131562ca909e84b2c5fe87074ee2e1acee9b6d58b30/waterbear-1.1.0-py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f363039f3b78847c6faa3abd191c2dd3", "sha256": "58e75ac9e7a31dd95a746a03c87b0634d8655123bf27160a20dedfbc4f3856bd" }, "downloads": -1, "filename": "waterbear-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f363039f3b78847c6faa3abd191c2dd3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4215, "upload_time": "2017-09-07T01:34:05", "url": "https://files.pythonhosted.org/packages/bc/86/7d6366f1320addb06e5c56fc613837cbf4768ce8cf41dc8377b1607adafb/waterbear-1.1.1-py3-none-any.whl" } ], "1.1.10": [ { "comment_text": "", "digests": { "md5": "68b2b49d95a8fb41ed4dc78875dc0950", "sha256": "19bea2faaad7295169512a881b733966b55f5884e79457fd61fc5dba03a7a948" }, "downloads": -1, "filename": "waterbear-1.1.10.tar.gz", "has_sig": false, "md5_digest": "68b2b49d95a8fb41ed4dc78875dc0950", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4046, "upload_time": "2017-09-07T02:43:49", "url": "https://files.pythonhosted.org/packages/73/3c/258a83c0d4cb1aa706d8cacf811546d8427b2fafc205d3b5d98b4fb372f6/waterbear-1.1.10.tar.gz" } ], "1.1.11": [ { "comment_text": "", "digests": { "md5": "eeb1ad9e651094aacb53146d1b08abd8", "sha256": "c10cd20a8e5ee99a217667631f2cda463e03871cd55a7bec536131b033fcafc9" }, "downloads": -1, "filename": "waterbear-1.1.11.tar.gz", "has_sig": false, "md5_digest": "eeb1ad9e651094aacb53146d1b08abd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3927, "upload_time": "2017-09-07T02:44:24", "url": "https://files.pythonhosted.org/packages/86/f7/753388dacae8cb2f341915b664b26116840b7d555c7fc87d26b5af497cd3/waterbear-1.1.11.tar.gz" } ], "1.1.12": [ { "comment_text": "", "digests": { "md5": "360364806090443fb7bd70dbff003752", "sha256": "e12701ac75a5dbeab0da36a250f3aaabd494a649d9d65c89468893613f5be5d6" }, "downloads": -1, "filename": "waterbear-1.1.12.tar.gz", "has_sig": false, "md5_digest": "360364806090443fb7bd70dbff003752", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3924, "upload_time": "2017-09-07T02:50:25", "url": "https://files.pythonhosted.org/packages/a4/e8/60f56f402ee264d02b0f0a65ba41933fc1f3475a4acb850db739b56050a2/waterbear-1.1.12.tar.gz" } ], "1.1.13": [ { "comment_text": "", "digests": { "md5": "fbbaa24e2e98de35169ba17f8cc45b26", "sha256": "9da033ddc2903c6f9c9eaf5d75e09fd319acdf0943a011a5fa446bb55ee4aead" }, "downloads": -1, "filename": "waterbear-1.1.13.tar.gz", "has_sig": false, "md5_digest": "fbbaa24e2e98de35169ba17f8cc45b26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4062, "upload_time": "2017-09-07T03:05:58", "url": "https://files.pythonhosted.org/packages/5d/1f/b747bf236e1ccfbb703c91087bbd7f3deb9c17e6e6864a84dcb6a4c08782/waterbear-1.1.13.tar.gz" } ], "1.1.14": [ { "comment_text": "", "digests": { "md5": "5aae6e070543a9d8635d7468643ad756", "sha256": "6cb586749b5de2f6c047498a8cb6feafa527c40d765dcef19892c166b13ef277" }, "downloads": -1, "filename": "waterbear-1.1.14.tar.gz", "has_sig": false, "md5_digest": "5aae6e070543a9d8635d7468643ad756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4060, "upload_time": "2017-09-07T03:07:05", "url": "https://files.pythonhosted.org/packages/86/f1/c653a6338fbc1784498ffc5576a5ab93e467df7ee74d6f719842163035b9/waterbear-1.1.14.tar.gz" } ], "1.1.15": [ { "comment_text": "", "digests": { "md5": "da88e93faacd1a3f7d72021f3fe233e7", "sha256": "0619a086766da116929cb9eea64a742c959c5047cf84c1ec3ba29719d0b4283a" }, "downloads": -1, "filename": "waterbear-1.1.15.tar.gz", "has_sig": false, "md5_digest": "da88e93faacd1a3f7d72021f3fe233e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4066, "upload_time": "2017-09-07T03:08:34", "url": "https://files.pythonhosted.org/packages/a9/42/ad828c87887765266c44f862567c3fa162adb9b64370dedd02c43fa3838b/waterbear-1.1.15.tar.gz" } ], "1.1.16": [ { "comment_text": "", "digests": { "md5": "0bf8c52dd1ec9b0458dfb5d74e1f9ace", "sha256": "be70d615e94cee49b86ffa94f95bbfe0891a345c737dfa71c7df1e4e46217bb1" }, "downloads": -1, "filename": "waterbear-1.1.16.tar.gz", "has_sig": false, "md5_digest": "0bf8c52dd1ec9b0458dfb5d74e1f9ace", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4072, "upload_time": "2017-09-07T03:10:04", "url": "https://files.pythonhosted.org/packages/92/5a/362f666a25a8bd8aced4d852f1b7641a7a78e6a13d183ac5ba0eae84e8ce/waterbear-1.1.16.tar.gz" } ], "1.1.17": [ { "comment_text": "", "digests": { "md5": "bf0853b488e0e7cd729db809127a9925", "sha256": "2d6718443387c23a16b436b4dca994c4e37f8d63e564788ac9424c02d9170ae3" }, "downloads": -1, "filename": "waterbear-1.1.17.tar.gz", "has_sig": false, "md5_digest": "bf0853b488e0e7cd729db809127a9925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4092, "upload_time": "2017-09-07T03:12:18", "url": "https://files.pythonhosted.org/packages/36/32/60f89614ddba28c0b4d41d6bc65f21681cf12a11102d4b70e8ec3fb4fb41/waterbear-1.1.17.tar.gz" } ], "1.1.18": [ { "comment_text": "", "digests": { "md5": "05103feb04cf20c073cb2869ccf12b1b", "sha256": "12796758555932e5d6eccec80ed19dcf4320cfab603531c302d0092dbcafd4a2" }, "downloads": -1, "filename": "waterbear-1.1.18-py3-none-any.whl", "has_sig": false, "md5_digest": "05103feb04cf20c073cb2869ccf12b1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7062, "upload_time": "2017-09-07T03:36:55", "url": "https://files.pythonhosted.org/packages/13/a0/c47f5e3397ee46db47317d74196083b195aa02ad30f3db6b991abb9b9031/waterbear-1.1.18-py3-none-any.whl" } ], "1.1.19": [ { "comment_text": "", "digests": { "md5": "8f3c240998dc570c4abbcc1bd77d4382", "sha256": "452361fd02405200a787961ab77b37bbfc2c2953b44c66a97942be73ad29f962" }, "downloads": -1, "filename": "waterbear-1.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "8f3c240998dc570c4abbcc1bd77d4382", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7062, "upload_time": "2017-09-07T03:37:54", "url": "https://files.pythonhosted.org/packages/6b/40/71c78ff022f69e59c843ed880de691c4d3a33bad8b9a4eefcd557dded9a3/waterbear-1.1.19-py3-none-any.whl" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "0fd1a4bc1069eb5f78c299b8610e1bbb", "sha256": "6fc27b1443f40b5711a8d384194dc192c887b0a57938189c63d7ff6f3a485545" }, "downloads": -1, "filename": "waterbear-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0fd1a4bc1069eb5f78c299b8610e1bbb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6941, "upload_time": "2017-09-07T01:36:30", "url": "https://files.pythonhosted.org/packages/30/15/6b11c345d722b69921a45fa77f943a10279c08f9b645db662f6ca7506975/waterbear-1.1.2-py3-none-any.whl" } ], "1.1.20": [ { "comment_text": "", "digests": { "md5": "765e2aa6e03b97cb8f3006151b9a64ec", "sha256": "09fa23d7fc9614b0658751f3f5020db37e2904bdb57781a8cf55575a34f5e96b" }, "downloads": -1, "filename": "waterbear-1.1.20-py3-none-any.whl", "has_sig": false, "md5_digest": "765e2aa6e03b97cb8f3006151b9a64ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7070, "upload_time": "2017-09-07T03:38:51", "url": "https://files.pythonhosted.org/packages/30/8c/87f8462cdab7bbdc61490cbcb5b2f053ff5cc1d151e9bbdcd24159f4c73a/waterbear-1.1.20-py3-none-any.whl" } ], "1.1.21": [ { "comment_text": "", "digests": { "md5": "92c84c09c8409e42a945c76a3693bd28", "sha256": "0bf20caaae86b74517d3229ee935acc3a60e968ec50db86c5c0874bc18e0c48c" }, "downloads": -1, "filename": "waterbear-1.1.21-py3-none-any.whl", "has_sig": false, "md5_digest": "92c84c09c8409e42a945c76a3693bd28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7092, "upload_time": "2017-09-07T04:04:42", "url": "https://files.pythonhosted.org/packages/1f/f4/014157c04e14319877868d52bd56a207b7a32936beb40bf5e878c3c2ea04/waterbear-1.1.21-py3-none-any.whl" } ], "1.1.22": [ { "comment_text": "", "digests": { "md5": "cb5de21455535a8cec75d0ca28c10667", "sha256": "934ea4de971e03d6ea04d165b59dbee06698ab0a9603de87cc3937b31f65ac5d" }, "downloads": -1, "filename": "waterbear-1.1.22-py3-none-any.whl", "has_sig": false, "md5_digest": "cb5de21455535a8cec75d0ca28c10667", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7093, "upload_time": "2017-09-07T04:05:49", "url": "https://files.pythonhosted.org/packages/8a/30/d4d0997c0dc30376a7395f224e7594f086d09ecc1f8350319e653755bd3b/waterbear-1.1.22-py3-none-any.whl" } ], "1.1.23": [ { "comment_text": "", "digests": { "md5": "b3c2e6b012ebe0eee6c970f95faf6b96", "sha256": "f3cfae80911dea89e833e77b4457072ee90fd80049115deda5a1acc37d4d16f8" }, "downloads": -1, "filename": "waterbear-1.1.23-py3-none-any.whl", "has_sig": false, "md5_digest": "b3c2e6b012ebe0eee6c970f95faf6b96", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7100, "upload_time": "2017-09-07T04:07:59", "url": "https://files.pythonhosted.org/packages/39/94/c13bc70faeca1f9e5ce7f2d06ad1ecea4259d2748c5acb15d338c3b550ff/waterbear-1.1.23-py3-none-any.whl" } ], "1.1.24": [ { "comment_text": "", "digests": { "md5": "efa941567e5cfebff6d5a63c15b0d6a2", "sha256": "2fdf1c3ca9bf7e54b6c91322d6a9bff5fe450004c22809cfef5d31ca6241a399" }, "downloads": -1, "filename": "waterbear-1.1.24-py3-none-any.whl", "has_sig": false, "md5_digest": "efa941567e5cfebff6d5a63c15b0d6a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7115, "upload_time": "2017-09-07T04:10:43", "url": "https://files.pythonhosted.org/packages/ea/f9/8113e7d299a437d5430379a0c8325075e8fcb2e3195f09411c9516fbf9c7/waterbear-1.1.24-py3-none-any.whl" } ], "1.1.25": [ { "comment_text": "", "digests": { "md5": "2899f36facce7a87e7ad467912e3715d", "sha256": "c473abaa28f99f3d85c4e80f574c8251f6d50743a6c0b1b0af3015ac7f111e4b" }, "downloads": -1, "filename": "waterbear-1.1.25-py3-none-any.whl", "has_sig": false, "md5_digest": "2899f36facce7a87e7ad467912e3715d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7136, "upload_time": "2017-09-07T04:13:48", "url": "https://files.pythonhosted.org/packages/3a/7a/64b0e125904b1a02303e3269ad13c9c895d9c422e725976b6aee98ac71a7/waterbear-1.1.25-py3-none-any.whl" } ], "1.1.26": [ { "comment_text": "", "digests": { "md5": "3430e2121c4903551dc5cf008a4743ce", "sha256": "33912813af651c55551419064bd6900de0603d10eb8cc856c5b9d3d1cf4e8c91" }, "downloads": -1, "filename": "waterbear-1.1.26-py3-none-any.whl", "has_sig": false, "md5_digest": "3430e2121c4903551dc5cf008a4743ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7140, "upload_time": "2017-09-07T05:20:28", "url": "https://files.pythonhosted.org/packages/44/a3/e47519b42e3cee4f3924a024abb15749c815148b14ca1548aaccd3fd1819/waterbear-1.1.26-py3-none-any.whl" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "ebd1463d45ec7ddfaa595d216f94c055", "sha256": "840630183578c8ffb36c8fdeac3daea4bd293e0287c6c1dd59d0473ebd4c0a3f" }, "downloads": -1, "filename": "waterbear-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ebd1463d45ec7ddfaa595d216f94c055", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6940, "upload_time": "2017-09-07T01:47:42", "url": "https://files.pythonhosted.org/packages/93/bb/707de0064a391dabd43de2da3db30096352474f02d83511711bf4fb0cf4f/waterbear-1.1.3-py3-none-any.whl" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "b8ceb0923569ead2fc4332d7a97b78dd", "sha256": "7c618d98e11b8f8b889fb679fe316df535b828d4d54a0794202a0bf4dcc58483" }, "downloads": -1, "filename": "waterbear-1.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b8ceb0923569ead2fc4332d7a97b78dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6947, "upload_time": "2017-09-07T01:58:21", "url": "https://files.pythonhosted.org/packages/71/45/eb528e386b0e513945184eb0b097d1cf3472fe637bce1d80ee18b3dcf6d3/waterbear-1.1.4-py3-none-any.whl" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "42e82e58af1d5f61199e79a0ebd4d7e0", "sha256": "8fe653d559face4279763801fadd68354d4ab65faa9e2767d7655061b2f2d504" }, "downloads": -1, "filename": "waterbear-1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "42e82e58af1d5f61199e79a0ebd4d7e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6960, "upload_time": "2017-09-07T02:21:06", "url": "https://files.pythonhosted.org/packages/67/4c/ab07cf2960710c83d2865a51a7bee7395c6ee7ff1eb89aa3e176e66a0189/waterbear-1.1.5-py3-none-any.whl" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "379486a6a27020c3d59f7417d46a4640", "sha256": "bf0cc4ecbf6eb93175d296e0e9c54a0769f742612bc8cf2e75e95283ed4092e6" }, "downloads": -1, "filename": "waterbear-1.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "379486a6a27020c3d59f7417d46a4640", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6820, "upload_time": "2017-09-07T02:24:42", "url": "https://files.pythonhosted.org/packages/a0/52/0dd192a8237d73b56a16822d63ad944364596748a1091fa59a2916181bd1/waterbear-1.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8879e8d34e06db7160385623c99db7f0", "sha256": "223cb977abd2e81e342fabc300385adceb33120fae017986aa8fb2b8bc903dc4" }, "downloads": -1, "filename": "waterbear-1.1.6.tar.gz", "has_sig": false, "md5_digest": "8879e8d34e06db7160385623c99db7f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3625, "upload_time": "2017-09-07T02:29:04", "url": "https://files.pythonhosted.org/packages/a4/90/65838edceca9f955f6e5faff8ddd2cb498118de25fd26c1bf4d0197bb632/waterbear-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "f96dcee5987e9956391db3c6d8728e6e", "sha256": "0b587c772b721077e16c714a597306502ed5814aecf8a1f47b43fe2cd23488b0" }, "downloads": -1, "filename": "waterbear-1.1.7.tar.gz", "has_sig": false, "md5_digest": "f96dcee5987e9956391db3c6d8728e6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2589, "upload_time": "2017-09-07T02:39:47", "url": "https://files.pythonhosted.org/packages/d4/e4/55b4ff70df69db9204da68278098490fd4e6a4d7002782ae7fcf9365f096/waterbear-1.1.7.tar.gz" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "6690f08c5ada7422b1c95ce116291699", "sha256": "2de2b1f4e01e1450e3af8e2fe807c59e43e4775c40233ab8ab195e822a427467" }, "downloads": -1, "filename": "waterbear-1.1.8.tar.gz", "has_sig": false, "md5_digest": "6690f08c5ada7422b1c95ce116291699", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2697, "upload_time": "2017-09-07T02:41:14", "url": "https://files.pythonhosted.org/packages/07/6b/e97ca03a0b55495d892f8410a444dfcc720903785c03354bfb154007bde4/waterbear-1.1.8.tar.gz" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "0c80514403f8069329afe2c7a8bc0a3b", "sha256": "51523f577648049c62f0e63376a4e04d0cbca0ccf123528775a6af6a1f34da2d" }, "downloads": -1, "filename": "waterbear-1.1.9.tar.gz", "has_sig": false, "md5_digest": "0c80514403f8069329afe2c7a8bc0a3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4036, "upload_time": "2017-09-07T02:43:21", "url": "https://files.pythonhosted.org/packages/d1/b2/b77762d2dc74a56c10cd7f8c498e0ac2cc9e691cccc246eae053ee9dfba9/waterbear-1.1.9.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "2d244597db789a2757a92389d84ab314", "sha256": "ec46ee20863622318721be3d6d7953b9d4c11920e4bbf8e14d247d44862057bf" }, "downloads": -1, "filename": "waterbear-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2d244597db789a2757a92389d84ab314", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7130, "upload_time": "2017-09-07T05:45:18", "url": "https://files.pythonhosted.org/packages/a0/9f/417197e0018987555839d17e40e6a46124444b7fd40441bcd12c0faf9916/waterbear-1.2.0-py3-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "2a830396f295817926f93119fdf131cb", "sha256": "0052af97f80458a7afa43afbd3e41d40d30594ec4427e9c2e5518e8b8d2f645f" }, "downloads": -1, "filename": "waterbear-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2a830396f295817926f93119fdf131cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7140, "upload_time": "2017-09-07T05:47:36", "url": "https://files.pythonhosted.org/packages/6f/34/b1d0cc1f42fbc88e734631feaa193f49897c9dbe3d4d9d37482fbf755f62/waterbear-1.2.1-py3-none-any.whl" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "5c7f084f2bd9873ec936ce0f370fdc0f", "sha256": "83c0d3fd99ef44e61c5fb5cbd582cabff8038c0b22a569087a17a1e26b9cc681" }, "downloads": -1, "filename": "waterbear-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5c7f084f2bd9873ec936ce0f370fdc0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7736, "upload_time": "2017-09-07T18:29:50", "url": "https://files.pythonhosted.org/packages/36/2f/dc4dd8e33270778b9b92470577e7e8c429c33cefd0e1f7b2af6bc560439e/waterbear-2.0.0-py3-none-any.whl" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "39750e3d3b159fceedf01a339aea9daa", "sha256": "01f13c92152989e3ea8d0700c58e0ec2b426604b987b554ffcb4fc41a3134e96" }, "downloads": -1, "filename": "waterbear-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "39750e3d3b159fceedf01a339aea9daa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7748, "upload_time": "2017-09-07T18:41:21", "url": "https://files.pythonhosted.org/packages/40/00/572d754fd51d849f4237f83d455a5e1eb99f8f9b0535e4110b7040e9db25/waterbear-2.0.1-py3-none-any.whl" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "6283ed769e180a60c1e618a562b6d9c8", "sha256": "a40f69d5b8a9ea629a2edde437499571ed5e4e407f8d38001c064a1b0ca86569" }, "downloads": -1, "filename": "waterbear-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6283ed769e180a60c1e618a562b6d9c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8152, "upload_time": "2017-09-07T21:32:37", "url": "https://files.pythonhosted.org/packages/f3/f8/91ea7b60b573bfa6ce70f2c9e4bcf227bd0e7c3335340d450c2e64a61ace/waterbear-2.1.0-py3-none-any.whl" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "0cb777a376ab87ddabbc8f8ab4d34dfa", "sha256": "d578927bb77332167378ddf4cd258bd3286742594ee4ddc1041f863229a9c9db" }, "downloads": -1, "filename": "waterbear-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0cb777a376ab87ddabbc8f8ab4d34dfa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8152, "upload_time": "2017-09-07T21:34:30", "url": "https://files.pythonhosted.org/packages/dc/73/77658d83713e8c57f620700acee6f2fb26eee92f8e188e3ca2c8308b8f9f/waterbear-2.1.1-py3-none-any.whl" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "a6f0b783e7d2faa54ddd64d00023cc03", "sha256": "9da7aa9a416afc2280495534c317dda9eb748ee09ad956acf4bb757fe43e2995" }, "downloads": -1, "filename": "waterbear-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a6f0b783e7d2faa54ddd64d00023cc03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8794, "upload_time": "2017-09-07T22:31:16", "url": "https://files.pythonhosted.org/packages/d2/f5/5507683972c77d657bffca8d3afc72c0193e627833c7aa023a27e93bf544/waterbear-2.2.0-py3-none-any.whl" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "5bb592ef5c9aaec60330b9e4154f9fc2", "sha256": "4eac852ebb6f75e7f54241af962618b4b25a342ab12061b97523a6df58ee6747" }, "downloads": -1, "filename": "waterbear-2.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5bb592ef5c9aaec60330b9e4154f9fc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8842, "upload_time": "2017-09-07T22:44:16", "url": "https://files.pythonhosted.org/packages/f4/c0/5c8baa1925455c5aa50e08bb1d1f9eb7e8722a2103f20a48bd85cb0393af/waterbear-2.2.1-py3-none-any.whl" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "83d78bdaf30ef351302248a742541a93", "sha256": "34ecbf9a6a0ac64b4393217eb2c5aa3b3944c026d485a2355f4f79a8c329285f" }, "downloads": -1, "filename": "waterbear-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "83d78bdaf30ef351302248a742541a93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9101, "upload_time": "2017-09-08T15:51:00", "url": "https://files.pythonhosted.org/packages/f3/4d/774b859fff264656ca0ab14cc31485d7de7e94fef280d090ade7940af488/waterbear-2.3.1-py3-none-any.whl" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "63d37e9da17ef76fc0bb418aea20bf00", "sha256": "cc5e7f2d12064a7ae4e2341259164c6f06596884892bd5b969edde326b3e9e00" }, "downloads": -1, "filename": "waterbear-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "63d37e9da17ef76fc0bb418aea20bf00", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10357, "upload_time": "2017-09-11T03:16:51", "url": "https://files.pythonhosted.org/packages/6c/bb/8a030153caca27a44bb6cf631328c6fcf9a9c3896dbb7ddda5090c05062d/waterbear-2.4.0-py3-none-any.whl" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "e375c3d8bef8d5ffe9a369a4755578b4", "sha256": "d02763f335014494c79817c90f6716d4294a41be18827045ec1f12e533b7903f" }, "downloads": -1, "filename": "waterbear-2.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e375c3d8bef8d5ffe9a369a4755578b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10358, "upload_time": "2018-01-13T08:36:57", "url": "https://files.pythonhosted.org/packages/3c/7d/7c77d475660f87f49e418dc96cbefb5f22a7f748b8ee9796a66f115d7db1/waterbear-2.5.0-py3-none-any.whl" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "a470de8ef31613bb377cc160d66c8e4c", "sha256": "59f68b499eb9d9fe5bf11280af4da5d17931ec0e0ce32944bcca74dbc8d93dea" }, "downloads": -1, "filename": "waterbear-2.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a470de8ef31613bb377cc160d66c8e4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7308, "upload_time": "2018-05-05T20:14:00", "url": "https://files.pythonhosted.org/packages/ad/94/384b4fbeb33113b8d62e751b9e54ee0fb49b88fd71b5c41838180cefa2f9/waterbear-2.6.0-py3-none-any.whl" } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "d298af42b06c6e36d90e87c8b710a93c", "sha256": "a0d185177638da403e9d8a332b54f246b6a57d39653cd7705203f121712d45b2" }, "downloads": -1, "filename": "waterbear-2.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d298af42b06c6e36d90e87c8b710a93c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7311, "upload_time": "2018-06-01T04:39:41", "url": "https://files.pythonhosted.org/packages/6f/5a/e95ea9ac751c93ffb287b799861eaa07221b63341264d0e5be3dca8b3c3b/waterbear-2.6.1-py3-none-any.whl" } ], "2.6.2": [ { "comment_text": "", "digests": { "md5": "cf43593a36b57c521ba515d935039d38", "sha256": "2102dcbd4902089f6696150e9593d7136a701da5770e3190191f52d509645685" }, "downloads": -1, "filename": "waterbear-2.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cf43593a36b57c521ba515d935039d38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8191, "upload_time": "2018-08-13T05:46:45", "url": "https://files.pythonhosted.org/packages/fc/a7/27b957e264a2fb3a530cfa28644dd61227a8115de1b471d14bcc5f5f5e2f/waterbear-2.6.2-py3-none-any.whl" } ], "2.6.3": [ { "comment_text": "", "digests": { "md5": "45d8e4f202473c4416c07f8199100c2e", "sha256": "a2b0d804bc158ead480bb56100e920b47d0a4abfb851638c25835cd7a77b2707" }, "downloads": -1, "filename": "waterbear-2.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "45d8e4f202473c4416c07f8199100c2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8200, "upload_time": "2018-08-13T07:01:26", "url": "https://files.pythonhosted.org/packages/97/a0/e0ce3dcae44cefb0f86e46efdd16ba869160ab16dd5a5fa99b9863b910bb/waterbear-2.6.3-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "45d8e4f202473c4416c07f8199100c2e", "sha256": "a2b0d804bc158ead480bb56100e920b47d0a4abfb851638c25835cd7a77b2707" }, "downloads": -1, "filename": "waterbear-2.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "45d8e4f202473c4416c07f8199100c2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8200, "upload_time": "2018-08-13T07:01:26", "url": "https://files.pythonhosted.org/packages/97/a0/e0ce3dcae44cefb0f86e46efdd16ba869160ab16dd5a5fa99b9863b910bb/waterbear-2.6.3-py3-none-any.whl" } ] }