Skip to main content

A python module to load property files. Recursively define properties, load from env.

Project description

pythonpropertyfileloader

Downloads Build Coverage Badge

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)

Uploaded Source

Built Distribution

property-2.6.2-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

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

Hashes for property-2.6.2.tar.gz
Algorithm Hash digest
SHA256 9e4a44b554f3d045ee2f8260c15bdd262e658cd98a0a136b30ee96690933cf21
MD5 f99b25260e88d26484f0059f7699bd22
BLAKE2b-256 9fc49b0c508e4482ff13fbff08c68bb532025685c2ca9b09ce206446de1ae904

See more details on using hashes here.

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

Hashes for property-2.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 643c36a4f072e158d87f67da1a946a581eca4059b356cd6f557f33d3bb1be693
MD5 6a829e24ad0ca58e1b0e00c0f6a17c0a
BLAKE2b-256 4c65d7cc19c16cac55d464843b8d5c40bd19e3a196f5d9f81fde1d686087e22f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page