{ "info": { "author": "Sebastian Bank", "author_email": "sebastian.bank@uni-leipzig.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Fileconfig\r\n==========\r\n\r\n|PyPI version| |License| |Supported Python| |Format|\r\n\r\n|Travis| |Codecov|\r\n\r\nFileconfig turns config file sections into instances of your class. Create a\r\nclass referring to an **INI file** collecting the arguments for the different\r\ninstances to be created. Calling the class with the section name as parameter\r\nwill return the instance with the parameters specified in the given section.\r\n\r\n\r\nLinks\r\n-----\r\n\r\n- GitHub: https://github.com/xflr6/fileconfig\r\n- PyPI: https://pypi.org/project/fileconfig/\r\n- Issue Tracker: https://github.com/xflr6/fileconfig/issues\r\n- Download: https://pypi.org/project/fileconfig/#files\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nThis package runs under Python 2.7 and 3.5+, use pip_ to install:\r\n\r\n.. code:: bash\r\n\r\n $ pip install fileconfig\r\n\r\n\r\nUsage\r\n-----\r\n\r\nCreate as subclass of ``fileconfig.Config`` and set its ``filename`` attribute\r\nto the path of your INI file.\r\n\r\nIf the filename is relative, it is resolved **relative to the path of the\r\nmodule** where your class is defined (i.e. *not* relative to the current working\r\ndirectory if its file not happens do be there).\r\n\r\n.. code:: python\r\n\r\n >>> import fileconfig\r\n\r\n >>> class Cfg(fileconfig.Config):\r\n ... filename = 'docs/pet-shop.ini'\r\n ... def __init__(self, key, **kwargs):\r\n ... self.key = key\r\n ... self.__dict__.update(kwargs)\r\n\r\nOn instance creation, the ``__init__`` method will be called with the section\r\nname (``key``) and the keyword parameters from the given section of the\r\nspecified file.\r\n\r\nSuppose your INI file begins like this:\r\n\r\n.. code:: ini\r\n\r\n [parrot]\r\n species = Norwegian blue\r\n can_talk = yes\r\n quantity = 0\r\n characteristics = beautiful plumage, pining for the fjords\r\n\r\nTo retrieve this instance, call the class with its section name.\r\n\r\n.. code:: python\r\n\r\n >>> c = Cfg('parrot')\r\n\r\n >>> print(c)\r\n {\r\n 'can_talk': 'yes',\r\n 'characteristics': 'beautiful plumage, pining for the fjords',\r\n 'key': 'parrot',\r\n 'quantity': '0',\r\n 'species': 'Norwegian blue'\r\n }\r\n\r\n\r\nSingleton\r\n---------\r\n\r\nOnly *one* instance will be created, cached and returned for each config file\r\nsection (a.k.a. the singleton pattern):\r\n\r\n.. code:: python\r\n\r\n >>> Cfg('parrot') is c\r\n True\r\n\r\nThe constructor is also *idempotent*:\r\n\r\n.. code:: python\r\n\r\n >>> Cfg(c) is c\r\n True\r\n\r\nThe default ``__repr__`` of instances allows round-trips:\r\n\r\n.. code:: python\r\n\r\n >>> c\r\n __main__.Cfg('parrot')\r\n\r\n\r\nAliasing\r\n--------\r\n\r\nYou can specify a **space-delimited** list of ``aliases`` for each section:\r\n\r\n.. code:: ini\r\n\r\n [slug]\r\n aliases = snail special_offer\r\n species = slug\r\n can_talk = no\r\n quantity = 1\r\n\r\nFor changing the delimiter, see below.\r\n\r\nAliases map to the *same* instance:\r\n\r\n.. code:: python\r\n\r\n >>> s = Cfg('special_offer')\r\n\r\n >>> s\r\n __main__.Cfg('slug')\r\n\r\n >>> s is Cfg('snail') is Cfg('slug')\r\n True\r\n\r\nInspect instance ``names`` (key + aliases):\r\n\r\n.. code:: python\r\n\r\n >>> s.key\r\n 'slug'\r\n\r\n >>> s.aliases\r\n ['snail', 'special_offer']\r\n\r\n >>> s.names\r\n ['slug', 'snail', 'special_offer']\r\n\r\n\r\nInheritance\r\n-----------\r\n\r\nConfig file sections can inherit from another section:\r\n\r\n.. code:: ini\r\n\r\n [Polly]\r\n inherits = parrot\r\n can_talk = no\r\n characteristics = dead, totally stiff, ceased to exist\r\n\r\nSpecified keys override inherited ones:\r\n\r\n.. code:: python\r\n\r\n >>> print(Cfg('Polly'))\r\n {\r\n 'can_talk': 'no',\r\n 'characteristics': 'dead, totally stiff, ceased to exist',\r\n 'inherits': 'parrot',\r\n 'key': 'Polly',\r\n 'quantity': '0',\r\n 'species': 'Norwegian blue'\r\n }\r\n\r\nSections can inherit from a single section. Multiple or transitive inheritance\r\nis not supported.\r\n\r\n\r\nIntrospection\r\n-------------\r\n\r\nUse the class to iterate over the instances from all section:\r\n\r\n.. code:: python\r\n\r\n >>> list(Cfg)\r\n [__main__.Cfg('parrot'), __main__.Cfg('slug'), __main__.Cfg('Polly')]\r\n\r\nPrint the string representation of all instances:\r\n\r\n.. code:: python\r\n\r\n >>> Cfg.pprint_all() # doctest: +ELLIPSIS\r\n {\r\n 'can_talk': 'yes',\r\n 'characteristics': 'beautiful plumage, pining for the fjords',\r\n 'key': 'parrot',\r\n ...\r\n\r\nHints\r\n-----\r\n\r\nApart from the ``key``, ``aliases``, and ``inherits`` parameters, your\r\n``__init__`` method receives the **unprocessed strings** from the config file\r\nparser.\r\n\r\nUse the ``__init__`` method to process the other parameters to fit your needs.\r\n\r\n.. code:: python\r\n\r\n >>> class Pet(Cfg):\r\n ... def __init__(self, can_talk, quantity, characteristics=None, **kwargs):\r\n ... self.can_talk = {'yes':True, 'no': False}[can_talk]\r\n ... self.quantity = int(quantity)\r\n ... if characteristics is not None and characteristics.strip():\r\n ... self.characteristics = [c.strip() for c in characteristics.split(',')]\r\n ... super(Pet, self).__init__(**kwargs)\r\n\r\n >>> print(Pet('Polly'))\r\n {\r\n 'can_talk': False,\r\n 'characteristics': ['dead', 'totally stiff', 'ceased to exist'],\r\n 'inherits': 'parrot',\r\n 'key': 'Polly',\r\n 'quantity': 0,\r\n 'species': 'Norwegian blue'\r\n }\r\n\r\nThis way, the ``__init__`` method also defines parameters as required or\r\noptional, set their defaults, etc.\r\n\r\n\r\nOverlay\r\n-------\r\n\r\nSometimes one wants to **combine multiple config files**, e.g. have a default\r\nfile included in the package directory, overridden by a user-supplied file in a\r\ndifferent location.\r\n\r\nTo support this, subclass ``fileconfig.Stacked`` and set the ``filename`` to the\r\nlocation of the default config.\r\n\r\n.. code:: python\r\n\r\n >>> class Settings(fileconfig.Stacked):\r\n ... filename = 'docs/pet-shop.ini'\r\n\r\nUse the ``add`` method to load an overriding config file on top of that:\r\n\r\n.. code:: python\r\n\r\n >>> Settings.add('docs/lumberjack.ini')\r\n\r\nIf the filename is relative, it is resolved **relative to the path of the\r\nmodule** where the ``add`` method has been called.\r\n\r\nYou can access the sections from all files:\r\n\r\n.. code:: python\r\n\r\n >>> print(Settings('Bevis'))\r\n {\r\n 'can_talk': 'yes',\r\n 'characteristics': \"sleeps all night, works all day, puts on women's clothing\",\r\n 'key': 'Bevis',\r\n 'species': 'human'\r\n }\r\n\r\nAs long as they have *different* names:\r\n\r\n.. code:: python\r\n\r\n >>> print(Settings('Polly'))\r\n {\r\n 'can_talk': 'no',\r\n 'characteristics': 'dead, totally stiff, ceased to exist',\r\n 'inherits': 'parrot',\r\n 'key': 'Polly',\r\n 'quantity': '0',\r\n 'species': 'Norwegian blue'\r\n }\r\n\r\nConfig files added to the top of the stack mask sections with the same names\r\nfrom previous files:\r\n\r\n.. code:: python\r\n\r\n >>> print(Settings('parrot'))\r\n {\r\n 'characteristics': 'unsolved problem',\r\n 'key': 'parrot'\r\n }\r\n\r\n\r\nCustomization\r\n-------------\r\n\r\nTo use a **different delimiter** for ``aliases`` override the ``_split_aliases``\r\nmethod on your class. Make it a ``staticmethod`` or ``classmethod`` that takes a\r\nstring argument and returns the splitted list.\r\n\r\n\r\nBy default, fileconfig will use ``ConfigParser.SafeConfigParser`` from the\r\nstandard library to parse the config file. To use a **different parser**,\r\noverride the ``_parser`` attribute in your ``fileconfig.Config`` subclass.\r\n\r\n\r\nTo specify the **encoding** from which the config file should be decoded by the\r\nconfig parser, override the ``_encoding`` attribute on your subclass.\r\n\r\n\r\nFileconfig raises an error, if the config file is not found. If you want this\r\n**error to pass silently** instead, set the ``_pass_notfound`` attribute on your\r\nsubclass to ``True``.\r\n\r\n\r\nPotential issues\r\n----------------\r\n\r\nThis package uses ``sys._getframe`` (which is almost the same as\r\n``inspect.currentframe``, see_ docs_). Under IronPython this might require\r\nenabling the ``FullFrames`` option of the interpreter.\r\n\r\n\r\nLicense\r\n-------\r\n\r\nFileconfig is distributed under the `MIT license`_.\r\n\r\n\r\n.. _pip: https://pip.readthedocs.io\r\n\r\n.. _see: https://docs.python.org/2/library/sys.html#sys._getframe\r\n.. _docs: https://docs.python.org/2/library/inspect.html#inspect.currentframe\r\n\r\n.. _MIT license: https://opensource.org/licenses/MIT\r\n\r\n\r\n.. |PyPI version| image:: https://img.shields.io/pypi/v/fileconfig.svg\r\n :target: https://pypi.org/project/fileconfig/\r\n :alt: Latest PyPI Version\r\n.. |License| image:: https://img.shields.io/pypi/l/fileconfig.svg\r\n :target: https://pypi.org/project/fileconfig/\r\n :alt: License\r\n.. |Supported Python| image:: https://img.shields.io/pypi/pyversions/fileconfig.svg\r\n :target: https://pypi.org/project/fileconfig/\r\n :alt: Supported Python Versions\r\n.. |Format| image:: https://img.shields.io/pypi/format/fileconfig.svg\r\n :target: https://pypi.org/project/fileconfig/\r\n :alt: Format\r\n.. |Travis| image:: https://img.shields.io/travis/xflr6/fileconfig.svg\r\n :target: https://travis-ci.org/xflr6/fileconfig\r\n :alt: Travis\r\n.. |Codecov| image:: https://codecov.io/gh/xflr6/fileconfig/branch/master/graph/badge.svg\r\n :target: https://codecov.io/gh/xflr6/fileconfig\r\n :alt: Codecov\r\n\r\n\r\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xflr6/fileconfig", "keywords": "configuration ini file inheritance aliasing", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "fileconfig", "package_url": "https://pypi.org/project/fileconfig/", "platform": "any", "project_url": "https://pypi.org/project/fileconfig/", "project_urls": { "Homepage": "https://github.com/xflr6/fileconfig" }, "release_url": "https://pypi.org/project/fileconfig/0.5.9/", "requires_dist": [ "flake8 ; extra == 'dev'", "pep8-naming ; extra == 'dev'", "wheel ; extra == 'dev'", "twine ; extra == 'dev'", "pytest (!=3.10.0,>=3.4) ; extra == 'test'", "pytest-cov ; extra == 'test'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "summary": "Config file sections as objects", "version": "0.5.9" }, "last_serial": 5370393, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "55236da15f240b90c5b2dd2d6bfe6454", "sha256": "f0b84f5400a6b3632ef111d7f528522b6f7989276949089d18681fda1f47c538" }, "downloads": -1, "filename": "fileconfig-0.1.zip", "has_sig": false, "md5_digest": "55236da15f240b90c5b2dd2d6bfe6454", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11263, "upload_time": "2014-01-13T21:34:24", "url": "https://files.pythonhosted.org/packages/13/d3/9264b24696ce74b6794f1ed91ba0bfbd28692db1f3aa57474f5b9af22443/fileconfig-0.1.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "e9c4fc99dd16896d8d03bbccd184c6b5", "sha256": "68b693e8f1c93f6d2bad2f570ad7f6b64022979d50177bf79c47b37026a05dec" }, "downloads": -1, "filename": "fileconfig-0.2.zip", "has_sig": false, "md5_digest": "e9c4fc99dd16896d8d03bbccd184c6b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14142, "upload_time": "2014-01-17T12:25:01", "url": "https://files.pythonhosted.org/packages/65/57/22791001986cd2421ed1f45fd0719470a9851ac3c70b699c592474c12a67/fileconfig-0.2.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c45a108f56c6324b24020df18c4a541a", "sha256": "dd7fa9285458350b2318022222cf95c6c50102ee0c2934173251178522f22ef3" }, "downloads": -1, "filename": "fileconfig-0.3.zip", "has_sig": false, "md5_digest": "c45a108f56c6324b24020df18c4a541a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14163, "upload_time": "2014-01-17T14:04:49", "url": "https://files.pythonhosted.org/packages/ad/69/e6230d8151096c3d18dee711e76b3a5ac04f93d732198a6e19c840fc0190/fileconfig-0.3.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "dbf309f7c8113265eb4e8ba533b96b80", "sha256": "a40ab3c4b648bac0b4eced31886c242bab074506dff80262cba435db339221f8" }, "downloads": -1, "filename": "fileconfig-0.3.1.zip", "has_sig": false, "md5_digest": "dbf309f7c8113265eb4e8ba533b96b80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16031, "upload_time": "2014-01-17T16:20:23", "url": "https://files.pythonhosted.org/packages/e3/bf/45432e38cc87ca2d005c7ab99005b2ab8c5dfefce974443f09b6bdadc398/fileconfig-0.3.1.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "4d06feb8f8a3e197afb1966f14ac4dd1", "sha256": "e815f631a1ed9cff37ece7d93ad8e66cfa16e32d9d4d1e648644d43b9917cc2f" }, "downloads": -1, "filename": "fileconfig-0.4.zip", "has_sig": false, "md5_digest": "4d06feb8f8a3e197afb1966f14ac4dd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16370, "upload_time": "2014-01-18T18:06:23", "url": "https://files.pythonhosted.org/packages/c1/ea/fb2f6c756cec3008377c5b5fe395075df16c3e48981c40c28c7daedaf2f7/fileconfig-0.4.zip" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "79f9ebb079f8cb4cfcaf95bc229d4e6c", "sha256": "d9f50f2ac9f1446cc50280346c26456a4ae2683732159236bd4c8b5d1cc69135" }, "downloads": -1, "filename": "fileconfig-0.4.1.zip", "has_sig": false, "md5_digest": "79f9ebb079f8cb4cfcaf95bc229d4e6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16731, "upload_time": "2014-04-27T22:38:42", "url": "https://files.pythonhosted.org/packages/98/7e/e83ba7e178ccd3e14638fd64319801e1dcb5ad3f8d741586c758b0001140/fileconfig-0.4.1.zip" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "a20fdf17982415147364143ec6b40afc", "sha256": "36b990777fe51f6e5c5884c8a510b5991cc7abd863da2b468a124c33afb07259" }, "downloads": -1, "filename": "fileconfig-0.5.zip", "has_sig": false, "md5_digest": "a20fdf17982415147364143ec6b40afc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18235, "upload_time": "2014-04-29T12:27:35", "url": "https://files.pythonhosted.org/packages/34/70/9566c7cd9f23b354c07900df03f9d329035b802040597e7ea1afd20afac4/fileconfig-0.5.zip" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f4c5939fcb0fc8b92501963cf05fa032", "sha256": "3b4ff32a1e8bad0719fe8ef3d608415a6ffb4248648cd00a102a9f63e66b4746" }, "downloads": -1, "filename": "fileconfig-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4c5939fcb0fc8b92501963cf05fa032", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12180, "upload_time": "2014-05-04T14:50:50", "url": "https://files.pythonhosted.org/packages/01/1d/3e128a82224dc3f99fffa71fb7242b3c2501b0f716469eadfcfd877b6382/fileconfig-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29c8b4a2398b6bdeaf967f1ca782d935", "sha256": "7636e0dd396fe782e5ce678ef8047c8c402debdfea57d831311a5cd85bb3045e" }, "downloads": -1, "filename": "fileconfig-0.5.1.zip", "has_sig": false, "md5_digest": "29c8b4a2398b6bdeaf967f1ca782d935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20264, "upload_time": "2014-05-04T14:50:46", "url": "https://files.pythonhosted.org/packages/54/be/b208f1b2d1bc314a38c5e0e54e6d2be7cd8af7cbae93dd053583e18f567d/fileconfig-0.5.1.zip" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "764cf1f5e177c6ba80322f34e1052a60", "sha256": "37f47c44da9b52670a6e9a85aa2db4eef9ad298d02e02ad1646c486202d3dbac" }, "downloads": -1, "filename": "fileconfig-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "764cf1f5e177c6ba80322f34e1052a60", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12233, "upload_time": "2014-10-25T16:25:41", "url": "https://files.pythonhosted.org/packages/dd/96/02e2046fa6df547b5afcce575a8204fe96e8b5ed70afad398b99b37f4a75/fileconfig-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6da53ccc644fa512dc4c26e7ae38f3a8", "sha256": "e64294b82e4a0414885b2470a5f95d64a2d39f0dc79887304192a6568bca9d85" }, "downloads": -1, "filename": "fileconfig-0.5.2.zip", "has_sig": false, "md5_digest": "6da53ccc644fa512dc4c26e7ae38f3a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20330, "upload_time": "2014-10-25T16:25:37", "url": "https://files.pythonhosted.org/packages/6a/52/8f12d1fe744d82af9fa0b545df06f9a38dab746986e1eea8b94c5a980f4f/fileconfig-0.5.2.zip" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "05bc0d8d702fe2cf2c2e424eeff3fddd", "sha256": "36d7d61322f17d7a669228b370f4ed800a25ddfc95e4db38df1996ecd754055f" }, "downloads": -1, "filename": "fileconfig-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05bc0d8d702fe2cf2c2e424eeff3fddd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12282, "upload_time": "2017-05-14T12:01:14", "url": "https://files.pythonhosted.org/packages/39/41/a2f2fc6dd930f5f86a628a2f10cbace1b22bb5e85fc71560990ac42d0f36/fileconfig-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8b05e32862e79dcce39ab5a8865c0fe", "sha256": "e8eff1fc9e9a14d3798be205a2d81c196fc04f08b6d3d5cac04f8a54940360a5" }, "downloads": -1, "filename": "fileconfig-0.5.3.zip", "has_sig": false, "md5_digest": "c8b05e32862e79dcce39ab5a8865c0fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20708, "upload_time": "2017-05-14T12:01:12", "url": "https://files.pythonhosted.org/packages/91/d8/721734368ad9cca61e6e866d2c9eb8549d4ac4576ac5ee1d339417bc1fc2/fileconfig-0.5.3.zip" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "f7ddfb65d099a6a63bc0017438d8c5db", "sha256": "b77e6bff354622a6e90618aa310c035fa4f386b44b7e83874db9ed77499db822" }, "downloads": -1, "filename": "fileconfig-0.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f7ddfb65d099a6a63bc0017438d8c5db", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12283, "upload_time": "2017-05-14T12:11:31", "url": "https://files.pythonhosted.org/packages/eb/48/352792f0527001b9261ca75632af08adfd6c6328ec114e78d4e59f5f1e5f/fileconfig-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7d40c95528cf81b11d6e0a94fb878cf", "sha256": "eaf6a0fdd926dd0577f83acd1cf76166caa2dc0c36c17212db41d3087b7f88f5" }, "downloads": -1, "filename": "fileconfig-0.5.4.zip", "has_sig": false, "md5_digest": "d7d40c95528cf81b11d6e0a94fb878cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20740, "upload_time": "2017-05-14T12:11:29", "url": "https://files.pythonhosted.org/packages/2a/e4/db562cd6b67c93c0af9c8ca74d0ee10bf6de8b72841c864876e2d475137c/fileconfig-0.5.4.zip" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "2aac62ea4471bd67935cd174f4f20d0b", "sha256": "f73e2381fbe06f83bff80a26d5b5205d9ca29357d0d96b78db6e17d4232f0736" }, "downloads": -1, "filename": "fileconfig-0.5.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2aac62ea4471bd67935cd174f4f20d0b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12290, "upload_time": "2017-05-28T05:58:56", "url": "https://files.pythonhosted.org/packages/1d/2f/b5f5d7ce434e6d0cfc5e461999dff3014d73c603052cc916d8f9c1258092/fileconfig-0.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5171234de9d2aa970f1f51baf6d6f8fd", "sha256": "198e65b72297f1481b5fc9bee4d14c4aea455eb690a31e735783bd9185aed04e" }, "downloads": -1, "filename": "fileconfig-0.5.5.zip", "has_sig": false, "md5_digest": "5171234de9d2aa970f1f51baf6d6f8fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20810, "upload_time": "2017-05-28T05:58:54", "url": "https://files.pythonhosted.org/packages/06/6d/1b5c31b69ce6beae6a87dd49ac6ea98e82578396bdd81026df53c5ded352/fileconfig-0.5.5.zip" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "30ebcf86b99be47af7efa698e07a661e", "sha256": "3a517eef32bdd7318ede8a3670c7a5cc056f0d02b8f74b3556b620100bf530b6" }, "downloads": -1, "filename": "fileconfig-0.5.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30ebcf86b99be47af7efa698e07a661e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13199, "upload_time": "2017-10-14T10:58:21", "url": "https://files.pythonhosted.org/packages/8c/66/20edbbc9ca54987bbc5d4dae392c6190f711fcb107ff7864aa6301527a0d/fileconfig-0.5.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "482f54bedf93aff6e1e87de4f7bbbe2d", "sha256": "2fbaa27c97553856dac716bd0049af3ab7ec4388e1824522c510702784549b0d" }, "downloads": -1, "filename": "fileconfig-0.5.6.zip", "has_sig": false, "md5_digest": "482f54bedf93aff6e1e87de4f7bbbe2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20931, "upload_time": "2017-10-14T10:58:22", "url": "https://files.pythonhosted.org/packages/97/05/c233e8fc91291909afc0792c15e610cf62ed9d1d689d59fb882c1319dbf4/fileconfig-0.5.6.zip" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "210de4c0efa4e37daed4426c2b73c756", "sha256": "2221195a9b8247693a9719c9aa7af523ba72a965275f2f5fcdbe4db43c2444df" }, "downloads": -1, "filename": "fileconfig-0.5.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "210de4c0efa4e37daed4426c2b73c756", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 9426, "upload_time": "2018-05-23T23:34:11", "url": "https://files.pythonhosted.org/packages/3b/a2/9d7148e74109deb10b00b85191d766f005153a57ace5d8297f9ee34d8bdf/fileconfig-0.5.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f33a0c1de1e745e5370430cb1e1bd7a5", "sha256": "6f966b2ed3ba2040235bef64e5cfc4c1e3f31e42e020625a06228f5581d1defa" }, "downloads": -1, "filename": "fileconfig-0.5.7.zip", "has_sig": false, "md5_digest": "f33a0c1de1e745e5370430cb1e1bd7a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 21504, "upload_time": "2018-05-23T23:34:13", "url": "https://files.pythonhosted.org/packages/0a/4d/982810917693dba2d83f2028a81ce53b24415e7ad2da53c907236ca24c7c/fileconfig-0.5.7.zip" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "f6a1e51d1eacc1d987f8e5a4a86b219f", "sha256": "0e210ab751a94a2e26bf4a473a538a63722ed1863623df97b2a5f996a1231794" }, "downloads": -1, "filename": "fileconfig-0.5.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6a1e51d1eacc1d987f8e5a4a86b219f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 9418, "upload_time": "2018-10-30T18:07:09", "url": "https://files.pythonhosted.org/packages/f2/36/a17284ef2acece52669440c56ea83b0765c60756f8948800cccf7362619a/fileconfig-0.5.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaf94be555de49fd5512312ea17addc1", "sha256": "8329c93d02b65d815761b51f4250098e0962df08097b3784e130418645bc7085" }, "downloads": -1, "filename": "fileconfig-0.5.8.zip", "has_sig": false, "md5_digest": "eaf94be555de49fd5512312ea17addc1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 21781, "upload_time": "2018-10-30T18:07:11", "url": "https://files.pythonhosted.org/packages/51/be/ad57a955efcaaed660534a140646ad4330c5df63f86556bcf52567438bc5/fileconfig-0.5.8.zip" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "c19333ca098feccfed5b6c5e897f0eaa", "sha256": "a7ac5ad7b872c4177a7f2cc5f98678a50cbdaefd26c8c3c89fa1cf1734cfa374" }, "downloads": -1, "filename": "fileconfig-0.5.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c19333ca098feccfed5b6c5e897f0eaa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 9502, "upload_time": "2019-06-07T07:24:50", "url": "https://files.pythonhosted.org/packages/4b/c5/68b3fe0e5b970e155001152bac802febccd528bce0af81af48f47d9d864e/fileconfig-0.5.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8654779f7150d353f551f591367c6564", "sha256": "40bdc75f5f5005367cc1ae145119761269a6157cf3396ad431ef053cddcb10ee" }, "downloads": -1, "filename": "fileconfig-0.5.9.zip", "has_sig": false, "md5_digest": "8654779f7150d353f551f591367c6564", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 22584, "upload_time": "2019-06-07T07:24:52", "url": "https://files.pythonhosted.org/packages/14/00/3cbf02ad6d00bd04e46289e1a221eb5c347d7f5f8d0d25fb0f5daae41884/fileconfig-0.5.9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c19333ca098feccfed5b6c5e897f0eaa", "sha256": "a7ac5ad7b872c4177a7f2cc5f98678a50cbdaefd26c8c3c89fa1cf1734cfa374" }, "downloads": -1, "filename": "fileconfig-0.5.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c19333ca098feccfed5b6c5e897f0eaa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 9502, "upload_time": "2019-06-07T07:24:50", "url": "https://files.pythonhosted.org/packages/4b/c5/68b3fe0e5b970e155001152bac802febccd528bce0af81af48f47d9d864e/fileconfig-0.5.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8654779f7150d353f551f591367c6564", "sha256": "40bdc75f5f5005367cc1ae145119761269a6157cf3396ad431ef053cddcb10ee" }, "downloads": -1, "filename": "fileconfig-0.5.9.zip", "has_sig": false, "md5_digest": "8654779f7150d353f551f591367c6564", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 22584, "upload_time": "2019-06-07T07:24:52", "url": "https://files.pythonhosted.org/packages/14/00/3cbf02ad6d00bd04e46289e1a221eb5c347d7f5f8d0d25fb0f5daae41884/fileconfig-0.5.9.zip" } ] }