Skip to main content

Axis specification modules (entities, formulas, validators)

Project description

axis-synome

A Python framework for defining and validating financial specifications, with a focus on DeFi primitives and risk calculations. Includes:

  • ASC Specifications — Actively Stabilizing Capital entities (assets, tokens, networks, protocols) and formulas (collateral ratios, incentives, resting/latent ASC)
  • Spec Validator — Flake8 plugin for enforcing Python subset constraints on spec files
  • Metadata & Utilities — Support for spec documentation and validated dataclasses
  • SpecRuntime — Pluggable runtime abstraction for opaque operations (linear interpolation, ...) that specs can call without depending on a specific implementation library

Installation

Install from PyPI:

pip install axis-synome

To enable the built-in ReferenceSpecRuntime (numpy-backed), install with the runtime extra:

pip install axis-synome[runtime]

Or install from a private registry:

pip install axis-synome --index-url https://npm.pkg.github.com/archon-research

Usage

ASC Entities

from axis_synome.spec.asc.entities import primes, tokens, networks, protocol_sets

ASC Formulas

from axis_synome.spec.asc.formulas import asc, asc_collateral_ratio, asc_incentive

Opaque Operations in Specs

from axis_synome.spec_support.runtime import math

values = math.linear_interp([1.5], [1.0, 2.0], [10.0, 20.0])  # -> [15.0]

The active runtime is selected once at import time. Resolution order:

  1. AXIS_SYNOME_SPEC_RUNTIME=module.path:ClassName env var
  2. A registered axis_synome.spec_runtimes entry point (declared by a consumer package's pyproject.toml)
  3. The bundled ReferenceSpecRuntime (requires axis-synome[runtime])

If none is available, importing axis_synome.spec_support.runtime.math raises ImportError — the runtime is required at import time, not on first call.

Spec Validation

from axis_synome.spec_validator import validate_file

validate_file("my_spec.py")

Or use as a flake8 plugin:

flake8 --select=AXS your_spec.py

Examples

Runnable examples that show how to navigate the entity graph (assets, tokens, networks, protocols of a prime) live under examples/. Run any of them with:

uv run python examples/02_assets_and_tokens_of_a_prime.py

Highlights:

  • 01_prime_basics.py — basic facts about each PrimeAgent.
  • 02_assets_and_tokens_of_a_prime.py — list assets, tokens, underlying tokens, and group by network/protocol.
  • 03_inverse_lookups.pywhich primes hold token X?, which primes are on network Y?, which prime owns this address?
  • 04_atlas_provenance.py — trace each asset back to its Atlas document.
  • 05_feeding_a_formula.py — bridge external records into Positions and call asc(...).

About

axis-synome is a specification framework for defining financial and risk calculations in DeFi, with emphasis on formalized, auditable spec files.

For more information on writing specifications, see WRITING_SPECS.md.

Requirements

  • Python >= 3.11
  • pydantic >= 2.0.0

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

axis_synome-0.1.0.dev67.tar.gz (213.7 kB view details)

Uploaded Source

Built Distribution

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

axis_synome-0.1.0.dev67-py3-none-any.whl (140.7 kB view details)

Uploaded Python 3

File details

Details for the file axis_synome-0.1.0.dev67.tar.gz.

File metadata

  • Download URL: axis_synome-0.1.0.dev67.tar.gz
  • Upload date:
  • Size: 213.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for axis_synome-0.1.0.dev67.tar.gz
Algorithm Hash digest
SHA256 b08c12b96206bc14792b5d221bb1040068c1886cd1cf640ce670bccb5a141333
MD5 0464b04387296e0319d91cb4adefd8ae
BLAKE2b-256 a0f30f04e5b62971a8842f0b5717ede71b47ac5cda0912d6215ada2a60a7be64

See more details on using hashes here.

Provenance

The following attestation bundles were made for axis_synome-0.1.0.dev67.tar.gz:

Publisher: publish-axis.yml on archon-research/next-gen-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file axis_synome-0.1.0.dev67-py3-none-any.whl.

File metadata

File hashes

Hashes for axis_synome-0.1.0.dev67-py3-none-any.whl
Algorithm Hash digest
SHA256 0c9ed01da5278e011160633c1c3a01be9dd6af0b722cd5f77b175a6f3b8e2bf3
MD5 38efcb18d3637d50a50229ae0c804d00
BLAKE2b-256 25ffda3fb8dbc0543fe7e7e3a01ee8fb7a3c1852422a92bbfc54d99e761c8a2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for axis_synome-0.1.0.dev67-py3-none-any.whl:

Publisher: publish-axis.yml on archon-research/next-gen-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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