pyjavaprops

Tool to parse Java style properties file


License
MIT
Install
pip install pyjavaprops==1.0.2

Documentation

pyjavaprops

https://travis-ci.org/luiscberrocal/pyjavaprops.svg?branch=master https://coveralls.io/repos/luiscberrocal/pyjavaprops/badge.svg?branch=master&service=github

Library to read Java style properties files. I don't particularly like properties files but working with them in Java is very easy. I recently had to support reading Java properties files using Python.

This project is based on Benjamins Brent fork of pyjavaproperties.

The libraries main features are:

  • Reads properties files.
  • You can add new properties.
  • You can save properties to file.
  • It interprets variables in curly braces {} and dollar curly braces ${}.

Caveats

The library does not interpret unicode characters correctly. If you include charactes like u4500 it will interpret it as , letter y and the number 4500.

Installation

Requires Python 3.3 or better.

$ pip install pyjavaprops

Usage

Loading Java properties

filename = os.path.join(TEST_DATA_FOLDER, 'iso-8859-1.properties')
iso_8859_1_properties = JavaProperties()
with open(filename, encoding='iso-8859-1') as property_file:
    iso_8859_1_properties.load(property_file)
     name = iso_8859_1_properties['name']

Saving Java properties to file

filename = os.path.join(TEST_DATA_FOLDER, 'simple.properties')
simple_java_properties = JavaProperties()
with open(filename) as property_file:
    simple_java_properties.load(property_file)
simple_java_properties['country'] = 'Angola'
output_filename = os.path.join(OUTPUT_FOLDER, 'simple_%s.properties' % datetime.now().strftime('%Y%m%d_%H%M'))
with open(output_filename, mode='w') as output:
    simple_java_properties.store(output)

Exporting to json

output_filename = os.path.join(OUTPUT_FOLDER, 'simple_%s.json' % datetime.now().strftime('%Y%m%d_%H%M'))
export_to_json(output_filename, java_properties)
with open(output_filename) as json_data:
    json_properties = json.load(json_data)
    print(json_properties['Key10'])

Development

Virtual Environment

To create the virtual environment

$ cd ~/virtual_environments

$ python3 /usr/local/lib/python3.4/site-packages/virtualenv.py --no-site-packages pyjavaprops_env

$ source ./pyjavaprops_env/bin/activate

(pyjavaprops_env) $

Runnig Tests

$ coverage run --source pyjavaprops setup.py test