Skip to main content

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

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 = {

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.


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

tables = { Table1 Table2 }


Project details

Release history Release notifications

History Node


This version
History Node


History Node


History Node


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.9.tar.gz (5.2 kB) Copy SHA256 hash SHA256 Source None Aug 21, 2014

Supported by

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