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

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

structprop-0.0.8.tar.gz (4.3 kB view details)

Uploaded Source

File details

Details for the file structprop-0.0.8.tar.gz.

File metadata

  • Download URL: structprop-0.0.8.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for structprop-0.0.8.tar.gz
Algorithm Hash digest
SHA256 4825a7ea3158eabf9d42c0189fce851350b551d3a22c759f6643db54402dfdbc
MD5 70e2afbe2fc40872a14cb6048d4f3808
BLAKE2b-256 8eb0fca3917ed052188963fd74115e93efe428794d7b0dbf657b1e15a0be99f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page