A python module to load property files. Recursively define properties, load from env.
Project description
pythonpropertyfileloader
A python module to load property files
- Load multiple property files
- Recursively define properties (Similar to PropertyPlaceholderConfigurer) in spring which lets you use
${variable-reference}
to refer to already defined property) - Placeholders are also resolved using env variables, like the spring property loader does, if the class is instantiated with the
use_env
argument (defaults to false for backward compatibility)
Install
Available on PyPI
pip install property
Example
my_file.properties
foo = I am awesome
bar = ${chocolate}-bar
chocolate = fudge
long = a very long property that is described in the property file which takes up \
multiple lines can be defined by the escape character as it is done here
url=example.com/api?auth_token=xyz
user_dir=${HOME}/test
unresolved = ${HOME}/files/${id}/${bar}/
fname_template = /opt/myapp/{arch}/ext/{objid}.dat
Code
from properties.p import Property
## set use_env to evaluate properties from shell / os environment
prop = Property(use_env = True)
dic_prop = prop.load_property_files('my_file.properties')
## Read multiple files
## dic_prop = prop.load_property_files('file1', 'file2')
print(dic_prop)
# Output
# {'foo': 'I am awesome', 'bar': 'fudge-bar', 'chocolate': 'fudge',
# 'long': 'a very long property that is described in the property file which takes up multiple lines
# can be defined by the escape character as it is done here', 'url': 'example.com/api?auth_token=xyz',
# 'user_dir': '/home/user/test',
# 'unresolved': '/home/user/files/${id}/fudge-bar/',
# 'fname_template': '/opt/myapp/{arch}/ext/{objid}.dat'}
Develop
git clone https://github.com/anandjoshi91/pythonpropertyfileloader.git
cd pythonpropertyfileloader
## make your changes and open a PR - https://github.com/anandjoshi91/pythonpropertyfileloader/pulls
## Ensure all tests pass
## Check Dependencies
pip install pipreqs
pipreqs .
## Test
pip install pytest
pytest
## Publish to PyPi
pip install twine
update setup.py
python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
property-2.6.2.tar.gz
(4.5 kB
view details)
Built Distribution
File details
Details for the file property-2.6.2.tar.gz
.
File metadata
- Download URL: property-2.6.2.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e4a44b554f3d045ee2f8260c15bdd262e658cd98a0a136b30ee96690933cf21 |
|
MD5 | f99b25260e88d26484f0059f7699bd22 |
|
BLAKE2b-256 | 9fc49b0c508e4482ff13fbff08c68bb532025685c2ca9b09ce206446de1ae904 |
File details
Details for the file property-2.6.2-py3-none-any.whl
.
File metadata
- Download URL: property-2.6.2-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 643c36a4f072e158d87f67da1a946a581eca4059b356cd6f557f33d3bb1be693 |
|
MD5 | 6a829e24ad0ca58e1b0e00c0f6a17c0a |
|
BLAKE2b-256 | 4c65d7cc19c16cac55d464843b8d5c40bd19e3a196f5d9f81fde1d686087e22f |