Skip to main content

Fixed-income analytics, market-data traits, and research-oriented engine workflows.

Project description

fuggers-py

fuggers-py is a Python library for fixed-income analytics. It is organized as a native Python package with explicit submodules for domain models, analytics, data, I/O, and engine workflows.

Package layout

  • fuggers_py.core: dates, prices, yields, spreads, calendars, day counts, base errors, interfaces
  • fuggers_py.math: root finding, interpolation, extrapolation, optimization, linear algebra
  • fuggers_py.curves: discount and credit curves, builders, calibration, bumping, multicurve tools
  • fuggers_py.bonds: bond instruments, conventions, schedules, pricing helpers, options
  • fuggers_py.analytics: yield, spread, risk, pricing, and YAS-style calculations
  • fuggers_py.portfolio: aggregate analytics, benchmarking, contribution, liquidity, stress, ETF workflows
  • fuggers_py.data: identifiers, market data, reference data, pricing specs, output records
  • fuggers_py.io: file adapters, JSON codecs, SQLite-backed storage, storage and transport interfaces
  • fuggers_py.engine: pricing router, reactive engine, schedulers, engine configuration

Canonical usage is explicit submodule imports. The package no longer exposes prelude, traits, or ext namespaces.

Public API policy

  • Use package roots such as fuggers_py.analytics, fuggers_py.bonds, and fuggers_py.io for common entry points.
  • Import specialized exception subclasses from plural errors modules such as fuggers_py.analytics.errors and fuggers_py.data.errors.
  • Deprecated compatibility aliases may remain temporarily, but they are not part of the stable long-term surface.

Installation

pip install fuggers-py
pip install "fuggers-py[dev]"
pip install "fuggers-py[engine]"

Quickstart

from decimal import Decimal

from fuggers_py.analytics import yield_to_maturity
from fuggers_py.bonds import FixedBondBuilder
from fuggers_py.core import Currency, Date, Frequency, Price

settlement = Date.from_ymd(2026, 1, 15)
bond = (
    FixedBondBuilder.new()
    .with_issue_date(Date.from_ymd(2024, 1, 15))
    .with_maturity_date(Date.from_ymd(2031, 1, 15))
    .with_coupon_rate(Decimal("0.0450"))
    .with_frequency(Frequency.SEMI_ANNUAL)
    .with_currency(Currency.USD)
    .build()
)

clean_price = Price.new(Decimal("101.25"), Currency.USD)
ytm = yield_to_maturity(bond, clean_price, settlement)
print(ytm.as_percentage())

Engine and data workflows

from fuggers_py.core import Date
from fuggers_py.data import MarketDataProvider, ReferenceDataProvider
from fuggers_py.engine import PricingEngineBuilder

engine = (
    PricingEngineBuilder.new()
    .with_market_data_provider(MarketDataProvider())
    .with_reference_data_provider(ReferenceDataProvider())
    .with_settlement_date(Date.from_ymd(2026, 3, 13))
    .build()
)

assert engine.reactive_engine is not None

Testing

python -m pip install -e ".[dev,engine]"
pytest -q

The test suite includes deterministic validation fixtures under tests/validation/ and a pinned external-reference corpus under tests/fixtures/golden/validation_corpus.json.

Community

Examples

Examples live under examples/ as paired .py and .ipynb files. A good starting set is:

  • examples/public_api_surface_examples.ipynb
  • examples/data_provider_surface_examples.ipynb
  • examples/io_file_and_storage_examples.ipynb
  • examples/engine_reactive_examples.ipynb
  • examples/portfolio_etf_surface_examples.ipynb

Docs

  • docs/CORE_DOCS.md
  • docs/MATH_DOCS.md
  • docs/CURVES_DOCS.md
  • docs/BONDS_DOCS.md
  • docs/ANALYTICS_DOCS.md
  • docs/PORTFOLIO_DOCS.md
  • docs/DATA_DOCS.md
  • docs/IO_DOCS.md
  • docs/ENGINE_DOCS.md
  • docs/ARCHITECTURE.md
  • docs/validation_strategy.md

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

fuggers_py-0.1.0b1.tar.gz (382.9 kB view details)

Uploaded Source

Built Distribution

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

fuggers_py-0.1.0b1-py3-none-any.whl (310.6 kB view details)

Uploaded Python 3

File details

Details for the file fuggers_py-0.1.0b1.tar.gz.

File metadata

  • Download URL: fuggers_py-0.1.0b1.tar.gz
  • Upload date:
  • Size: 382.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fuggers_py-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 5d3e271d4940f06446b543032eb04137fc09e61a4bddc33dbcff18b60e780102
MD5 d71ebfd407d79334b25ac613cb51cae6
BLAKE2b-256 8555de73e23464af4564a2512a59dc59e7a88d4e8328725aa8587531fcf4e971

See more details on using hashes here.

Provenance

The following attestation bundles were made for fuggers_py-0.1.0b1.tar.gz:

Publisher: release.yml on stanislawkubik/fuggers-py

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

File details

Details for the file fuggers_py-0.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: fuggers_py-0.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 310.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fuggers_py-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 b811c63fe89a6a223895a887ff2e28b794f55823e565fa2b718901331aa10fc3
MD5 3b911b8fa35c53db2e68fa998f5cb9a0
BLAKE2b-256 cf4cc5a33aef29b52ad8b66105810880afa2861cdcd25be6e1d9a9f5a43d71fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for fuggers_py-0.1.0b1-py3-none-any.whl:

Publisher: release.yml on stanislawkubik/fuggers-py

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