{ "info": { "author": "Chris Griffith", "author_email": "chris@cdgriffith.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "|BuildStatus| |CoverageStatus| |License| |PyPi| |DocStatus|\n\n|BoxImage|\n\nPython dictionaries with advanced dot notation access.\n\n.. code:: python\n\n from box import Box\n\n movie_data = {\n \"movies\": {\n \"Spaceballs\": {\n \"imdb stars\": 7.1,\n \"rating\": \"PG\",\n \"length\": 96,\n \"director\": \"Mel Brooks\",\n \"stars\": [{\"name\": \"Mel Brooks\", \"imdb\": \"nm0000316\", \"role\": \"President Skroob\"},\n {\"name\": \"John Candy\",\"imdb\": \"nm0001006\", \"role\": \"Barf\"},\n {\"name\": \"Rick Moranis\", \"imdb\": \"nm0001548\", \"role\": \"Dark Helmet\"}\n ]\n },\n \"Robin Hood: Men in Tights\": {\n \"imdb stars\": 6.7,\n \"rating\": \"PG-13\",\n \"length\": 104,\n \"director\": \"Mel Brooks\",\n \"stars\": [\n {\"name\": \"Cary Elwes\", \"imdb\": \"nm0000144\", \"role\": \"Robin Hood\"},\n {\"name\": \"Richard Lewis\", \"imdb\": \"nm0507659\", \"role\": \"Prince John\"},\n {\"name\": \"Roger Rees\", \"imdb\": \"nm0715953\", \"role\": \"Sheriff of Rottingham\"},\n {\"name\": \"Amy Yasbeck\", \"imdb\": \"nm0001865\", \"role\": \"Marian\"}\n ]\n }\n }\n }\n\n # Box is a conversion_box by default, pass in `conversion_box=False` to disable that behavior\n movie_box = Box(movie_data)\n\n\n movie_box.movies.Robin_Hood_Men_in_Tights.imdb_stars\n # 6.7\n\n movie_box.movies.Spaceballs.stars[0].name\n # 'Mel Brooks'\n\n # All new dict and lists added to a Box or BoxList object are converted\n movie_box.movies.Spaceballs.stars.append({\"name\": \"Bill Pullman\", \"imdb\": \"nm0000597\", \"role\": \"Lone Starr\"})\n movie_box.movies.Spaceballs.stars[-1].role\n # 'Lone Starr'\n\nInstall\n=======\n\n.. code:: bash\n\n pip install python-box\n\nBox is tested on python 2.7 and 3.4+.\nIf it does not install with this command, please\nopen a github issue with the error you are experiencing!\n\nIf you want to be able to use the `to_yaml` functionality make sure to\ninstall `PyYAML` or `ruamel.yaml` as well.\n\nOverview\n========\n\n`Box` is designed to be an easy drop in transparently replacements for\ndictionaries, thanks to Python's\nduck typing capabilities, which adds dot notation access. Any sub\ndictionaries or ones set after initiation will be automatically converted to\na `Box` object. You can always run `.to_dict()` on it to return the object\nand all sub objects back into a regular dictionary.\n\n\n.. code:: python\n\n movie_box.movies.Spaceballs.to_dict()\n {'director': 'Mel Brooks',\n 'imdb stars': 7.1,\n 'length': 96,\n 'personal thoughts': 'On second thought, it was hilarious!',\n 'rating': 'PG',\n 'stars': [{'imdb': 'nm0000316', 'name': 'Mel Brooks', 'role': 'President Skroob'},\n {'imdb': 'nm0001006', 'name': 'John Candy', 'role': 'Barf'},\n {'imdb': 'nm0001548', 'name': 'Rick Moranis', 'role': 'Dark Helmet'},\n {'imdb': 'nm0000597', 'name': 'Bill Pullman', 'role': 'Lone Starr'}]}\n\nBox version 3 (and greater) now do sub box creation upon lookup, which means\nit is only referencing the original dict objects until they are looked up\nor modified.\n\n.. code:: python\n\n a = {\"a\": {\"b\": {\"c\": {}}}}\n a_box = Box(a)\n a_box\n # \n\n a[\"a\"][\"b\"][\"d\"] = \"2\"\n\n a_box\n # \n\nSo if you plan to keep the original dict around, make sure to box_it_up or do a deepcopy first.\n\n.. code:: python\n\n safe_box = Box(a, box_it_up=True)\n a[\"a\"][\"b\"][\"d\"] = \"2\"\n\n safe_box\n # \n\nLimitations\n-----------\n\n`Box` is a subclass of `dict` and as such, certain keys cannot be accessed via dot notation.\nThis is because names such as `keys` and `pop` have already been declared as methods, so `Box` cannot\nuse it's special sauce to overwrite them. However it is still possible to have items with those names\nin the `Box` and access them like a normal dictionary, such as `my_box['keys']`.\n\n*This is as designed, and will not be changed.*\n\nThe non-magic methods that exist in a `Box` are: \n`box_it_up, clear, copy, from_json, fromkeys, get, items, keys, pop, popitem, setdefault, to_dict, to_json, update, values`.\nTo view an entire list of what cannot be accessed via dot notation, run the command `dir(Box())`.\n\n\nBox\n---\n\n`Box` can be instantiated the same ways as `dict`.\n\n.. code:: python\n\n Box({'data': 2, 'count': 5})\n Box(data=2, count=5)\n Box({'data': 2, 'count': 1}, count=5)\n Box([('data', 2), ('count', 5)])\n\n # All will create\n # \n\n`Box` is a subclass of `dict` which overrides some base functionality to make\nsure everything stored in the dict can be accessed as an attribute or key value.\n\n.. code:: python\n\n small_box = Box({'data': 2, 'count': 5})\n small_box.data == small_box['data'] == getattr(small_box, 'data')\n\nAll dicts (and lists) added to a `Box` will be converted on lookup to a `Box` (or `BoxList`),\nallowing for recursive dot notation access.\n\n`Box` also includes helper functions to transform it back into a `dict`,\nas well as into `JSON` or `YAML` strings or files.\n\nConversion Box\n~~~~~~~~~~~~~~\n\nBy default, Box is now a `conversion_box`\nthat adds automagic attribute access for keys that could not normally be attributes.\nIt can of course be disabled with the keyword argument `conversion_box=False`.\n\n.. code:: python\n\n movie_box.movies.Spaceballs[\"personal thoughts\"] = \"It was a good laugh\"\n movie_box.movies.Spaceballs.personal_thoughts\n # 'It was a good laugh'\n\n movie_box.movies.Spaceballs.personal_thoughts = \"On second thought, it was hilarious!\"\n movie_box.movies.Spaceballs[\"personal thoughts\"]\n # 'On second thought, it was hilarious!'\n\n # If a safe attribute matches a key exists, it will not create a new key\n movie_box.movies.Spaceballs[\"personal_thoughts\"]\n # KeyError: 'personal_thoughts'\n\nKeys are modified in the following steps to make sure they are attribute safe:\n\n1. Convert to string (Will encode as UTF-8 with errors ignored)\n2. Replaces any spaces with underscores\n3. Remove anything other than ascii letters, numbers or underscores\n4. If the first character is an integer, it will prepend a lowercase 'x' to it\n5. If the string is a built-in that cannot be used, it will prepend a lowercase 'x'\n6. Removes any duplicate underscores\n\nThis does not change the case of any of the keys.\n\n.. code:: python\n\n bx = Box({\"321 Is a terrible Key!\": \"yes, really\"})\n bx.x321_Is_a_terrible_Key\n # 'yes, really'\n\nThese keys are not stored anywhere, and trying to modify them as an\nattribute will actually modify the underlying regular key's value.\n\n**Warning: duplicate attributes possible**\n\nIf you have two keys that evaluate to the same attribute, such as \"a!b\" and \"a?b\" would become `.ab`,\nthere is no way to discern between them,\nonly reference or update them via standard dictionary modification.\n\n\nFrozen Box\n~~~~~~~~~~\n\nWant to show off your box without worrying about others messing it up? Freeze it!\n\n.. code:: python\n\n frigid = Box(data={'Python': 'Rocks', 'inferior': ['java', 'cobol']}, frozen_box=True)\n\n frigid.data.Python = \"Stinks\"\n # box.BoxError: Box is frozen\n\n frigid.data.Python\n # 'Rocks'\n\n hash(frigid)\n # 4021666719083772260\n\n frigid.data.inferior\n # ('java', 'cobol')\n\n\nIt's hashing ability is the same as the humble `tuple`, it will not be hashable\nif it has mutable objects. Speaking of `tuple`, that's what all the lists\nbecomes now.\n\nDefault Box\n~~~~~~~~~~~\n\nIt's boxes all the way down. At least, when you specify `default_box=True` it can be.\n\n.. code:: python\n\n empty_box = Box(default_box=True)\n\n empty_box.a.b.c.d.e.f.g\n # \n\n empty_box.a.b.c.d.e.f.g = \"h\"\n empty_box\n # \n\nUnless you want it to be something else.\n\n.. code:: python\n\n evil_box = Box(default_box=True, default_box_attr=\"Something Something Something Dark Side\")\n\n evil_box.not_defined\n # 'Something Something Something Dark Side'\n\n # Keep in mind it will no longer be possible to go down multiple levels\n evil_box.not_defined.something_else\n # AttributeError: 'str' object has no attribute 'something_else'\n\n`default_box_attr` will first check if it is callable, and will call the object\nif it is, otherwise it will see if has the `copy` attribute and will call that,\nlastly, will just use the provided item as is.\n\nCamel Killer Box\n~~~~~~~~~~~~~~~~\n\nSimilar to how conversion box works, allow CamelCaseKeys to be found as\nsnake_case_attributes.\n\n.. code:: python\n\n cameled = Box(BadHabit=\"I just can't stop!\", camel_killer_box=True)\n\n cameled.bad_habit\n # \"I just can't stop!\"\n\nOrdered Box\n~~~~~~~~~~~\n\nPreserve the order that the keys were entered into the box. The preserved order\nwill be observed while iterating over the box, or calling `.keys()`,\n`.values()` or `.items()`\n\n.. code:: python\n\n box_of_order = Box(ordered_box=True)\n box_of_order.c = 1\n box_of_order.a = 2\n box_of_order.d = 3\n\n box_of_order.keys() == ['c', 'a', 'd']\n\nKeep in mind this will not guarantee order of `**kwargs` passed to Box,\nas they are inherently not ordered until Python 3.6.\n\n\n\nBoxList\n-------\n\nTo make sure all items added to lists in the box are also converted, all lists\nare covered into `BoxList`. It's possible to\ninitiate these directly and use them just like a `Box`.\n\n.. code:: python\n\n from box import BoxList\n\n my_boxlist = BoxList({'item': x} for x in range(10))\n # , , ...\n\n my_boxlist[5].item\n # 5\n\n\n**to_list**\n\nTransform a `BoxList` and all components back into regular `list` and `dict` items.\n\n.. code:: python\n\n my_boxlist.to_list()\n # [{'item': 0},\n # {'item': 1},\n # ...\n\nSBox\n----\n\nShorthand Box, aka SBox for short(hand), has the properties `json`, `yaml` and\n`dict` for faster access than the regular `to_dict()` and so on.\n\n.. code:: python\n\n from box import SBox\n\n sb = SBox(test=True)\n sb.json\n # '{\"test\": true}'\n\nNote that in this case, `json` has no default indent, unlike `to_json`.\n\nConfigBox\n---------\n\nA Box with additional handling of string manipulation generally found in\nconfig files.\n\ntest_config.ini\n\n.. code:: ini\n\n [General]\n example=A regular string\n\n [Examples]\n my_bool=yes\n anint=234\n exampleList=234,123,234,543\n floatly=4.4\n\n\nWith the combination of `reusables` and `ConfigBox` you can easily read python\nconfig values into python types. It supports `list`, `bool`, `int` and `float`.\n\n.. code:: python\n\n import reusables\n from box import ConfigBox\n\n config = ConfigBox(reusables.config_dict(\"test_config.ini\"))\n # \n\n config.Examples.list('examplelist')\n # ['234', '123', '234', '543']\n\n config.Examples.float('floatly')\n # 4.4\n\nBoxObject\n---------\n\nAn object wrapper with a **Box** for a **__dict__**.\n\n.. code:: python\n\n import requests\n from box import BoxObject\n\n def get_html(session, url, *args, **kwargs):\n response = session.get(url, *args, **kwargs)\n text = response.text\n response_meta = response.__dict__\n for key in tuple(filter(lambda k: k.startswith('_'), response_meta)):\n response_meta.pop(key)\n return BoxObject(text, response_meta, frozen_box=True)\n\n box_url = 'https://raw.githubusercontent.com/cdgriffith/Box/master/box.py'\n with requests.Session() as session:\n box_source = get_html(session, box_url)\n\n box_source.url\n # https://raw.githubusercontent.com/cdgriffith/Box/master/box.py\n\n box_source.status_code\n # 200\n\n box_source.raw.reason\n # OK\n\n**BoxObject** act just like objects but they secretly carry around a **Box** with\nthem to store attributes. **BoxObject** are built off of **wrapt.ObjectProxy** which\ncan wrap almost any python object. They protect their wrapped objects storing them in\nthe **__wrapped__** attribute and keeping the original **__dict__** in\n**__wrapped__.__dict__**.\n\nSee the `Wrapt Documentation`_, specifically\nthe section on **ObjectProxy**, for more information.\n\n\nLicense\n=======\n\nMIT License, Copyright (c) 2017-2018 Chris Griffith. See LICENSE file.\n\n\n.. |BoxImage| image:: https://raw.githubusercontent.com/cdgriffith/Box/master/box_logo.png\n :target: https://github.com/cdgriffith/Box\n.. |BuildStatus| image:: https://travis-ci.org/cdgriffith/Box.png?branch=master\n :target: https://travis-ci.org/cdgriffith/Box\n.. |CoverageStatus| image:: https://img.shields.io/coveralls/cdgriffith/Box/master.svg?maxAge=2592000\n :target: https://coveralls.io/r/cdgriffith/Box?branch=master\n.. |DocStatus| image:: https://readthedocs.org/projects/box/badge/?version=latest\n :target: http://box.readthedocs.org/en/latest/index.html\n.. |PyPi| image:: https://img.shields.io/pypi/v/python-box.svg?maxAge=2592000\n :target: https://pypi.python.org/pypi/python-box/\n.. |License| image:: https://img.shields.io/pypi/l/python-box.svg\n :target: https://pypi.python.org/pypi/python-box/\n.. _`Wrapt Documentation`: https://wrapt.readthedocs.io/en/latest\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/cdgriffith/Box", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "python-box", "package_url": "https://pypi.org/project/python-box/", "platform": "any", "project_url": "https://pypi.org/project/python-box/", "project_urls": { "Homepage": "https://github.com/cdgriffith/Box" }, "release_url": "https://pypi.org/project/python-box/3.4.5/", "requires_dist": [ "pytest ; extra == 'testing'", "coverage (>=3.6) ; extra == 'testing'", "pytest-cov ; extra == 'testing'" ], "requires_python": "", "summary": "Advanced Python dictionaries with dot notation access", "version": "3.4.5" }, "last_serial": 5899794, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "08fe3c4165350368a8458b96d6929c47", "sha256": "30d4bd2bd655b1b627f137c87b149d31725d559abed1ca97c8b5d1eb5dfd7ef3" }, "downloads": -1, "filename": "python_box-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "08fe3c4165350368a8458b96d6929c47", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9840, "upload_time": "2017-03-11T21:21:34", "url": "https://files.pythonhosted.org/packages/c3/12/6659c948bb5d96a6d7459bd318d359f43a2608707a7772f1ab023bf0dbce/python_box-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d4320a52a10353016cb1279ae3106d2", "sha256": "271b3515d34dd35c7e13743b4a88e6c5d71e8c6f38c4bc72dff924ca7bec8878" }, "downloads": -1, "filename": "python_box-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5d4320a52a10353016cb1279ae3106d2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9840, "upload_time": "2017-03-11T21:21:36", "url": "https://files.pythonhosted.org/packages/2e/7d/8566218be34585e645ccdebfd5b6bde13a3f6f25c6ff73ac151e267dbb6c/python_box-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e880bea7bd38b382ec194ba18614755", "sha256": "ba79d0fac7e20cb2a233a0914acd476831ad744109d8e3bf80426b0a175791f3" }, "downloads": -1, "filename": "python-box-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7e880bea7bd38b382ec194ba18614755", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142, "upload_time": "2017-03-11T21:21:32", "url": "https://files.pythonhosted.org/packages/e9/fd/03d82bd702d93a2758b32267e23c850f8a58790f0f44842d267b48e83b76/python-box-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "62c347bbf73e32de843755cb700f379d", "sha256": "a03bdab83aa338ea0aa516000b38b6309361d2ac5e2e7daf25f652a803b980fc" }, "downloads": -1, "filename": "python_box-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "62c347bbf73e32de843755cb700f379d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14948, "upload_time": "2017-03-16T04:27:29", "url": "https://files.pythonhosted.org/packages/33/34/c18ad72e934319310ec3fd27169cb3e2283295a8048456fef7e20d2d6459/python_box-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dfd55e0a5d4f736a472300ef2dcec54", "sha256": "ada517259e2b9c42a8e12132f2b9068a4a24a1f77e5afa024b1fbbef3ba182b0" }, "downloads": -1, "filename": "python_box-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2dfd55e0a5d4f736a472300ef2dcec54", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14948, "upload_time": "2017-03-16T04:27:31", "url": "https://files.pythonhosted.org/packages/43/e1/da611ca37b3e081fb0a55f6dc28f387e2f38ceb20c28ef01f39f37f68cf9/python_box-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e944708ef392afdfe711c98c3f958784", "sha256": "cf74ad500ddb3688427176aa5ff994b0bb195abad03b865f9f8ca2b86bc67647" }, "downloads": -1, "filename": "python-box-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e944708ef392afdfe711c98c3f958784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9971, "upload_time": "2017-03-16T04:27:27", "url": "https://files.pythonhosted.org/packages/21/01/0a3610ecfa59ec7285a67c01f5946e3426746c469442f4779bee8568a511/python-box-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "8e644f68bfcd5c3c6f45f6648a5068b7", "sha256": "6c4a310402e80291bc913019f54e674843f5bc264454b8a2923dff219f4b2aa2" }, "downloads": -1, "filename": "python_box-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8e644f68bfcd5c3c6f45f6648a5068b7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15853, "upload_time": "2017-03-22T23:00:37", "url": "https://files.pythonhosted.org/packages/60/70/b68fe934630c5fa8fa08bdce061ef5eab38d65dffcf02555fe8c4410c8ab/python_box-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "460d14650bc707c267a94edaaddcad42", "sha256": "3bca12ea20764365d57a136bf8def9bdc539084ea8979257cfefcf14e0dcc076" }, "downloads": -1, "filename": "python_box-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "460d14650bc707c267a94edaaddcad42", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15853, "upload_time": "2017-03-22T23:00:39", "url": "https://files.pythonhosted.org/packages/5d/f6/0ad084308765be21ad88239828ce063bcd39537636d8ed536cd5475e4ec9/python_box-2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b64c6afda692f5934a8ef1006d04405", "sha256": "d107b78a499723e9200768ea84a71caf9d097039f0c6161c14a726844d365a37" }, "downloads": -1, "filename": "python-box-2.1.0.tar.gz", "has_sig": false, "md5_digest": "1b64c6afda692f5934a8ef1006d04405", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10767, "upload_time": "2017-03-22T23:00:35", "url": "https://files.pythonhosted.org/packages/66/6a/a2e58c1c5481c003efbef031bec04d5f8aafbcae3103e91a2dabfb3e8ed7/python-box-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "ffa872995012e57140608071c50574e3", "sha256": "315b2b89b3b5e760b3bfd3fcc159f45930f06162397b68c80a222c6e19a87767" }, "downloads": -1, "filename": "python_box-2.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ffa872995012e57140608071c50574e3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15886, "upload_time": "2017-04-02T18:33:09", "url": "https://files.pythonhosted.org/packages/fe/67/3835999de1c72de1dcb81f936ff642db3bd035adc06ca2a361df3d774ba3/python_box-2.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef5f6dc98eb7a6442927fd4827a7d924", "sha256": "c52a199e37dea1b18ad02de95546cdf5531ccee14563611e2a3501ec59e45426" }, "downloads": -1, "filename": "python_box-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ef5f6dc98eb7a6442927fd4827a7d924", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15885, "upload_time": "2017-04-02T18:33:11", "url": "https://files.pythonhosted.org/packages/48/82/fc95e96ec02d32f6aecb9778c2b2b0058c20b7fe498eca95d93ddd9fb4f2/python_box-2.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22b018320ada3e3a9311184b854714e4", "sha256": "7982d7ce63cb023ec1adb443e3d9745cb03e8c209ce7b29bf0292851923b6d56" }, "downloads": -1, "filename": "python-box-2.2.0.tar.gz", "has_sig": false, "md5_digest": "22b018320ada3e3a9311184b854714e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10770, "upload_time": "2017-04-02T18:33:07", "url": "https://files.pythonhosted.org/packages/2e/cf/eae78d53d3860deae9251e24ffbf37b6c8d25d37c87fb2528369c3037b5f/python-box-2.2.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "dd19b2745ae16986c876d9269b097b13", "sha256": "2612fa82d2ab9bcd26c1a583af39bafabb89042e28c956720b4843bd8e6b3c0c" }, "downloads": -1, "filename": "python_box-2.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "dd19b2745ae16986c876d9269b097b13", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15883, "upload_time": "2017-06-29T03:48:59", "url": "https://files.pythonhosted.org/packages/73/f8/742ce116bc1a8a11692a0241c45ff77f23bb7af1eda91e1d24c184791899/python_box-2.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f0539b5ca70febe40b39c9771b69bdc", "sha256": "3edad2b820d1f6d8d2133c1d3c42d924edfbb47269358ad6b9eb6656e8313ef7" }, "downloads": -1, "filename": "python_box-2.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1f0539b5ca70febe40b39c9771b69bdc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15882, "upload_time": "2017-06-29T03:49:01", "url": "https://files.pythonhosted.org/packages/60/b8/ff88be905134bd53960e07362786c1a609bbf4fc59c1c798176eb0c4c608/python_box-2.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97cbf6f4936f6a6ff5165a613328634d", "sha256": "74bf6e583a5a94f7ebe8bb897e9493284fbfd37049e3cdeca11ea50db9c975f2" }, "downloads": -1, "filename": "python-box-2.2.1.tar.gz", "has_sig": false, "md5_digest": "97cbf6f4936f6a6ff5165a613328634d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10755, "upload_time": "2017-06-29T03:48:57", "url": "https://files.pythonhosted.org/packages/75/94/d21323993ae7880de41c03648801477c66ca1dc2a445ece12f4b3e386279/python-box-2.2.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "a81e164f94480f01ec95d3420218bc16", "sha256": "b625382ffb607b16bd84261b7672af52e276bbb124508817f79f863af948657e" }, "downloads": -1, "filename": "python_box-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a81e164f94480f01ec95d3420218bc16", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 24066, "upload_time": "2017-05-05T04:18:04", "url": "https://files.pythonhosted.org/packages/53/fe/655d7f1df80287b7090d0f8b9d2cb912dd5f3d09b61f1d5dd21630467c3e/python_box-3.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "239a3184f37187b7e2c08ed3b40272f4", "sha256": "17e5c46159b49971622b8f3b24c34200520680edebbb36ed1f6dd486833fe5c3" }, "downloads": -1, "filename": "python_box-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "239a3184f37187b7e2c08ed3b40272f4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 24067, "upload_time": "2017-05-05T04:18:07", "url": "https://files.pythonhosted.org/packages/19/3a/251fc4bcdc63211db2a4836006a464345ca59ea4df7de7b6e2cff774a995/python_box-3.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "130fce3b0747f312522220dd4687c39c", "sha256": "1b347b426a6d6acbcd2462f708c1a0c64336ef75dcdf3b47b10774eb48640db8" }, "downloads": -1, "filename": "python-box-3.0.0.tar.gz", "has_sig": false, "md5_digest": "130fce3b0747f312522220dd4687c39c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16709, "upload_time": "2017-05-05T04:18:02", "url": "https://files.pythonhosted.org/packages/b0/fe/8d6e1b784f0353552774e8c88b19b833ce64b106e290f680a0a8fb8ca229/python-box-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "ffcd224d3f60cbe2784bfba71704d9ca", "sha256": "1102dfb6082e42f759b7ab15ff9b48f73a84b30775914c8c6633751aa6a5c97c" }, "downloads": -1, "filename": "python_box-3.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ffcd224d3f60cbe2784bfba71704d9ca", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 23367, "upload_time": "2017-05-07T01:25:14", "url": "https://files.pythonhosted.org/packages/2e/4c/b0aeb31b0e003282ed181ff002f61552fa455b2aee74ecd14797d5048727/python_box-3.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3fd881c66eca8001edfb5a64598f7077", "sha256": "dd29f36bfa1c32e68bde668469838c896d0e4c38fe9059d7b9513eab5e36b732" }, "downloads": -1, "filename": "python_box-3.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3fd881c66eca8001edfb5a64598f7077", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 23367, "upload_time": "2017-05-07T01:25:16", "url": "https://files.pythonhosted.org/packages/54/2f/3c36c286d31b2fd0eb576847a6d25b086450c7048f00603654711a770582/python_box-3.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d2d65c344dde6f39d2a19fb19d722f0", "sha256": "fe0f5c66f16062b013999c7e29143e991296ec810a41acbe965b0276fda6b5e1" }, "downloads": -1, "filename": "python-box-3.0.1.tar.gz", "has_sig": false, "md5_digest": "8d2d65c344dde6f39d2a19fb19d722f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16499, "upload_time": "2017-05-07T01:25:11", "url": "https://files.pythonhosted.org/packages/00/b3/6ee9f90e4bd428dff7afd099c9b1c9760207548f172b34a634d81391cb54/python-box-3.0.1.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "8a7b3ef87bd14a229c1714ba6e6ed364", "sha256": "55188ed8b9f42b6c79935573d9c244795d3457af0e10b6040a445b7bcb9dcd63" }, "downloads": -1, "filename": "python_box-3.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8a7b3ef87bd14a229c1714ba6e6ed364", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25958, "upload_time": "2017-09-03T16:39:17", "url": "https://files.pythonhosted.org/packages/e6/42/21a0d1de451844fba7204992502ad031c7204240ba6299b683adbd2a09e7/python_box-3.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35c6ae2b65d2dc2383c57296eb67c99c", "sha256": "c649af2d7e5044ed5b2a30ed0f590623947cf6e2218e5199b76dc80a38a85fac" }, "downloads": -1, "filename": "python_box-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "35c6ae2b65d2dc2383c57296eb67c99c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25960, "upload_time": "2017-09-03T16:39:19", "url": "https://files.pythonhosted.org/packages/24/7a/57195838f55a5f3cf97256f902df5d73d3595f21c3377c5e3dfe6c3a008f/python_box-3.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2fbae599bfe2c3067c5f54fed657273", "sha256": "330995181062ef8f6b05e83831a1c994a51309891bf5025e7b744020a68ecd03" }, "downloads": -1, "filename": "python-box-3.1.0.tar.gz", "has_sig": false, "md5_digest": "c2fbae599bfe2c3067c5f54fed657273", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18441, "upload_time": "2017-09-03T16:39:13", "url": "https://files.pythonhosted.org/packages/ff/1e/03df506cf1594b6ef31f9615dab959a6e813c5a4fa1c8b4d455edbd1117f/python-box-3.1.0.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "c76f732a3d9a95e24c1f46470455d348", "sha256": "37c833f6a48fe67bb34e9d42fcdf04cc6fd7ff52eb563d0db91759768770f03c" }, "downloads": -1, "filename": "python_box-3.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c76f732a3d9a95e24c1f46470455d348", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26043, "upload_time": "2017-09-05T14:22:45", "url": "https://files.pythonhosted.org/packages/cb/24/c819a3de18100a8189e093e29f6f443d80376c5b7646359e552bf18cd156/python_box-3.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03430f4fad9ed71f185da67839f2bf1f", "sha256": "1997d4f1becd5a47082138306a49993f941896db9b24b879501f66bbbcbc7e7e" }, "downloads": -1, "filename": "python_box-3.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "03430f4fad9ed71f185da67839f2bf1f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 26043, "upload_time": "2017-09-05T14:22:48", "url": "https://files.pythonhosted.org/packages/b8/7a/2150ec83d55d12bdec93c623d5e98cdccf5ed24b18fef39ff1afc13656c7/python_box-3.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8510179c65d007fd52633f5afdccb588", "sha256": "b9192e2a2c7f4535317dfb25b7ae26d8d66f57d29b47d43054aab1ac5df53c07" }, "downloads": -1, "filename": "python-box-3.1.1.tar.gz", "has_sig": false, "md5_digest": "8510179c65d007fd52633f5afdccb588", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18769, "upload_time": "2017-09-05T14:22:43", "url": "https://files.pythonhosted.org/packages/74/d3/acccbcecee56c7e87a75b425c199094e3c6a8075bcfcb70417cb4494abc7/python-box-3.1.1.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "ccd65c8130d56fc13d62a466ba6486bc", "sha256": "2a08b65b1aa0ec35b60d4b1da4e3ceaec1a799bcd1add2bb966392631832e2b7" }, "downloads": -1, "filename": "python_box-3.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ccd65c8130d56fc13d62a466ba6486bc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27010, "upload_time": "2018-05-11T15:07:35", "url": "https://files.pythonhosted.org/packages/7b/03/879e93a183aa0e6ebdc32d0c683aa5c8cf88586aa3e30fd2f61e99741df3/python_box-3.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51063a1bdfc2b23ce54cb2a2478080a7", "sha256": "0f21ff8f91d04d4e14da1eebfe9ba49fe09a893be4e71c1358e5f1ee303cae55" }, "downloads": -1, "filename": "python_box-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "51063a1bdfc2b23ce54cb2a2478080a7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27009, "upload_time": "2018-05-11T15:07:36", "url": "https://files.pythonhosted.org/packages/4c/15/52f8a50dadedd27b34c3d068c684ae0a14881b01423bbd675b1a19717db8/python_box-3.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6feb07b6625453711d9838ddbe34a2ba", "sha256": "fd4e37b2646983dee94c3b3c14a714be4f4420ecb0f5f7dbd57b0b6be081c8fd" }, "downloads": -1, "filename": "python-box-3.2.0.tar.gz", "has_sig": false, "md5_digest": "6feb07b6625453711d9838ddbe34a2ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19677, "upload_time": "2018-05-11T15:07:33", "url": "https://files.pythonhosted.org/packages/00/8d/fcc44a72e36264e40c3763a345f435354f6dbfc33eb5abdf0589661ca1db/python-box-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "64bb900d810020c16044f55e14cb72e2", "sha256": "16ba64b0efabee84f08b1d6721c627ee8e53e6259be7211e84a4f3d3f9212c3c" }, "downloads": -1, "filename": "python_box-3.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "64bb900d810020c16044f55e14cb72e2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27429, "upload_time": "2018-09-20T18:18:37", "url": "https://files.pythonhosted.org/packages/93/0a/4ba7988481e3d11658c7f37ac642e1aa92e2a7076b533e4e174c901a2687/python_box-3.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9dc8b0084bef2977689dff61c3362224", "sha256": "b79b37b46d2b7067a956c97eb1d6176536f3c6a307cdb12136ade67ea4308b4a" }, "downloads": -1, "filename": "python_box-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9dc8b0084bef2977689dff61c3362224", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27428, "upload_time": "2018-09-20T18:18:39", "url": "https://files.pythonhosted.org/packages/a8/bb/604be0a3a98b0858819cefb1124fcf0b7c3dfb9d357ff55348514f122f20/python_box-3.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f4f09cbe958fe2fc53c007bcac1b746", "sha256": "c5499c733fd4447270b82aa7a8e369387fefe9a53990682229b6d667c4e5d633" }, "downloads": -1, "filename": "python-box-3.2.1.tar.gz", "has_sig": false, "md5_digest": "5f4f09cbe958fe2fc53c007bcac1b746", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20013, "upload_time": "2018-09-20T18:18:35", "url": "https://files.pythonhosted.org/packages/09/7c/123b3a4967b8f80885eee0cb8f36281c738bc83757eab381f14c1c7f3475/python-box-3.2.1.tar.gz" } ], "3.2.2": [ { "comment_text": "", "digests": { "md5": "42dcd279b4ee917900c0eacdbb70bdf8", "sha256": "c5088e99712a559fd5ebad6b77a7114adcf4be232ca08e50bac64ee89439a48f" }, "downloads": -1, "filename": "python_box-3.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "42dcd279b4ee917900c0eacdbb70bdf8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27288, "upload_time": "2018-10-31T05:54:51", "url": "https://files.pythonhosted.org/packages/0a/fb/ea2b9faf2d15637b2ff5afe0172e3852996054585e58e8fbc54a3f20ab9a/python_box-3.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "843d3f05f63840f8618dfb5abe27e25f", "sha256": "ef8525c62d813c66b0b4aaf917c4d6e57c62602cf09ef84aac6d9782ceaff466" }, "downloads": -1, "filename": "python_box-3.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "843d3f05f63840f8618dfb5abe27e25f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27287, "upload_time": "2018-10-31T05:54:55", "url": "https://files.pythonhosted.org/packages/09/09/5dfe5810757554f644c06c6a0ff8aea814e04e1d948d7a1933dec6dd7f29/python_box-3.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9063b7652c6c204c3628fed540fd172", "sha256": "89f8c689228e29aefdb86892ace9aadc1ab0012434ff1d105a067b5ef1df57a1" }, "downloads": -1, "filename": "python-box-3.2.2.tar.gz", "has_sig": false, "md5_digest": "f9063b7652c6c204c3628fed540fd172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20070, "upload_time": "2018-10-31T05:54:48", "url": "https://files.pythonhosted.org/packages/12/76/686525d6af4bbae6b2e11ffcf9835b3c697c404d0ed1c2b369edbe9da529/python-box-3.2.2.tar.gz" } ], "3.2.3": [ { "comment_text": "", "digests": { "md5": "52019ae312833f2e4dd8e6bbe7b516e3", "sha256": "f0f4c36b6209181aa74fa7f14660a1542162178765f30527e092b8fecc64595b" }, "downloads": -1, "filename": "python_box-3.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "52019ae312833f2e4dd8e6bbe7b516e3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27324, "upload_time": "2018-11-13T00:12:07", "url": "https://files.pythonhosted.org/packages/33/ce/ea2a1888f2d7f8e61d9ddebb788d3b4bd7bcd5a4323cd890b17334e62228/python_box-3.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fb5c4311ec087373addeb9b591cc328", "sha256": "3330f264ef8deb7016a002911d345a99977e2977bf5b4a1a649f63866d3d0e5b" }, "downloads": -1, "filename": "python_box-3.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6fb5c4311ec087373addeb9b591cc328", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27325, "upload_time": "2018-11-13T00:12:11", "url": "https://files.pythonhosted.org/packages/42/ec/61f0b95d4b81fe674e8a3f49379e0cacc296c6e2bbb8a1096891f7e24b42/python_box-3.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a956a477dd2d39733281080961d2d22e", "sha256": "4bde84c7fa4282fe9ee4e584234571c25c03130bbbfbebe4ae369eced9a8e3e6" }, "downloads": -1, "filename": "python-box-3.2.3.tar.gz", "has_sig": false, "md5_digest": "a956a477dd2d39733281080961d2d22e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20106, "upload_time": "2018-11-13T00:12:04", "url": "https://files.pythonhosted.org/packages/4f/6d/1a85904fcd0474925012eee912ea4d81f3a552fbe8e74dcdaf4c02c0839a/python-box-3.2.3.tar.gz" } ], "3.2.4": [ { "comment_text": "", "digests": { "md5": "212af1f19220799e7c92d364fe692c08", "sha256": "cc54818efd9cd49eb006741fa4904f27926429766b9ef0510b6fc75d06b8b627" }, "downloads": -1, "filename": "python_box-3.2.4-py2-none-any.whl", "has_sig": false, "md5_digest": "212af1f19220799e7c92d364fe692c08", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23639, "upload_time": "2019-02-01T03:50:43", "url": "https://files.pythonhosted.org/packages/3a/fc/2206977b596c98f21d1b17306e4f1fedb16ecbdb023525b9c2cfa183ca08/python_box-3.2.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85e1690a79d52e1f55fc57a6b3c8796d", "sha256": "8c69e61e456dd771b06d0fdca6b2e19830f2463dbe7704359e9f6388a9af6e94" }, "downloads": -1, "filename": "python_box-3.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "85e1690a79d52e1f55fc57a6b3c8796d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23639, "upload_time": "2019-02-01T03:50:44", "url": "https://files.pythonhosted.org/packages/01/a8/24c25b194c23b49ff0a872b475d351a8bd22ba19cda04d3d822171171895/python_box-3.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4affdcbecd035e0d98eee852f90a674", "sha256": "a00464bd1b28e26d3a048a8c7db36722d8eb570666cabcb586ef29ebc69c3967" }, "downloads": -1, "filename": "python-box-3.2.4.tar.gz", "has_sig": false, "md5_digest": "b4affdcbecd035e0d98eee852f90a674", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24491, "upload_time": "2019-02-01T03:50:46", "url": "https://files.pythonhosted.org/packages/80/f3/13d00f9d3649035cb2fd89e47bdf7fc3abfba836b41af0979b8d33e56dde/python-box-3.2.4.tar.gz" } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "4fdcb59ff898caa24165c2c72826c64d", "sha256": "18374e7eca0e6e14100e252413cf289a3c01257f75700b47763434aad570a6d7" }, "downloads": -1, "filename": "python_box-3.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4fdcb59ff898caa24165c2c72826c64d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25505, "upload_time": "2019-04-19T14:23:09", "url": "https://files.pythonhosted.org/packages/f7/c2/55613c5261510d87d14585a6bf1ddde2f8b772a2101dd0bf2eb2318389ab/python_box-3.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2209260bea3537153914559eaa6ec329", "sha256": "f98ef8d8798c66566c2ee6abb5fab0d67adb88e6e2ef51d3b1a253c20c46c8fb" }, "downloads": -1, "filename": "python-box-3.3.0.tar.gz", "has_sig": false, "md5_digest": "2209260bea3537153914559eaa6ec329", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27060, "upload_time": "2019-04-19T14:23:10", "url": "https://files.pythonhosted.org/packages/5d/0a/62b8366f246c1f4d3369efca3944b036e54f35017506252d8b627f05f3ef/python-box-3.3.0.tar.gz" } ], "3.4.0": [ { "comment_text": "", "digests": { "md5": "44c9bc82af9d429be0b82fa920b58d4a", "sha256": "caef5c84ac82aca369aa64bcb7e9b1c17e3eb7a4c90348570da660bc50d3d08d" }, "downloads": -1, "filename": "python_box-3.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44c9bc82af9d429be0b82fa920b58d4a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25966, "upload_time": "2019-04-26T20:34:40", "url": "https://files.pythonhosted.org/packages/c6/50/03f4e43fc76dfe9513615aa74f218befdc31543a61b6e6715f8525cd47cb/python_box-3.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eddc0c683db52f7472754861459e1277", "sha256": "eabca7d718c41fec2ae86f3a207f55984043e8453d50e57331701c68f0a030ce" }, "downloads": -1, "filename": "python-box-3.4.0.tar.gz", "has_sig": false, "md5_digest": "eddc0c683db52f7472754861459e1277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22787, "upload_time": "2019-04-26T20:34:44", "url": "https://files.pythonhosted.org/packages/5b/0e/5df3d9cd16bfc6f075147000a48bd1b6b778b17995f7fb2b8adba1e49869/python-box-3.4.0.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "24153ba5dfbcfeab746b215b363af796", "sha256": "0f6dc4c79af9af31613466716bcac8b130a2b4e9279fef71c52af79cc56b2e9f" }, "downloads": -1, "filename": "python_box-3.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24153ba5dfbcfeab746b215b363af796", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26052, "upload_time": "2019-06-06T16:17:03", "url": "https://files.pythonhosted.org/packages/71/7a/a25bbf3054d12e8af740d4122f798421a5476ad5fd3ec18a404fcead72ee/python_box-3.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73b6ced9677983b5b9a8daede5b2aed8", "sha256": "bf520074ccd18088b4dd30ba4adc9b1b00c1289073242d98bd9f378222b54cff" }, "downloads": -1, "filename": "python-box-3.4.1.tar.gz", "has_sig": false, "md5_digest": "73b6ced9677983b5b9a8daede5b2aed8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22954, "upload_time": "2019-06-06T16:17:06", "url": "https://files.pythonhosted.org/packages/01/9c/cd047e477e1fa6ecc73ba994bc5f0b9f4d4d2b407d5451fcf365c57fa637/python-box-3.4.1.tar.gz" } ], "3.4.2": [ { "comment_text": "", "digests": { "md5": "9de9132776fdbd0c00e56ed75c244b57", "sha256": "05713399ee6a4477bb32e90c009c95b1c2e548773f2a993e8b446a3bd396bafb" }, "downloads": -1, "filename": "python_box-3.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9de9132776fdbd0c00e56ed75c244b57", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26051, "upload_time": "2019-07-05T15:25:20", "url": "https://files.pythonhosted.org/packages/99/cc/57c03aea1eb5eb20e2e73dcf3c0675aece440725a733d12dacffc43a5135/python_box-3.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6dc45faf106f3c0698d57706b6439b28", "sha256": "48dbb429347c0e5deb55fc71b993a5d54f8110cd39165b9a971cfab83504b34c" }, "downloads": -1, "filename": "python-box-3.4.2.tar.gz", "has_sig": false, "md5_digest": "6dc45faf106f3c0698d57706b6439b28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25702, "upload_time": "2019-07-05T15:25:21", "url": "https://files.pythonhosted.org/packages/82/a8/0121b057fd47795da8a7c0119ac993ccf8213c79038d59af631d8cc07b38/python-box-3.4.2.tar.gz" } ], "3.4.3": [ { "comment_text": "", "digests": { "md5": "52ff0ab4bc7a66ab375929dc3a1eac97", "sha256": "3a5837245b264c7c8b79b019b2853db59ab8472a8a6a02407b7982d6f3321c4f" }, "downloads": -1, "filename": "python_box-3.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52ff0ab4bc7a66ab375929dc3a1eac97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25948, "upload_time": "2019-08-19T20:14:54", "url": "https://files.pythonhosted.org/packages/e8/18/73ca852db968e76a2f242fed82b5d8cd19825232fbd719e75373e8a6e499/python_box-3.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "898f468fb8686132cd26f81163f773e4", "sha256": "449f90ea30d7bc48d0f2242bac5299d87d1c1cc471464823e0a05fc1980a87fd" }, "downloads": -1, "filename": "python-box-3.4.3.tar.gz", "has_sig": false, "md5_digest": "898f468fb8686132cd26f81163f773e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26020, "upload_time": "2019-08-19T20:14:56", "url": "https://files.pythonhosted.org/packages/f0/68/c99a10bcc01c2f6dcf992f49b7929a62c7306cc81bb6174892c39d01da8d/python-box-3.4.3.tar.gz" } ], "3.4.4": [ { "comment_text": "", "digests": { "md5": "6fc9e8638126c9e57338c7fed6f9cf07", "sha256": "5b044a055f9f93ca7e19343bf0f2e8f13a45ef3dfa37d67d9d98e52601372e89" }, "downloads": -1, "filename": "python_box-3.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fc9e8638126c9e57338c7fed6f9cf07", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26009, "upload_time": "2019-09-23T02:31:48", "url": "https://files.pythonhosted.org/packages/bc/1d/4d777c569f5ec573f73cd69083892bbfa03779434e5ca4c25c66987e2372/python_box-3.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3340a946e7d0f3227c27a88a3e22e2d", "sha256": "4c698279ec1e28089389659b21610093f81fa5d59a0090af4dadc08ca6fe08dc" }, "downloads": -1, "filename": "python-box-3.4.4.tar.gz", "has_sig": false, "md5_digest": "d3340a946e7d0f3227c27a88a3e22e2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31118, "upload_time": "2019-09-23T02:31:50", "url": "https://files.pythonhosted.org/packages/b4/fc/ba266794c8695f5f61ffd9704645cb5c2c0f92d20a8f88602324d981c54f/python-box-3.4.4.tar.gz" } ], "3.4.5": [ { "comment_text": "", "digests": { "md5": "b9eb005498c17a8bd14085249e281807", "sha256": "7d091f833680a02b6f1fc6c062ea8f6e5ece28b30b13675b2cdb8d9eb07db918" }, "downloads": -1, "filename": "python_box-3.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9eb005498c17a8bd14085249e281807", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26279, "upload_time": "2019-09-28T14:20:31", "url": "https://files.pythonhosted.org/packages/0a/8f/1797a73eb18d55aafe7a4a97ad9be88eb352b97bca58cfc10226d263d177/python_box-3.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ecb0d5934aced2e9f258665830a28220", "sha256": "ff2ccbbc06b9b8cfb4d00e3113079bfcd4a050365ad9aa774cb3003da705ad06" }, "downloads": -1, "filename": "python-box-3.4.5.tar.gz", "has_sig": false, "md5_digest": "ecb0d5934aced2e9f258665830a28220", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31384, "upload_time": "2019-09-28T14:20:33", "url": "https://files.pythonhosted.org/packages/bb/d3/d3b70a17f9f4058f0aa877aa9e76d733125db5e3d19758554a3c1a5f2298/python-box-3.4.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b9eb005498c17a8bd14085249e281807", "sha256": "7d091f833680a02b6f1fc6c062ea8f6e5ece28b30b13675b2cdb8d9eb07db918" }, "downloads": -1, "filename": "python_box-3.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9eb005498c17a8bd14085249e281807", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26279, "upload_time": "2019-09-28T14:20:31", "url": "https://files.pythonhosted.org/packages/0a/8f/1797a73eb18d55aafe7a4a97ad9be88eb352b97bca58cfc10226d263d177/python_box-3.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ecb0d5934aced2e9f258665830a28220", "sha256": "ff2ccbbc06b9b8cfb4d00e3113079bfcd4a050365ad9aa774cb3003da705ad06" }, "downloads": -1, "filename": "python-box-3.4.5.tar.gz", "has_sig": false, "md5_digest": "ecb0d5934aced2e9f258665830a28220", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31384, "upload_time": "2019-09-28T14:20:33", "url": "https://files.pythonhosted.org/packages/bb/d3/d3b70a17f9f4058f0aa877aa9e76d733125db5e3d19758554a3c1a5f2298/python-box-3.4.5.tar.gz" } ] }