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 factoriesequity(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,Periodor 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_listDayCounter.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,SimulationConfigurationSingleCurveCSADiscountPolicy(collateral_currency, collateral_index)— collateral policy for curve construction and derivative valuationFixedIncomeDiscountPolicy(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
withblock, or after an explicitinitialize()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)→VolatilitySurfacectx.volatility_cubes()/ctx.volatility_cube(index)→VolatilityCubectx.simulations()/ctx.simulation(index)→Simulation(dates(),n_paths,dt,paths()andcalibration_diagnostics()DataFrames)
-
Swap,CrossCurrencySwap,FixedRateBond,SteppedCouponBond— instrument specifications with typed getters; callable stepped bonds useCouponand explicitCallScheduleEntry(date, strike)terms -
ctx.evaluate(trade, requests)→EvaluationResults(price,yield_to_maturity,modified_duration,z_spread,oas,fair_rate,sensitivitiesDataFrame,cashflowsDataFrame) -
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 onlyCsaTerms— per-client collateral treatment + credit/funding parametersNettingSet(name, trades, csa)— one client's trades under its CSActx.run_xva(config, netting_sets)→XvaResult(xva_valuesDataFrame,sensitivitiesDataFrame,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)
| File | Size | Uploaded | |
|---|---|---|---|
| quantsupport-0.1.9.tar.gz | 897.1 kB | Details |
Built distributions (wheels)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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