{ "info": { "author": "Jerko Steiner", "author_email": "jerko.steiner@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5" ], "description": "# magnet\n\nA library that makes it easy to load YAML config files in a hierarchical\nmanner. Also loads YAML content from `CONFIG` environment variable.\n\n**Minimal Python version is Python 3.5.**\n\n# Installation\n\n```bash\npip install magnet\n```\n\n# Usage\n\nConsider the following yaml file `config/default.yml`:\n\n```yaml\napp:\n url: https://www.example.com/app\n certs:\n pem: /path/to/cert.pem\n key: /path/to/cert.key\n clients:\n - a\n - b\n```\n\nAnd the following `config/local.yml` file:\n\n```yaml\napp:\n url: https://app.example.com/\n```\n\n```python\nfrom magnet import Config\n\nconfig = Config().read_all()\n\nconfig['app.url'] # ==> \"https://app.example.com\"\nconfig['app.certs.pem'] # ==> \"/path/to/cert.pem\"\nconfig['non.existing.key'] # ==> raises KeyError\n```\n\n## Additional options:\n\n```python\nfrom magnet import Config\n\n# Listed below are the default parameters \nconfig = Config(\n config={\n # set default configuration here\n },\n filenames=(\n 'config/default.yml',\n 'config/local.yml',\n ),\n env_variable='CONFIG',\n separator='.',\n)\n\nconfig.read_all(\n filename=None, # string, can be set to load an additional file\n)\n```\n\nThis will load the configuration in the following order:\n\n1. `./config/default.yml` - can be committed to the repository\n2. `./config/local.yml` - should not be committed to allow custom config for devs\n3. An additional YAML config file (if `filename` argument is defined)\n4. YAML contents from the `CONFIG` environment variable (if `env_variable` is defined)\n\nAll of these files are optional, but the key lookups will result with\n`KeyError` if a key is missing. If `filename` is defined, but the file is not\nfound, it will raise a `FileNotFoundError`.\n\n# Development\n\n```\nmake ci - Run the CI pipeline (deps, lint, test-coverage)\nmake lint - Lint all project files\nmake test - Run all tests\nmake test-watch - Run all tests and re-run on file changes\nmake test-coverage - Run all tests and calculate test coverage\nmake deps - Create a virtual environment and install dependencies\nmake freeze - Freeze the requirements\nmake env - Create a virtual environment\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/jeremija/pymagnet", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "magnet", "package_url": "https://pypi.org/project/magnet/", "platform": "", "project_url": "https://pypi.org/project/magnet/", "project_urls": { "Homepage": "https://gitlab.com/jeremija/pymagnet" }, "release_url": "https://pypi.org/project/magnet/1.1.1/", "requires_dist": [ "PyYAML (>=3.12)" ], "requires_python": "", "summary": "Hierarchical YAML config reader that reads from multiple files and an environment variable", "version": "1.1.1" }, "last_serial": 4007400, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "feec90a54f5f14ab03bcd0a832d53385", "sha256": "b49d5f3ba7acfc53bb76de56b8ac04194b78fbb6fc9cefdd766f53fb6552855e" }, "downloads": -1, "filename": "magnet-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "feec90a54f5f14ab03bcd0a832d53385", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3708, "upload_time": "2018-06-26T19:10:12", "url": "https://files.pythonhosted.org/packages/e4/16/bd9b5ae61e8b25a9eade6f494186e430320ab411e9a832728d2234bc0c88/magnet-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aed6784cc573c51242afc0b468081d79", "sha256": "df5bcb4bf2bc4bf968c83407e48617e8d10917f39e11144a6026ce997485dc30" }, "downloads": -1, "filename": "magnet-1.0.0.tar.gz", "has_sig": false, "md5_digest": "aed6784cc573c51242afc0b468081d79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3152, "upload_time": "2018-06-26T19:10:13", "url": "https://files.pythonhosted.org/packages/31/22/d413d064ae7a051577459edaf5a364e760f1cdd6a6fc4e92b93845534a11/magnet-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "802788ede0272ab3540618d2a26652b6", "sha256": "3705685e292911ccef6256412e26483974049f7b1f413d9becf366e662540daf" }, "downloads": -1, "filename": "magnet-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "802788ede0272ab3540618d2a26652b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3679, "upload_time": "2018-06-26T19:14:56", "url": "https://files.pythonhosted.org/packages/b0/1d/b76afca81eb87eac20581cfee2ea1c0861f600fbc34eb6de800b3b43142f/magnet-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "730e03183b0398f9d1958c953eb06178", "sha256": "6cc860ac62d00d98953779fd25f8b071e860fa75c439b714aaf17682bee66007" }, "downloads": -1, "filename": "magnet-1.0.1.tar.gz", "has_sig": false, "md5_digest": "730e03183b0398f9d1958c953eb06178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3121, "upload_time": "2018-06-26T19:14:56", "url": "https://files.pythonhosted.org/packages/d0/d1/5f2ed50f28da8f9f183f5e5d7a3f24e1af17075917fed7c0039bd3b6f72c/magnet-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d16c7ad4d953178c35286e06cf14b0d1", "sha256": "c707dcc25252e5a80afaa67340ef78c2c4e6d477131bcc729636945972ed72f8" }, "downloads": -1, "filename": "magnet-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d16c7ad4d953178c35286e06cf14b0d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4025, "upload_time": "2018-06-26T21:01:47", "url": "https://files.pythonhosted.org/packages/bd/4a/4d67a29f7929d826c854a61598dc715455ee2572655d877562e8ba05b398/magnet-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97e0ddf579ff565736e39f2b23f20565", "sha256": "5f6681af0f897ec4e0f0086beff09c8d2b6d3894200be5f32a35d0a12c41dbe4" }, "downloads": -1, "filename": "magnet-1.0.2.tar.gz", "has_sig": false, "md5_digest": "97e0ddf579ff565736e39f2b23f20565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3505, "upload_time": "2018-06-26T21:01:48", "url": "https://files.pythonhosted.org/packages/61/49/b1f88cb2ed4f02a51316aebc994ea1d9bb40de889316548300d0cec05bc8/magnet-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "44a9a013611dcdd5f2a3c013b68f2233", "sha256": "aea6dfee99eb5bbf92a0ef71b0480081b371655626b8acb16972a9449c86d666" }, "downloads": -1, "filename": "magnet-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "44a9a013611dcdd5f2a3c013b68f2233", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4130, "upload_time": "2018-06-27T00:33:24", "url": "https://files.pythonhosted.org/packages/21/cb/4694093b412a294ab5ab6a711ecfd916c58beaa70f3ed7190cdad2cd7fa8/magnet-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "feb37436806e06150fefafbcdb9bb008", "sha256": "31adb775d6c72c22f78ec3f5025c4d5c4b960bb3978015456e52fedd34010442" }, "downloads": -1, "filename": "magnet-1.1.0.tar.gz", "has_sig": false, "md5_digest": "feb37436806e06150fefafbcdb9bb008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3636, "upload_time": "2018-06-27T00:33:25", "url": "https://files.pythonhosted.org/packages/e6/9d/4da8e38bed0f6cde12b0306a8e0f1b5c54324df6cb94bfec76d5c649b98f/magnet-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "12da14acb3e0b61b36e02a05381c60fa", "sha256": "089d198391bd415224d30677354116195a6193dcfaf902b6b141ab994e77fede" }, "downloads": -1, "filename": "magnet-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "12da14acb3e0b61b36e02a05381c60fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4177, "upload_time": "2018-06-27T13:20:38", "url": "https://files.pythonhosted.org/packages/84/ce/c0680770c4ff7c5db7b5e2388571d720c76616c860b09a41e0b02b2a89fa/magnet-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f32acae6b61c8c6f14e8698dfe3c7e57", "sha256": "018ef8324b5c228a6a62c163f0f720e97c2d8c65e4a72721074900c715c4e0c7" }, "downloads": -1, "filename": "magnet-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f32acae6b61c8c6f14e8698dfe3c7e57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3703, "upload_time": "2018-06-27T13:20:40", "url": "https://files.pythonhosted.org/packages/af/71/1414849fb235df70d88ef998a11476b410c642988f2c5ddbdb5ca7832108/magnet-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "12da14acb3e0b61b36e02a05381c60fa", "sha256": "089d198391bd415224d30677354116195a6193dcfaf902b6b141ab994e77fede" }, "downloads": -1, "filename": "magnet-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "12da14acb3e0b61b36e02a05381c60fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4177, "upload_time": "2018-06-27T13:20:38", "url": "https://files.pythonhosted.org/packages/84/ce/c0680770c4ff7c5db7b5e2388571d720c76616c860b09a41e0b02b2a89fa/magnet-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f32acae6b61c8c6f14e8698dfe3c7e57", "sha256": "018ef8324b5c228a6a62c163f0f720e97c2d8c65e4a72721074900c715c4e0c7" }, "downloads": -1, "filename": "magnet-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f32acae6b61c8c6f14e8698dfe3c7e57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3703, "upload_time": "2018-06-27T13:20:40", "url": "https://files.pythonhosted.org/packages/af/71/1414849fb235df70d88ef998a11476b410c642988f2c5ddbdb5ca7832108/magnet-1.1.1.tar.gz" } ] }