Releases: py-numeraire/numeraire
Releases · py-numeraire/numeraire
Release list
numeraire 0.2.2
What's Changed
- docs: rebuild docs site + README, cut over to py-numeraire.org by @BrightBlu in #32
- docs: link core docs to the graphics/dataset doc subdomains by @BrightBlu in #33
- docs: repoint doc URLs to numeraire.py-numeraire.org by @BrightBlu in #34
- release: 0.2.2 (docs/metadata refresh) by @BrightBlu in #35
Full Changelog: v0.2.1...v0.2.2
numeraire 0.2.1
Ecosystem release. The plotting and data companion packages are now on PyPI, and this release adds convenience extras to pull them in — plus the post-0.2.0 API work (all backward-compatible; old names remain as deprecated aliases for one release).
Added
- Ecosystem extras —
pip install "numeraire[graphics]"(pulls numeraire-graphics),"numeraire[data]"(pulls numeraire-dataset), and"numeraire[all]". Plainpip install numerairestays the minimal spine. backtest(...)— a discoverable dispatching entry point over the typed driversbacktest_weights/_forecast/_panel/_pricing/_pricing_in_sample.- Risk-adjusted evaluators (Treynor, Information Ratio, M², Sortino),
ICEvaluator,ExposureEvaluator, andfama_macbeth(two-pass, Shanken + Newey-West).
Changed
- Renamed for a clearer register (old names remain as deprecated aliases emitting
DeprecationWarning):walk_forward*→backtest_*,adjust_tests→adjust_pvalues,clark_west→clark_west_test,make_sorts→sort_portfolios,OOSR2Evaluator→OutOfSampleR2Evaluator.
Fixed
- Weights/forecast backtests align model output to the view's asset order by label before scoring (was positional), preventing silent mis-scoring; clear errors on a missing/misused splitter.
numeraire 0.2.0
First tagged release. The spine is capability-complete: to_weights, to_forecast, and to_pricing are all crystallized protocols with walk-forward drivers, native evaluators, and a conformance suite.
Highlights
- Pricing capability:
SupportsPricing.expected_returns,walk_forward_pricing/pricing_in_sample, cross-sectional R² and average-|α| evaluators, andnumeraire.comparison.compare— score competing pricing models (factor models, SDFs, risk-premium estimators) on one common set of test assets. Every result row carries an explicitprotocollabel (in_sample/walk_forward), so explanatory numbers are never confusable with out-of-sample ones. - Conformance suite (
numeraire.testing.check_estimator): capabilities, output shapes, determinism, a no-look-ahead property test, and an engine round-trip — the self-certification any extension runs before its numbers are trusted. - Reference registry (
numeraire.reference.ReferenceResult): pinned published results with tolerance bands and data-access tiers (public/credentialed/restricted) — CI stays green on public data while the same case runs verbatim wherever licensed data is present. - Bundled baselines (
numeraire.baselines): equal weight (1/N), minimum variance, mean-variance, historical mean — registered through the same entry-point mechanism as any external method. - Weight-stream simulator:
simulate_weights+RebalanceSchedulewith explicit drift, turnover, and cost conventions. - Inference toolkit (
core.stats): GRS, Clark-West, paired Sharpe (Jobson-Korkie–Memmel), HAC alpha regression, Bonferroni/Holm/BHY adjustments, certainty-equivalent / return-loss / performance-fee. - Cross-sectional data layer:
CrossSectionViewwith zero-copy point-in-time windows, ragged-panel walk-forward engine, parallel fold execution, refit-cadence control, and a validation-split helper. - Interop: polars/arrow ingestion at the view boundary (narwhals-optional, zero new hard dependencies) and a skfolio adapter (
[skfolio]extra) that wraps portfolio optimizers asto_weightsestimators.
Python ≥ 3.11, pandas ≥ 2.2. Version is tag-driven (hatch-vcs).