Expand system variables Unix style
This module is inspired by GNU bash's variable expansion features. It can be used as an alternative to Python's os.path.expandvars function.
A 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. For example:
[default]
my_secret_access_code = "${ACCESS_CODE:-default_access_code}"
NOTE: Although it copies most of the common behaviours, it doesn't follow it strictly. For example, it doesn't work with arrays.
from expandvars import expandvars
print(expandvars("$PATH:$HOME/bin:${SOME_UNDEFINED_PATH:-/default/path}"))
# /bin:/sbin:/usr/bin:/usr/sbin:/home/you/bin:/default/path
For now, refer to the test cases to see how it behaves.
To contribute, setup environment following way:
# Clone repo
git clone https://github.com/sayanarijit/expandvars && cd expandvars
# Create virtualenv
virtualenv .venv && source .venv/bin/activate
# Install library in edit mode along with other handy dev tools
pip install -r dev-requirements.txt
- Follow general git guidelines.
- Keep it simple. Use black to format code.
- Test your changes locally by running
pytest
. - If you are familiar with tox, you may want to use it for testing in different python versions.