python-box


Namepython-box JSON
Version 7.3.1 PyPI version JSON
download
home_pagehttps://github.com/cdgriffith/Box
SummaryAdvanced Python dictionaries with dot notation access
upload_time2025-01-15 01:27:19
maintainerNone
docs_urlNone
authorChris Griffith
requires_python>=3.9
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": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Chris Griffith",
    "author_email": "chris@cdgriffith.com",
    "download_url": "https://files.pythonhosted.org/packages/bb/35/911965b97acf8f7813caa49487eb4c14c5de527d47d9b9ef0a5b16016834/python_box-7.3.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.3.1",
    "project_urls": {
        "Homepage": "https://github.com/cdgriffith/Box"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "248e62203632e636098ab42a9187ed9d923ff51d9fe6f1cb38bf83c82cd5fbcb",
                "md5": "7216eceb1dbbada6d548e5436b92f4a9",
                "sha256": "fadf589c5d37d5bf40d25f6580d500168f2fc825d2f601c25e753ffc8d4bbec0"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "7216eceb1dbbada6d548e5436b92f4a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1831604,
            "upload_time": "2025-01-15T01:27:52",
            "upload_time_iso_8601": "2025-01-15T01:27:52.528839Z",
            "url": "https://files.pythonhosted.org/packages/24/8e/62203632e636098ab42a9187ed9d923ff51d9fe6f1cb38bf83c82cd5fbcb/python_box-7.3.1-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a1c25eced82d15dd1aaa8577b9e7fe5eb80e0483e3b6db55f9b666d07b6c427a",
                "md5": "43610682e1b5b0d324b9fb9d37942d08",
                "sha256": "d375605b159c174b0d60b6acb3586bc47ba75f542b614e96fac2ef899c08add8"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "43610682e1b5b0d324b9fb9d37942d08",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 3953450,
            "upload_time": "2025-01-15T01:32:37",
            "upload_time_iso_8601": "2025-01-15T01:32:37.824436Z",
            "url": "https://files.pythonhosted.org/packages/a1/c2/5eced82d15dd1aaa8577b9e7fe5eb80e0483e3b6db55f9b666d07b6c427a/python_box-7.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f693657dcd152247e1a18bcd2dcf8816a7b8da64a3f06518eba1aa57bd3b3df",
                "md5": "bddbadd03d5e542f5452f68389575b64",
                "sha256": "f7fef93deb2695716218f513cc43e665f447a85e41cf58219e42e026c570bd67"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bddbadd03d5e542f5452f68389575b64",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1229369,
            "upload_time": "2025-01-15T01:28:19",
            "upload_time_iso_8601": "2025-01-15T01:28:19.602987Z",
            "url": "https://files.pythonhosted.org/packages/5f/69/3657dcd152247e1a18bcd2dcf8816a7b8da64a3f06518eba1aa57bd3b3df/python_box-7.3.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "63ae9bf11924211ea0a3ca3aa1f492373ef6e335896ee738bb6126d325a410b2",
                "md5": "87f68464f3804c616551e60853401afb",
                "sha256": "7cdcc0585d5840a04a74e64301d4ec5b0a05bc98a305d0f9516d3e59d265add1"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "87f68464f3804c616551e60853401afb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1833298,
            "upload_time": "2025-01-15T01:27:37",
            "upload_time_iso_8601": "2025-01-15T01:27:37.128397Z",
            "url": "https://files.pythonhosted.org/packages/63/ae/9bf11924211ea0a3ca3aa1f492373ef6e335896ee738bb6126d325a410b2/python_box-7.3.1-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a4a9a5cc569ff42f3ca7e8a4a31345a40c34e89b3360a9436c4b01db1164e5b",
                "md5": "bd41c1ebcef860d9cda92f2c9c706da1",
                "sha256": "7aa85d0f1f0ea1ef4af33c0f3a133b8cec8f0ad3bfd6868370833efb8b9f86b3"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bd41c1ebcef860d9cda92f2c9c706da1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 4302006,
            "upload_time": "2025-01-15T01:32:41",
            "upload_time_iso_8601": "2025-01-15T01:32:41.065950Z",
            "url": "https://files.pythonhosted.org/packages/3a/4a/9a5cc569ff42f3ca7e8a4a31345a40c34e89b3360a9436c4b01db1164e5b/python_box-7.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a03003033227213f03ce7270585e01fcdefb19fc48d5feff75df2f02f0c3d01",
                "md5": "efe009ebe1daabfb7d8f4f2273962af5",
                "sha256": "6fd0463e20a4c990591094fbb0f4e3b39f8212d1faf69648df4ffac10912c49e"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "efe009ebe1daabfb7d8f4f2273962af5",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1231968,
            "upload_time": "2025-01-15T01:28:36",
            "upload_time_iso_8601": "2025-01-15T01:28:36.955885Z",
            "url": "https://files.pythonhosted.org/packages/4a/03/003033227213f03ce7270585e01fcdefb19fc48d5feff75df2f02f0c3d01/python_box-7.3.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e93a958c0b9d8e45f9305cebf87a6345744cb723b88b6ea6ec4e4b541112206",
                "md5": "9d1eeb9d987fc29d6cdd37b04f91ec0d",
                "sha256": "3320d3fa83f006ae44bda02f9ee08647ed709506baf5ae85be3eb045683dd12b"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp312-cp312-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "9d1eeb9d987fc29d6cdd37b04f91ec0d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1818720,
            "upload_time": "2025-01-15T01:27:38",
            "upload_time_iso_8601": "2025-01-15T01:27:38.958092Z",
            "url": "https://files.pythonhosted.org/packages/0e/93/a958c0b9d8e45f9305cebf87a6345744cb723b88b6ea6ec4e4b541112206/python_box-7.3.1-cp312-cp312-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8a327f62656e0b15005e9e05f5b7a0c66fe8c4332ddc011ee9e9b04a8e9fe467",
                "md5": "615aef60a1f9a083ecbe2f1f7dca93a6",
                "sha256": "f6277ef305fb1cc75e903416e0b4f59952675d55e8ae997924f4e2f6e5abf61b"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "615aef60a1f9a083ecbe2f1f7dca93a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 4269648,
            "upload_time": "2025-01-15T01:32:43",
            "upload_time_iso_8601": "2025-01-15T01:32:43.092467Z",
            "url": "https://files.pythonhosted.org/packages/8a/32/7f62656e0b15005e9e05f5b7a0c66fe8c4332ddc011ee9e9b04a8e9fe467/python_box-7.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a1fe955b9ec9f80e4b2bc78d70c0ca2b3690ea6445cad597d44125dce3c9584",
                "md5": "6fca78d8c18200803b876e5cfc8af5e0",
                "sha256": "34d409137b41c15322491f353c331069a07d194573e95e56eae07fe101c04cbe"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6fca78d8c18200803b876e5cfc8af5e0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1210890,
            "upload_time": "2025-01-15T01:28:12",
            "upload_time_iso_8601": "2025-01-15T01:28:12.861944Z",
            "url": "https://files.pythonhosted.org/packages/2a/1f/e955b9ec9f80e4b2bc78d70c0ca2b3690ea6445cad597d44125dce3c9584/python_box-7.3.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b9a954f01c17adeda5bd32d9c943c9a2301977bba1cb8c4bbc5812e9096815c",
                "md5": "c03def17967616352687edd2335582b7",
                "sha256": "e5e0c2bf73ab1020fc62f2a7161b8b0e12ee29872292ec33fb8124aa81adb48e"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp313-cp313-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "c03def17967616352687edd2335582b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1803757,
            "upload_time": "2025-01-15T01:27:41",
            "upload_time_iso_8601": "2025-01-15T01:27:41.720305Z",
            "url": "https://files.pythonhosted.org/packages/3b/9a/954f01c17adeda5bd32d9c943c9a2301977bba1cb8c4bbc5812e9096815c/python_box-7.3.1-cp313-cp313-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b0100f34ca5f05f501cf1dc804a4393c54b4b4a007190a2de50940fef17a246c",
                "md5": "002ecdc07891b9c9ed3c592cdae53d0a",
                "sha256": "2fe1e1c705535ec5ab9fa66172cf184a330fd41638aaf638a08e33a12c7c3f71"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "002ecdc07891b9c9ed3c592cdae53d0a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 4262344,
            "upload_time": "2025-01-15T01:32:44",
            "upload_time_iso_8601": "2025-01-15T01:32:44.869114Z",
            "url": "https://files.pythonhosted.org/packages/b0/10/0f34ca5f05f501cf1dc804a4393c54b4b4a007190a2de50940fef17a246c/python_box-7.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce60a74487a0d926e159c708baad3bc7d94bb07485ed08a14cf14a1eef824b2b",
                "md5": "0e192d07c9d260f4c17098bfbeec5821",
                "sha256": "4fccc0b218937a6254219073f945117978f5222eff1bbae8a35b11c6e9651f5d"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0e192d07c9d260f4c17098bfbeec5821",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1206422,
            "upload_time": "2025-01-15T01:29:12",
            "upload_time_iso_8601": "2025-01-15T01:29:12.948729Z",
            "url": "https://files.pythonhosted.org/packages/ce/60/a74487a0d926e159c708baad3bc7d94bb07485ed08a14cf14a1eef824b2b/python_box-7.3.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "668f9da2e28e764ba3a85653aaf866603444166699058718d452c300e2c2272e",
                "md5": "ca0b7f5c5be4782f008ae10eff9cb8a3",
                "sha256": "a48050391cb4d8dcec4b0f8c860b778821ae013a293d49f0cbaeab5548c46829"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "ca0b7f5c5be4782f008ae10eff9cb8a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1832289,
            "upload_time": "2025-01-15T01:28:01",
            "upload_time_iso_8601": "2025-01-15T01:28:01.875665Z",
            "url": "https://files.pythonhosted.org/packages/66/8f/9da2e28e764ba3a85653aaf866603444166699058718d452c300e2c2272e/python_box-7.3.1-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f0548fc090b9ce781741c91d24606c5e3b57e0d2cd68430f1099b020e6d947c8",
                "md5": "a771864ef486c8143ff4631cc765e94e",
                "sha256": "4a5bf3264cd4ee9b742aefadb7ff549297dd7eef8826b3a4b922a4a44e9b0751"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a771864ef486c8143ff4631cc765e94e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 3952679,
            "upload_time": "2025-01-15T01:32:48",
            "upload_time_iso_8601": "2025-01-15T01:32:48.028083Z",
            "url": "https://files.pythonhosted.org/packages/f0/54/8fc090b9ce781741c91d24606c5e3b57e0d2cd68430f1099b020e6d947c8/python_box-7.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17ea18a6f4094555c68d0119eca1738260d63c06339203c132d57792012c1a6a",
                "md5": "faf952beda2c893fe4c59edd6f578fe4",
                "sha256": "0ed2024e27d67c5cf1ed1f88d8849aace9234d7a198fd4d5c791ed12e99e7345"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "faf952beda2c893fe4c59edd6f578fe4",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1229583,
            "upload_time": "2025-01-15T01:28:28",
            "upload_time_iso_8601": "2025-01-15T01:28:28.836974Z",
            "url": "https://files.pythonhosted.org/packages/17/ea/18a6f4094555c68d0119eca1738260d63c06339203c132d57792012c1a6a/python_box-7.3.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "33b604e12fb310aa3d51af41ea33c432bbafe82d6ec84a420dc0b02ab588e649",
                "md5": "8db4f9d38cb4242e6f78430c29cc9773",
                "sha256": "2d77100d0d5ad67e0d062fac4f77f973851db236f4a445c60b02d0415f83b0d6"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8db4f9d38cb4242e6f78430c29cc9773",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 29437,
            "upload_time": "2025-01-15T01:27:17",
            "upload_time_iso_8601": "2025-01-15T01:27:17.941574Z",
            "url": "https://files.pythonhosted.org/packages/33/b6/04e12fb310aa3d51af41ea33c432bbafe82d6ec84a420dc0b02ab588e649/python_box-7.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb35911965b97acf8f7813caa49487eb4c14c5de527d47d9b9ef0a5b16016834",
                "md5": "f77815d3ad12e408e5bb3a978a734cb1",
                "sha256": "a0bd9dbb4ddd2842f8d0143b8aa0c87d0e82e39093dd4698a5cbbb2d2ac71361"
            },
            "downloads": -1,
            "filename": "python_box-7.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f77815d3ad12e408e5bb3a978a734cb1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 45690,
            "upload_time": "2025-01-15T01:27:19",
            "upload_time_iso_8601": "2025-01-15T01:27:19.395921Z",
            "url": "https://files.pythonhosted.org/packages/bb/35/911965b97acf8f7813caa49487eb4c14c5de527d47d9b9ef0a5b16016834/python_box-7.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-15 01:27:19",
    "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: 1.61715s