Releases: Jebel-Quant/jquantstats
v0.9.2
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.9.2 - 2026-05-24
Maintenance
- Chore(deps)(deps): bump github/codeql-action from 4.35.4 to 4.35.5 in the github-actions group (#772)
- Chore(deps)(deps): bump the python-dependencies group with 4 updates (#773)
- Sync rhiza template to v0.10.9 (#774)
- Bump rhiza to v0.14.1 with github-project profile and marimo template (#775)
Other Changes
- Bump version 0.9.1 → 0.9.2
PyPI Package
v0.9.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.9.1 - 2026-05-17
Documentation
- Fix README — remove duplicate lines, correct version and parameter name
Other Changes
- Remove deprecated stats aliases (
ghpr,r2,win_loss_ratio) from API surface (#762)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.9.0 → 0.9.1
PyPI Package
v0.9.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.9.0 - 2026-05-17
Documentation
- Clarify hhi_positive / hhi_negative as intentionally public optional metrics (#730)
- Close edge-case metric coverage gaps vs quantstats (9 → 10) (#766)
Maintenance
- Hide back-references on all facade classes (#709)
- Add
_positive/_negativefilter helpers and eliminate inline filter duplication in_basic.py(#725) - Extract _is_finite/_fmt to _reports/_formatting.py (#727)
- Document and normalise null-return convention in stats mixins (#724)
- Rename
_PerformanceStatsMixinto_RiskStatsMixinfor clearer domain boundaries (#732) - Centralize
DataLikeprotocol at package root and remove subpackage redefinitions (#736) - Cancel redundant runs with concurrency group
- Extract inline Data setup into sub-fixtures in
test_stats.py(#747) - Document
_ReportingStatsMixin.rar()cross-mixin dependency via isolation test (#748)
New Features
- Add winsorise and exponential_cov to PortfolioUtils (#726)
- Add DataPlots.compare and figsize parity for log_returns/rolling_beta (#750)
- Add Monte Carlo fan chart and simulation distribution plots to
DataPlots(#749)
Other Changes
- Refactor
test_stats.pyto reuse integer-indexed Data setup via sub-fixture (#711)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Initial plan
- Merge branch 'copilot/address-issue-1a-1b-2a-2b-2c' into main
- Refactor
rolling_sortinoto align with rolling stats implementation pattern (#723) - Update rhiza_ci.yml
- Document cross-mixin method dependencies in reporting and risk stats mixins (#752)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Refactor stats decorators to support explicit data attribute contracts (#735)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Add Monte Carlo stats suite to close QuantStats parity gap (#751)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Refactor stats mixins to enforce Data null invariants and remove redundant null guards (#739)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Refine benchmark-aware null handling in
information_ratio(#754) - Deprecate
ghpr,r2, andwin_loss_ratioaliases (preserve compatibility) (#756)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Refactor
_reportsStatsLiketo the actual Report-facing surface (#755)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
- Document legitimate empty-after-filter guards in stats mixins (#761)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Consolidate residual duplication in reports, stats, and plot helpers (#760)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Add snapshot tests for all DataPlots methods; update plot coverage docs to 10/10 (#765)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Add end-to-end benchmarks and close map_elements / Python-loop performance gaps (#768)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Add migration tests for new jquantstats functionality (#770)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.8.4 → 0.9.0
Performance
- Align
rolling_sortinoto explicit native Polars expressions and add 10Y benchmark coverage (#740)
PyPI Package
v0.8.4
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.4 - 2026-05-16
Bug Fixes
- Add src path to mkdocstrings so jquantstats is importable
Maintenance
- Merge save() into to_html(path=None)
Other Changes
- Bump version 0.8.3 → 0.8.4
PyPI Package
v0.8.3
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.3 - 2026-05-15
New Features
- Accept pl.Expr in all three factory methods (#708)
Other Changes
- Bump version 0.8.2 → 0.8.3
PyPI Package
v0.8.2
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.2 - 2026-05-14
Maintenance
- Chore(deps)(deps): bump the python-dependencies group with 4 updates (#705)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Chore(deps)(deps): bump github/codeql-action from 4.35.3 to 4.35.4 in the github-actions group (#704)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
New Features
- Add DataUtils.exponential_cov (#706)
Other Changes
- Bump version 0.8.1 → 0.8.2
PyPI Package
v0.8.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.1 - 2026-05-07
Maintenance
- Lock file maintenance (#687)
- Lock file maintenance (#689)
- Chore(deps-dev)(deps-dev): bump ipython from 9.10.1 to 9.13.0 in the python-dependencies group (#690)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Lock file maintenance (#691)
- Lock file maintenance (#694)
- Lock file maintenance (#695)
- Lock file maintenance (#696)
- Lock file maintenance (#697)
- Lock file maintenance (#698)
- Lock file maintenance (#699)
- Chore(deps)(deps): bump kaleido from 1.2.0 to 1.3.0 in the python-dependencies group (#701)
- Chore(deps)(deps): bump github/codeql-action from 4.35.2 to 4.35.3 in the github-actions group (#700)
- Lock file maintenance (#702)
Other Changes
- Revise citation format in README
Updated citation instructions for jQuantStats
- Delete .github/CITATIONS.bib
- Delete renovate.json
- Update template.yml
- Code coverage badge
- Bump version 0.8.0 → 0.8.1
PyPI Package
v0.8.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.0 - 2026-04-25
Maintenance
- Lock file maintenance (#678)
- Lock file maintenance (#679)
- Lock file maintenance (#680)
- Lock file maintenance (#681)
- Lock file maintenance (#682)
- Lock file maintenance (#683)
- Lock file maintenance (#684)
Other Changes
- Result is coming
- Result is coming
- Add
interpolate: interior forward-fill for numeric Polars columns (#686)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.7.0 → 0.8.0
PyPI Package
v0.7.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.7.0 - 2026-04-23
Bug Fixes
- Set dev as permanent default for GitHub Pages
- Add missing mkdocs deps to mike set-default invocation
- Use uv tool install to avoid duplicate uvx invocations for mike
- Remove duplicate test fixtures in test_utils.py
Documentation
- List notebooks and reports individually in nav
- Replace Sphinx :attr:/:meth: refs with plain backticks
- Enforce strict Google docstring style throughout
Maintenance
- Refactor security and license targets using extensible hooks
- Lock file maintenance (#653)
- Lock file maintenance (#659)
- Lock file maintenance (#660)
- Lock file maintenance (#667)
- Bump rhiza template to v0.10.1 (#666)
- Chore(deps-dev)(deps-dev): bump yfinance from 1.2.2 to 1.3.0 in the python-dependencies group (#669)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Chore(deps)(deps): bump github/codeql-action from 4.35.1 to 4.35.2 in the github-actions group (#668)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Other Changes
- Weekly (#654)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Delete book/marimo/notebooks/yfinance_demo.py
- Release with mike?
- Update mkdocs-base.yml
- Slim down mkdocs.yml
- Update coverage badge link in README.md
- Update test coverage link in README.md
- Slim down mkdocs.yml
- Extract shared config into docs/mkdocs-base.yml, inherit in mkdocs.yml
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Use material.extensions.emoji in mkdocs-base.yml for CI compatibility
zensical remaps material.extensions → zensical.extensions at parse time,
so this works with both; plain mkdocs in CI doesn't have zensical installed.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Moving to zensical
- Moving to zensical
- Replace mike deployment with peaceiris/actions-gh-pages
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Moving to zensical
- Remove tests that require mkdocs-build/MKDOCS_EXTRA_PACKAGES in book.mk
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Run tests before make book to populate coverage HTML report
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Update coverage badge link in README.md
-
Generate coverage badge in book workflow, deploy via GitHub Pages
-
Badge generated from coverage.xml after tests, copied into _book/
-
README badge URL updated to Pages URL (no more raw.githubusercontent)
-
Remove CI coverage-badge job (conflicted with peaceiris gh-pages deploy)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge cp: write to /tmp, copy conditionally
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix SC2015: use if/fi instead of && || for badge copy
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Explicitly copy coverage HTML into _book/ after build
Bypasses zensical not serving non-Markdown static files from docs/.
Also inline badge generation after make book rather than a separate step.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge link: point to docs root instead of 404 path
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix MkDocs build: add missing theme name to base config
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Fix book build: replace lucide icons with material, add coverage badge to _book
-
Replace lucide/* icon refs with material/* equivalents — lucide icons
are not bundled in mkdocs-material <10 and caused a hard build failure -
Generate coverage-badge.svg into _book/ during book build so it is
served from GitHub Pages at the URL the README references
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge: use coverage.xml instead of coverage.json for genbadge
genbadge only parses the standard coverage XML format; using the JSON report
caused silent failure so coverage-badge.svg was never written to _book/.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix MkDocs build: replace lucide icons with material equivalents
mkdocs-material<10.0 (9.x) does not bundle the lucide icon set, causing
TemplateNotFound errors during build. Replaced all lucide/ nav icons in
page frontmatter with equivalent material/ icons that exist in 9.x.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge: use genbadge[coverage] extra for coverage subcommand
Without the [coverage] extra, genbadge silently fails to generate the badge.
Matches the invocation already used in the CI coverage-badge workflow step.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge link to point to HTML report
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Update mkdocs.yml
- Update mkdocs.yml
- Change Test Report path in mkdocs.yml
Updated the path for the Test Report in mkdocs.yml
- Remove mkdocstrings plugin from mkdocs configuration
Removed mkdocstrings plugin configuration for Python
-
Update mkdocs-base.yml
-
Fix docs build: install package into uvx env and correct nav paths
-
Add --with-editable . to MKDOCS_EXTRA_PACKAGES so mkdocstrings can import jquantstats in the uvx-isolated environment
-
Fix report nav paths in mkdocs.yml to match what _book-reports actually generates (test-report/, coverage/)
-
Fix broken links in MIGRATION.md: drop docs/ prefix, correct STABILITY.md casing, remove links to non-existent files
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Improve docs site format inspired by TinyCTA style
-
Remove navigation.sections for a cleaner, flat sidebar
-
Add Quick Links line and emoji section headers to index.md
-
Tighten homepage content: consolidate Portfolio Route features,
remove standalone cost/lag sections, keep grid cards for next steps
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Switch book build from mkdocs to zensical (TinyCTA style)
-
Replace book.mk with TinyCTA version: uses zensical build, adds ROOT
variable for absolute paths, adds serve target, simplifies _book-reports
to a single cp -r _tests/. docs/reports/ -
Update mkdocs.yml nav report paths to match new layout
(html-report/ and html-coverage/ instead of test-report/ and coverage/)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Remove coverage badge job from CI workflow
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Remove broken coverage badge links from README
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Rhiza2 (#672)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Feature/add returns winsorising (#676)
Co-authored-by: peter pjotr.b@yukkalab.com
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Add to_volatility_adjusted_returns with pluggable vol estimator (#674)
Co-authored-by: peter pjotr.b@yukkalab.com
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Bump version 0.6.5 → 0.7.0
PyPI Package
v0.6.5
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.5 - 2026-04-14
Bug Fixes
- Move semgrep.yml from .rhiza to .github (#647)
- Add mkdocstrings[python] to MKDOCS_EXTRA_PACKAGES
Maintenance
- Lock file maintenance (#643)
- Lock file maintenance (#644)
- Lock file maintenance (#648)
- Sync rhiza template to v0.9.5 (#649)
- Chore(deps-dev)(deps-dev): bump yfinance from 1.2.0 to 1.2.2 in the python-dependencies group (#650)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Lock file maintenance (#651)
- Simplify mkdocs.yml via INHERIT from docs/mkdocs-base.yml
Other Changes
- Delete docs/marimo/rhiza.py (#652)
- Bump version 0.6.4 → 0.6.5