fuggers_py.market

Market state, quotes, fixings, indices, and curve abstractions.

.. py:module:: fuggers_py.market

Public market-data, state, fixing, and curve entrypoints.

This package collects the user-facing market layer: quote records, snapshot providers, fixing stores, index conventions, and curve wrappers/builders used by pricing and analytics code.

.. py:class:: AnalyticsCurves(discount_curve=None, forward_curve=None, government_curve=None, benchmark_curve=None, credit_curve=None, repo_curve=None, collateral_curve=None, fx_forward_curve=None, multicurve_environment=None, projection_curves=, inflation_curve=None, inflation_curves=, vol_surface=None) :module: fuggers_py.market :canonical: fuggers_py.market.state.AnalyticsCurves

Container for the curve roles used by analytics and pricing flows.

The container keeps role-based access explicit so callers can distinguish discount, projection, repo, inflation, and volatility inputs without relying on positional arguments or implicit fallbacks.

.. py:method:: AnalyticsCurves.get(role) :module: fuggers_py.market

  Resolve a curve by canonical role name or projection alias.

  The lookup accepts the named top-level roles defined on the container
  plus ``projection:<name>`` and ``inflation:<name>`` aliases for keyed
  sub-curves.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`object\` \| \:py\:obj\:\`None\``

.. py:class:: QuoteSide(value) :module: fuggers_py.market :canonical: fuggers_py.market.state.QuoteSide

Canonical quote-side selector used across market records.

.. py:class:: MarketDataSnapshot(as_of=None, quotes=(), repo_quotes=(), swap_quotes=(), basis_swap_quotes=(), bond_future_quotes=(), fx_forward_quotes=(), cds_quotes=(), haircut_quotes=(), curves=(), fixings=(), etf_holdings=(), volatility_surfaces=(), fx_rates=(), inflation_fixings=(), etf_quotes=()) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.MarketDataSnapshot

Immutable bundle of market-data records for snapshot-backed workflows.

The snapshot holds normalized quote, curve, fixing, volatility, FX, and ETF records and can materialize in-memory source adapters from them.

.. py:method:: MarketDataSnapshot.quote_source() :module: fuggers_py.market

  Build an in-memory quote source from the stored quotes.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryQuoteSource\``

.. py:method:: MarketDataSnapshot.curve_source() :module: fuggers_py.market

  Build an in-memory curve source from the stored curves.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryCurveSource\``

.. py:method:: MarketDataSnapshot.fixing_source() :module: fuggers_py.market

  Build an in-memory fixing source from the stored fixings.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryFixingSource\``

.. py:method:: MarketDataSnapshot.volatility_source() :module: fuggers_py.market

  Build an in-memory volatility source from the stored surfaces.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryVolatilitySource\``

.. py:method:: MarketDataSnapshot.fx_rate_source() :module: fuggers_py.market

  Build an in-memory FX-rate source from the stored rates.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryFxRateSource\``

.. py:method:: MarketDataSnapshot.inflation_fixing_source() :module: fuggers_py.market

  Build an in-memory inflation-fixing source from the stored fixings.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryInflationFixingSource\``

.. py:method:: MarketDataSnapshot.etf_quote_source() :module: fuggers_py.market

  Build an in-memory ETF quote source from the stored quotes.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryEtfQuoteSource\``

.. py:method:: MarketDataSnapshot.provider() :module: fuggers_py.market

  Build a composite provider over the snapshot's in-memory sources.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.MarketDataProvider\``

.. py:class:: InMemoryEtfQuoteSource(etf_quotes=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryEtfQuoteSource

Deterministic in-memory ETF quote source.

.. py:method:: InMemoryEtfQuoteSource.add_etf_quote(quote) :module: fuggers_py.market

  Store an ETF quote keyed by normalized ETF identifier.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryEtfQuoteSource\``

.. py:method:: InMemoryEtfQuoteSource.get_etf_quote(etf_id) :module: fuggers_py.market

  Return the requested ETF quote when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.EtfQuote\` \| \:py\:obj\:\`None\``

.. py:class:: PricingDataProvider(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.PricingDataProvider

Combined market-data provider used by pricing workflows.

.. py:class:: CdsQuote(instrument_id, par_spread=None, upfront=None, recovery_rate=None, tenor=None, reference_entity=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CdsQuote

CDS quote record with raw decimal spread and recovery fields.

The record supports both running-spread and upfront CDS quotes and carries the recovery assumption needed by credit-curve bootstrappers.

.. py:method:: CdsQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific CDS spread when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: CdsQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`CdsQuote\' \| None`

.. py:class:: HaircutQuote(instrument_id, haircut=None, collateral_type=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.HaircutQuote

Haircut quote record with haircut expressed as a raw decimal.

.. py:method:: HaircutQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific haircut when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: HaircutQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`HaircutQuote\' \| None`

.. py:attribute:: FixingSource :module: fuggers_py.market

alias of :py:class:~fuggers_py.market.market_data.IndexFixingSource

.. py:class:: FxRateSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.FxRateSource

Protocol for retrieving FX rates by currency pair and quote side.

.. py:class:: InMemoryQuoteSource(quotes=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryQuoteSource

Deterministic in-memory quote source.

Quote lookup is normalized by instrument identifier and quote side. When a specific side is missing, mid-side lookups may fall back to the stored mid quote; other missing source lookups return None.

.. py:method:: InMemoryQuoteSource.add_quote(quote) :module: fuggers_py.market

  Store a quote and any side views that can be derived from it.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryQuoteSource\``

.. py:method:: InMemoryQuoteSource.get_quote(instrument_id, side=QuoteSide.MID) :module: fuggers_py.market

  Return a normalized quote for the requested instrument and side.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.RawQuote\` \| \:py\:obj\:\`None\``

.. py:class:: CurveInputSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurveInputSource

Protocol for retrieving curve calibration inputs.

.. py:class:: VolPoint(expiry, volatility, strike=None, tenor=None, delta=None, quote_type=VolQuoteType.LOGNORMAL) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.VolPoint

Volatility surface point with canonical expiry and optional strike.

.. py:class:: CurveInputs(curve_id, reference_date, points, interpolation=’linear’, curve_kind=’zero’, instruments=(), source=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurveInputs

Ordered curve calibration bundle for a curve identifier.

from_points sorts pillars by tenor, and __post_init__ also orders attached calibration instruments to keep in-memory snapshots deterministic. The bundle is the read-only market-data shape consumed by curve builders.

.. py:method:: CurveInputs.from_points(curve_id, reference_date, points, *, interpolation=’linear’, curve_kind=’zero’, instruments=None, source=None) :module: fuggers_py.market :classmethod:

  Build a normalized curve-input bundle from a point sequence.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveInputs\``

.. py:method:: CurveInputs.tenors() :module: fuggers_py.market

  Return curve tenors in sorted order.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`tuple\`\\ \\\[\:py\:class\:\`\~decimal.Decimal\`\, \:py\:data\:\`...\<Ellipsis\>\`\]`

.. py:method:: CurveInputs.curve_data() :module: fuggers_py.market

  Convert the inputs bundle into a read-only curve snapshot record.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveData\``

.. py:class:: IndexFixing(index_name, fixing_date, value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.IndexFixing

Index fixing record with normalized index name.

.. py:class:: VolSurfaceType(value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.VolSurfaceType

Supported volatility-surface categories.

.. py:class:: CurveInstrumentType(value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurveInstrumentType

Instrument types accepted by curve construction inputs.

.. py:class:: IndexFixingSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.IndexFixingSource

Protocol for retrieving index fixings.

.. py:class:: InflationFixing(index_name, observation_month, value, publication_date=None, interpolation=InflationInterpolation.MONTHLY, source=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InflationFixing

Inflation fixing record keyed by observation month.

.. py:class:: MarketDataProvider(quote_source=None, curve_input_source=None, index_fixing_source=None, volatility_source=None, fx_rate_source=None, inflation_fixing_source=None, etf_quote_source=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.MarketDataProvider

Composite market-data provider built from optional source objects.

Source members may be omitted. Missing sources return None instead of raising, which keeps snapshot and file-backed providers predictable.

.. py:method:: MarketDataProvider.from_snapshot(snapshot) :module: fuggers_py.market :classmethod:

  Build a provider over the in-memory sources derived from a snapshot.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.MarketDataProvider\``

.. py:method:: MarketDataProvider.get_quote(instrument_id, side=QuoteSide.MID) :module: fuggers_py.market

  Return a quote from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.RawQuote\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_curve_inputs(curve_id) :module: fuggers_py.market

  Return curve inputs from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveInputs\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_fixing(index_name, fixing_date) :module: fuggers_py.market

  Return a fixing from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.IndexFixing\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_volatility_surface(surface_id) :module: fuggers_py.market

  Return a volatility surface from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.VolatilitySurface\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_fx_rate(currency_pair, side=QuoteSide.MID) :module: fuggers_py.market

  Return an FX rate from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.FxRate\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_inflation_fixing(index_name, observation_month) :module: fuggers_py.market

  Return an inflation fixing from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InflationFixing\` \| \:py\:obj\:\`None\``

.. py:method:: MarketDataProvider.get_etf_quote(etf_id) :module: fuggers_py.market

  Return an ETF quote from the configured source, if any.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.EtfQuote\` \| \:py\:obj\:\`None\``

.. py:class:: CurvePoint(tenor, value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurvePoint

Single curve point with tenor and value expressed as decimals.

.. py:class:: FxForwardQuote(currency_pair, forward_rate=None, points=None, spot_rate=None, side=QuoteSide.MID, as_of=None, timestamp=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.FxForwardQuote

FX forward quote record.

points stores additive forward points relative to spot; forward_rate is populated from spot plus points when the direct rate is absent. The currency pair remains explicit so the quote can be used in both spot-point and outright-forward workflows.

.. py:method:: FxForwardQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific forward rate when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: FxForwardQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`FxForwardQuote\' \| None`

.. py:class:: EtfQuoteSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.EtfQuoteSource

Protocol for retrieving ETF quotes.

.. py:class:: RawQuote(instrument_id, value, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, source_type=None, bid=None, ask=None, mid=None, last=None, bid_size=None, ask_size=None, last_size=None, yield_to_maturity=None, yield_to_worst=None, venue=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.RawQuote

Generic quote record with normalized identifiers and raw decimals.

value stores the side-specific quote. Bid/ask/mid views can be derived from the stored fields, and missing side fields are populated from the active side when possible. The economic meaning comes from the instrument identifier and source metadata rather than from this container.

.. py:method:: RawQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the best available quote for the requested side.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: RawQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`RawQuote\' \| None`

.. py:class:: InMemoryFixingSource(fixings=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryFixingSource

Deterministic in-memory index fixing source.

.. py:method:: InMemoryFixingSource.add_fixing(fixing) :module: fuggers_py.market

  Store a fixing keyed by index name and fixing date.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryFixingSource\``

.. py:method:: InMemoryFixingSource.get_fixing(index_name, fixing_date) :module: fuggers_py.market

  Return a fixing for the requested index and date.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.IndexFixing\` \| \:py\:obj\:\`None\``

.. py:method:: InMemoryFixingSource.get_rate(index_name, fixing_date) :module: fuggers_py.market

  Return only the fixing value for the requested index and date.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: InMemoryFixingSource.to_fixing_store() :module: fuggers_py.market

  Export the in-memory fixings to a bond-layer fixing store.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.indices.fixing\_store.IndexFixingStore\``

.. py:class:: QuoteSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.QuoteSource

Protocol for quote retrieval by instrument and quote side.

.. py:class:: EtfHolding(instrument_id, quantity=None, weight=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.EtfHolding

ETF holding record with either quantity or weight populated.

.. py:class:: FxRate(currency_pair, rate, side=QuoteSide.MID, as_of=None, timestamp=None, source=None, source_type=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.FxRate

FX rate record with bid/ask/mid views and a raw decimal rate.

.. py:method:: FxRate.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific FX rate when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: FxRate.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`FxRate\' \| None`

.. py:class:: SourceType(value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.SourceType

Origin classification for a quote or surface.

.. py:class:: InMemoryCurveSource(curves=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryCurveSource

Deterministic in-memory curve source.

The source accepts either curve-input bundles or curve snapshot records and stores them in a normalized, deterministic order.

.. py:method:: InMemoryCurveSource.add_curve_inputs(curve_inputs) :module: fuggers_py.market

  Store normalized curve inputs, accepting either snapshot shape.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryCurveSource\``

.. py:method:: InMemoryCurveSource.get_curve_inputs(curve_id) :module: fuggers_py.market

  Return curve inputs for the requested curve identifier.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveInputs\` \| \:py\:obj\:\`None\``

.. py:method:: InMemoryCurveSource.get_reference_curve(curve_id) :module: fuggers_py.market

  Alias for :meth:`get_curve_inputs`.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveInputs\` \| \:py\:obj\:\`None\``

.. py:class:: CurveInput(instrument_type, tenor=None, rate=None, price=None, weight=None, instrument_id=None, label=None, quote=None, source=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurveInput

Calibration input for a single curve instrument.

The record carries the raw tenor, rate, price, or weight used by curve calibration routines together with optional instrument metadata and the original quote object.

.. py:class:: VolQuoteType(value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.VolQuoteType

Quoted volatility convention for a surface point.

.. py:class:: BondFutureQuote(instrument_id, price=None, delivery_month=None, conversion_factor=None, implied_repo_rate=None, cheapest_to_deliver=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.BondFutureQuote

Bond future quote record.

price is the futures price level, not a rate or spread. The record stores the quoted level alongside optional conversion-factor and repo analytics.

.. py:method:: BondFutureQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific futures price when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: BondFutureQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`BondFutureQuote\' \| None`

.. py:class:: InMemoryFxRateSource(fx_rates=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryFxRateSource

Deterministic in-memory FX-rate source.

.. py:method:: InMemoryFxRateSource.add_fx_rate(fx_rate) :module: fuggers_py.market

  Store an FX rate and any derivable side views.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryFxRateSource\``

.. py:method:: InMemoryFxRateSource.get_fx_rate(currency_pair, side=QuoteSide.MID) :module: fuggers_py.market

  Return a normalized FX rate for the requested pair and side.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.FxRate\` \| \:py\:obj\:\`None\``

.. py:class:: InMemoryInflationFixingSource(fixings=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryInflationFixingSource

Deterministic in-memory inflation fixing source.

.. py:method:: InMemoryInflationFixingSource.add_inflation_fixing(fixing) :module: fuggers_py.market

  Store an inflation fixing keyed by index and observation month.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryInflationFixingSource\``

.. py:method:: InMemoryInflationFixingSource.get_inflation_fixing(index_name, observation_month) :module: fuggers_py.market

  Return the requested inflation fixing when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InflationFixing\` \| \:py\:obj\:\`None\``

.. py:class:: BondQuote(instrument_id, clean_price=None, dirty_price=None, accrued_interest=None, yield_to_maturity=None, yield_to_worst=None, side=QuoteSide.MID, as_of=None, timestamp=None, source=None, currency=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.BondQuote

Bond quote record with clean/dirty price and yield fields.

Prices use the library’s percent-of-par convention; yield fields remain raw decimals.

.. py:class:: CurveData(curve_id, reference_date, points, interpolation=’linear’, curve_kind=’zero’, instruments=(), source=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.CurveData

Read-only curve snapshot record.

This is the stored curve representation; :class:CurveInputs is the calibration-oriented shape that can be turned back into CurveData.

.. py:method:: CurveData.as_curve_inputs() :module: fuggers_py.market

  Return the equivalent calibration input bundle.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.CurveInputs\``

.. py:class:: SwapQuote(instrument_id, rate=None, tenor=None, floating_index=None, fixed_frequency=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.SwapQuote

Swap quote record with rate expressed as a raw decimal.

.. py:method:: SwapQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific swap rate when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: SwapQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`SwapQuote\' \| None`

.. py:attribute:: CurveInputSet :module: fuggers_py.market

alias of :py:class:~fuggers_py.market.market_data.CurveInputs

.. py:class:: BasisSwapQuote(instrument_id, basis=None, tenor=None, pay_index=None, receive_index=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.BasisSwapQuote

Basis swap quote record with basis expressed as a raw decimal.

.. py:method:: BasisSwapQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific basis when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: BasisSwapQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`BasisSwapQuote\' \| None`

.. py:class:: ReferenceCurveSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.ReferenceCurveSource

Protocol for retrieving reference curves.

.. py:class:: InMemoryVolatilitySource(surfaces=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InMemoryVolatilitySource

Deterministic in-memory volatility surface source.

.. py:method:: InMemoryVolatilitySource.add_surface(surface) :module: fuggers_py.market

  Store a volatility surface keyed by its normalized identifier.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.InMemoryVolatilitySource\``

.. py:method:: InMemoryVolatilitySource.get_volatility_surface(surface_id) :module: fuggers_py.market

  Return the requested volatility surface when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~fuggers\_py.market.market\_data.VolatilitySurface\` \| \:py\:obj\:\`None\``

.. py:attribute:: CurveSource :module: fuggers_py.market

alias of :py:class:~fuggers_py.market.market_data.CurveInputSource

.. py:class:: EtfQuote(etf_id, market_price=None, nav=None, i_nav=None, shares_outstanding=None, as_of=None, timestamp=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.EtfQuote

ETF quote record with market price, NAV, and indicative NAV fields.

.. py:class:: InflationInterpolation(value) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InflationInterpolation

Interpolation convention for inflation fixings.

.. py:class:: InflationFixingSource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.InflationFixingSource

Protocol for retrieving inflation fixings by index and month.

.. py:class:: RepoQuote(instrument_id, rate=None, haircut=None, start_date=None, end_date=None, term=None, collateral_type=None, side=QuoteSide.MID, as_of=None, timestamp=None, currency=None, source=None, bid=None, ask=None, mid=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.RepoQuote

Repo quote record with rate and haircut expressed as raw decimals.

The record carries both quote-side views and the haircut used in funding and repo-curve workflows.

.. py:method:: RepoQuote.quoted_value(side=QuoteSide.MID) :module: fuggers_py.market

  Return the side-specific repo rate when present.


  :rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`\~decimal.Decimal\` \| \:py\:obj\:\`None\``

.. py:method:: RepoQuote.for_side(side) :module: fuggers_py.market

  Return a copy normalized to a different quote side.


  :rtype: :sphinx_autodoc_typehints_type:`RepoQuote\' \| None`

.. py:class:: VolatilitySource(*args, **kwargs) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.VolatilitySource

Protocol for retrieving volatility surfaces.

.. py:class:: VolatilitySurface(surface_id, surface_type, as_of=None, timestamp=None, points=(), source=None, source_type=None) :module: fuggers_py.market :canonical: fuggers_py.market.market_data.VolatilitySurface

Volatility surface snapshot keyed by normalized surface identifier.