Skip to main content

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 .ssm files into Python dictionaries
  • Serialize dictionaries into .ssm formatted 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)

Source distribution for simple-structured-markup 0.1.2
File Size Uploaded
simple_structured_markup-0.1.2.tar.gz 15.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-structured-markup 0.1.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page