{ "info": { "author": "Arijit Basu", "author_email": "sayanarijit@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Other Audience", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Utilities" ], "description": "expandvars\n==========\nExpand system variables Unix style\n\n[![PyPI version](https://img.shields.io/pypi/v/expandvars.svg)](https://pypi.org/project/expandvars)\n[![CircleCI](https://circleci.com/gh/sayanarijit/expandvars/tree/master.svg?style=svg)](https://circleci.com/gh/sayanarijit/expandvars/tree/master)\n[![codecov](https://codecov.io/gh/sayanarijit/expandvars/branch/master/graph/badge.svg)](https://codecov.io/gh/sayanarijit/expandvars)\n\n\nInspiration\n-----------\nThis module is inspired by [GNU bash's variable expansion features](https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html). It can be used as an alternative to Python's [os.path.expandvars](https://docs.python.org/3/library/os.path.html#os.path.expandvars) function.\n\nA good use case is reading config files with the flexibility of reading values from environment variables using advanced features like returning a default value if some variable is not defined.\nFor example:\n\n```toml\n[default]\nmy_secret_access_code = \"${ACCESS_CODE:-default_access_code}\"\n```\n\n> NOTE: Although it copies most of the common behaviours, it doesn't follow it strictly. For example, it doesn't work with arrays.\n\n\nUsage\n-----\n\n```python\nfrom expandvars import expandvars\n\nprint(expandvars(\"$PATH:$HOME/bin:${SOME_UNDEFINED_PATH:-/default/path}\"))\n# /bin:/sbin:/usr/bin:/usr/sbin:/home/you/bin:/default/path\n```\n\n\nExamples\n--------\nFor now, [refer to the test cases](https://github.com/sayanarijit/expandvars/blob/master/tests/test_expandvars.py) to see how it behaves.\n\n\nContributing\n------------\nTo contribute, setup environment following way:\n\n```bash\n# Clone repo\ngit clone https://github.com/sayanarijit/expandvars && cd expandvars\n\n# Create virtualenv\nvirtualenv .venv && source .venv/bin/activate\n\n# Install library in edit mode along with other handy dev tools\npip install -r dev-requirements.txt\n```\n\n- Follow [general git guidelines](https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project).\n- Keep it simple. Use [black](https://github.com/python/black) to format code.\n- Test your changes locally by running `pytest`.\n- If you are familiar with [tox](https://tox.readthedocs.io), you may want to use it for testing in different python versions.\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://github.com/sayanarijit/expandvars", "keywords": "expand system variables", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "expandvars", "package_url": "https://pypi.org/project/expandvars/", "platform": "Any", "project_url": "https://pypi.org/project/expandvars/", "project_urls": { "Homepage": "https://github.com/sayanarijit/expandvars" }, "release_url": "https://pypi.org/project/expandvars/0.4/", "requires_dist": [ "tox (>=3.7.0) ; extra == 'dev'", "pytest (>=4.6.1) ; extra == 'dev'", "pytest-cov (>=2.7.1) ; extra == 'dev'", "black (>=19.3b0) ; extra == 'dev'", "pytest (>=4.6.1) ; extra == 'testing'", "pytest-cov (>=2.7.1) ; extra == 'testing'", "black (>=19.3b0) ; extra == 'testing'" ], "requires_python": "", "summary": "Expand system variables Unix style", "version": "0.4" }, "last_serial": 5433949, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9697ae807a351b6e26eaaa458679e615", "sha256": "48c98361c833945c50fedfc3cb3aaddae072480a5ee082caa51551610624ca70" }, "downloads": -1, "filename": "expandvars-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9697ae807a351b6e26eaaa458679e615", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1964, "upload_time": "2019-05-07T04:52:45", "url": "https://files.pythonhosted.org/packages/34/a6/c33c7e01a395bae718a8cab4f5d49a27b4ce5e725ff1f501f9a090cc8d57/expandvars-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03a5895173b2a94688c9eb9a058eea54", "sha256": "640fdf3c5195553241ecf0609abbeb77c6f606ac29f0374f1c9fe40b9dd6d31e" }, "downloads": -1, "filename": "expandvars-0.1.1.tar.gz", "has_sig": false, "md5_digest": "03a5895173b2a94688c9eb9a058eea54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2187, "upload_time": "2019-05-07T04:52:47", "url": "https://files.pythonhosted.org/packages/ff/74/fb83eee2a95651b50fa7acc021bef8f70afae12010a1a4ccf3e439c54f9e/expandvars-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "97a6aad387a810a0aaf3f4498113b28e", "sha256": "6057b72baa6e2d9693b411b6e2f9fc3a7a5bf2b38b4b36c9d496a942b3a02ea3" }, "downloads": -1, "filename": "expandvars-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "97a6aad387a810a0aaf3f4498113b28e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2079, "upload_time": "2019-05-07T05:02:23", "url": "https://files.pythonhosted.org/packages/fb/2a/3d3ec0c5e17b8da18bc811c5b4b63696cd4431a55c2f4d6fb72a7e2d9749/expandvars-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4332b34d67fdbf718ea54b0588effc0c", "sha256": "b89892111a2da71aed0d6b4eab12ee38bb128cc4985c0407010b6df6e5a722e2" }, "downloads": -1, "filename": "expandvars-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4332b34d67fdbf718ea54b0588effc0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2314, "upload_time": "2019-05-07T05:02:28", "url": "https://files.pythonhosted.org/packages/c4/a7/4cf02a87dfa732a6dccb0103cd84001580de564fd2cd1a00df955ddec68c/expandvars-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6b59101f614337e356323a858ba34246", "sha256": "953f0034dc900bdc4eb3f43321a251b7f7ed79b74c1ccf6d3edd0b98d112ed90" }, "downloads": -1, "filename": "expandvars-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6b59101f614337e356323a858ba34246", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2116, "upload_time": "2019-05-07T05:10:45", "url": "https://files.pythonhosted.org/packages/f5/5a/400183282cafa0a2ec8030127a74091b55e983acd06c552f4d6f0848631e/expandvars-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb892b435c5484d01b822993b36838a2", "sha256": "daa92bb8dd9af78b63bfe18e63cdc39dfa28242b57e5c0cace88124c22834840" }, "downloads": -1, "filename": "expandvars-0.1.3.tar.gz", "has_sig": false, "md5_digest": "bb892b435c5484d01b822993b36838a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2359, "upload_time": "2019-05-07T05:10:48", "url": "https://files.pythonhosted.org/packages/52/41/967d6de7cf6b963c47d305c84aa467c2a4b14ccaa51986f07e65b596ec18/expandvars-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "619a704d4dcd3d32c61307b9d15e0598", "sha256": "3ff7231535bfa7294c4c614e5de8d8ce7730014bb16ef22bfafa5eaafd31ae39" }, "downloads": -1, "filename": "expandvars-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "619a704d4dcd3d32c61307b9d15e0598", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2116, "upload_time": "2019-05-07T05:51:58", "url": "https://files.pythonhosted.org/packages/fd/1c/025a642c2712cc9fb8153e72d2401b1149d0ad5e9fc9fb2ecbeac359b5f0/expandvars-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eeff45c81e090c1eed298d3e890c4a89", "sha256": "763adb6bf4ac926e7bd9ca9e4dabc74e8fe12bac4a90979af2ed05911cd57933" }, "downloads": -1, "filename": "expandvars-0.1.4.tar.gz", "has_sig": false, "md5_digest": "eeff45c81e090c1eed298d3e890c4a89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2355, "upload_time": "2019-05-07T05:52:01", "url": "https://files.pythonhosted.org/packages/db/7d/a8b25ef015283ef5b9d0c72a7e744916445def7e6a386b902417330dd39f/expandvars-0.1.4.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "42123e26dfda2909a15b2f8a297076d6", "sha256": "82d0fc5904b4cacd123f0ae776a93032f64098ef9af81857fdad903fe2a21e52" }, "downloads": -1, "filename": "expandvars-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "42123e26dfda2909a15b2f8a297076d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3172, "upload_time": "2019-05-07T07:17:22", "url": "https://files.pythonhosted.org/packages/f3/c6/1d53935b91ae9bc617a1797596837516956e072e3c2daf390f2080aa0feb/expandvars-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a76a7d8137e3badc83de475bc80ae9c", "sha256": "131163861df452e0e2387266ee77126420e2f03f4a2ce91818adbf6dc5350e2c" }, "downloads": -1, "filename": "expandvars-0.1.6.tar.gz", "has_sig": false, "md5_digest": "3a76a7d8137e3badc83de475bc80ae9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2723, "upload_time": "2019-05-07T07:17:24", "url": "https://files.pythonhosted.org/packages/a0/c6/15f58334281f86511a9a78671b48d36ab8428f4737b53e4dd49c72e6c57a/expandvars-0.1.6.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "a0b880353dc04130c06cffa51aa85073", "sha256": "e9efc28b45f2027a78c616d04e82692333851aeaecac1a2337560c1214c66c86" }, "downloads": -1, "filename": "expandvars-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a0b880353dc04130c06cffa51aa85073", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4752, "upload_time": "2019-05-07T10:51:49", "url": "https://files.pythonhosted.org/packages/8e/e8/671da366397c53d715a9a79715353a204ae744a039835cd563d246c316fb/expandvars-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28e950be0e445f2a55b66625edfced7d", "sha256": "68efc0b8096ffae7b9ff3670f153fd9f09c65ebffd0078a8be73b136efff6912" }, "downloads": -1, "filename": "expandvars-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "28e950be0e445f2a55b66625edfced7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4726, "upload_time": "2019-05-07T10:50:16", "url": "https://files.pythonhosted.org/packages/32/7a/c69e478db93dbdc861e4335362a89533428784b7f43f695cd3eec7ce3488/expandvars-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad9c7ada7a3ba5b54dc6c61cf314a9a5", "sha256": "2c711ce003bc755a3e58ff36901592a675654be94eeb721c625a0e37d4c3e790" }, "downloads": -1, "filename": "expandvars-0.2.tar.gz", "has_sig": false, "md5_digest": "ad9c7ada7a3ba5b54dc6c61cf314a9a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3932, "upload_time": "2019-05-07T10:50:18", "url": "https://files.pythonhosted.org/packages/45/25/44c70bdb69f3571b44fb9129a6a4c7a119a1515e02f6ebb169fdfdb3bc55/expandvars-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "88ee371534776aef8ca8b6a050214a1b", "sha256": "d8a706c5b967588b35b1ac306ab3789e75d0281833c8334bd50feb284b4af8a8" }, "downloads": -1, "filename": "expandvars-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "88ee371534776aef8ca8b6a050214a1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4872, "upload_time": "2019-05-29T06:55:34", "url": "https://files.pythonhosted.org/packages/9b/28/f69da32ee931658765b5d327d84353dcc9fe510661b6b2c7cfbb569e6f96/expandvars-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca224de9ee06e511108b08de36b7a634", "sha256": "e470d2ba3958c9215186f587dd841feb7ce3d493c93c3cb193698ddc0eb64b3f" }, "downloads": -1, "filename": "expandvars-0.3.tar.gz", "has_sig": false, "md5_digest": "ca224de9ee06e511108b08de36b7a634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4211, "upload_time": "2019-05-29T06:55:35", "url": "https://files.pythonhosted.org/packages/cf/1f/b635f4b5ac78384dd830f3dd7cf9e83a286624c8444e784a19e1f84bc7b8/expandvars-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "ed964f356c5e8a9d45f6c63612bdfccd", "sha256": "3f6d822d84eb44a35da142131e83543b97d90289a850e4a036c2ddac5fabf10d" }, "downloads": -1, "filename": "expandvars-0.4-py3.6.egg", "has_sig": false, "md5_digest": "ed964f356c5e8a9d45f6c63612bdfccd", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 7092, "upload_time": "2019-06-22T06:49:21", "url": "https://files.pythonhosted.org/packages/e4/7a/85a8d5d976c1f03113e74686486ca2c70d36b78b2fe086b8c7629c6dcbea/expandvars-0.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "b7d15555aae473b9e3172af93d7d3ee2", "sha256": "b889b65dabeb221c0d2b29817856102ffaa457b1b0612d858c4f33497cc83ad0" }, "downloads": -1, "filename": "expandvars-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b7d15555aae473b9e3172af93d7d3ee2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5089, "upload_time": "2019-06-22T06:49:19", "url": "https://files.pythonhosted.org/packages/aa/fc/a6672aba5b0939cc3053ea61a773b39190e74f3b980f4270d3837c1198d4/expandvars-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0726902ef049bb1a8b57b4b7af34abc7", "sha256": "2915c970c27f3509d9c0d6e60dd81201e6644610037784e0987cf127a030b19d" }, "downloads": -1, "filename": "expandvars-0.4.tar.gz", "has_sig": false, "md5_digest": "0726902ef049bb1a8b57b4b7af34abc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4376, "upload_time": "2019-06-22T06:49:23", "url": "https://files.pythonhosted.org/packages/06/16/96838ca6f05466d56d6cfb2ed815aec7a988681ed252e811a662d2ef34b1/expandvars-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed964f356c5e8a9d45f6c63612bdfccd", "sha256": "3f6d822d84eb44a35da142131e83543b97d90289a850e4a036c2ddac5fabf10d" }, "downloads": -1, "filename": "expandvars-0.4-py3.6.egg", "has_sig": false, "md5_digest": "ed964f356c5e8a9d45f6c63612bdfccd", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 7092, "upload_time": "2019-06-22T06:49:21", "url": "https://files.pythonhosted.org/packages/e4/7a/85a8d5d976c1f03113e74686486ca2c70d36b78b2fe086b8c7629c6dcbea/expandvars-0.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "b7d15555aae473b9e3172af93d7d3ee2", "sha256": "b889b65dabeb221c0d2b29817856102ffaa457b1b0612d858c4f33497cc83ad0" }, "downloads": -1, "filename": "expandvars-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b7d15555aae473b9e3172af93d7d3ee2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5089, "upload_time": "2019-06-22T06:49:19", "url": "https://files.pythonhosted.org/packages/aa/fc/a6672aba5b0939cc3053ea61a773b39190e74f3b980f4270d3837c1198d4/expandvars-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0726902ef049bb1a8b57b4b7af34abc7", "sha256": "2915c970c27f3509d9c0d6e60dd81201e6644610037784e0987cf127a030b19d" }, "downloads": -1, "filename": "expandvars-0.4.tar.gz", "has_sig": false, "md5_digest": "0726902ef049bb1a8b57b4b7af34abc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4376, "upload_time": "2019-06-22T06:49:23", "url": "https://files.pythonhosted.org/packages/06/16/96838ca6f05466d56d6cfb2ed815aec7a988681ed252e811a662d2ef34b1/expandvars-0.4.tar.gz" } ] }