Skip to main content

Build arbitrary Python objects from YAML or TOML configuration files.

Project description

whereby an artificer uses runes and delicate metalwork to create items capable of amazing feats.

Sygaldry is a Python library for building arbitrary object graphs from YAML or TOML configuration files. It is designed for teams that run many similar scheduled jobs and want to write reusable components, then compose them through configuration rather than code.

Features

  • YAML and TOML configuration with deep-merge includes.

  • Interpolation${VAR} placeholders resolved from config paths, environment variables, or defaults.

  • Component instantiation_type mappings construct classes, _func mappings import callables.

  • References_ref wires components together by name or dotted attribute path.

  • Instance caching – identical specs share instances; named _instance tags give explicit control.

  • Safety – no eval, no arbitrary code; imports are by dotted path only.

Installation

pip install sygaldry

Quick start

Define your components in a YAML file:

# config.yaml
db:
  _type: "myapp.db.Database"
  host: "${DB_HOST:-localhost}"
  port: 5432

service:
  _type: "myapp.services.UserService"
  db: { _ref: "db" }

Then load and resolve:

from sygaldry import load

graph = load("config.yaml")
service = graph["service"]   # a fully wired UserService instance

Or use the Artificery class for more control:

from sygaldry import Artificery

factory = Artificery("config.yaml", transient=True)
graph = factory.resolve()

License

MIT

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

sygaldry-0.3.0.tar.gz (8.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sygaldry-0.3.0-py2.py3-none-any.whl (28.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sygaldry-0.3.0.tar.gz.

File metadata

  • Download URL: sygaldry-0.3.0.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sygaldry-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0e50a577eede1504183e1ef0d79cb7c1f2ceeae451fa546e650d3c135730fd38
MD5 86c2968120a64d0c64c25c907e52b861
BLAKE2b-256 e7e6ec0e97a5587969ab3861c93449e2a65c7eea80e2565cbb32e3718e0de928

See more details on using hashes here.

File details

Details for the file sygaldry-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: sygaldry-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sygaldry-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bf5038a46264cf802e668a8d1d23b192ef993a178d6e556410087602e8906669
MD5 dca3fd77ccefabeb1776e676a614f7b4
BLAKE2b-256 87a9f3500ae62fce75383b61f8cd99aec13e9b604563cd912271cfb3405e13aa

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