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 toolsfuggers_py.bonds: bond instruments, conventions, schedules, pricing helpers, optionsfuggers_py.analytics: yield, spread, risk, pricing, and YAS-style calculationsfuggers_py.portfolio: aggregate analytics, benchmarking, contribution, liquidity, stress, ETF workflowsfuggers_py.data: identifiers, market data, reference data, pricing specs, output recordsfuggers_py.io: file adapters, JSON codecs, SQLite-backed storage, storage and transport interfacesfuggers_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, 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]"
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 under examples/ as paired .py and .ipynb files. A good starting set is:
examples/public_api_surface_examples.ipynbexamples/data_provider_surface_examples.ipynbexamples/io_file_and_storage_examples.ipynbexamples/engine_reactive_examples.ipynbexamples/portfolio_etf_surface_examples.ipynb
Docs
docs/CORE_DOCS.mddocs/MATH_DOCS.mddocs/CURVES_DOCS.mddocs/BONDS_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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d3e271d4940f06446b543032eb04137fc09e61a4bddc33dbcff18b60e780102
|
|
| MD5 |
d71ebfd407d79334b25ac613cb51cae6
|
|
| BLAKE2b-256 |
8555de73e23464af4564a2512a59dc59e7a88d4e8328725aa8587531fcf4e971
|
Provenance
The following attestation bundles were made for fuggers_py-0.1.0b1.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.0b1.tar.gz -
Subject digest:
5d3e271d4940f06446b543032eb04137fc09e61a4bddc33dbcff18b60e780102 - Sigstore transparency entry: 1115810306
- Sigstore integration time:
-
Permalink:
stanislawkubik/fuggers-py@0544fc2b5b685d1ccd9fa4253137a623f5d6231c -
Branch / Tag:
refs/tags/v0.1.0b1 - Owner: https://github.com/stanislawkubik
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0544fc2b5b685d1ccd9fa4253137a623f5d6231c -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b811c63fe89a6a223895a887ff2e28b794f55823e565fa2b718901331aa10fc3
|
|
| MD5 |
3b911b8fa35c53db2e68fa998f5cb9a0
|
|
| BLAKE2b-256 |
cf4cc5a33aef29b52ad8b66105810880afa2861cdcd25be6e1d9a9f5a43d71fc
|
Provenance
The following attestation bundles were made for fuggers_py-0.1.0b1-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.0b1-py3-none-any.whl -
Subject digest:
b811c63fe89a6a223895a887ff2e28b794f55823e565fa2b718901331aa10fc3 - Sigstore transparency entry: 1115810357
- Sigstore integration time:
-
Permalink:
stanislawkubik/fuggers-py@0544fc2b5b685d1ccd9fa4253137a623f5d6231c -
Branch / Tag:
refs/tags/v0.1.0b1 - Owner: https://github.com/stanislawkubik
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0544fc2b5b685d1ccd9fa4253137a623f5d6231c -
Trigger Event:
push
-
Statement type: