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.4.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.4.0-py2.py3-none-any.whl (30.5 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: sygaldry-0.4.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.4.0.tar.gz
Algorithm Hash digest
SHA256 03b639da41a07cca961eeb6aa29a875894a46d6f4c0508923a848f222b9fb63c
MD5 806fe578d95e833eae66fb1466f95a0f
BLAKE2b-256 c8dac8481ef3ae4f366c249a0f371de54939eb46615c219f50534357d5a9eff9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sygaldry-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 30.5 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.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b3a160b9f9dab1f58f953915fdc7e748707801a3491612e9d3d7a006bcd6aa21
MD5 661548c8413bee0d539a954a86a7a436
BLAKE2b-256 8fd82913bb800453c361724e043cd6c19c242bb17d4b5e328ae33b5bd00ab42b

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