Extremely customizable serialization
Project description
serieux
(The README is a work in progress)
Serieux is a very extensible composable serialization/configuration library for Python. Based on ovld's extensive multiple dispatch and code generation, Serieux has many features and makes it possible to define many more with little interference with the rest of the system.
Features
Configuration
Serieux has many features that pertain directly to human-writable configuration:
- Merge multiple sources: seamlessly merge information from multiple files, formats, dictionaries
- Include files: (optional) include configuration files from configuration files to better separate concerns
- Variable interpolation: (optional) interpolate and environment variables and data from elsewhere in the configuration
- Encrypt fields: fields marked as
Secret[T]can be set directly in the configuration and encrypted using the commandserieux patch <file> - Dotted notation: (optional) allow keys of the form
x.y.zinstead of nesting data
All of the aforementioned features should work with each other (although there may still be some bugs, the more of them you combine). For instance, you can merge and encrypt fields through file inclusions, you can determine which file to include through a variable interpolation, and so on.
Types
- Tagged types: tagged types use the
$classproperty to determine the deserialization typeTaggedUnion[T1, T2, ...]: Define auto-named tagged unions of multiple types (type information goes in$class)TaggedSubclass[T]: Point to any subclass of TTaggedSubclass[Any]: Point to any constructor at all
Referenced[T]: Deserializesome_module:some_symbolinto the referenced symbolLazy[T]: Proxy data of type T so that it is only loaded when accessedComment[DT, CT]: Allow data of type DT to be commented by data with type CT
Project details
Release history Release notifications | RSS feed
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 serieux-0.3.13.tar.gz.
File metadata
- Download URL: serieux-0.3.13.tar.gz
- Upload date:
- Size: 183.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a5b54ac27bb627e1ddd1439b845095fcd1287ca337fbac3932f7cd5e7dc5c71
|
|
| MD5 |
33a54ee695eff3b0b18a3a508c1699cd
|
|
| BLAKE2b-256 |
c4c39e32f8261dc638404959d8ce52e694942d1d89a8cf3655af1091f303840c
|
Provenance
The following attestation bundles were made for serieux-0.3.13.tar.gz:
Publisher:
publish.yml on breuleux/serieux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serieux-0.3.13.tar.gz -
Subject digest:
8a5b54ac27bb627e1ddd1439b845095fcd1287ca337fbac3932f7cd5e7dc5c71 - Sigstore transparency entry: 1092026753
- Sigstore integration time:
-
Permalink:
breuleux/serieux@044a855ea4e7a4385801affad60ff48a41bfed3e -
Branch / Tag:
refs/tags/v0.3.13 - Owner: https://github.com/breuleux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@044a855ea4e7a4385801affad60ff48a41bfed3e -
Trigger Event:
push
-
Statement type:
File details
Details for the file serieux-0.3.13-py3-none-any.whl.
File metadata
- Download URL: serieux-0.3.13-py3-none-any.whl
- Upload date:
- Size: 56.5 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 |
3cffff20714a5f07baba73bb8efc530e60273a7d2fa66a9bfa1e2f48b336071d
|
|
| MD5 |
492afd55c5f500c322efb25ebe8c6ee5
|
|
| BLAKE2b-256 |
21307803a65ed696ba8a4e7febf71b533c57c88695a61f1ec1903d59ab9aa549
|
Provenance
The following attestation bundles were made for serieux-0.3.13-py3-none-any.whl:
Publisher:
publish.yml on breuleux/serieux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serieux-0.3.13-py3-none-any.whl -
Subject digest:
3cffff20714a5f07baba73bb8efc530e60273a7d2fa66a9bfa1e2f48b336071d - Sigstore transparency entry: 1092026756
- Sigstore integration time:
-
Permalink:
breuleux/serieux@044a855ea4e7a4385801affad60ff48a41bfed3e -
Branch / Tag:
refs/tags/v0.3.13 - Owner: https://github.com/breuleux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@044a855ea4e7a4385801affad60ff48a41bfed3e -
Trigger Event:
push
-
Statement type: