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.5.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.5.0-py2.py3-none-any.whl (31.0 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: sygaldry-0.5.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.5.0.tar.gz
Algorithm Hash digest
SHA256 a256f091d98a0311b824e4bccd8c9028fb46a3344e9329ea71cee2268a3ea0f2
MD5 5d7f9da165b8fd3fd35ec2bf3998d5fc
BLAKE2b-256 74ef580cdd287ec101fcdb7f325b45aa0838426c6f82dd11a396509d9172bd44

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sygaldry-0.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 31.0 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.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 647c9a0441614f0899eff3c879633907cdd94fc910cfab990250231d9bbd8fed
MD5 600f8a382f001d518f64a3333bab0a67
BLAKE2b-256 519813445216c353c89d9090713574f51ca18d91326b57ca96d43cd6c866684b

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