Skip to main content
Help us improve Python packaging – donate today!

Parser for structured property config file format

Project Description

Configuration file parser for a somewhat structures properties file
format. (The syntax borrows a lot from [1])

The parser is designed to be as small and simple as possible.

The syntax of the config files should resemble standard properties
(prop = value) with the additional functionality for structuring the
data. A "structprop" file is an UTF-8 file.

Comments start with '#' and continue until the end of the line.

Line feeds, spaces and tabs are all treated as white space. There are
three special characters; '=', '{' and '}'. '=' is used to assign a
value to a property. '{' and '}' are used to encapsulate structured
data.

Arrays are made up out of simple values enclosed inside a {}-pair.
For example (array with values 1, 2 and "abc").

key = { 1 2 abc }

Since linefeed is like any other whitespace character, the value can
be broken up onto several lines:

key = {
1
2
abc
}

The data can be structued into objects (think of it as a hash-map) by
adding a {}-pair after the key. The content of the object is key-value
pairs or other objects.

name {
key = value
what = foo
}

Keys and values are regular strings that can contain any characters
except the ones mentioned earlier (linefeed, space, tab, #, {, }, =)
provided that the string is not double-quoted.

key = "a value with a space in it"

The python module contains two functions: loads and dumps. "loads"
parses a string into a python dictionary. "dumps" writes a structprop
representation of a python dictionary as a string.

"loads" will try to parse values as regular JSON values (the string
"1" will become an integer with value 1). If it fails, it will leave
the value as a string.

Example:

# This is a simple example config file
database {
hostname = localhost
username = dbuser
password = secret
port = 12361
database = TheDatabase
}

tables = { Table1 Table2 }


[1] https://github.com/matjam/StructuredProperties

Release history Release notifications

History Node

0.0.10

History Node

0.0.9

This version
History Node

0.0.8

History Node

0.0.7

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
structprop-0.0.8.tar.gz (4.3 kB) Copy SHA256 hash SHA256 Source None Aug 19, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page