{ "info": { "author": "Kyle James Walker", "author_email": "KyleJamesWalker@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "YamlSettings\n------------\n\nA Settings Configuration Module.\n\n.. image:: https://travis-ci.org/KyleJamesWalker/yamlsettings.svg?branch=master\n :target: https://travis-ci.org/KyleJamesWalker/yamlsettings\n\n.. image:: https://codecov.io/gh/KyleJamesWalker/yamlsettings/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/KyleJamesWalker/yamlsettings\n\nA library to help manage project settings, without having to worry about\naccidentally checking non-public information, like api keys. Along with\nenvironment variable support.\n\nExample setup\n^^^^^^^^^^^^^\nPython Code - Base Functions\n\n.. code-block:: python\n\n import yamlsettings\n\n\n app_settings = yamlsettings.load('defaults.yaml')\n app_settings.update(yamlsettings.load('settings.yaml'))\n yamlsettings.update_from_env(app_settings)\n user = app_settings.myproj.databases.primary_sql.user\n\ndefaults.yml - Default Settings for Project (tracked)\n\n.. code-block:: yaml\n\n ---\n # Program Defaults, do not edit this file!!!\n # All values should be overridden in the following ways:\n # 1. In the 'settings.yaml' file.\n # 2. With environment variables. Example myproj.databases.primary_sql.user can\n # be overridden with MYPROJ_DATABASES_PRIMARY_SQL_USER.\n myproj:\n databases:\n primary_sql:\n user: my_user\n passwd: password_here\n host: db-bouncer-01.postgres.com:5432\n db: postgres\n compress: true\n engine: postgresql\n splunk:\n user: splunk_user_here\n passwd: password here\n host: splunk.com\n port: 8089\n redis:\n redis_host: 127.0.0.1\n redis_port: 6379\n flask_config:\n DEBUG: False\n SECRET_KEY: hard key to guess and keep values secret\n debug_sql: false\n debug_profiler: false\n cache_routes: true\n logging_config:\n version: 1\n disable_existing_loggers: False\n formatters:\n light:\n format: '%(asctime)s [%(levelname).1s] %(name)s: %(message)s'\n datefmt: '%Y-%m-%d %H:%M:%S'\n verbose:\n format: '%(asctime)s %(levelname) 8s(%(name)s): %(message)s'\n datefmt: ''\n handlers:\n console:\n class: logging.StreamHandler\n level: DEBUG\n formatter: light\n stream: ext://sys.stdout\n slack:\n class: api.slackLogHandler.BufferingSlackWebHookHandler\n level: INFO\n formatter: light\n capacity: 100\n organization: KyleJamesWalker\n token: need_this\n channel: '#services'\n username: my-proj-logger\n icon_emoji: ':happy_panda:'\n noid:\n class: logging.NullHandler\n loggers:\n requests:\n level: NOTSET\n handlers: [noid]\n propagate: no\n root:\n level: NOTSET\n handlers:\n - console\n\nsettings.yml - Custom Settings (untracked)\n\n.. code-block:: yaml\n\n ---\n myproj:\n databases:\n primary_sql:\n user: root\n passwd: god\n splunk:\n user: real_user\n passwd: pa$$word\n flask_config:\n SECRET_KEY: sdfasjksdfASFAS23423f@#$%!$#VR@%UQ%\n logging_config:\n handlers:\n slack:\n token: 123243294832104981209\n root:\n handlers:\n - console\n - slack\n\nExample package resource loading\n\n.. code-block:: python\n\n \"\"\"Parameters that can be passed are:\n resource: The resource to load from the package (default: settings.yaml)\n env: When set the yamldict will update with env variables (default: true)\n prefix: Prefix for environment loading (default: None)\n persist: When set the yamldict will only be loaded once. (default: true)\n \"\"\"\n yamlsettings.load('package://example')\n yamlsettings.load('package://example?resource=diff.yaml')\n yamlsettings.load('package://example?prefix=MY_FUN&persist=false')\n\n\nPlugins\n^^^^^^^\n\nThis project also supports plugins. The base project has two plugins:\n\n- file: Loads from the file system.\n- package: Loads settings from a package resource.\n\nExample Plugin:\n===============\n\nsetup.py\n\n.. code-block:: python\n\n from setuptools import setup\n\n setup(\n name='yamlsettings-example',\n version='1.0.0',\n author='Kyle Walker',\n author_email='KyleJamesWalker@gmail.com',\n description='Quick Example',\n requirements=['yamlsettings'],\n py_modules=['yamlsettings_example'],\n entry_points={\n 'yamlsettings10': [\n 'ext = yamlsettings_example:ZxcExtension',\n ],\n },\n )\n\nyamlsettings_example.py\n\n.. code-block:: python\n\n from yamlsettings.extensions.base import YamlSettingsExtension\n\n\n class ZxcExtension(YamlSettingsExtension):\n \"\"\"Quick Example Plugin\n\n Standard file opener, but will merge in values passed to kwargs\n \"\"\"\n protocols = ['zxc']\n\n @classmethod\n def load_target(cls, scheme, path, fragment, username,\n password, hostname, port, query,\n load_method, **kwargs):\n full_path = (hostname or '') + path\n obj = load_method(open(full_path, **query))\n obj.update(kwargs)\n return obj\n\nusage\n\n.. code-block:: python\n\n import yamlsettings\n yamlsettings.load(\"zxc://defaults.yaml\", foo='bar')\n\n # Note: this is automatically detected when the extension is installed\n # alternatively the extension can be manually registered with:\n yamlsettings.registry.add(ZxcExtension)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/KyleJamesWalker/yamlsettings", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "yamlsettings", "package_url": "https://pypi.org/project/yamlsettings/", "platform": "", "project_url": "https://pypi.org/project/yamlsettings/", "project_urls": { "Homepage": "https://github.com/KyleJamesWalker/yamlsettings" }, "release_url": "https://pypi.org/project/yamlsettings/2.0.1/", "requires_dist": null, "requires_python": "", "summary": "Yaml Settings Configuration Module", "version": "2.0.1" }, "last_serial": 5101140, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ddb66d900fcb425efcddc6829ca96b22", "sha256": "8b25128539f789437108153231d584e5824cfa713b71a9767500fdfb927bad97" }, "downloads": -1, "filename": "yamlsettings-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ddb66d900fcb425efcddc6829ca96b22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4952, "upload_time": "2014-09-07T06:15:07", "url": "https://files.pythonhosted.org/packages/62/28/ecd702c192098303578b72bb84b9469f999430e71542a226a0c3f844a687/yamlsettings-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5f72c115a2dce5649251c7c4a960bc20", "sha256": "c66ebff40eb56c9385ce6fe881e29deaf35e9892b3dcedb407607431505e81b8" }, "downloads": -1, "filename": "yamlsettings-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5f72c115a2dce5649251c7c4a960bc20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6364, "upload_time": "2015-02-11T02:36:50", "url": "https://files.pythonhosted.org/packages/44/96/1172e8e7b7c27aa00144251b641be0137be19ffbe4511972968c320adcc7/yamlsettings-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "e1f2639b560b7a4c1ea5fd331cb8e8ab", "sha256": "7b1f1b998bb3657a59ab56b08287861068d075e451533c581f06472b6f75199e" }, "downloads": -1, "filename": "yamlsettings-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e1f2639b560b7a4c1ea5fd331cb8e8ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6839, "upload_time": "2015-02-18T20:16:13", "url": "https://files.pythonhosted.org/packages/b5/85/6650674561d86702bd2e9f7086efbf03c6c3042ba6ee91a41ae96c100f87/yamlsettings-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "0d2223e09da7ee0be4308345cd373929", "sha256": "e88c8b75259fd17b0316b93fb6bf5b1ddf748e7b15c175df2cdd3e8a095a444c" }, "downloads": -1, "filename": "yamlsettings-0.2.2.tar.gz", "has_sig": false, "md5_digest": "0d2223e09da7ee0be4308345cd373929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6843, "upload_time": "2015-03-14T02:44:10", "url": "https://files.pythonhosted.org/packages/36/86/7c467f1d3bf149b7c24249b4afb5470f07659168326047a2f8ae7b361e87/yamlsettings-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "2b927ad860b7e217d15f3c3d1b1d77c7", "sha256": "38cbf5d9f47c3f5ff2ed7f161ca073b5a1b261c5e058fd712125c89fade71b5a" }, "downloads": -1, "filename": "yamlsettings-0.2.3.tar.gz", "has_sig": false, "md5_digest": "2b927ad860b7e217d15f3c3d1b1d77c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6894, "upload_time": "2015-09-26T16:30:32", "url": "https://files.pythonhosted.org/packages/e4/ef/b15a3315703814dd6c265793a7bc1941836ba52f9b7cacc05bf0fd0ff5d1/yamlsettings-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "38d78812c77beba436bd2ed19edbef7c", "sha256": "3200c01674932133f563687c252e1269280533e747be1d1ee0530b440e989102" }, "downloads": -1, "filename": "yamlsettings-0.2.4.tar.gz", "has_sig": false, "md5_digest": "38d78812c77beba436bd2ed19edbef7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6917, "upload_time": "2015-10-06T17:55:08", "url": "https://files.pythonhosted.org/packages/41/61/e8f6ad30e32c349b152d1442f155761f4401bd78dbcc588ea4016bd00525/yamlsettings-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "4a55d7c8ec71181bd27539d5b7307eb6", "sha256": "be612c5912c236b844705b6b5d03847455c3886460389ebbf48761ee0cd94e32" }, "downloads": -1, "filename": "yamlsettings-0.2.5.tar.gz", "has_sig": false, "md5_digest": "4a55d7c8ec71181bd27539d5b7307eb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7513, "upload_time": "2016-10-19T20:01:13", "url": "https://files.pythonhosted.org/packages/9c/a0/37b3f180a7e2640637c7ce9cb35a550cd7b3d90b7b02928e9688f5be91dc/yamlsettings-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "7b507b443362ddbb17b85720f7427a40", "sha256": "f94ec9be763ce2ed375d2662fc94ca616814067b540158669f8ac1787e180ce1" }, "downloads": -1, "filename": "yamlsettings-0.2.6.tar.gz", "has_sig": false, "md5_digest": "7b507b443362ddbb17b85720f7427a40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7015, "upload_time": "2018-02-05T23:00:26", "url": "https://files.pythonhosted.org/packages/d9/e2/4e9a2f9187d80426bef0a5ee2d55b2664bfd5b46b96247c99b6ed3791cc2/yamlsettings-0.2.6.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "c07872fdda5f61687658fdb5ab539d1a", "sha256": "d6b1aaa439ea2577ad639b3294bafb775e0894916ae5341e283286e1a59617ea" }, "downloads": -1, "filename": "yamlsettings-0.2.8.tar.gz", "has_sig": false, "md5_digest": "c07872fdda5f61687658fdb5ab539d1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6944, "upload_time": "2018-02-12T03:21:44", "url": "https://files.pythonhosted.org/packages/23/d8/4deb51e5f640c3f93867fb36937beee9cff4dcb140455f25255fffe23be6/yamlsettings-0.2.8.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "4a81ef732c00d4bf48ea47f4831e0fed", "sha256": "dc9a8b3b53dc3b82a5b0dbb077ff1b144c3530a5aceaf33f943820f2d45bb991" }, "downloads": -1, "filename": "yamlsettings-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4a81ef732c00d4bf48ea47f4831e0fed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7738, "upload_time": "2018-03-20T04:58:32", "url": "https://files.pythonhosted.org/packages/c9/94/c8a345371d848f24068c03b040fbcc9d4e99331decd9a5a694c3e6bb7c1b/yamlsettings-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "72189647c0bb458ece8146f33ca547fa", "sha256": "e1b32d8b218c62d3ad6fbc5c830793a208f7606ee461ec92e8f34a82663138fa" }, "downloads": -1, "filename": "yamlsettings-1.0.1.tar.gz", "has_sig": false, "md5_digest": "72189647c0bb458ece8146f33ca547fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10292, "upload_time": "2018-03-20T05:11:41", "url": "https://files.pythonhosted.org/packages/db/ee/3a4cefcc4ab33628f552e9f635a1ec72faa7318f9f4d1a5b85d43d6a435f/yamlsettings-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "7dbec7db200b4751520fa6ca567d2bf2", "sha256": "20e27caacfc623d1be8a9f641ce264a9276573e76551942788e0e4a3af0c1677" }, "downloads": -1, "filename": "yamlsettings-1.0.2.tar.gz", "has_sig": false, "md5_digest": "7dbec7db200b4751520fa6ca567d2bf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10301, "upload_time": "2018-03-23T04:44:25", "url": "https://files.pythonhosted.org/packages/b9/31/ca84f3e5ba6660cd7cfcf100160c2039572201218290d10efdba7f8de684/yamlsettings-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "b3342d1bd9e2a6f273c9a5a73798db49", "sha256": "9764f36a433ce957ddf718d2345abb21de205d68558977ca6db2f6104efee179" }, "downloads": -1, "filename": "yamlsettings-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b3342d1bd9e2a6f273c9a5a73798db49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10356, "upload_time": "2019-03-13T23:30:11", "url": "https://files.pythonhosted.org/packages/31/1c/b38b8c52a8e844f05397bdef781e83d3dbea55b2dd8223e3090f9b9d2295/yamlsettings-1.0.3.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "5f735212d3b055a6c410e02cfd7fdfa1", "sha256": "2736cf6adc8aec1312a38e75463918f64ec31492a14f5ac4b21f71fcecefadeb" }, "downloads": -1, "filename": "yamlsettings-2.0.0.tar.gz", "has_sig": false, "md5_digest": "5f735212d3b055a6c410e02cfd7fdfa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10402, "upload_time": "2019-03-13T23:37:19", "url": "https://files.pythonhosted.org/packages/03/7a/18fe58d9e9f44d41b0cd45f0202324ce8f3bcebdd253f64edd27ab4d80b4/yamlsettings-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "767f881da79e9339a035636a06b81c77", "sha256": "ceb96089bb73109c943f8f25db07a75bc516f70ad87eed8149e7c0dcb8c327c5" }, "downloads": -1, "filename": "yamlsettings-2.0.1.tar.gz", "has_sig": false, "md5_digest": "767f881da79e9339a035636a06b81c77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10416, "upload_time": "2019-04-04T21:57:20", "url": "https://files.pythonhosted.org/packages/8a/b5/0767ed217d4ec1063313fedb93e1a424eb7b698b03380b1d2db53a429d35/yamlsettings-2.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "767f881da79e9339a035636a06b81c77", "sha256": "ceb96089bb73109c943f8f25db07a75bc516f70ad87eed8149e7c0dcb8c327c5" }, "downloads": -1, "filename": "yamlsettings-2.0.1.tar.gz", "has_sig": false, "md5_digest": "767f881da79e9339a035636a06b81c77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10416, "upload_time": "2019-04-04T21:57:20", "url": "https://files.pythonhosted.org/packages/8a/b5/0767ed217d4ec1063313fedb93e1a424eb7b698b03380b1d2db53a429d35/yamlsettings-2.0.1.tar.gz" } ] }