Skip to content

Releases: Jebel-Quant/jquantstats

v0.8.0

25 Apr 13:56

Choose a tag to compare

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

jquantstats

v0.7.0

23 Apr 04:10

Choose a tag to compare

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

  • Lock file maintenance (#670)
  • Lock file maintenance (#675)
  • Lock file maintenance (#677)

Other Changes

Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Fmt
  • Delete docs/notebooks.md (#655)
  • Scope interrogate pre-commit hook to src/ only (#657)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Delete docs/rhiza directory (#658)
  • Reduce make complexity (#661)

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

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

jquantstats

v0.6.5

14 Apr 13:38

Choose a tag to compare

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

PyPI Package

jquantstats

v0.6.4

12 Apr 10:45

Choose a tag to compare

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.4 - 2026-04-12

Bug Fixes

  • Avoid pyarrow dependency in pandas→polars conversion

Maintenance

  • Remove docs/marimo/ from .gitignore
  • Chore(deps)(deps): bump the python-dependencies group with 6 updates (#639)

Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • Chore(deps)(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the github-actions group (#638)

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

  • Lock file maintenance (#641)

New Features

  • Add yfinance portfolio demo notebook

Other Changes

  • Update repository reference to version 0.9.1 (#640)

Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Bump version 0.6.3 → 0.6.4

PyPI Package

jquantstats

v0.6.3

31 Mar 09:51

Choose a tag to compare

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.3 - 2026-03-31

Maintenance

  • Chore(deps)(deps): bump the python-dependencies group with 2 updates (#636)

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.0 to 4.35.1 in the github-actions group (#635)

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

  • Improve test layout, module naming consistency, and fixture magic numbers (#633)

Other Changes

  • Fix code block formatting in README.md (#627)

Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com

  • Release on RhizaSkip branch!? (#629)

Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Replace test CSV dependency in README with inline random price data (#631)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Improve code quality: precise type hints, caching docs, implicit-rename warning (#637)

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

  • Getting started
  • Bump version 0.6.2 → 0.6.3

PyPI Package

jquantstats

v0.6.2

30 Mar 15:51

Choose a tag to compare

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.2 - 2026-03-30

Bug Fixes

  • Define prices and positions in execution-delay example
  • Remove RHIZA_SKIP flags and fix all executable code blocks

Other Changes

  • Fix code block formatting in README.md

Removed unnecessary RHIZA_SKIP from code blocks in README

  • Update README.md

Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com

  • Bump version 0.6.1 → 0.6.2

PyPI Package

jquantstats

v0.6.1

30 Mar 08:06

Choose a tag to compare

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.1 - 2026-03-30

Documentation

  • Surface CostModel as public API and add dedicated usage guide (#622)
  • Expand API mapping table and add jquantstats-only stats section
  • Add Docs nav section with all docs/ markdown files
  • Acknowledge QuantStats and clarify jquantstats' purpose
  • Rewrite introduction to clarify conceptual differences between jquantstats and QuantStats
  • Remove comprehensive markdown docs in favor of simpler guidance

Maintenance

  • Drop plot_ prefix from DataPlots methods (#616)
  • Disable scheduled runs, workflow dispatch, and unused steps in rhiza_validate.yml

New Features

  • Property-based tests for financial metric invariants via hypothesis (#620)

Other Changes

  • Move app.py from repo root to api/app.py (#614)

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

  • Copilot/move app py to api directory (#615)

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

  • Remove annualisation details for information_ratio

Removed section on information_ratio annualisation from migration documentation

  • Extract shared computation layer into _stats/_internals.py (#618)
  • Delete docs/migration.md (#626)
  • Migration
  • Bump version 0.6.0 → 0.6.1

Performance

  • Cache expensive Portfolio NAV/returns/tilt/turnover properties (#624)

PyPI Package

jquantstats

v0.6.0

29 Mar 18:14

Choose a tag to compare

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.0 - 2026-03-29

Bug Fixes

  • Pin pygments<2.19 in mkdocs build to avoid NoneType crash
  • Update test_local import to reflect app.py move to api/ directory

Documentation

  • Sync root migration.md with recent library changes

Maintenance

  • Rename test_quantstats.py to test_autocorrelation.py
  • Simplify conditional_value_at_risk API and remove deprecation shim
  • Add pytest integration tests for FastAPI endpoints in app.py

New Features

  • Add null_strategy parameter to Data.from_returns / from_prices (#609)
  • Move app.py to api/app.py and update railway.toml

Other Changes

  • Port quantstats test suite to jquantstats (#598)

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
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Add annualise parameter to information_ratio for QuantStats parity (#607)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Fix double-multiplied and raw-decimal percentage values in performance tables (#602)

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

  • Fix avg_drawdown sign convention to match QuantStats (negative fraction) (#608)

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 confidence deprecation shim to conditional_value_at_risk (#610)

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 minimal FastAPI app and Railway deployment config (#611)

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 railway.toml to fix uvicorn not found on Railway deployment (#612)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Delete Procfile (#613)
  • Delete architecture section from README

Removed architecture section detailing entry points and their functionalities

  • Initial plan
  • Bump version 0.5.1 → 0.6.0

PyPI Package

jquantstats

v0.5.2

29 Mar 09:26

Choose a tag to compare

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.5.2 - 2026-03-29

Bug Fixes

  • Resolve 404 for Marimo Notebooks and Reports pages in deployed book (#600)

Maintenance

  • Update MARIMO_FOLDER path in .env

New Features

  • Add comprehensive plots & reports gallery notebook (#596)

Other Changes

  • Initial plan
  • Clean up .env by removing book variables (#594)
  • Merge branch 'main' into copilot/bring-tests-from-quantstats
  • Initial plan for porting quantstats tests to jquantstats

Agent-Logs-Url: https://github.com/Jebel-Quant/jquantstats/sessions/4ce55d80-842c-44e2-a0cc-75403d794aaf

Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Port quantstats test suite to jquantstats (31 new tests)

Agent-Logs-Url: https://github.com/Jebel-Quant/jquantstats/sessions/4ce55d80-842c-44e2-a0cc-75403d794aaf

Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Merge branch 'main' into copilot/bring-tests-from-quantstats
  • Minor test cleanup: inline DataFrames and tighten raises match

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

  • Merge branch 'main' into copilot/bring-tests-from-quantstats

  • Fix _NOTEBOOK_DIR scope and add HTML report exports via NOTEBOOK_OUTPUT_FOLDER

  • Rename _NOTEBOOK_DIR → NOTEBOOK_DIR (underscore-prefixed vars are cell-local in marimo)

  • Add os import to app.setup

  • Add export cells for data and portfolio HTML reports, using the same NOTEBOOK_OUTPUT_FOLDER pattern as rhiza.py

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

  • Fix multiple-definition errors: prefix cell-local vars with underscore

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

  • Bump version 0.5.1 → 0.5.2

PyPI Package

jquantstats

v0.5.1

29 Mar 06:05

Choose a tag to compare

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.5.1 - 2026-03-29

Bug Fixes

  • Add security exception docs to test_portfolio conftest
  • Mark illustrative README snippets +RHIZA_SKIP to pass validate

Documentation

  • Update CHANGELOG with 0.5.0 release details
  • Rewrite README to foreground the Portfolio route and execution-delay analysis

Maintenance

  • Consolidate root-level files into .github/ and docs/ (#591)
  • Split test_portfolio.py into focused modules
  • Split portfolio.py into focused mixin modules (#593)

New Features

  • License workflow produces LICENSES.md artifact (#590)
  • Add _utils subpackage mirroring qs.utils API

Other Changes

  • Delete .rhiza/templates/minibook directory
  • Delete .rhiza/make.d/gh-aw.mk (#588)
  • Marimushka go (#592)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Bump version 0.5.0 → 0.5.1

PyPI Package

jquantstats