Skip to main content

Python replacement for java.util.Properties.

Project description

About

This is a fork of “python replacement for java.util.Properties” recipe on ASPN: http://code.activestate.com/recipes/496795/ The project is maintained by Anand B Pillai anandpillai@letterboxes.org, anand@anvetsu.com .

License

The code is re-licensed under MIT License. See LICENSE file for more details.

What this is

This module is designed to be a python equivalent to the java.util.Properties <http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html>_ class.

Currently, the basic input/output methods are supported.

Fundamentally, this module is designed so that users can easily parse and manipulate Java Properties files - that’s it. There’s a fair number of us pythonistas who work in multi-language shops, and constantly writing your own parsing mechanism is just painful. Not to mention Java guys are notoriously unwilling to use anything which is cross-language for configuration, unless it’s XML, which is a form of self-punishment. :)

Python support

The module is cross Python2 and Python3 compatible.

This module has basic support for Python3. It means the tests should pass under any version of Python3 though it has been tested only for versions >= Python 3.6.6.

Due to the changes for Python3, this should work under any Python2 version >= Python 2.7.

Caveats

The code still uses Python2 type strings inside. In other words proper unicode support is still missing.

Plans

Here is a plan for the current version which runs under Python2 in approximate decreasing priority order.

  1. Keep/maintain blank lines and comments found in the original file

  2. Add unicode support

  3. Provide python property access on top of direct dictionary get/set

  4. Make the module compatible with the new methods in latest J2SE.

Usage

from pyjavaproperties import Properties
p = Properties()
p.load(open('test.properties'))
p.list()
print p
print p.items()
print p['name3']
p['name3'] = 'changed = value'
print p['name3']
p['new key'] = 'new value'
p.store(open('test2.properties','w'))

See also the Properties.list() method, which will return an iterator over the property keys

Tests

$ python pyjavaproperties_test.py

Changes & News

version 0.7

  • Setup.py for release 0.7.

  • Created CHANGELOG.txt

  • Updated README.md showing tests, changes section and updates to author etc.

  • Relicensed to MIT from PSF.

  • Rewrote N.B’s patch to relicense repo under MIT.

  • Basic python3 support plus python2/3 cross compatibility.

  • Absorbing TODO in README.md.

  • README => README.md.

  • Added support for referenced properties.

  • Added tests for referenced properties and saving as well.

  • Minor tweaks in code.

  • Code moved to new git repo.

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

pyjavaproperties-0.7.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

pyjavaproperties-0.7-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file pyjavaproperties-0.7.tar.gz.

File metadata

  • Download URL: pyjavaproperties-0.7.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for pyjavaproperties-0.7.tar.gz
Algorithm Hash digest
SHA256 adb59893874ee14f12f9e9054fdd3e9383eb0071c22c596a377bf7585ef0ea85
MD5 c8382eb5f6565b8ebca7b874f1b90d69
BLAKE2b-256 0a5aaf92ac36c3e9b8c684fddfbdcf39ffe7d4b39439bc9b60fd88b2c3bfd244

See more details on using hashes here.

File details

Details for the file pyjavaproperties-0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for pyjavaproperties-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4bd540d0624190a7f749210920e67dbeb125b220fc5802805077958d8e55f8ed
MD5 5bc5ee17769558b2560553f8cce691d1
BLAKE2b-256 8095d9ebdcbefd05d1bd755467b32135b2bfebda06045631dca1f17569e40406

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page