python-box


Namepython-box JSON
Version 7.1.1 PyPI version JSON
download
home_pagehttps://github.com/cdgriffith/Box
SummaryAdvanced Python dictionaries with dot notation access
upload_time2023-08-26 14:45:01
maintainer
docs_urlNone
authorChris Griffith
requires_python>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements msgpack ruamel.yaml tomli tomli-w
Travis-CI No Travis.
coveralls test coverage
            |BuildStatus| |License|

|BoxImage|

.. code:: python

        from box import Box

        movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } })

        movie_box.Robin_Hood_Men_in_Tights.imdb_stars
        # 6.7


Box will automatically make otherwise inaccessible keys safe to access as an attribute.
You can always pass `conversion_box=False` to `Box` to disable that behavior.
Also, all new dict and lists added to a Box or BoxList object are converted automatically.

There are over a half dozen ways to customize your Box and make it work for you.

Check out the new `Box github wiki <https://github.com/cdgriffith/Box/wiki>`_ for more details and examples!

Install
=======

**Version Pin Your Box!**

If you aren't in the habit of version pinning your libraries, it will eventually bite you.
Box has a `list of breaking change <https://github.com/cdgriffith/Box/wiki/Major-Version-Breaking-Changes>`_ between major versions you should always check out before updating.

requirements.txt
----------------

.. code:: text

        python-box[all]~=7.0

As Box adheres to semantic versioning (aka API changes will only occur on between major version),
it is best to use `Compatible release <https://www.python.org/dev/peps/pep-0440/#compatible-release>`_ matching using the `~=` clause.

Install from command line
-------------------------

.. code:: bash

        python -m pip install --upgrade pip
        pip install python-box[all]~=7.0 --upgrade

Install with selected dependencies
----------------------------------

Box does not install external dependencies such as yaml and toml writers. Instead you can specify which you want,
for example, `[all]` is shorthand for:

.. code:: bash

        pip install python-box[ruamel.yaml,tomli_w,msgpack]~=7.0 --upgrade

But you can also sub out `ruamel.yaml` for `PyYAML`.

Check out `more details <https://github.com/cdgriffith/Box/wiki/Installation>`_ on installation details.

Box 7 is tested on python 3.7+, if you are upgrading from previous versions, please look through
`any breaking changes and new features <https://github.com/cdgriffith/Box/wiki/Major-Version-Breaking-Changes>`_.

Optimized Version
-----------------

Box has introduced Cython optimizations for major platforms by default.
Loading large data sets can be up to 10x faster!

If you are **not** on a x86_64 supported system you will need to do some extra work to install the optimized version.
There will be an warning of "WARNING: Cython not installed, could not optimize box" during install.
You will need python development files, system compiler, and the python packages `Cython` and `wheel`.

**Linux Example:**

First make sure you have python development files installed (`python3-dev` or `python3-devel` in most repos).
You will then need `Cython` and `wheel` installed and then install (or re-install with `--force`) `python-box`.

.. code:: bash

        pip install Cython wheel
        pip install python-box[all]~=7.0 --upgrade --force

If you have any issues please open a github issue with the error you are experiencing!

Overview
========

`Box` is designed to be a near transparent drop in replacements for
dictionaries that add dot notation access and other powerful feature.

There are a lot of `types of boxes <https://github.com/cdgriffith/Box/wiki/Types-of-Boxes>`_
to customize it for your needs, as well as handy `converters <https://github.com/cdgriffith/Box/wiki/Converters>`_!

Keep in mind any sub dictionaries or ones set after initiation will be automatically converted to
a `Box` object, and lists will be converted to `BoxList`, all other objects stay intact.

Check out the `Quick Start <https://github.com/cdgriffith/Box/wiki/Quick-Start>`_  for more in depth details.

`Box` can be instantiated the same ways as `dict`.

.. code:: python

        Box({'data': 2, 'count': 5})
        Box(data=2, count=5)
        Box({'data': 2, 'count': 1}, count=5)
        Box([('data', 2), ('count', 5)])

        # All will create
        # <Box: {'data': 2, 'count': 5}>

`Box` is a subclass of `dict` which overrides some base functionality to make
sure everything stored in the dict can be accessed as an attribute or key value.

.. code:: python

      small_box = Box({'data': 2, 'count': 5})
      small_box.data == small_box['data'] == getattr(small_box, 'data')

All dicts (and lists) added to a `Box` will be converted on insertion to a `Box` (or `BoxList`),
allowing for recursive dot notation access.

`Box` also includes helper functions to transform it back into a `dict`,
as well as into `JSON`, `YAML`, `TOML`, or `msgpack` strings or files.


Thanks
======

A huge thank you to everyone that has given features and feedback over the years to Box! Check out everyone that has contributed_.

A big thanks to Python Software Foundation, and PSF-Trademarks Committee, for official approval to use the Python logo on the `Box` logo!

Also special shout-out to PythonBytes_, who featured Box on their podcast.


License
=======

MIT License, Copyright (c) 2017-2023 Chris Griffith. See LICENSE_ file.


.. |BoxImage| image:: https://raw.githubusercontent.com/cdgriffith/Box/master/box_logo.png
   :target: https://github.com/cdgriffith/Box
.. |BuildStatus| image:: https://github.com/cdgriffith/Box/workflows/Tests/badge.svg?branch=master
   :target: https://github.com/cdgriffith/Box/actions?query=workflow%3ATests
.. |License| image:: https://img.shields.io/pypi/l/python-box.svg
   :target: https://pypi.python.org/pypi/python-box/

.. _PythonBytes: https://pythonbytes.fm/episodes/show/19/put-your-python-dictionaries-in-a-box-and-apparently-python-is-really-wanted
.. _contributed: AUTHORS.rst
.. _`Wrapt Documentation`: https://wrapt.readthedocs.io/en/latest
.. _reusables: https://github.com/cdgriffith/reusables#reusables
.. _created: https://github.com/cdgriffith/Reusables/commit/df20de4db74371c2fedf1578096f3e29c93ccdf3#diff-e9a0f470ef3e8afb4384dc2824943048R51
.. _LICENSE: https://github.com/cdgriffith/Box/blob/master/LICENSE

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cdgriffith/Box",
    "name": "python-box",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "Chris Griffith",
    "author_email": "chris@cdgriffith.com",
    "download_url": "https://files.pythonhosted.org/packages/69/0d/b463241f95bc0dc47dee176508fb0c1cf2d5ca100832ccf10b75401bfed4/python-box-7.1.1.tar.gz",
    "platform": "any",
    "description": "|BuildStatus| |License|\n\n|BoxImage|\n\n.. code:: python\n\n        from box import Box\n\n        movie_box = Box({ \"Robin Hood: Men in Tights\": { \"imdb stars\": 6.7, \"length\": 104 } })\n\n        movie_box.Robin_Hood_Men_in_Tights.imdb_stars\n        # 6.7\n\n\nBox will automatically make otherwise inaccessible keys safe to access as an attribute.\nYou can always pass `conversion_box=False` to `Box` to disable that behavior.\nAlso, all new dict and lists added to a Box or BoxList object are converted automatically.\n\nThere are over a half dozen ways to customize your Box and make it work for you.\n\nCheck out the new `Box github wiki <https://github.com/cdgriffith/Box/wiki>`_ for more details and examples!\n\nInstall\n=======\n\n**Version Pin Your Box!**\n\nIf you aren't in the habit of version pinning your libraries, it will eventually bite you.\nBox has a `list of breaking change <https://github.com/cdgriffith/Box/wiki/Major-Version-Breaking-Changes>`_ between major versions you should always check out before updating.\n\nrequirements.txt\n----------------\n\n.. code:: text\n\n        python-box[all]~=7.0\n\nAs Box adheres to semantic versioning (aka API changes will only occur on between major version),\nit is best to use `Compatible release <https://www.python.org/dev/peps/pep-0440/#compatible-release>`_ matching using the `~=` clause.\n\nInstall from command line\n-------------------------\n\n.. code:: bash\n\n        python -m pip install --upgrade pip\n        pip install python-box[all]~=7.0 --upgrade\n\nInstall with selected dependencies\n----------------------------------\n\nBox does not install external dependencies such as yaml and toml writers. Instead you can specify which you want,\nfor example, `[all]` is shorthand for:\n\n.. code:: bash\n\n        pip install python-box[ruamel.yaml,tomli_w,msgpack]~=7.0 --upgrade\n\nBut you can also sub out `ruamel.yaml` for `PyYAML`.\n\nCheck out `more details <https://github.com/cdgriffith/Box/wiki/Installation>`_ on installation details.\n\nBox 7 is tested on python 3.7+, if you are upgrading from previous versions, please look through\n`any breaking changes and new features <https://github.com/cdgriffith/Box/wiki/Major-Version-Breaking-Changes>`_.\n\nOptimized Version\n-----------------\n\nBox has introduced Cython optimizations for major platforms by default.\nLoading large data sets can be up to 10x faster!\n\nIf you are **not** on a x86_64 supported system you will need to do some extra work to install the optimized version.\nThere will be an warning of \"WARNING: Cython not installed, could not optimize box\" during install.\nYou will need python development files, system compiler, and the python packages `Cython` and `wheel`.\n\n**Linux Example:**\n\nFirst make sure you have python development files installed (`python3-dev` or `python3-devel` in most repos).\nYou will then need `Cython` and `wheel` installed and then install (or re-install with `--force`) `python-box`.\n\n.. code:: bash\n\n        pip install Cython wheel\n        pip install python-box[all]~=7.0 --upgrade --force\n\nIf you have any issues please open a github issue with the error you are experiencing!\n\nOverview\n========\n\n`Box` is designed to be a near transparent drop in replacements for\ndictionaries that add dot notation access and other powerful feature.\n\nThere are a lot of `types of boxes <https://github.com/cdgriffith/Box/wiki/Types-of-Boxes>`_\nto customize it for your needs, as well as handy `converters <https://github.com/cdgriffith/Box/wiki/Converters>`_!\n\nKeep in mind any sub dictionaries or ones set after initiation will be automatically converted to\na `Box` object, and lists will be converted to `BoxList`, all other objects stay intact.\n\nCheck out the `Quick Start <https://github.com/cdgriffith/Box/wiki/Quick-Start>`_  for more in depth details.\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        # <Box: {'data': 2, 'count': 5}>\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 insertion 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`, `YAML`, `TOML`, or `msgpack` strings or files.\n\n\nThanks\n======\n\nA huge thank you to everyone that has given features and feedback over the years to Box! Check out everyone that has contributed_.\n\nA big thanks to Python Software Foundation, and PSF-Trademarks Committee, for official approval to use the Python logo on the `Box` logo!\n\nAlso special shout-out to PythonBytes_, who featured Box on their podcast.\n\n\nLicense\n=======\n\nMIT License, Copyright (c) 2017-2023 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://github.com/cdgriffith/Box/workflows/Tests/badge.svg?branch=master\n   :target: https://github.com/cdgriffith/Box/actions?query=workflow%3ATests\n.. |License| image:: https://img.shields.io/pypi/l/python-box.svg\n   :target: https://pypi.python.org/pypi/python-box/\n\n.. _PythonBytes: https://pythonbytes.fm/episodes/show/19/put-your-python-dictionaries-in-a-box-and-apparently-python-is-really-wanted\n.. _contributed: AUTHORS.rst\n.. _`Wrapt Documentation`: https://wrapt.readthedocs.io/en/latest\n.. _reusables: https://github.com/cdgriffith/reusables#reusables\n.. _created: https://github.com/cdgriffith/Reusables/commit/df20de4db74371c2fedf1578096f3e29c93ccdf3#diff-e9a0f470ef3e8afb4384dc2824943048R51\n.. _LICENSE: https://github.com/cdgriffith/Box/blob/master/LICENSE\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Advanced Python dictionaries with dot notation access",
    "version": "7.1.1",
    "project_urls": {
        "Homepage": "https://github.com/cdgriffith/Box"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c6f14015c479d4888d79901d78db9862cdf2bc9e215329f45ac180998b7b28b",
                "md5": "fcea8367fc740dd88f6941174dadfe99",
                "sha256": "81ed1ec0f0ff2370227fc07277c5baca46d190a4747631bad7eb6ab1630fb7d9"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp310-cp310-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fcea8367fc740dd88f6941174dadfe99",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1291993,
            "upload_time": "2023-08-26T14:46:01",
            "upload_time_iso_8601": "2023-08-26T14:46:01.987366Z",
            "url": "https://files.pythonhosted.org/packages/3c/6f/14015c479d4888d79901d78db9862cdf2bc9e215329f45ac180998b7b28b/python_box-7.1.1-cp310-cp310-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6563c2df733c7e9549c1acc6919a3157f8f2fe833fa013052b169e228e1aeb75",
                "md5": "d295624b24de685a8f4c924a0d989a09",
                "sha256": "8891735b4148e84d348c6eadd2f127152f751c9603e35d43a1f496183a291ac4"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d295624b24de685a8f4c924a0d989a09",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 3853728,
            "upload_time": "2023-08-26T14:53:50",
            "upload_time_iso_8601": "2023-08-26T14:53:50.171256Z",
            "url": "https://files.pythonhosted.org/packages/65/63/c2df733c7e9549c1acc6919a3157f8f2fe833fa013052b169e228e1aeb75/python_box-7.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9aeb469234d6696310416a999399ec8e94b4904789cb15e0e01dd08a9348d87a",
                "md5": "ca3b3db623ac371e3cf7afe0541735d4",
                "sha256": "0036fd47d388deaca8ebd65aea905f88ee6ef91d1d8ce34898b66f1824afbe80"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ca3b3db623ac371e3cf7afe0541735d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1183154,
            "upload_time": "2023-08-26T14:45:52",
            "upload_time_iso_8601": "2023-08-26T14:45:52.985460Z",
            "url": "https://files.pythonhosted.org/packages/9a/eb/469234d6696310416a999399ec8e94b4904789cb15e0e01dd08a9348d87a/python_box-7.1.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e4771b1cd3c04ba147781f68debcbb40a9aee4cb66700e523ee921655d69c26",
                "md5": "28b6317532bbceee603a73e165f5f335",
                "sha256": "aabf8b9ae5dbc8ba431d8cbe0d4cfe737a25d52d68b0f5f2ff34915c21a2c1db"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "28b6317532bbceee603a73e165f5f335",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1823315,
            "upload_time": "2023-08-26T14:46:34",
            "upload_time_iso_8601": "2023-08-26T14:46:34.979329Z",
            "url": "https://files.pythonhosted.org/packages/8e/47/71b1cd3c04ba147781f68debcbb40a9aee4cb66700e523ee921655d69c26/python_box-7.1.1-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa92c961a096d2d445c5c6a9c689a9a019c2735ff7c3fd22d7fddaf80bd7479e",
                "md5": "e4fa4b39a2c1aba331d316f7cbd7ef34",
                "sha256": "c046608337e723ae4de3206db5d1e1202ed166da2dfdc70c1f9361e72ace5633"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e4fa4b39a2c1aba331d316f7cbd7ef34",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 4294913,
            "upload_time": "2023-08-26T14:53:52",
            "upload_time_iso_8601": "2023-08-26T14:53:52.606167Z",
            "url": "https://files.pythonhosted.org/packages/aa/92/c961a096d2d445c5c6a9c689a9a019c2735ff7c3fd22d7fddaf80bd7479e/python_box-7.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a80c5c4a9aa6216265059fa3b2551274bb0cf21089cab5057c3f43be994ff75c",
                "md5": "8d3c59dea3490a14d1e9b5d32b80fdc4",
                "sha256": "f9266795e9c233874fb5b34fa994054b4fb0371881678e6ec45aec17fc95feac"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8d3c59dea3490a14d1e9b5d32b80fdc4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1189244,
            "upload_time": "2023-08-26T14:46:22",
            "upload_time_iso_8601": "2023-08-26T14:46:22.684090Z",
            "url": "https://files.pythonhosted.org/packages/a8/0c/5c4a9aa6216265059fa3b2551274bb0cf21089cab5057c3f43be994ff75c/python_box-7.1.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37f2dd135ca297aa7322e2451b3933046f8704bb03c0ecb28373d9d97abdde07",
                "md5": "1b7cb92ec458a7f9ab6daaa641eaf8d7",
                "sha256": "f76b5b7f0cdc07bfdd4200dc24e6e33189bb2ae322137a2b7110fd41891a3157"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp38-cp38-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1b7cb92ec458a7f9ab6daaa641eaf8d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1285138,
            "upload_time": "2023-08-26T14:45:57",
            "upload_time_iso_8601": "2023-08-26T14:45:57.364772Z",
            "url": "https://files.pythonhosted.org/packages/37/f2/dd135ca297aa7322e2451b3933046f8704bb03c0ecb28373d9d97abdde07/python_box-7.1.1-cp38-cp38-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "88cfc75636ecfc9185630d6359fbb802b6a137a6cc763e0af6597a96b54bd343",
                "md5": "72418792f5e81f655788d1cde68e319c",
                "sha256": "4ea13c98e05a3ec0ff26f254986a17290b69b5ade209fad081fd628f8fcfaa08"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "72418792f5e81f655788d1cde68e319c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 3934262,
            "upload_time": "2023-08-26T14:53:55",
            "upload_time_iso_8601": "2023-08-26T14:53:55.267657Z",
            "url": "https://files.pythonhosted.org/packages/88/cf/c75636ecfc9185630d6359fbb802b6a137a6cc763e0af6597a96b54bd343/python_box-7.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b80e2aea4a9180e3cf58efe4119ce8c9f75ef97f2666bd1fe2b1b5cd8e36170c",
                "md5": "7ea5c0de84848374387aa6416a2f1352",
                "sha256": "1b3f346e332dba16df0b0543d319d9e7ce07d93e5ae152175302894352aa2d28"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7ea5c0de84848374387aa6416a2f1352",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1185507,
            "upload_time": "2023-08-26T14:46:09",
            "upload_time_iso_8601": "2023-08-26T14:46:09.942233Z",
            "url": "https://files.pythonhosted.org/packages/b8/0e/2aea4a9180e3cf58efe4119ce8c9f75ef97f2666bd1fe2b1b5cd8e36170c/python_box-7.1.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8467855a5c5b235b15ef892d195582c9da252c9d42c8364d2dc8d720d126f6bb",
                "md5": "79d8fa082e8cbe3b4f5a6925dfa6e14a",
                "sha256": "24c4ec0ee0278f66321100aaa9c615413da27a14ff43d376a2a3b4665e1d9494"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp39-cp39-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79d8fa082e8cbe3b4f5a6925dfa6e14a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1292495,
            "upload_time": "2023-08-26T14:46:02",
            "upload_time_iso_8601": "2023-08-26T14:46:02.379252Z",
            "url": "https://files.pythonhosted.org/packages/84/67/855a5c5b235b15ef892d195582c9da252c9d42c8364d2dc8d720d126f6bb/python_box-7.1.1-cp39-cp39-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0b65f8d876ebce5515574342b76b1b061657533b9d4adb2d5ef4624e642e4f09",
                "md5": "d1748ff9ff8a833b86eb6d06cba5f3c6",
                "sha256": "d95e5eec4fc8f3fc5c9cc7347fc2eb4f9187c853d34c90b1658d1eff96cd4eac"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d1748ff9ff8a833b86eb6d06cba5f3c6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 3859423,
            "upload_time": "2023-08-26T14:53:57",
            "upload_time_iso_8601": "2023-08-26T14:53:57.048431Z",
            "url": "https://files.pythonhosted.org/packages/0b/65/f8d876ebce5515574342b76b1b061657533b9d4adb2d5ef4624e642e4f09/python_box-7.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6bbded4960ef50f5e43ef04f9b068ee5b42cde56b2a97aeb2dbfd4ec68322d0d",
                "md5": "ce6591d941ded9fe545558441477b779",
                "sha256": "a0f1333c42e81529b6f68c192050df9d4505b803be7ac47f114036b98707f7cf"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ce6591d941ded9fe545558441477b779",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1184570,
            "upload_time": "2023-08-26T14:46:17",
            "upload_time_iso_8601": "2023-08-26T14:46:17.383390Z",
            "url": "https://files.pythonhosted.org/packages/6b/bd/ed4960ef50f5e43ef04f9b068ee5b42cde56b2a97aeb2dbfd4ec68322d0d/python_box-7.1.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4779f3eae9a2e2a2bac63583bf335a1e13b037f4b2e9ceaf6f2c0942df0db705",
                "md5": "19967543f1823499087ca7b139446418",
                "sha256": "63b609555554d7a9d4b6e725f8e78ef1717c67e7d386200e03422ad612338df8"
            },
            "downloads": -1,
            "filename": "python_box-7.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "19967543f1823499087ca7b139446418",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 28981,
            "upload_time": "2023-08-26T14:44:59",
            "upload_time_iso_8601": "2023-08-26T14:44:59.054271Z",
            "url": "https://files.pythonhosted.org/packages/47/79/f3eae9a2e2a2bac63583bf335a1e13b037f4b2e9ceaf6f2c0942df0db705/python_box-7.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "690db463241f95bc0dc47dee176508fb0c1cf2d5ca100832ccf10b75401bfed4",
                "md5": "756ef327607a2a07e5c9b8b690a0f5c7",
                "sha256": "2a3df244a5a79ac8f8447b5d11b5be0f2747d7b141cb2866060081ae9b53cc50"
            },
            "downloads": -1,
            "filename": "python-box-7.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "756ef327607a2a07e5c9b8b690a0f5c7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 44691,
            "upload_time": "2023-08-26T14:45:01",
            "upload_time_iso_8601": "2023-08-26T14:45:01.091490Z",
            "url": "https://files.pythonhosted.org/packages/69/0d/b463241f95bc0dc47dee176508fb0c1cf2d5ca100832ccf10b75401bfed4/python-box-7.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-26 14:45:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cdgriffith",
    "github_project": "Box",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "msgpack",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "ruamel.yaml",
            "specs": [
                [
                    ">=",
                    "0.17"
                ]
            ]
        },
        {
            "name": "tomli",
            "specs": [
                [
                    ">=",
                    "1.2.3"
                ]
            ]
        },
        {
            "name": "tomli-w",
            "specs": []
        }
    ],
    "lcname": "python-box"
}
        
Elapsed time: 0.10516s