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, interfacesfuggers_py.math: root finding, interpolation, extrapolation, optimization, linear algebrafuggers_py.curves: discount and credit curves, builders, calibration, bumping, multicurve tools, fitted bond-curve research, and optional advanced shadow-rate / jump-diffusion overlaysfuggers_py.bonds: bond instruments, conventions, schedules, pricing helpers, optionsfuggers_py.rates: tradable IRS/OIS/FRA/same-currency-basis/cross-currency-basis/asset-swap products, rates options, government bond futures analytics including stochastic delivery-option models, pricers, risk helpers, and shared rates/futures recordsfuggers_py.funding: repo instruments, repo curves, funding analytics, and repo-specific routing helpersfuggers_py.credit: CDS instruments, pricers, bootstrap helpers, bond/CDS basis analytics, proxy risk-free helpers, and shared credit recordsfuggers_py.analytics: yield, spread, risk, pricing, YAS-style calculations, option Greek and RV helpers, reference-rate decomposition and balance-sheet overlay helpers, deterministic local/global RV analytics, and signal-to-trade workflow hooks for fitted-bond RVfuggers_py.portfolio: aggregate analytics, benchmarking, contribution, liquidity, stress, ETF workflowsfuggers_py.data: identifiers, market data, reference data, pricing specs, output records, cross-domain shared records, and optional local-RV bond metadatafuggers_py.io: file adapters, JSON codecs, SQLite-backed storage, storage and transport interfacesfuggers_py.engine: bond, funding, and rates pricing routers, reactive engine, schedulers, and 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, andfuggers_py.iofor common entry points. - Import specialized exception subclasses from plural
errorsmodules such asfuggers_py.analytics.errorsandfuggers_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]"
pip install "fuggers-py[examples]"
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
- Contributor guide: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security reporting: SECURITY.md
Examples
Examples live in a workflow-based catalog under examples/ and are authored as paired Jupytext py:percent sources plus synced .ipynb notebooks.
- Index:
examples/README.md - Notebook sources:
examples/NN_topic/*.py - Synced notebooks:
examples/NN_topic/*.ipynb - Shared helpers and fixtures:
examples/_shared/,examples/_fixtures/
Docs
docs/CORE_DOCS.mddocs/MATH_DOCS.mddocs/CURVES_DOCS.mddocs/BONDS_DOCS.mddocs/RATES_DOCS.mddocs/FUNDING_DOCS.mddocs/CREDIT_DOCS.mddocs/ANALYTICS_DOCS.mddocs/PORTFOLIO_DOCS.mddocs/DATA_DOCS.mddocs/IO_DOCS.mddocs/ENGINE_DOCS.mddocs/ARCHITECTURE.mddocs/validation_strategy.md
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuggers_py-0.1.0b2.tar.gz.
File metadata
- Download URL: fuggers_py-0.1.0b2.tar.gz
- Upload date:
- Size: 537.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6437e064953c938d91cc2cb681c2b2b243ae09ec2938db839e1d89f5316c0526
|
|
| MD5 |
bb0c7560b6372417f2155165f4ea88d8
|
|
| BLAKE2b-256 |
c05f3194d8dc8f6ed7154ffd092873a942f220bac080aee236c89b9961589ed5
|
Provenance
The following attestation bundles were made for fuggers_py-0.1.0b2.tar.gz:
Publisher:
release.yml on stanislawkubik/fuggers-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fuggers_py-0.1.0b2.tar.gz -
Subject digest:
6437e064953c938d91cc2cb681c2b2b243ae09ec2938db839e1d89f5316c0526 - Sigstore transparency entry: 1125692567
- Sigstore integration time:
-
Permalink:
stanislawkubik/fuggers-py@0b1125adf8a2fa735cc5e204c567c0b0c9559522 -
Branch / Tag:
refs/tags/v0.1.0b2 - Owner: https://github.com/stanislawkubik
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0b1125adf8a2fa735cc5e204c567c0b0c9559522 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fuggers_py-0.1.0b2-py3-none-any.whl.
File metadata
- Download URL: fuggers_py-0.1.0b2-py3-none-any.whl
- Upload date:
- Size: 430.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9ab5784e98516aa74efd7253fa914ec92c59d2357a400ecbb07a6795da1b558
|
|
| MD5 |
3afc9cb5a09510697f4a77ffcc651315
|
|
| BLAKE2b-256 |
fed4e5c715d804fa78bd0d0c934f3acfc12802805998ccc925451b3b07667178
|
Provenance
The following attestation bundles were made for fuggers_py-0.1.0b2-py3-none-any.whl:
Publisher:
release.yml on stanislawkubik/fuggers-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fuggers_py-0.1.0b2-py3-none-any.whl -
Subject digest:
e9ab5784e98516aa74efd7253fa914ec92c59d2357a400ecbb07a6795da1b558 - Sigstore transparency entry: 1125692628
- Sigstore integration time:
-
Permalink:
stanislawkubik/fuggers-py@0b1125adf8a2fa735cc5e204c567c0b0c9559522 -
Branch / Tag:
refs/tags/v0.1.0b2 - Owner: https://github.com/stanislawkubik
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0b1125adf8a2fa735cc5e204c567c0b0c9559522 -
Trigger Event:
push
-
Statement type: