{ "info": { "author": "Marc Meszaros", "author_email": "me@marcmeszaros.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "envitro\n=======\n\nA module for reading values from OS environment variables.\n\nCompared to using os.getenv(), this module provides convenience functions,\nfor parsing basic datatypes. It also allows specifying optional default values if\nthe environment variable does not exist. Basic environment variable parsing and\nsanitizing is also performed.\n\nUsage\n-----\n\n.. code-block:: python\n\n import os\n import envitro\n\n # fails when environment variables are missing\n bool_required = envitro.bool(\"BOOL_ENV\")\n int_required = envitro.int(\"INTEGER_ENV\")\n float_required = envitro.float(\"FLOAT_ENV\")\n str_required = envitro.str(\"STRING_ENV\")\n\n # basic sanitizing\n os.environ[\"STR_ENV\"] = \" var with spaces \"\n envitro.str(\"STR_ENV\") # returns \"var with spaces\"\n\n # falls back to defaults\n bool_default = envitro.bool(\"BOOL_NOT_FOUND\", default=False)\n int_default = envitro.int(\"INTEGER_NOT_FOUND\", default=42)\n float_default = envitro.float(\"FLOAT_NOT_FOUND\", default=42.44)\n str_default = envitro.str(\"STRING_NOT_FOUND\", default=\"my_default\")\n\n # try multiple fallback ENV variables\n os.environ[\"FALLBACK_ENV\"] = \"fallback_val\"\n single_fallback = envitro.str(\"MISSING\", fallback=\"FALLBACK_ENV\")\n multiple_fallback = envitro.str(\"MISSING\", fallback=[\"FALL_MISSING_1\", \"FALL_MISSING_2\", \"FALLBACK_ENV\"])\n\n # get and set raw environment variables\n envitro.write(\"EXISTING_VAR\", None) # clear the environment variable\n envitro.write(\"RAW_STRING\", \" raw_string \")\n envitro.read(\"RAW_STRING\") # returns \" raw_string \"\n envitro.read(\"MISSING_RAW_STRING\", default=\" defaultval \") # returns \" defaultval \"\n\n # lists/tuples\n os.environ[\"LIST_ENV\"] = \"item1,item2,item3\"\n list_required = envitro.list(\"LIST_ENV\") # returns [\"item1\", \"item2\", \"item3\"]\n tuple_required = envitro.tuple(\"LIST_ENV\") # returns (\"item1\", \"item2\", \"item3\")\n os.environ[\"LIST_ENV2\"] = \"item1;item2;item3\"\n list_required2 = envitro.list(\"LIST_ENV2\", separator=\";\") # returns [\"item1\", \"item2\", \"item3\"]\n tuple_required2 = envitro.tuple(\"LIST_ENV2\", separator=\";\") # returns (\"item1\", \"item2\", \"item3\")\n\n # utility functions\n envitro.isset(\"MAYBE_SET_VARIABLE\") # return True/False\n\n\nDecorators\n----------\n\nThere are also decorators available to selectively enable or disable functions based on environment\nvariables.\n\n.. code-block:: python\n\n import envitro\n\n @envitro.decorators.isset('ALLOW_FOO')\n def foo():\n return \"Hello World\"\n\n envitro.write('ALLOW_FOO', '1')\n foo() # allowed\n\n envitro.write('ALLOW_FOO', None)\n foo() # return \"None\" and is not executed\n\n @envitro.decorators.bool('ALLOW_REMOTE')\n def get_remote(arg1, arg2):\n return call_remote_service(arg1, arg2)\n\n envitro.write('ALLOW_REMOTE', 'True')\n get_remote('hello', 'world') # calls remote service\n\n envitro.write('ALLOW_REMOTE', 'False')\n get_remote('hello', 'world') # returns \"None\" and is not executed", "description_content_type": null, "docs_url": "https://pythonhosted.org/envitro/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MarcMeszaros/envitro", "keywords": "config,environment,12factor", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "envitro", "package_url": "https://pypi.org/project/envitro/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/envitro/", "project_urls": { "Homepage": "https://github.com/MarcMeszaros/envitro" }, "release_url": "https://pypi.org/project/envitro/0.5.0/", "requires_dist": [ "wheel; extra == 'dev'", "coverage; extra == 'test'" ], "requires_python": "", "summary": "A module for reading and writing environment variables.", "version": "0.5.0" }, "last_serial": 2713724, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "dd2ebeee83a2139d33981fe74740fb69", "sha256": "b2b074a01b02fd04c8fbd9c7c2a127a2b5cbd69320e251f9b769ca6cfde7580f" }, "downloads": -1, "filename": "envitro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "dd2ebeee83a2139d33981fe74740fb69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2483, "upload_time": "2015-10-22T17:46:17", "url": "https://files.pythonhosted.org/packages/d0/9e/7e863afde795202e0ea75ee989ab8200ed1e9d1dd32a22e51a20de0b5b26/envitro-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0d110f128e13957a7c27cab8a0646441", "sha256": "47fa5104e105713f72f632be60fb2f163da71d53ed68d926010afad40eafa2c2" }, "downloads": -1, "filename": "envitro-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0d110f128e13957a7c27cab8a0646441", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4434, "upload_time": "2015-10-31T22:30:55", "url": "https://files.pythonhosted.org/packages/73/07/4794aaca67efec6122c9f9519cf13857889229b53ef1a28b8c6afc0a7fbf/envitro-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa1288b89b0c4759d41a399256561663", "sha256": "74dc156711c16603cd4824139c1347fb561940114b2d017b1137f630dc885ff2" }, "downloads": -1, "filename": "envitro-0.2.0.tar.gz", "has_sig": false, "md5_digest": "aa1288b89b0c4759d41a399256561663", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3146, "upload_time": "2015-10-31T22:30:47", "url": "https://files.pythonhosted.org/packages/90/2a/c080db1102eb36af11121c52657c51028253dd18df811feca56f3d2b326c/envitro-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "972656479ff57904fbccc005bdf7a656", "sha256": "ca8824dc7dbd6b0f42a764ec94751078a758ef61a14d8189d76a8f7a0090c29a" }, "downloads": -1, "filename": "envitro-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "972656479ff57904fbccc005bdf7a656", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4644, "upload_time": "2015-11-04T19:16:29", "url": "https://files.pythonhosted.org/packages/52/3f/fafa2d6e29fcf57a47302f29a598bf7f13cc4369de8a3853159deaeb11ce/envitro-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d4a8c7a8fd430592b586d253a84b61c", "sha256": "6e59f3be8c24a09d0732bef015c198783f080eb9f55dfdcc0ed2862a1be62c2a" }, "downloads": -1, "filename": "envitro-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7d4a8c7a8fd430592b586d253a84b61c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3444, "upload_time": "2015-11-04T19:16:22", "url": "https://files.pythonhosted.org/packages/a4/bd/61c2c287a889687277e94b08a4403b77578aab38aecc595a83ab0df42026/envitro-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5db654b7c47f68b6dfe3bb46a58fa08a", "sha256": "865710ce63c115fd19e78ccedf7af4df3c61e4a97d99a356f757002944f81ef6" }, "downloads": -1, "filename": "envitro-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5db654b7c47f68b6dfe3bb46a58fa08a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5013, "upload_time": "2015-11-20T20:44:14", "url": "https://files.pythonhosted.org/packages/68/97/becf83779f4f6724b8a7326ad4e216fa9ee131352f7bcb33cfedfed99f3f/envitro-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f955eea847c3038c2c0e26e19a2a07fc", "sha256": "3e5281f8afee82a201b97a7a5e4d072b8ab111619997df470223822736cbe85e" }, "downloads": -1, "filename": "envitro-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f955eea847c3038c2c0e26e19a2a07fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3843, "upload_time": "2015-11-20T20:44:09", "url": "https://files.pythonhosted.org/packages/88/e6/ed4d5b64bb09de4743b8e7477e120f5eb7b1246f14b6c1466a5270c3a0b6/envitro-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9ea5cfe20dea2e752c9e7659da65db46", "sha256": "9e3850c6217d738f7b81a7010397495bcd6a3521f60db21d6fbdf8f6c80bbc6b" }, "downloads": -1, "filename": "envitro-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ea5cfe20dea2e752c9e7659da65db46", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6040, "upload_time": "2015-12-26T09:26:18", "url": "https://files.pythonhosted.org/packages/85/f0/a82c75ab574f78c51918cf14241b871f96ef997db115e670f004886b07b3/envitro-0.4.0-py2.py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9630d45a8b36f387a0279eae9cd38bd6", "sha256": "a558d502ddceb0956bc54518cdefc09ed419d27e68bfff418ed2ccd29e605c53" }, "downloads": -1, "filename": "envitro-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9630d45a8b36f387a0279eae9cd38bd6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7662, "upload_time": "2016-01-16T18:47:34", "url": "https://files.pythonhosted.org/packages/43/65/447dd3e6b11dc145dd88bbff663a2e9264b76ca2c1c3640b9d3ef735bea5/envitro-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25557772516b1207a782600a209b4d24", "sha256": "d9d4f98c93cace947bca60c17a33b125d72df98ca8ac006ffb5833bc56bb2c3f" }, "downloads": -1, "filename": "envitro-0.4.1.tar.gz", "has_sig": false, "md5_digest": "25557772516b1207a782600a209b4d24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4822, "upload_time": "2016-01-16T18:47:25", "url": "https://files.pythonhosted.org/packages/a3/f3/892f799282877cb2d9ba17110ae7c851f86424b46cbd5fd102c1f4bf62f6/envitro-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "94bb0572d82a48c500e594846923db5d", "sha256": "8d5cd6c2a05d6cfa22eef9079de5a1e08b86a65b90501ed605bd78de3829a770" }, "downloads": -1, "filename": "envitro-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "94bb0572d82a48c500e594846923db5d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7706, "upload_time": "2016-07-25T01:23:51", "url": "https://files.pythonhosted.org/packages/8b/63/4bafbe0be326ec994abbb5e7c8cb511dd292cf531c394c77783d89c1a983/envitro-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f470ee9823f1574992837ffc12099ba8", "sha256": "93b9b4fb6d8e8a7c09e5e3ea55a6b012d26db613b56329900a6bdbfe2569021a" }, "downloads": -1, "filename": "envitro-0.4.2.tar.gz", "has_sig": false, "md5_digest": "f470ee9823f1574992837ffc12099ba8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4887, "upload_time": "2016-07-25T01:23:48", "url": "https://files.pythonhosted.org/packages/a7/75/8a67d74ec3702e0a6c4ef2191e248af0c29252d22df60121d84240079136/envitro-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e9ab535c251e0d82ae28e7b046b52bff", "sha256": "aa58d175d7899b13a744090fe9456855a247f7035cff07c54175f14e3c5b6755" }, "downloads": -1, "filename": "envitro-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9ab535c251e0d82ae28e7b046b52bff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8271, "upload_time": "2017-03-17T20:30:40", "url": "https://files.pythonhosted.org/packages/66/90/6d1ef21f4675d0664f7100e8de1b34f4cd12a57e7097000032f5fa5ca005/envitro-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8061531e73572bb9a883f8dc968203cf", "sha256": "8f4e50fad92617cf0a250871cced27d55d6bc9dcc0bdfc596142f8c8b90b07ee" }, "downloads": -1, "filename": "envitro-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8061531e73572bb9a883f8dc968203cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5309, "upload_time": "2017-03-17T20:30:41", "url": "https://files.pythonhosted.org/packages/cd/80/31f5cf6623a6b1433a056fa68bbb4f6777733ea7e4979a24fe0f9f62c3b9/envitro-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e9ab535c251e0d82ae28e7b046b52bff", "sha256": "aa58d175d7899b13a744090fe9456855a247f7035cff07c54175f14e3c5b6755" }, "downloads": -1, "filename": "envitro-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9ab535c251e0d82ae28e7b046b52bff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8271, "upload_time": "2017-03-17T20:30:40", "url": "https://files.pythonhosted.org/packages/66/90/6d1ef21f4675d0664f7100e8de1b34f4cd12a57e7097000032f5fa5ca005/envitro-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8061531e73572bb9a883f8dc968203cf", "sha256": "8f4e50fad92617cf0a250871cced27d55d6bc9dcc0bdfc596142f8c8b90b07ee" }, "downloads": -1, "filename": "envitro-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8061531e73572bb9a883f8dc968203cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5309, "upload_time": "2017-03-17T20:30:41", "url": "https://files.pythonhosted.org/packages/cd/80/31f5cf6623a6b1433a056fa68bbb4f6777733ea7e4979a24fe0f9f62c3b9/envitro-0.5.0.tar.gz" } ] }