anyconfig.backend.properties

Java properties file support.

New in version 0.2: Added native Java properties parser instead of a plugin utilizes pyjavaproperties module.

anyconfig.backend.properties._parseline(line)

Parse a line of Java properties file.

Parameters:line – A string to parse, must not start with ‘ ‘, ‘#’ or ‘!’ (comment)
Returns:A tuple of (key, value), both key and value may be None
>>> _parseline("aaa")
(None, None)
>>> _parseline("calendar.japanese.type: LocalGregorianCalendar")
('calendar.japanese.type', 'LocalGregorianCalendar')
anyconfig.backend.properties._pre_process_line(line, comment_markers=('#', '!'))

Preprocess a line in properties; strip comments, etc.

Parameters:
  • line – A string not starting w/ any white spaces and ending w/ line breaks. It may be empty. see also: load().
  • comment_markers – Comment markers, e.g. ‘#’ (hash)
>>> _pre_process_line('') is None
True
>>> s0 = "calendar.japanese.type: LocalGregorianCalendar"
>>> _pre_process_line("# " + s0) is None
True
>>> _pre_process_line("! " + s0) is None
True
>>> _pre_process_line(s0 + "# comment")
'calendar.japanese.type: LocalGregorianCalendar'
anyconfig.backend.properties.unescape(in_s)
Parameters:in_s – Input string
anyconfig.backend.properties._escape_char(in_c)

Escape some special characters in java .properties files.

Parameters:in_c – Input character
>>> "\:" == _escape_char(':')
True
>>> "\=" == _escape_char('=')
True
>>> _escape_char('a')
'a'
anyconfig.backend.properties.escape(in_s)
Parameters:in_s – Input string
anyconfig.backend.properties.load(stream, container=<type 'dict'>, comment_markers=('#', '!'))

Load and parse Java properties file given as a fiel or file-like object stream.

Parameters:
  • stream – A file or file like object of Java properties files
  • container – A dict or dict-like class (or factory method) to store properties
  • comment_markers – Comment markers, e.g. ‘#’ (hash)
Returns:

container object holding properties

>>> to_strm = anyconfig.compat.StringIO
>>> s0 = "calendar.japanese.type: LocalGregorianCalendar"
>>> load(to_strm(''))
{}
>>> load(to_strm("# " + s0))
{}
>>> load(to_strm("! " + s0))
{}
>>> load(to_strm("calendar.japanese.type:"))
{}
>>> load(to_strm(s0))
{'calendar.japanese.type': 'LocalGregorianCalendar'}
>>> load(to_strm(s0 + "# ..."))
{'calendar.japanese.type': 'LocalGregorianCalendar'}
>>> s1 = r"key=a\:b"
>>> load(to_strm(s1))
{'key': 'a:b'}
>>> s2 = '''application/postscript: \
...         x=Postscript File;y=.eps,.ps
... '''
>>> load(to_strm(s2))
{'application/postscript': 'x=Postscript File;y=.eps,.ps'}
class anyconfig.backend.properties.Parser

Bases: anyconfig.backend.base.FromStreamLoader, anyconfig.backend.base.ToStreamDumper

Parser for Java properties files.

_type = 'properties'
_extensions = ['properties']
load_from_stream(stream, **kwargs)

Load config from given file like object stream.

Parameters:
  • stream – A file or file like object of Java properties files
  • kwargs – optional keyword parameters (ignored)
Returns:

self.container object holding config parameters

dump_to_stream(cnf, stream, **kwargs)

Dump config cnf to a file or file-like object stream.

Parameters:
  • cnf – Java properties config data to dump :: self.container
  • stream – Java properties file or file like object
  • kwargs – backend-specific optional keyword parameters :: dict
__module__ = 'anyconfig.backend.properties'

Previous topic

anyconfig.backend.msgpack

Next topic

anyconfig.backend.toml

This Page