Simple Structured Markup (SSM)
simple_structured_markup is a lightweight Python library for reading and writing files in the Simple Structured Markup (SSM) format, a minimal data format similar to INI with support for grouping values. The library provides an easy-to-use API similar to Python’s built-in json module.
Features
- Parse
.ssmfiles into Python dictionaries - Serialize dictionaries into
.ssmformatted strings - Group values using
[group]headers - Supports integers and strings
- Comment lines with
#
Installation
Install the library directly from PyPI:
pip install simple_structured_markup
Usage
The library provides functions load, loads, dump, and dumps similar to Python’s json module.
1. Parsing SSM Strings
import simple_structured_markup as ssm
ssm_data = """
# General information
title = "My Application"
version = 1
# Database configuration
[database]
host = "localhost"
port = 5432
"""
data = ssm.loads(ssm_data)
print(data)
Output:
{
"title": "My Application",
"version": 1,
"database": {
"host": "localhost",
"port": 5432
}
}
2. Writing SSM Strings
data = {
"title": "My Application",
"version": 1,
"database": {
"host": "localhost",
"port": 5432
}
}
ssm_string = ssm.dumps(data)
print(ssm_string)
Output:
title = "My Application"
version = 1
[database]
host = "localhost"
port = 5432
3. Reading and Writing SSM Files
Writing to a File
data = {
"title": "My Application",
"version": 1,
"database": {
"host": "localhost",
"port": 5432
}
}
with open("config.ssm", "w") as file:
ssm.dump(data, file)
Reading from a File
with open("config.ssm", "r") as file:
config = ssm.load(file)
print(config)
Format Specification
- Comments start with # and are ignored by the parser.
- Group values by placing
[group]before key-value pairs. - Values can be integers or strings (strings must be enclosed in double quotes).
Example SSM Format:
# General information
title = "My Application"
version = 1
# Grouped values for database configuration
[database]
host = "localhost"
port = 5432
License
This project is licensed under the GPL-3.0 License.
Contributing
Feel free to open issues and submit pull requests on the GitHub repository.
Happy parsing! 🎉
Metadata
Release files for simple-structured-markup 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_structured_markup-0.1.2.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_structured_markup-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.4 kB
Release files / simple_structured_markup-0.1.2.tar.gz
| Download URL | simple_structured_markup-0.1.2.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57be8fcb7e45a060472038a8b0e09a5e2f7cdb1d9ab479783b79b4ca06b13080
|
|
BLAKE2b-256 checksum How to use checksums |
d903aa1d9bad2921993fd79c1472e1dedc946e854baff78385d4f1e808b894e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|
Release files / simple_structured_markup-0.1.2-py3-none-any.whl
| Download URL | simple_structured_markup-0.1.2-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d826c0ca6b7d8dc02612dd05d64f27ca244e94a279dcc85d3f58b0a9cc99e32
|
|
BLAKE2b-256 checksum How to use checksums |
52199027d1c35a9d97267b9d9190b31631131b226399298c9b9fea4a8807b39e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|