{ "info": { "author": "Shay Palachy", "author_email": "shay.palachy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "birch \u16e3\n#######\n\n|PyPI-Status| |Downloads| |PyPI-Versions| |Build-Status| |Codecov| |Codefactor| |LICENCE|\n\nSimple hierarchical configuration for Python packages.\n\n.. |birch_icon| image:: https://github.com/shaypal5/birch/blob/cc5595bbb78f784a3174a07157083f755fc93172/birch.png\n :height: 87\n :width: 40 px\n :scale: 50 %\n\n.. .. image:: https://github.com/shaypal5/birch/blob/b10a19a28cb1fc41d0c596df5bcd8390e7c22ee7/birch.png\n\n.. code-block:: python\n\n from birch import Birch\n cfg = Birch('mypackage')\n # read using a single API both the MYPACKAGE_SERVER_HOSTNAME environment variable\n # and ~/.mypackage/cfg.json containing {'server': {'port': 55}}\n connect(cfg['SERVER__HOSTNAME'], cfg['server']['port'])\n\n.. contents::\n\n.. section-numbering::\n\n\nInstallation\n============\n\n.. code-block:: bash\n\n pip install birch\n\n\nFeatures\n========\n\n* Supported formats: JSON, YAML.\n* Pure python.\n* Supports Python 3.5+.\n* Supported and `fully tested on Linux, OS X and Windows `_.\n* `XDG Base Directory Specification `_ support.\n\n\nUse\n===\n\nBasic use\n---------\n\n``birch`` provides an easy way to read simple hierarchical configurations for your Python package or application from both environment variables and configuration files. \n\n``birch`` uses namespaces to manage configuration values. The access to each namespace is done via a ``Birch`` object initialized with that namespace. Though written with a specific use case in mind, where a single package uses a single namespace to manage its configuration, any number of namespaces can be used in a single context. For example:\n\n.. code-block:: python\n\n from birch import Birch\n zubat_cfg = Birch('zubat')\n golbat_cfg = Birch('golbat')\n\n\nEach namespace encompasses all values set by either environment variables starting with ``_``, or defined within ``cfg`` files (of a supported format) located in a set of pre-configured directories; this set defaults to the ``~/.config/`` (as par the `XDG Base Directory Specification `_) and the ``~/.`` directories.\n\nFor example, the ``zubat`` namespace encompasses environment variables such as ``ZUBAT_HOSTNAME`` and ``ZUBAT__PORT``, and all mappings in one of the files ``~/.config/.zubat/cfg.json`` or ``~/.zubat/cfg.json`` (if such a file exists).\n\nOnce defined in such a way, the ``Birch`` object can be used to access the values of mappings of both types (with or without the namespace suffix; casing is also ignored). For example:\n\n.. code-block:: python\n\n >>> os.environ['ZUBAT_SERVER_HOST'] = 'www.zubat.com'\n >>> os.environ['ZUBAT_SERVER_PORT'] = '87'\n >>> from birch import Birch\n >>> zubat_cfg = Birch('zubat')\n >>>> zubat_cfg['ZUBAT_SERVER_HOST']\n 'www.zubat.com'\n >>> zubat_cfg['SERVER_PORT']\n '87'\n >>> zubat_cfg['server_port']\n '87'\n\n\nThe get and mget methods\n------------------------\n\nBirch objects expose two methods that allow more nuanced retreival of configuration items:\n\nThe ``mget`` method allows the caller to supply a ``caster`` callable, through-which any found return value will be passed:\n\n.. code-block:: python\n\n >>> os.environ['ZUBAT__PORT'] = '555'\n >>> zubat_cfg = Birch('zubat')\n >>> zubat_cfg.mget('port', int)\n 555\n\n\nThe ``get`` method additionally allows you to supply a default value, which is returned if no matching configuration entry is found:\n\n.. code-block:: python\n\n >>> import os; os.environ['ZUBAT__PORT'] = '555'\n >>> zubat_cfg = Birch('zubat')\n >>> zubat_cfg.get('port', default=8888, caster=int)\n 555\n >>> zubat_cfg.get('host', default='defhost') # Default value is returned\n 'defhost'\n >>> zubat_cfg.get('host') # No error is thrown, None is returned\n\n\nIf no default value is provided, ``None`` is returned. To still have a ``KeyError`` raised in this case use ``throw=True`` in the function call:\n.. code-block:: python\n\n >>> import os; os.environ['ZUBAT__PORT'] = '555'\n >>> zubat_cfg = Birch('zubat')\n >>> zubat_cfg.get('host', throw=True) # An error is thrown\n Traceback (most recent call last):\n ...\n KeyError: zubat: No configuration value for HOST.\n\n\nHierarchical configuration\n--------------------------\n\n``birch`` supports a simple hierarchy between configuration mappings. Hierarchy is either expressed explicitly in configuration files as nested object/entries (in the case of ``json`` and ``YAML`` files), or using ``__`` (two underscore characters) in the configuration key - both in configuration files and environment variables. Thus, the ``ZUBAT__SERVER__PORT`` environment variable is equivalent to both ``{'server': {'port': 55}}`` and ``{'server__PORT': 55}`` mappings given in a ``~/.zubat/cfg.json`` file, for example. Casing is ignored on all levels.\n\nAs such, hierarchical mappings can be accessed either using ``__`` to indicate a hierarchical path, or using dict-like item access:\n\n.. code-block:: python\n\n >>> os.environ['ZUBAT__SERVER__HOST'] = 'www.zubat.com'\n >>> from birch import Birch\n >>> zubat_cfg = Birch('zubat')\n >>>> zubat_cfg['SERVER__HOST']\n 'www.zubat.com'\n >>>> zubat_cfg['server']['HOST']\n 'www.zubat.com'\n >>>> zubat_cfg['SERVER']['host']\n 'www.zubat.com'\n\n\n**Note that this is also true for non-hierarchical configuration file mappings**, so ``{'server__port': 55}``, even when given in this form in a configuration file, can be accessed using both ``zubat_cfg['SERVER__PORT']`` and ``zubat_cfg['SERVER']['PORT']`` (casing is still ignored on all levels).\n\n\nResolution order\n----------------\n\nA namespace is always loaded with matching environment variables **after** the configuration file has been loaded, and corresponding mappings will thus override their file-originating counterparts; e.g. the ``ZUBAT__SERVER__PORT`` environment variable will overwrite the value of the mapping ``{'server': {'port': 55}}`` given in a ``~/.zubat/cfg.json`` file. \n\nThe lookup order of different files, while deterministic, is undefined and not part of the API. Thus, even with the ``load_all`` option set (see the `Configuring birch`_ section), ``cfg`` files with different file extensions can not be relied upon to provide private-vs-shared configuration functionality, or other such configuration modes.\n\n\nReloading configuration\n-----------------------\n\nConfiguration values can be reloaded from all sources - both configuration files and environment variables - by calling the ``reload`` method:\n\n.. code-block:: python\n\n >>> os.environ['ZUBAT__SERVER__HOST'] = 'www.zubat.com'\n >>> from birch import Birch\n >>> zubat_cfg = Birch('zubat')\n >>>> zubat_cfg['SERVER__HOST']\n 'www.zubat.com'\n >>> os.environ['ZUBAT__SERVER__HOST'] = 'New.value!'\n >>> zubat_cfg.reload()\n >>>> zubat_cfg['server']['HOST']\n 'New.value!'\n\nYou can set automatic configuration reload on every value inspection by setting ``auto_reload=True`` when initializing the ``Birch`` object:\n\n.. code-block:: python\n\n >>> os.environ['ZUBAT__SERVER__HOST'] = 'www.zubat.com'\n >>> from birch import Birch\n >>> zubat_cfg = Birch('zubat', auto_reload=True)\n >>>> zubat_cfg['SERVER__HOST']\n 'www.zubat.com'\n >>> os.environ['ZUBAT__SERVER__HOST'] = 'New.value!'\n >>>> zubat_cfg['server']['HOST']\n 'New.value!'\n\n\n\nConfiguring birch\n=================\n\nConfiguration directories\n-------------------------\n\nBy default ``birch`` looks for files only in the ``~/.config/`` and ``~/.`` directories. You can set a different set of directories to read by populating the ``directories`` constructor parameter with a different directory path, or a list of paths.\n\nSimilarly, be default ``birch`` reads into the configuration tree only the first compliant file encountered during a lookup in all pre-configured directories; to instead load hierarchical configurations from all such files instead, the ``load_all`` constructor parameter can be set to ``True``. Again, load order is undefined, and thus so is the resulting hierarchical configuration.\n\n\nFile formats\n------------\n\nBy default, ``birch`` will only try to read ``cfg.json`` files. To dictate a different set of supported formats, populate the ``supported_formats`` constructor parameter with the desired formats. \n\nFor example, ``Birch('zubat', supported_formats=['json', 'yaml'])`` will read both ``cfg.json`` and ``cfg.yaml`` files, while ``Birch('golbat', supported_formats='yaml')`` will ony read ``cfg.yaml`` (and ``cfg.yml``) files.\n\nCurrently supported formats are:\n\n* ``JSON`` - Looks for ``cfg.json`` files.\n* ``YAML`` - Looks for ``cfg.yaml`` and ``cfg.yml`` files.\n\n\nContributing\n============\n\nPackage author and current maintainer is Shay Palachy (shay.palachy@gmail.com); You are more than welcome to approach him for help. Contributions are very welcomed.\n\nInstalling for development\n----------------------------\n\nClone:\n\n.. code-block:: bash\n\n git clone git@github.com:shaypal5/birch.git\n\n\nInstall in development mode, including test dependencies:\n\n.. code-block:: bash\n\n cd birch\n pip install -e '.[test]'\n\n\nRunning the tests\n-----------------\n\nTo run the tests use:\n\n.. code-block:: bash\n\n cd birch\n pytest\n\n\nAdding documentation\n--------------------\n\nThe project is documented using the `numpy docstring conventions`_, which were chosen as they are perhaps the most widely-spread conventions that are both supported by common tools such as Sphinx and result in human-readable docstrings. When documenting code you add to this project, follow `these conventions`_.\n\n.. _`numpy docstring conventions`: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\n.. _`these conventions`: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\n\nAdditionally, if you update this ``README.rst`` file, use ``python setup.py checkdocs`` to validate it compiles.\n\n\nCredits\n=======\n\nCreated by `Shay Palachy `_ (shay.palachy@gmail.com).\n\n\n.. |PyPI-Status| image:: https://img.shields.io/pypi/v/birch.svg\n :target: https://pypi.python.org/pypi/birch\n\n.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/birch.svg\n :target: https://pypi.python.org/pypi/birch\n\n.. |Build-Status| image:: https://travis-ci.org/shaypal5/birch.svg?branch=master\n :target: https://travis-ci.org/shaypal5/birch\n\n.. |LICENCE| image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :target: https://github.com/shaypal5/birch/blob/master/LICENSE\n\n.. |Codecov| image:: https://codecov.io/github/shaypal5/birch/coverage.svg?branch=master\n :target: https://codecov.io/github/shaypal5/birch?branch=master\n\n.. |Codacy| image:: https://api.codacy.com/project/badge/Grade/99e79faee7454a13a0e60219c32015ae\n :alt: Codacy Badge\n :target: https://app.codacy.com/app/shaypal5/birch?utm_source=github.com&utm_medium=referral&utm_content=shaypal5/birch&utm_campaign=Badge_Grade_Dashboard\n\n.. |Requirements| image:: https://requires.io/github/shaypal5/birch/requirements.svg?branch=master\n :target: https://requires.io/github/shaypal5/birch/requirements/?branch=master\n :alt: Requirements Status\n\n.. |Codefactor| image:: https://www.codefactor.io/repository/github/shaypal5/birch/badge?style=plastic\n :target: https://www.codefactor.io/repository/github/shaypal5/birch\n :alt: Codefactor code quality\n\n.. |Downloads| image:: https://pepy.tech/badge/birch\n :target: https://pepy.tech/project/birch\n :alt: PePy stats\n\n.. .. test pypi\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/shaypal5/birch", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "birch", "package_url": "https://pypi.org/project/birch/", "platform": "", "project_url": "https://pypi.org/project/birch/", "project_urls": { "Homepage": "https://github.com/shaypal5/birch" }, "release_url": "https://pypi.org/project/birch/0.0.20/", "requires_dist": [ "strct (>=0.0.26)", "pytest; extra == 'test'", "coverage; extra == 'test'", "pytest-cov; extra == 'test'", "pyyaml; extra == 'test'", "collective.checkdocs; extra == 'test'", "pygments; extra == 'test'", "strct (>=0.0.26); extra == 'test'" ], "requires_python": ">=3.5", "summary": "Simple hierarchical configuration for Python packages", "version": "0.0.20" }, "last_serial": 5667440, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "2e8a4b254a8d7fb5852a280dc68d9725", "sha256": "69d126d03c1c50a1868dc762843ab9aec2f00ceae6236e6ee91387b28b6f03e0" }, "downloads": -1, "filename": "birch-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e8a4b254a8d7fb5852a280dc68d9725", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12493, "upload_time": "2018-04-10T11:57:49", "url": "https://files.pythonhosted.org/packages/f9/57/f210fe2e598b04e3b2e4a89ce10a215d6c5280cf87970248a579ebfee63d/birch-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d77895d9b6a5095a25ba779174ab5cf3", "sha256": "4653a41bff183e4476397a5203a2f0bd75545990dbc569857c055a1b842e1b6c" }, "downloads": -1, "filename": "birch-0.0.10.tar.gz", "has_sig": false, "md5_digest": "d77895d9b6a5095a25ba779174ab5cf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24317, "upload_time": "2018-04-10T11:57:48", "url": "https://files.pythonhosted.org/packages/66/a8/089ce7324c3274980535d0e0a044b8aed06b1e8e9854b6a3bc4f3e14c86f/birch-0.0.10.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "a892381789ed5920b868024456a20116", "sha256": "b744c7f7d56903b425cf033f3a573a316500193f2160641e09ab42f81db06a4c" }, "downloads": -1, "filename": "birch-0.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a892381789ed5920b868024456a20116", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 13561, "upload_time": "2018-06-08T14:47:17", "url": "https://files.pythonhosted.org/packages/c8/c9/cb81c379c21badfe58c0bc1e04717563bb5db30a3a1afff455e84ddbbdfc/birch-0.0.12-py2.py3-none-any.whl" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "edd5e7fcc93b95e94c863a96150020ea", "sha256": "2f2735d7ec075d7628c3fba1ced5ba11d0d34e6c264eacb351b467d33c73248e" }, "downloads": -1, "filename": "birch-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edd5e7fcc93b95e94c863a96150020ea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 13590, "upload_time": "2018-06-26T12:29:39", "url": "https://files.pythonhosted.org/packages/a2/39/b3f046e077fd0d379ae5f37dd4fc9d4ecf7bd8bc03a17812d5b82d4b3afb/birch-0.0.13-py2.py3-none-any.whl" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "922a6af5ede7ec0c3a3f804ef8077a5a", "sha256": "3b53c2b5c08e8d1b1de608440686ad04b591d8e4e184faeeaa8eab8ab3298e8b" }, "downloads": -1, "filename": "birch-0.0.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "922a6af5ede7ec0c3a3f804ef8077a5a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 9617, "upload_time": "2018-10-17T14:08:25", "url": "https://files.pythonhosted.org/packages/b0/8f/8193ac34cee69d5f0acb8b50047ed655bd1f741f1da4d2435f260e1b5270/birch-0.0.14-py2.py3-none-any.whl" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "7b64ded8d5aaf1f2ee19f2f6a748e71a", "sha256": "119372a18ef16617d3ddd20ba376bf2d7828c1aa7557cf09e2175515928b11cb" }, "downloads": -1, "filename": "birch-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "7b64ded8d5aaf1f2ee19f2f6a748e71a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11378, "upload_time": "2019-05-20T13:58:19", "url": "https://files.pythonhosted.org/packages/1b/35/562e2d7020dc1f784653ea8f45b474ca614745482e122e6408d28d2f7e52/birch-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89735e6a6bf6d81ff6418933dfc537e2", "sha256": "eb2640952af9082acbafba4d31873659144501a152b6dde0b192c64fbd853cf1" }, "downloads": -1, "filename": "birch-0.0.15.tar.gz", "has_sig": false, "md5_digest": "89735e6a6bf6d81ff6418933dfc537e2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25765, "upload_time": "2019-05-20T13:58:21", "url": "https://files.pythonhosted.org/packages/09/a2/a3af3c2cd3f37672f78a94e5a523e37e55a4f9e4d4ebcde0b5b4fdfebddb/birch-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "9c058beed9b3c3e9a5ade8a3cc692da9", "sha256": "9df6660dda2eb057646eff5f21ded09d7a5a50b6893efd5cd949291b94780c5d" }, "downloads": -1, "filename": "birch-0.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "9c058beed9b3c3e9a5ade8a3cc692da9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11300, "upload_time": "2019-07-18T13:33:54", "url": "https://files.pythonhosted.org/packages/18/a6/82619792b86d1be26b97ae0f60ad764f74299f399bd14147163c8bcd2f2f/birch-0.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79b03bf9af4ff99c01bc1a0c923c44d3", "sha256": "f2f26403b4eb5fb876838adb35f412a9832b1e95ea7ab9d6b479c9b8b132ebcb" }, "downloads": -1, "filename": "birch-0.0.16.tar.gz", "has_sig": false, "md5_digest": "79b03bf9af4ff99c01bc1a0c923c44d3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26544, "upload_time": "2019-07-18T13:33:56", "url": "https://files.pythonhosted.org/packages/19/bc/65723a5dcf2af21ff65eefde98460b8b19118d83b2a25ccba518a818da75/birch-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "7516bc3b9ceed267d309bc94cef491da", "sha256": "878f28219ecd69b04682bc3827dae4edbf3d62b50fa4aafcc1389cb1239c5497" }, "downloads": -1, "filename": "birch-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "7516bc3b9ceed267d309bc94cef491da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11451, "upload_time": "2019-07-31T15:46:44", "url": "https://files.pythonhosted.org/packages/6f/26/45106023b138048f797e34fe93cef4ee90858cc55c45bc5efe6ba18f36bb/birch-0.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da3b1e1ef8e3f090f7de2b7686fb45f3", "sha256": "d5e4280a3295f6e0b3726319268bb8baadbec91cec77fd88247c6c19352956e3" }, "downloads": -1, "filename": "birch-0.0.17.tar.gz", "has_sig": false, "md5_digest": "da3b1e1ef8e3f090f7de2b7686fb45f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26690, "upload_time": "2019-07-31T15:46:47", "url": "https://files.pythonhosted.org/packages/f6/c4/118467187f105cab30f7c2c0f1d9c4c29c4aa244032905957cc4822e76f1/birch-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "36633668fb1c03dc56fb61b8db2ba37d", "sha256": "51023c63bef6c7814e4404fb35a8ff364d9dc1f6d0e5080f3e9d82767a5693aa" }, "downloads": -1, "filename": "birch-0.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "36633668fb1c03dc56fb61b8db2ba37d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11583, "upload_time": "2019-07-31T16:27:40", "url": "https://files.pythonhosted.org/packages/e8/a1/5193142db137ddc6b446af57a190413073fddeacab2d8de9c8bd722e4f07/birch-0.0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "925c1364612b3295fb5159aa76c2f98a", "sha256": "88933d007e629c6a6027a941f39ca4fa8d96e526f3c966603848cb9cd09593a2" }, "downloads": -1, "filename": "birch-0.0.18.tar.gz", "has_sig": false, "md5_digest": "925c1364612b3295fb5159aa76c2f98a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26822, "upload_time": "2019-07-31T16:27:42", "url": "https://files.pythonhosted.org/packages/9e/cd/8c4447189fdd7f97ac3b335bf7384e14b9fc77757a7893a7fc62163b6694/birch-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "3014013f6992975ac0c0f256c9f20e90", "sha256": "c0f175d30cecee3f4e18234b959c37c4a29f30c8a7e1eb141b36be296ce3000d" }, "downloads": -1, "filename": "birch-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "3014013f6992975ac0c0f256c9f20e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11588, "upload_time": "2019-08-12T15:48:49", "url": "https://files.pythonhosted.org/packages/64/d9/b1475ce9ff592e898662536fb0508bb16b39120c82cffe80c168800b4d02/birch-0.0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74967e6d07b73110d3a1e824543df969", "sha256": "f0078c697e5f00739e885b2be70e55c6c7a5bbf1080dd5977fc3b1f53228a263" }, "downloads": -1, "filename": "birch-0.0.19.tar.gz", "has_sig": false, "md5_digest": "74967e6d07b73110d3a1e824543df969", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26840, "upload_time": "2019-08-12T15:48:51", "url": "https://files.pythonhosted.org/packages/b3/c2/5079bdc548e85f6b142b25c1eb213a0b881cb7dd778f8e0f24fa8cb32a2d/birch-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f5bd1a4ff0e3851bbc5c2de073f842cb", "sha256": "cc9f415817cf5b9b1f9d803e7ec04659b888e401009d31aaf222a1f94d2e0434" }, "downloads": -1, "filename": "birch-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f5bd1a4ff0e3851bbc5c2de073f842cb", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8125, "upload_time": "2018-02-11T11:25:04", "url": "https://files.pythonhosted.org/packages/12/64/c84b42163a6f4a0cde37f6cb6c8dcf9cbc220aaa5204dda085c7a560efd6/birch-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cbf1b66c6df7c83f1a7625012b383b9", "sha256": "4a5f17655cb685328eb0ef8df6abcc9508e07e7bf9153250198e9e5281252e64" }, "downloads": -1, "filename": "birch-0.0.2.tar.gz", "has_sig": false, "md5_digest": "3cbf1b66c6df7c83f1a7625012b383b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21345, "upload_time": "2018-02-11T11:25:01", "url": "https://files.pythonhosted.org/packages/9c/ba/78e1c6b1c64873dbf2e500599b48b07d7de24df3ebd20bf7fdfc7445f359/birch-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "c222544018e6bb7543c795ed66c0735a", "sha256": "af479d8d138e1451c026bdf74cd12aaafeb092a30f71fee2cdb41fe7bdf7356a" }, "downloads": -1, "filename": "birch-0.0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "c222544018e6bb7543c795ed66c0735a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11581, "upload_time": "2019-08-12T16:20:52", "url": "https://files.pythonhosted.org/packages/8d/70/d1daad267068ac428ff6a7b5553797bbfbdfc9b33fa059d35148a7ac8add/birch-0.0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d426bbe6aef1da04dfc2975c7aaa9ed8", "sha256": "a8a8689fa27a507e44560cfa05ba2a14db836530a77713c6690d42c368ce5d81" }, "downloads": -1, "filename": "birch-0.0.20.tar.gz", "has_sig": false, "md5_digest": "d426bbe6aef1da04dfc2975c7aaa9ed8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26834, "upload_time": "2019-08-12T16:20:54", "url": "https://files.pythonhosted.org/packages/a2/a8/01a410bfc8b9bd5979c76cb9a573a3806affe5f6660d96328d04ca78c248/birch-0.0.20.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "fd9fdff0565afaf6f5c603143fa9d83f", "sha256": "ce5c5eb3da60c7444a7e6a3599b598ed8852fcaa269d4d6517ef4993a8497bc7" }, "downloads": -1, "filename": "birch-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fd9fdff0565afaf6f5c603143fa9d83f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11792, "upload_time": "2018-02-11T15:03:12", "url": "https://files.pythonhosted.org/packages/ab/e2/384f32dfa14ca62a031f795aab5392828e96b5c1b7339b180c37c3a15d29/birch-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "faff4077c9c1e741b5c42c04a670d593", "sha256": "c694b2491bcb3367a2916506e00ba11ac782753c33ba1c9a92b2c042ba8e8c36" }, "downloads": -1, "filename": "birch-0.0.3.tar.gz", "has_sig": false, "md5_digest": "faff4077c9c1e741b5c42c04a670d593", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23671, "upload_time": "2018-02-11T15:03:11", "url": "https://files.pythonhosted.org/packages/41/bb/48cc0b7d73e12ccdf124c1dec48ab217adfbab4b54fa9cba47dbeec1db79/birch-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "df33cd0ae880c3df210f6d8a35157047", "sha256": "0672eb568f735eb140ef84365471855a4aa7425ad2934a1941acdca48a55e473" }, "downloads": -1, "filename": "birch-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df33cd0ae880c3df210f6d8a35157047", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11836, "upload_time": "2018-02-11T15:20:45", "url": "https://files.pythonhosted.org/packages/0f/7f/18a6f7b399f6d56f9ab07fa78cfbac9ff9e712d37060b1a31f38628a147e/birch-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86d40f45c85ff0a0de878cb5895dea5f", "sha256": "9545cc13e29620ab74abb414179249fe3053305a7f41f4367be6e4737d20d131" }, "downloads": -1, "filename": "birch-0.0.4.tar.gz", "has_sig": false, "md5_digest": "86d40f45c85ff0a0de878cb5895dea5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23758, "upload_time": "2018-02-11T15:20:43", "url": "https://files.pythonhosted.org/packages/ac/98/3ea4d6073dff2af89051d67408edc091dec0555337b53bf1e982f9051724/birch-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "ad6a6ff3400ced6f3d1f4155dfafe558", "sha256": "98362cbce12e477511f17b663687a0b8ccf31d20ba9b8dbb30793ebc172550a2" }, "downloads": -1, "filename": "birch-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ad6a6ff3400ced6f3d1f4155dfafe558", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11963, "upload_time": "2018-02-12T09:45:29", "url": "https://files.pythonhosted.org/packages/74/af/7a74fe0b469f6077b7e6c84b57343e625e454345e6ecd4d0ed71ff0893fc/birch-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8077bd515bd1134d83c05a31f172d2c6", "sha256": "8e0e23b4b9e173b35f9f7df6fb800a32f23860cfcc513d35ee8adc144d499ce4" }, "downloads": -1, "filename": "birch-0.0.5.tar.gz", "has_sig": false, "md5_digest": "8077bd515bd1134d83c05a31f172d2c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23804, "upload_time": "2018-02-12T09:45:28", "url": "https://files.pythonhosted.org/packages/ec/c4/9833f41a728eb6d8b5f6e96b55912bb30d52d54b2ce94c47d7cc02740bc4/birch-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "2b694ab4a11d100efa0b777964a43ac6", "sha256": "13006fa60853bf41e89057c369dc081e3b6b059f6dd9c8d5a6c5189a2f6c70be" }, "downloads": -1, "filename": "birch-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b694ab4a11d100efa0b777964a43ac6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12238, "upload_time": "2018-02-25T15:12:12", "url": "https://files.pythonhosted.org/packages/3d/de/a8558c195b365a63a6dbef59522cb8519479e21206728f866c1ac07ec985/birch-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62fc8b5f3f59c3bdc62d2feed73a9208", "sha256": "0ecb96a9b6b571cb289ea6fc64863a43504e1d752435b2fcd44f7bb74f5c5d19" }, "downloads": -1, "filename": "birch-0.0.6.tar.gz", "has_sig": false, "md5_digest": "62fc8b5f3f59c3bdc62d2feed73a9208", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24117, "upload_time": "2018-02-25T15:12:09", "url": "https://files.pythonhosted.org/packages/59/bf/ea927e9a2d23f5b628b84594057c9e9e5b9478692d108625f43d7128c952/birch-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "a5d15260e0bc2145d9642f36d5e2c57b", "sha256": "b0b49dc1a9be97303f10d1303cd3cfb831f9ca680ee56d3e0a9e02efeb5322bc" }, "downloads": -1, "filename": "birch-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5d15260e0bc2145d9642f36d5e2c57b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12220, "upload_time": "2018-03-27T17:06:00", "url": "https://files.pythonhosted.org/packages/c3/6b/2d8d067d2e54e963cb972f5f4917ddb7e9b4ba4c8f43312fa02d2680582c/birch-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c0903b57b8700f9c2e111fbb1712aec", "sha256": "cb87773afef27cc1735c61f39dbcc0d6313f902c8c6c0fbff7546bc0bf0b0833" }, "downloads": -1, "filename": "birch-0.0.7.tar.gz", "has_sig": false, "md5_digest": "6c0903b57b8700f9c2e111fbb1712aec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23917, "upload_time": "2018-03-27T17:05:59", "url": "https://files.pythonhosted.org/packages/c6/90/507d69d19201bf6c56b2a659c13146c7ccf98a6a9bf7ad675d48651a34af/birch-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "433afba67ee0672d0440a8beed72e863", "sha256": "503078c3881ee7c90d4a545cb5aea5769f9e86b480abdfca06380a1e6463e3d1" }, "downloads": -1, "filename": "birch-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "433afba67ee0672d0440a8beed72e863", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12314, "upload_time": "2018-04-08T15:15:42", "url": "https://files.pythonhosted.org/packages/46/34/35d17d58dd1b68e12377e523fb33908453301a5fa58f2e2df2ac321fadef/birch-0.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fe7226366e28d74b5c6aa5c40218f3c", "sha256": "c98eee7ddf1d5e7020525bdd11dfaecf0b9a676ea5686b3371a3e0b52f194035" }, "downloads": -1, "filename": "birch-0.0.8.tar.gz", "has_sig": false, "md5_digest": "8fe7226366e28d74b5c6aa5c40218f3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24219, "upload_time": "2018-04-08T15:15:40", "url": "https://files.pythonhosted.org/packages/54/ea/a9188eee338e9093c6dc5558ef2bcca57cd624d0f462998565c739d320e7/birch-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "cfea51f030e4e98496565d546af5d8bf", "sha256": "2c756616e7818dc3b5c305d267499902aa0f1b3cf97f9f9aaa222dcc47bc0b4f" }, "downloads": -1, "filename": "birch-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfea51f030e4e98496565d546af5d8bf", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12317, "upload_time": "2018-04-08T15:39:17", "url": "https://files.pythonhosted.org/packages/e4/bd/6a5e5229bce94fb9884dc334b9cffd5a41c5d531ba185ee49a8322ec8960/birch-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1be95d089d4100de20e37a7e63cf2d5", "sha256": "b54c2291ae3b41792fef914eed8e6bf8822215b1086b96d76e625c89e918712c" }, "downloads": -1, "filename": "birch-0.0.9.tar.gz", "has_sig": false, "md5_digest": "e1be95d089d4100de20e37a7e63cf2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24219, "upload_time": "2018-04-08T15:39:16", "url": "https://files.pythonhosted.org/packages/6a/d1/9bd01de90a0b41ce27122045b3e7a91e45dbc2a25a051843be7ac4d11f4d/birch-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c222544018e6bb7543c795ed66c0735a", "sha256": "af479d8d138e1451c026bdf74cd12aaafeb092a30f71fee2cdb41fe7bdf7356a" }, "downloads": -1, "filename": "birch-0.0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "c222544018e6bb7543c795ed66c0735a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11581, "upload_time": "2019-08-12T16:20:52", "url": "https://files.pythonhosted.org/packages/8d/70/d1daad267068ac428ff6a7b5553797bbfbdfc9b33fa059d35148a7ac8add/birch-0.0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d426bbe6aef1da04dfc2975c7aaa9ed8", "sha256": "a8a8689fa27a507e44560cfa05ba2a14db836530a77713c6690d42c368ce5d81" }, "downloads": -1, "filename": "birch-0.0.20.tar.gz", "has_sig": false, "md5_digest": "d426bbe6aef1da04dfc2975c7aaa9ed8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26834, "upload_time": "2019-08-12T16:20:54", "url": "https://files.pythonhosted.org/packages/a2/a8/01a410bfc8b9bd5979c76cb9a573a3806affe5f6660d96328d04ca78c248/birch-0.0.20.tar.gz" } ] }