Data management for python made easy
Project description
Rheel Data Management
Strictly-typed, human-readable data management for Python.
Rheel Data Management (RDM) provides a clean .rdm file format and
Python API for structured, section-based data storage with enforced
types.
It is designed for developers who want more structure and type safety than JSON or TOML --- without the complexity of a database.
✨ Features
- ✅ Strict type enforcement
- ✅ Native Python type support
- ✅ Nested generics (
list[int],dict[int, str]) - ✅ Union types (
str | int) - ✅ Mixed generics (
list[str | int]) - ✅ Section-based structure
- ✅ Human-readable format
- ✅ Atomic file saves (corruption protection)
- ✅ Custom type registry
- ✅ Supports
datetime,date,time, andpathlib.Path
📦 Installation
pip install Rheel-Data-Management
📥 Import
import rheelDM
📄 Example .rdm File
[user123]
name : str = "CoCo"
score : int = 42
tags : list[str] = ["admin", "tester"]
prefs : dict[int,str] = {1: "dark", 2: "light"}
Clean. Typed. Readable.
🚀 Basic Usage
Create and Save
import rheelDM
data = rheelDM.Obj()
user = data.section("user123")
user.set("name", str, "CoCo")
user.set("score", int, 42)
user.set("tags", list[str], ["admin", "tester"])
user.set("prefs", dict[int, str], {1: "dark", 2: "light"})
data.save("botdata.rdm")
Load Data
loaded = rheelDM.Obj.load("botdata.rdm")
user = loaded.section("user123")
print(user.get("name")) # "CoCo"
print(user.get("score")) # 42
🧠 Supported Types
Native Python Types
strintfloatboollist[T]set[T]tuple[T]dict[K, V]- Nested generics (e.g.
list[dict[int, str]]) - Union types (
str | int) - Mixed generics (
list[str | int])
Date & Path Types
datetimedatetimePath
Example:
from datetime import datetime
from pathlib import Path
data.section("user").set("last_login", datetime, datetime.now())
data.section("user").set("config_path", Path, Path("config/settings.txt"))
🧩 Custom Type Registry
You can register your own types globally.
import rheelDM
class Color:
def __init__(self, hex_code: str):
self.hex = hex_code
rheelDM.TypeRegistry.register(
"Color",
Color,
lambda v: f'"{v.hex}"',
lambda v: Color(v.strip('"'))
)
Now you can use it like any native type:
data.section("settings").set("theme", Color, Color("#ff8800"))
🛡 Why RDM Instead of JSON?
Strict Typing
JSON does not enforce types.
RDM validates everything on write and load.
Python-Native Types
JSON cannot store: - datetime - Path - set - tuple - Union types - Nested generics
RDM can.
Cleaner Structure
Section-based format keeps large files organized and readable.
Human Editable
Minimal syntax:
key : type = value
🎯 Ideal Use Cases
- Game save systems
- Discord bot data
- Typed configuration systems
- CLI tool configs
- Small to medium persistent data storage
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rheel_data_management-1.2.tar.gz.
File metadata
- Download URL: rheel_data_management-1.2.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
416529680d4f5672faae2c371e8a7415ecf721aaf8ac03d62d6a9eac4bd97ee6
|
|
| MD5 |
6bab19f8177eca2618410ad7ec8ac503
|
|
| BLAKE2b-256 |
ca3e28a17da5f4469ee2b3bd129eb2ecabacceafcda8dc2f82a2f6aa547ce67c
|
Provenance
The following attestation bundles were made for rheel_data_management-1.2.tar.gz:
Publisher:
python-publish.yml on CoCo-R38/Rheel_Data_Management
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rheel_data_management-1.2.tar.gz -
Subject digest:
416529680d4f5672faae2c371e8a7415ecf721aaf8ac03d62d6a9eac4bd97ee6 - Sigstore transparency entry: 976435478
- Sigstore integration time:
-
Permalink:
CoCo-R38/Rheel_Data_Management@ae04d3c0ac796b4a8a789e9648f7e2715a1c3c3b -
Branch / Tag:
refs/tags/1.2 - Owner: https://github.com/CoCo-R38
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ae04d3c0ac796b4a8a789e9648f7e2715a1c3c3b -
Trigger Event:
release
-
Statement type:
File details
Details for the file rheel_data_management-1.2-py3-none-any.whl.
File metadata
- Download URL: rheel_data_management-1.2-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7d46e395045b12939b550a83fc1dc5ec5d42853111e9514002ac280166d570a
|
|
| MD5 |
87e1add29bc4fffdfbf6e9fa0dca1f4e
|
|
| BLAKE2b-256 |
452f2fabf4d2e344fd4d022bf638143a2f66bdae8a66262059e6d57d4f6d8c4d
|
Provenance
The following attestation bundles were made for rheel_data_management-1.2-py3-none-any.whl:
Publisher:
python-publish.yml on CoCo-R38/Rheel_Data_Management
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rheel_data_management-1.2-py3-none-any.whl -
Subject digest:
e7d46e395045b12939b550a83fc1dc5ec5d42853111e9514002ac280166d570a - Sigstore transparency entry: 976435480
- Sigstore integration time:
-
Permalink:
CoCo-R38/Rheel_Data_Management@ae04d3c0ac796b4a8a789e9648f7e2715a1c3c3b -
Branch / Tag:
refs/tags/1.2 - Owner: https://github.com/CoCo-R38
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ae04d3c0ac796b4a8a789e9648f7e2715a1c3c3b -
Trigger Event:
release
-
Statement type: