Skip to main content

quantsupport (Python bindings)

PyO3 bindings for the quantsupport Rust derivative pricing and risk analytics library.

Install (development)

pip install maturin
maturin develop -m bindings/python/Cargo.toml --release

Guided examples

Start with the examples guide for setup and a suggested reading order. The notebooks explain the library to readers who know the financial products, with typed Python contracts and local data-loading helpers. They are cataloged under the same scopes as the Rust examples: bootstrap, valuation, volatilitysurface, hullwhite, sensitivity, scripting, and cva.

Notebook Workflow
Curve bootstrapping Quote inputs, construction conventions, nodes, pillars, and forwards
First swap Market inputs, dates, context lifecycle, requests, and result units
Product valuations Swaps, straight bonds, caplets and caps; par rates, yields, duration and spreads
Curves and volatility Construction, inspection, and their impact on swap and option values
Simulations Calibration, path retrieval, distributions, seeds and sampling error
Portfolio risk Position aggregation, DV01/vega, cashflow reports, and full-revaluation checks
Stepped-coupon bond Callable terms, tree/Fourier engines, OAS and sensitivities
Scripted cashflows Dated payoffs and native/scripted representation checks
XVA Netting sets, client terms, exposure profiles and adjustment risk

Execute all notebooks with python bindings/python/examples/run_notebooks.py after installing the example dependencies and building the binding. The runner uses a fresh kernel per notebook and leaves the source notebooks unchanged.

Usage

Market data and configurations are typed objects created from dicts (from_dict) or JSON files (from_json), deserialized directly by the Rust library's serde implementations. Create PricingContext and enter with ctx: to bootstrap curves, volatility surfaces/cubes and simulations automatically and start the AD tape. Exiting releases constructed market data and rewinds the tape, including when the block raises an exception. Call initialize() explicitly only when using the context without a with block.

import quantsupport as qs

quotes = qs.QuoteStore.from_json("quotes.json")
curves = qs.CurveConfiguration.from_json("curve_specs.json")   # list
fx = qs.FxStore.from_dict([{"base": "CLP", "quote": "USD", "rate": 1 / 900}])
csa_policy = qs.SingleCurveCSADiscountPolicy(collateral_currency=qs.Currency.USD, collateral_index=qs.MarketIndex.SOFR)

ref = quotes.reference_date            # qs.Date
swap = qs.Swap(
    identifier="USD_IRS_5Y",
    start_date=ref,
    maturity_date=ref + "5Y",
    notional=10_000_000.0,
    fixed_rate=0.0378,
    currency=qs.Currency.USD,
    market_index=qs.MarketIndex.SOFR,
)
trade = qs.Trade(swap, ref, qs.Side.LongReceive)

ctx = qs.PricingContext(quotes=quotes, curves=curves, fx=fx, csa_policy=csa_policy)

with ctx:
    # explore the bootstrapped market data
    sofr = ctx.curve(qs.MarketIndex.SOFR)
    print(sofr.nodes())                 # DataFrame: date / discount_factor
    print(sofr.discount_factor(ref + "5Y"))
    print(sofr.forward_rate(ref + "1Y", ref + "2Y",
                            qs.Compounding.Simple, qs.Frequency.Annual))

    res = ctx.evaluate(trade, [qs.Request.Value, qs.Request.Cashflows, qs.Request.Sensitivities])
    print(res.price)            # NPV (float)
    print(res.sensitivities)    # pandas DataFrame: pillar / value
    print(res.cashflows)        # pandas DataFrame

Every enum argument also accepts its string name (currency="USD", side="pay", requests=["Value"], ...).

The currency-conversion walkthrough values a CLP swap in the USD base currency under a USD CSA, explains FX pair direction, and reconciles the native value from converted, discounted cashflows.

Instruments And Trades

Built-in products such as Swap, FixedRateBond, and FxOption are Instrument subclasses containing contract terms, not positions. Both ctx.evaluate() and NettingSet require explicit Trade objects:

long = qs.Trade(swap, ref, qs.Side.LongReceive)
short = qs.Trade(swap, ref, qs.Side.PayShort, notional=500_000)
assert long.instrument is short.instrument

The execution date is required and is never inferred from maturity or expiry. side defaults to LongReceive. An optional notional overrides the instrument's contractual amount for that position without mutating it. FX forwards, FX/equity options, CDS and caplets have no contractual notional field: their position notional belongs exclusively to Trade (default 1.0). Cross-currency positions use domestic_notional and foreign_notional overrides; futures positions use num_contracts (default 1.0). Position amounts must be finite and non-negative; direction belongs to side. Bond positions additionally own pricing_anchor, settlement_date, and spread_day_counter. Product constructors and product dictionaries no longer accept these position fields, side, trade_date, or num_contracts.

Select the quote level during setup with qs.PricingContext(quotes=quotes, curves=curves, quote_level=qs.Level.Bid). The setting accepts qs.Level.Mid, qs.Level.Bid, qs.Level.Ask, or their case-insensitive names, such as quote_level="ask". It defaults to mid and applies to market construction and model calibration. ctx.quote_level reports the selection. Every consumed quote must provide the requested level.

European swaptions, equity forwards, and calibration reports

EquityForward(identifier, market_index, delivery_date, strike, currency) is a native instrument. Its position size defaults to one in Trade. Pricing uses the evaluation-date spot fixing, the index's forward curve, an optional dividend curve (zero dividends when absent), and the context's CSA discount policy. Value, FairRate, and Sensitivities use the same Rust pricer as Excel.

forward = qs.EquityForward("SPX-FWD", "EQ:SPX", "2027-02-24", 5100.0, "USD")
position = qs.Trade(forward, "2026-02-24", notional=100.0)

EuropeanSwaption(identifier, expiry_date, maturity_date, strike, notional, currency, market_index, swaption_type="Payer") builds the underlying swap at expiry. SwaptionType.Payer and .Receiver are also accepted. Optional rate conventions, payment frequencies, and a calendar configure the underlying schedule. Product notional is the default position size; Trade.notional overrides it. Both products support from_dict and from_json.

Swaptions require this explicit PricerConfiguration in PricingContext(pricer_configurations=[configuration], ...):

configuration = qs.PricerConfiguration.from_dict({
    "instrument_type": "EuropeanSwaption",
    "pricer": "HullWhiteClosedForm",
    "models": [{"market_index": "SOFR", "model": {"HullWhite": {
        "alpha": 0.1, "parameter_source": {"Calibrated": {
            "source": {"Surface": {"market_index": "SOFR"}},
            "calibration_basket": {"strike": "Atm"}
        }}
    }}}],
})

This engine supports Value and curve and volatility Sensitivities. It uses the same Hull–White calibration and piecewise volatility schedule as callable bonds and simulations. Supply the source through volatility_surfaces or use "source": {"Cube": {"market_index": "SOFR"}} with volatility_cubes and a basket selecting one tenor per expiry. The source's curve and calibration quotes are requested automatically. {"Fixed": {"sigma": 0.01}} remains available when calibration is unnecessary.

After building a calibrated Hull–White simulation, ctx.simulation("SOFR").calibration_diagnostics() returns a DataFrame with identifier, expiry, t, big_t, market_vol, market_price, model_price, calibrated_sigma, forward_rate, effective_strike, and price_error (model minus market price). Fixed-parameter and other simulation models return None.

Calendar strings include UnitedKingdom(Settlement), Japan, and JointCalendar(JoinHolidays,UnitedKingdom(Settlement),Japan). JoinHolidays requires every market to be open; JoinBusinessDays requires at least one. SONIA and TONAR use the local bank calendars in Rust index conventions.

Wheels include the public API stubs and py.typed marker. Install quantsupport[typing] to include the pandas stubs and typing helpers. The bindings workflow builds and tests CPython 3.9–3.14 wheels on Linux, Windows, and both Mac architectures. Pushes to main publish the wheels and a source archive to PyPI through the release workflow, using the same version as the Rust crate. Wheels are also available as Actions artifacts and GitHub release assets. To build one locally, run maturin build --release inside bindings/python; no Rust compiler is needed when installing the resulting wheel.

In-memory product and market schemas

All built-in products support Product.from_dict(spec) and Product.from_json(path). Product dict keys are exactly the keyword constructor arguments, with the same defaults and validation. Dates accept ISO strings; enum arguments accept their names. No qs.Date or enum objects are required. The classmethods also preserve subclasses.

swap = qs.Swap.from_dict({
    "identifier": "USD-IRS", "start_date": "2026-02-24",
    "maturity_date": "2031-02-24", "notional": 1_000_000,
    "fixed_rate": 0.04, "currency": "USD", "market_index": "SOFR",
    "side": "LongReceive", "fixed_leg_frequency": "Semiannual",
})

quotes = qs.QuoteStore.from_dict(quote_data)
curves = qs.CurveConfiguration.from_dict_list(curve_data)
volatility_surfaces = qs.VolatilitySurfaceConfiguration.from_dict_list(volatility_data)
csa_policy = qs.SingleCurveCSADiscountPolicy.from_dict({"collateral_currency": "USD", "collateral_index": "SOFR"})
fx = qs.FxStore.from_dict([{"base": "EUR", "quote": "USD", "rate": 1.1}])

from_dict_list is available on CurveConfiguration, VolatilitySurfaceConfiguration, VolatilityCubeConfiguration, PricerConfiguration, and SimulationConfiguration. Like from_json, it accepts a list, one configuration dict, or a single-key object wrapping a list, such as {"curve_specs": [...]}. from_dict on those classes still returns one configuration. QuoteStore, FixingStore, FxStore, Scenario, and SingleCurveCSADiscountPolicy keep their existing from_dict methods.

Market configs use the native Rust serde schemas. For product market-index fields, rate indices are strings ("SOFR"); other variants use native tagged dicts such as {"Equity": "AAPL"}, {"Credit": "CORPORATE-A"}, {"FxPair": ["EUR", "USD"]}, and {"Collateral": ["EUR", "USD"]}. Strikes accept a float, "ATM", or a native tagged dict such as {"Absolute": 100.0}.

Bond pricing, Z-spread, and OAS

Straight fixed-rate bonds use BondPricer. Supply the required pricing_anchor when constructing qs.Trade(bond, ref, pricing_anchor=anchor). Use trade.with_pricing_anchor(anchor) to create a copy with another quote; PricingContext.evaluate(trade, requests) reads the quote from that trade.

FixedRateBond.discount_index is optional. Omit it to use the context's fixed-income discount policy, which maps the base currency to the base index. An explicit index takes precedence when prefer_instrument_index=True. Pass fixed_income_policy=qs.FixedIncomeDiscountPolicy({"USD": "SOFR"}, prefer_instrument_index=False) to select the policy curve explicitly. An unmapped currency produces an error rather than silently selecting a curve.

anchor = qs.BondPricingAnchor.clean_price(99.25)
result = ctx.evaluate(
    qs.Trade(bond, ref, pricing_anchor=anchor),
    [qs.Request.Value, qs.Request.ModifiedDuration,
     qs.Request.ZSpread, qs.Request.Sensitivities],
)
print(result.z_spread)
print(result.modified_duration)
print(result.sensitivities)  # curve rows plus <identifier>.ZSpread

Callable debt uses the separate SteppedCouponBond. Coupon definitions and outstanding-notional percentages are positional; the final entry in each list repeats for all later generated payment periods. Calls always use explicit dates and strikes:

callable_bond = qs.SteppedCouponBond(
    identifier="USD-STEPPED-CALL-2031", start_date=ref, maturity_date=ref + "6Y",
    notional=1_000_000, currency=qs.Currency.USD,
    coupons=[
        qs.Coupon.fixed(0.045),
        qs.Coupon.floating(qs.MarketIndex.SOFR, spread=0.006,
                           floor=0.0, cap=0.06),
    ],
    notional_percentages=[1.0, 0.90, 0.75],
    call_schedule=[
        qs.CallScheduleEntry(qs.Date(2028, 1, 1), 101.0),
        qs.CallScheduleEntry(qs.Date(2029, 1, 1), 100.0),
    ],
)

# The JSON entry is keyed by instrument_type="SteppedCouponBond" and selects
# TreeBased or BackwardFourierEvolution plus a typed HullWhite model.
pricers = qs.PricerConfiguration.from_json("pricers.json")

ctx = qs.PricingContext(quotes=quotes, curves=curves,
                       pricer_configurations=pricers,
                       csa_policy=csa_policy)

with ctx:
    result = ctx.evaluate(
        qs.Trade(callable_bond, ref, pricing_anchor=qs.BondPricingAnchor.dirty_price(101.10)),
        [qs.Request.Value, qs.Request.OAS, qs.Request.Sensitivities],
    )
    print(result.oas)
    print(result.sensitivities)  # curve rows plus <identifier>.OAS

The constructor generates coupon dates from payment_frequency. Both bond wrappers accept calendar, business_day_convention, date_generation_rule, end_of_month, and first_coupon_date. Stepped bonds additionally accept next_to_last_coupon_date and termination_date_convention (defaulting to the business-day convention). Calendar names or qs.Calendar objects and string or enum conventions are accepted. These fields survive dictionary round trips.

side, pricing_anchor, settlement_date, and spread_day_counter belong to the trade. The Rust instrument builder always builds the contractual cashflows in the receiving direction; valuation applies trade side once. Defaults for settlement and spread day count remain the context date and curve convention.

csa_policy configures collateral remuneration for curve construction and native derivative pricing. A foreign-currency leg resolves the corresponding collateral-adjusted curve. CsaTerms remains the netting/XVA input, including credit, recovery and funding terms; it is distinct from the context's CSA policy.

SteppedCouponBond has no contractual discount_index argument or dictionary field. Discounting is selected by the context's fixed-income policy. Its nested coupon and call entries may be plain native dicts or the existing wrappers:

bond_spec = {
    "identifier": "STEP", "start_date": "2026-02-24",
    "maturity_date": "2031-02-24", "notional": 1_000_000,
    "currency": "USD", "units": 100.0,
    "payment_frequency": "Semiannual", "coupon_day_counter": "Actual365",
    "coupons": [
        {"Fixed": {"rate": 0.045}},
        {"Floating": {"index": "SOFR", "spread": 0.006,
                      "floor": 0.0, "cap": 0.06}},
    ],
    "notional_percentages": [1.0, 0.90, 0.75],
    "call_schedule": [
        {"date": "2028-02-24", "strike": 101.0},
        {"start_date": "2029-02-24", "end_date": "2029-08-24", "strike": 100.0},
    ],
}
bond = qs.SteppedCouponBond.from_dict(bond_spec)
restored = qs.SteppedCouponBond.from_dict(bond.to_dict())

Coupon wraps existing native CashflowType<f64> coupon variants; there is no additional coupon-definition enum. Coupon.from_dict and Coupon.to_dict retain compact Fixed/Floating constructor shapes. Input also accepts FixedRateCoupon, FloatingRateCoupon, and OptionEmbeddedCoupon tags. Python enums remain supported in direct constructors and dictionaries, including nested configuration dicts. For example, use qs.Currency.USD, qs.MarketIndex.SOFR, qs.Frequency.Semiannual, and qs.Request.Value in Python-native code; strings remain suitable for data loaded from JSON files. Calls serialize with start_date; date remains an input alias. Omitting end_date creates a discrete call. Both window boundaries are inclusive, and reversed windows or invalid strikes are rejected. CallScheduleEntry(date, strike) remains supported, along with CallScheduleEntry.window(start_date, end_date, strike), keyword start_date/end_date construction, from_dict, to_dict, date, start_date, end_date, strike, and contains(date).

A call strike excludes contractual cashflows on the same date. Same-day coupon and amortization are paid, while the issuer call caps the remaining bond value. There is no exercise-type enum because the product supports issuer calls only. Yield to maturity and modified duration are intentionally not defined for SteppedCouponBond; use price, OAS, and sensitivities.

With no call entries, use an explicit zero Z-spread anchor on its trade.

In-process payoff scripting

ScriptedProduct.from_dict accepts an inline specification with events (a list of {"date": "YYYY-MM-DD", "code": "..."}) and currency. Optional fields are name (default "script", with identifier as an alias), discount_index, result_variable, and models. from_json(path) and to_dict() use the same schema. Native event field names event_date/script are also accepted as aliases for date/code.

script_spec = {
    "name": "SCRIPTED-NOTE",
    "currency": "USD",
    "result_variable": "note",
    "events": [{
        "date": "2026-02-24",
        "code": 'note = 0; note pays 100 on "2028-02-24";',
    }],
    "models": [{
        "market_index": "SOFR",
        "model": {"Lgm": {
            "lambda": 0.05,
            "parameter_source": {"Fixed": {"sigma": 0.0}},
        }},
    }],
}
product = qs.ScriptedProduct.from_dict(script_spec)
ctx = qs.PricingContext(quotes=quotes, curves=curves, csa_policy=csa_policy)

with ctx:
    values = ctx.evaluate_script(product, n_paths=1000, seed=42)
    inline_values = ctx.evaluate_script(script_spec, n_paths=1000, seed=42)
    print(values["note"])

evaluate_script requires an initialized context and returns a plain dict[str, float] of path-averaged numeric script variables. n_paths must be positive; using the same market, path count, and seed reproduces results. result_variable, when supplied, selects the native engine's sensitivity target and must name a numeric variable; the returned dict still includes all numeric variables. This API returns values, not sensitivity or cashflow tables. It invokes the native ScriptEngine and LgmMarketModel directly, without subprocesses or Cargo.

Omitting discount_index uses the context base index for the base currency; another script currency requires an explicit index. Models resolve per index from context pricer configurations, then simulation configurations, then script_spec["models"], with later assignments taking precedence. Models must be configured for the discount and any requested forward curves. There is no implicit zero-volatility fallback. This API currently assembles rate models only, not FX/equity factors or custom correlations.

Both native Lgm (lambda) and HullWhite (alpha) schemas are accepted; Hull-White uses its equivalent LGM representation. Fixed sigma is an absolute short-rate volatility, not a Black quote. For calibration, supply the context's volatility surfaces/cubes and replace the parameter source with, for example:

parameter_source = {"Calibrated": {
    "source": {"Surface": {"market_index": "SOFR"}},
    "calibration_basket": {"expiries": ["1Y", "2Y"], "strike": "Atm"},
}}

Native calibration resolves option prices from the context's market and fits the sigma schedule. Missing models, curves, calibration data, invalid event order/dates, and script parse/runtime failures raise Python exceptions.

See examples/valuation/stepped_coupon_bond.ipynb for tree/Fourier pricing and examples/scripting/scripted_cashflows.ipynb for the native-versus-scripted comparison.

Extending the library in Python

The Python module keeps the same separation as the Rust API: an instrument contains product terms, a trade represents a position, a pricer contains the valuation method, a market-data provider supplies the market state, and an evaluator dispatches by trade type. These are extension points, not only names for built-in Rust implementations.

The base classes are optional conveniences. Registration uses structural typing, so ordinary Python classes and dataclasses work too.

class ZeroCoupon(qs.Instrument):
    def __init__(self, identifier, maturity, amount, discount_index):
        super().__init__(identifier)
        self.maturity = maturity
        self.amount = amount
        self.discount_index = discount_index


class ZeroCouponTrade(qs.Trade):
    pass


class ZeroCouponPricer(qs.Pricer):
    def evaluate(self, trade, requests, context):
        instrument = trade.instrument
        discount = context.curve(instrument.discount_index)
        value = instrument.amount * discount.discount_factor(instrument.maturity)
        return qs.EvaluationResults(
            context.evaluation_date,
            instrument.identifier,
            price=value if qs.Request.Value in requests else None,
        )


note = ZeroCoupon("NOTE-1Y", ref + "1Y", 1_000_000, qs.MarketIndex.SOFR)
trade = ZeroCouponTrade(note, ref)

# Context registration participates in the normal ctx.evaluate workflow.
ctx.register_pricer(ZeroCouponTrade, ZeroCouponPricer())
with ctx:
    result = ctx.evaluate(trade, [qs.Request.Value])
    print(result.price)

Python registrations are resolved by exact trade type first and then by compatible base type. They take precedence over built-in dispatch, so a trade holding a native instrument can use a custom pricer without modifying the Rust binding. Use ctx.unregister_pricer(TradeType) to restore built-in dispatch. Native instruments and Trade are subclassable. An unregistered Trade subclass holding a native instrument keeps native pricing. Register the trade subclass, not the instrument class, to select a Python implementation.

For a heterogeneous collection or a custom market-data provider, use the standalone evaluator:

evaluator = qs.Evaluator()
evaluator.register(ZeroCouponTrade, ZeroCouponPricer())
result = evaluator.evaluate(trade, provider, [qs.Request.Value])

provider may be an initialized PricingContext, a subclass of MarketDataProvider, or any Python object offering the methods required by the registered pricer. PricingContext exposes quotes, fixings, fx, base_currency, base_index, curves, volatility objects, and simulations. Raw stores support QuoteStore.value, FixingStore.fixing, and FxStore.rate.

XVA

The engine configuration covers only the simulation setup (models, paths, seed, frequency). Collateral treatment and credit/funding conditions are per client: each NettingSet carries its own CsaTerms.

config = qs.XvaConfig.from_json("xva_config.json")

csa_a = qs.CsaTerms(collateral_index="SOFR", collateral_currency="USD",
                    credit_spread=0.010, recovery=0.40, funding_spread=0.005)
funding_curve = qs.TenorBasedZeroRateTermStructure(
    ref, ["0D", "1Y", "3Y"], [0.004, 0.005, 0.006],
    enable_extrapolation=True,
)
csa_b = qs.CsaTerms(collateral_index="SOFR", collateral_currency="USD",
                    credit_spread=0.015, recovery=0.40,
                    funding_spread_curve=funding_curve,
                    variation_margin=True, counterparty_threshold=1000.0,
                    own_threshold=1000.0, minimum_transfer_amount=500.0)

ctx = qs.PricingContext(quotes=quotes, curves=curves, fx=fx, csa_policy=csa_policy)

with ctx:
    result = ctx.run_xva(config, netting_sets=[
        qs.NettingSet("clientA", [qs.Trade(swap, ref)], csa_a),
        qs.NettingSet("clientB", [qs.Trade(xccy, ref)], csa_b),
    ])
    print(result.xva_values)      # DataFrame: netting_set / measure / value
    print(result.sensitivities)   # DataFrame: parameter / value
    for p in result.exposures:    # per-netting-set EPE/ENE/EE profiles
        print(p.netting_set)
        print(p.to_dataframe())   # DataFrame: date / epe / ene / ee

See examples/cva/xva.ipynb for a complete netting comparison and the examples guide for the full learning sequence.

ZeroRateTermStructure(ref, dates, rates) and TenorBasedZeroRateTermStructure(ref, tenors, rates) are reusable curve objects. Both expose zero_rate, discount_factor, and forward_rate, plus their time-based variants and a to_dict() export of the equivalent dated curve. The dated class also supports from_dict() and from_json(). Keyword options select day_counter, compounding, frequency, interpolator, and enable_extrapolation. Defaults are Actual365, Continuous, Annual, Linear, and disabled extrapolation.

CsaTerms.funding_spread_curve accepts either class (or a dated curve dictionary) and returns a ZeroRateTermStructure. Its rates are annualized spread quotes; FVA uses the curve's reference date, day counter, interpolation, and extrapolation settings. funding_index can reuse a bootstrapped funding curve, with the explicit spread curve as an optional additive overlay. There is no separate FundingSpreadCurve type or list-of-pairs constructor. Serialized spread curves now use the zero-curve schema (reference_date, dates, rates, rate_definition, interpolator, enable_extrapolation), replacing the old dates/spreads schema.

Focused validation

After rebuilding the wheel, run python -m unittest discover -s bindings/python/tests. The in-process Rust harness also tests the freshly compiled PyO3 module without relying on an installed wheel:

cargo check -p quantsupport-py
cargo test -p quantsupport-py python_dict_and_script_contracts -- --nocapture

On Windows, the selected interpreter's directory and runtime DLL directories must be on PATH for Rust test linking/loading. For Conda, this typically includes the environment root and Library/bin. Set PYO3_PYTHON to the selected interpreter when Cargo cannot discover it. Do not enable extension-module for Rust tests; wheel builds enable it separately.

API surface (v1)

Enums (typed classes; every argument also accepts the string name, and each enum has a case-insensitive parse):

  • Currency — with ISO metadata (code, name, symbol, precision, numeric_code)
  • MarketIndex — rate-index constants (MarketIndex.SOFR, ...) plus factories equity(name), fx_pair(base, quote), collateral(base, quote), other(name)
  • Side, Compounding, Frequency, DayCounter, TimeUnit, BusinessDayConvention, Request, VolatilityType, SmileType

Time:

  • Date(y, m, d) / Date.parse(s) — arithmetic with days, Period or period strings (date + "6M"), weekday(), end_of_month(), to_datetime()
  • Period(n, TimeUnit) / Period.parse("1Y6M") / Period.from_frequency(f)
  • Calendar(name) — is_business_day, adjust, advance, business_days_between, holiday_list, business_day_list
  • DayCounter.year_fraction(start, end) / day_count(start, end)

Market data & configuration (each with from_dict / from_json, plus to_dict on configurations):

  • QuoteStore — quotes with a reference date (reference_date, identifiers(), value(), levels(), to_dataframe())
  • FixingStore — historical index fixings (add(), fixing(), to_dataframe())
  • FxStore — FX spot rates (add(), rate())
  • CurveConfiguration, VolatilitySurfaceConfiguration, VolatilityCubeConfiguration, PricerConfiguration, SimulationConfiguration
  • SingleCurveCSADiscountPolicy(collateral_currency, collateral_index) — collateral policy for curve construction and derivative valuation
  • FixedIncomeDiscountPolicy(risk_free_indices, prefer_instrument_index=True) — per-currency bond discount curves

Pricing:

  • PricingContext(quotes, curves, fixings=None, fx=None, volatility_surfaces=None, volatility_cubes=None, pricer_configurations=None, simulations=None, csa_policy=None, fixed_income_policy=None, scenarios=None) — context manager

  • inputs: ctx.reference_date / ctx.evaluation_date, ctx.quotes, ctx.fixings, ctx.fx, ctx.base_currency, ctx.base_index, ctx.curve_configurations, ctx.volatility_surface_configurations, ctx.volatility_cube_configurations, ctx.simulation_configurations

  • constructed outputs (inside the with block, or after an explicit initialize() when using the context without one):

    • ctx.curves() / ctx.curve(index) → DiscountCurve (nodes(), pillars(), discount_factor(date), forward_rate(...))
    • ctx.volatility_surfaces() / ctx.volatility_surface(index) → VolatilitySurface
    • ctx.volatility_cubes() / ctx.volatility_cube(index) → VolatilityCube
    • ctx.simulations() / ctx.simulation(index) → Simulation (dates(), n_paths, dt, paths() and calibration_diagnostics() DataFrames)
  • Swap, CrossCurrencySwap, FixedRateBond, SteppedCouponBond — instrument specifications with typed getters; callable stepped bonds use Coupon and explicit CallScheduleEntry(date, strike) terms

  • ctx.evaluate(trade, requests) → EvaluationResults (price, yield_to_maturity, modified_duration, z_spread, oas, fair_rate, sensitivities DataFrame, cashflows DataFrame)

  • extensibility: Instrument, Trade, Pricer, MarketDataProvider, Evaluator; ctx.register_pricer(type, pricer), ctx.unregister_pricer(type), ctx.pricer_for(trade)

  • Python pricer output: construct EvaluationResults(evaluation_date, identifier, price=..., sensitivities=..., cashflows=...)

XVA:

  • XvaConfig — simulation/model setup only
  • CsaTerms — per-client collateral treatment + credit/funding parameters
  • NettingSet(name, trades, csa) — one client's trades under its CSA
  • ctx.run_xva(config, netting_sets) → XvaResult (xva_values DataFrame, sensitivities DataFrame, exposures)
  • QuantSupportError — exception raised on library errors

All JSON schemas match the Rust examples in examples/*/data/. New products and pricing methods can be implemented and registered entirely in Python; adding a native binding in bindings/python/src/trades.rs remains available when Rust-level performance or integration is required.

Bond API migration

Bond Trade constructors require pricing_anchor=qs.BondPricingAnchor.z_spread(0.0) for an explicitly unspread straight bond, or qs.BondPricingAnchor.OAS(0.0) for an issuer-call bond. Pass a price anchor to imply the appropriate spread. Remove position metadata from product constructors and wrap each product in qs.Trade(instrument, trade_date, side, pricing_anchor=...) before valuation. The bond_anchor evaluation argument has been removed. Replace the former discounting/DiscountingConfig context input with csa_policy and SingleCurveCSADiscountPolicy(collateral_currency=..., collateral_index=...).

Metadata

Release files for quantsupport 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quantsupport 0.1.9
File Size Uploaded
quantsupport-0.1.9.tar.gz 897.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for quantsupport 0.1.9
File
quantsupport-0.1.9-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
quantsupport-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
quantsupport-0.1.9-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
quantsupport-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
quantsupport-0.1.9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
quantsupport-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
quantsupport-0.1.9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
quantsupport-0.1.9-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
quantsupport-0.1.9-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
quantsupport-0.1.9-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
quantsupport-0.1.9-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
quantsupport-0.1.9-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
quantsupport-0.1.9-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
quantsupport-0.1.9-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details

Total release size: 57.7 MB

Release files / quantsupport-0.1.9.tar.gz

Download URL quantsupport-0.1.9.tar.gz
Size 897.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7503a5a4efab794672f80d520ad9b600ed1e38517ceec09046dc93973c4d6b37
BLAKE2b-256 checksum
How to use checksums
ceb1445463651199529801023781a376d31e798ef94c4258de164b699d41802f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp314-cp314-win_amd64.whl

Download URL quantsupport-0.1.9-cp314-cp314-win_amd64.whl
Size 2.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
dfd87677f80a66ed6489c0578ccb20a53f77ed9d8bcfc4289c9beacca43768c2
BLAKE2b-256 checksum
How to use checksums
2c73c7d1230fa4f523e40be1dad89982a9824ceb1132d4ca8cfb4e27dd2e08ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl
Size 2.5 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fa49655c7ba1e00ac7f9415daa2d8d087cf4a0e7008a5f0f2830aff282eeacd5
BLAKE2b-256 checksum
How to use checksums
8ed90203affb54cc7f63e43d722b017a2f9fc37131029aae25ae25c67f581ead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp314-cp314-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp314-cp314-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0812b00424f5fb77ab26065269cddb77d97cef2808a16ec8ecb28e5706e399c9
BLAKE2b-256 checksum
How to use checksums
0d265a04f7585db14483937a8947abedeb0a4a0a34d401b346a613a2779bda27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp314-cp314-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp314-cp314-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
de1246ae803334da844e2cab2abfa2b0653b1237638118987c327675f7809a73
BLAKE2b-256 checksum
How to use checksums
fac37b605fe32fa24358feaad90309a061225ce327624f7c500b86f7314f99ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp313-cp313-win_amd64.whl

Download URL quantsupport-0.1.9-cp313-cp313-win_amd64.whl
Size 2.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1f192bcd493ab164442a828efcc466c255322f188ccdb82dd46f2fd55860c311
BLAKE2b-256 checksum
How to use checksums
c9901f43b6987c25b4313d0736f1cb025f5c1768afebd4c27e3101c9359fd5b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.5 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95aafb09dfb2c59de3ec75d5f7fb97e8b4532d73d51ccc21f4d4f9840548e2ef
BLAKE2b-256 checksum
How to use checksums
9e7c9c71fd337033241f485d812cf0e4053d4057fb05358daaa688691cfacd27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp313-cp313-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp313-cp313-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
02d61f98dfab5077a05b147cfaffe53825fd95bfe9965c985ea5fab24a8cbee1
BLAKE2b-256 checksum
How to use checksums
d74a12ac9c99717a3578aff0e81a6d2517716aa937f48f6ee4886333edf1e35b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp313-cp313-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp313-cp313-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e3bc69cf75e828af50320bfbed7e282f42c547e38a8aa7fe09b4a8c50c5c184b
BLAKE2b-256 checksum
How to use checksums
f3a717911c05a33bf3c198cc86c0dc1bec39a525db35f50e6c613fdfc80d67bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp312-cp312-win_amd64.whl

Download URL quantsupport-0.1.9-cp312-cp312-win_amd64.whl
Size 2.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
d207e97c0b5e9855f8e205c1a88eeb77c58b4b999f289faf989f53f5767b30c6
BLAKE2b-256 checksum
How to use checksums
6b48d2397aff028b61c8c50db17b3ae51a3a51a1f7d5152e77079a2422d74e0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
419e40cc214ac8e6dcb26b2c89b358b93df99169dc02e1c06b9d472a1391009e
BLAKE2b-256 checksum
How to use checksums
b82e4eb53882b041d58987ff7edad14bfadaa3d5f1789b2897e9493dbc2407e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp312-cp312-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp312-cp312-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d7d527b5124c8aa01fdcdfe7ffe619b46330de4c21ca8bdaadb7c05aa4c8fcca
BLAKE2b-256 checksum
How to use checksums
4f47bac522de9ec24b0b029bc335f6583f918339a2659e3fa49675c8fbfc2282
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp312-cp312-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp312-cp312-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
be1d78c97efc758202f981006e200a13bac03770262b1086c6b537eca8ed0618
BLAKE2b-256 checksum
How to use checksums
4b0169fd724d73c0d0ca97a82e202528ee7f72622e6c9dd7bce578d005b8c3a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp311-cp311-win_amd64.whl

Download URL quantsupport-0.1.9-cp311-cp311-win_amd64.whl
Size 2.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2f9f317cdcbd04422224e6d38b790a3d16af6d5bd8a905c3b1bf9429f2c4f31d
BLAKE2b-256 checksum
How to use checksums
a39faa45d59313ba3331823cf35a2d0959373a7b0a4c5d09753203278c3ee917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp311-cp311-manylinux_2_28_x86_64.whl
Size 2.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f3dcaaad8c7e1ea07066e64d935a74bb3a9dc9a5bc50570638579691bf488fca
BLAKE2b-256 checksum
How to use checksums
b59c1fda086b594795207d74b8595e495dd421d5649c6e77dbe92f3786915214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp311-cp311-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp311-cp311-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
491855df92fcb5be65fb6b555b3f463b3f921d49f1a51b20bdd88a4ae2d204de
BLAKE2b-256 checksum
How to use checksums
a8b7aa1d431c662101872e436303966dc81caca1dbd276dd9567ad04c99371f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp311-cp311-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp311-cp311-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
850c299914a86f841a75bcbd78a16afbfaca208efc3df9083cfba8c08dc4a434
BLAKE2b-256 checksum
How to use checksums
a993468b4a1c13b3f9c07dbf5fddbf93a6ea86e14aa79550987002c8df77dddc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp310-cp310-win_amd64.whl

Download URL quantsupport-0.1.9-cp310-cp310-win_amd64.whl
Size 2.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2f0782befa01e9cf7744a7ae5cd86f80167002b096cccd75ec7de58a63cf6ce0
BLAKE2b-256 checksum
How to use checksums
30f5c5d97a681630c16cea4cfca8a8b6d780b5b9fce70ccff282fcfaa2a46420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp310-cp310-manylinux_2_28_x86_64.whl
Size 2.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2da22dc7b31906f25eebce0f66a59291c99d8b9006de667f2e71fee2e1b672c1
BLAKE2b-256 checksum
How to use checksums
7d205ed1043b14955e091759dce153910371c830cd3a89814b46905689aba765
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp310-cp310-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp310-cp310-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5fc5f76c97bcbf27f25b0959a16b3550344363e767d1cd3f756d7e8e6b9b92b3
BLAKE2b-256 checksum
How to use checksums
cbdfa5ae8471f1ddb798b623bd3c2d725059558c0cfa6de41afbe88e54650a2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp310-cp310-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp310-cp310-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
19d1b1d86b9d014a687051b9bcb2a7c8cf1d8266ff495893b27d49bd5c200d8e
BLAKE2b-256 checksum
How to use checksums
0fcd57ad73008dd4b3c8b44049ebcd5a279f60cd804b86266d440975ae2fbf24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp39-cp39-win_amd64.whl

Download URL quantsupport-0.1.9-cp39-cp39-win_amd64.whl
Size 2.3 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
4571dabc88b9957a2bd02d26fd2d2eb06080557a0f4b7ce18fc1248e4bbedbde
BLAKE2b-256 checksum
How to use checksums
5fdd4f1148ccf38d461d0d9dbc8f97b28d4b893ced683779e3efe93f54ab7cbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL quantsupport-0.1.9-cp39-cp39-manylinux_2_28_x86_64.whl
Size 2.6 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3c95401db53424febc306a70d5f9d931dd5e7ace7cdf97817248017908aa7343
BLAKE2b-256 checksum
How to use checksums
f04f2e3fcd74bd6fad69ebe08f866ca906351b74589e6b44dc38ddfc5286b5bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp39-cp39-macosx_11_0_arm64.whl

Download URL quantsupport-0.1.9-cp39-cp39-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ca7c224f4d0a05d83d10321840be0ffa7ebe1b3eb15da8835f51ca4f6fb4ba44
BLAKE2b-256 checksum
How to use checksums
b6468184a4a24ee20e8903c1cee166b2a0df62e4e78b4ec077d3205236397051
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / quantsupport-0.1.9-cp39-cp39-macosx_10_12_x86_64.whl

Download URL quantsupport-0.1.9-cp39-cp39-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
dd406cf7baa9e277d0e0311f59be495933f8e16d691770be0dbff733015f8a8f
BLAKE2b-256 checksum
How to use checksums
d4f51f3536cf4f345c66d78ed260b5506a28c86bc277d97dbe9ea48630ad6206
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.9 This release

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page