Changelog

All notable changes to the plotly-stubs project will be documented in this file.
The changelog format is based on Keep a Changelog.

Unreleased

  • -/-

0.1.3 - 2026-04-11

Changed

  • GitHub Workflows:

    • Added ‘name: Checkout code’ to uses of ‘actions/checkout’, for better readability and consistency across workflow files.

    • Added ‘name: Download build artifacts’ to uses of ‘actions/download-artifact’, for better readability and consistency across workflow files.

    • Added ‘name: Publish to PyPI’ to uses of ‘pypa/gh-action-pypi-publish’, for better readability and consistency across workflow files.

    • Added ‘name: Upload build artifacts’ to uses of ‘actions/upload-artifact’, for better readability and consistency across workflow files.

    • Changed ‘uv sync –upgrade’ to ‘uv sync -U’

    • Ensured that actions ‘upload-artifact’ and ‘download-artifact’ uniformly specify ‘dist’ as (file)name for the artifact uploaded (or downloaded, respectively), for consistency across workflow files.

    • pull_request_to_main.yml and nightly_build.yml: Added ‘workflow_dispatch:’ in selected workflows to allow manual trigger of the workflow.

    • Removed redundant ‘Set up Python’ steps (no longer needed, as ‘uv sync’ will automatically install Python if not present).

    • Replaced ‘Build source distribution and wheel’ with ‘Build source distribution and wheels’ (plural) in workflow step names.

    • Replaced ‘Run twine check’ with ‘Check build artifacts’ in workflow step names, to better reflect the purpose of the step.

    • Updated the syntax used for the OS and Python matrix in test workflows.

  • pyproject.toml:

    • Removed upper version constraint from required Python version, i.e. changed the “requires-python” field from “>= 3.11, < 3.15” to “>= 3.11”.
      Detailed background and reasoning in this good yet long post by Henry Schreiner: https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special
      TLDR: Placing an upper Python version constraint on a Python package causes more harm than it provides benefits. The upper version constraint unnecessarily manifests incompatibility with future Python releases. Removing the upper version constraint ensures the package remains installable as Python evolves. In the majority of cases, the newer Python version will anyhow be backward-compatible. And in the rare case where your package would really not work with a newer Python version, users can at least find a solution manually to resolve the conflict, e.g. by pinning your package to the last version compatible with the environment they install it in. That way, we ensure it remains possible for users to find a solution, instead of rendering it impossible forever.

  • Sphinx Documentation:

    • Sphinx conf.py: Updated year in copyright statement to 2026

  • README.md:

    • Updated year in copyright statement to 2026

    • Removed the ‘Install Python’ step (### 2. Install Python), as Python gets automatically installed when running uv sync and installing Python separately (non uv-managed Python) is no longer common. Current best practice is to install Python through uv (uv-managed Python).

  • Updated project files with latest changes in python_project_template v0.2.11

Dependencies

  • .pre-commit-config.yaml: Updated rev of ruff-pre-commit to v0.15.9

  • Updated to furo>=2025.12

  • Updated to jupyter>=1.1.1

  • Updated to mypy>=1.19.1

  • Updated to myst-parser>=5.0

  • Updated to numpy>=2.4

  • Updated to pandas-stubs>=3.0

  • Updated to plotly>=6.6

  • Updated to polars>=1.39.3

  • Updated to pre-commit>=4.5

  • Updated to pyright>=1.1.408

  • Updated to pytest-cov>=7.1

  • Updated to pytest>=9.0

  • Updated to ruff>=0.15.9

  • Updated to sourcery>=1.43.0

  • Updated to sphinx-argparse-cli>=1.21.3

  • Updated to sphinx-autodoc-typehints>=3.6

  • Updated to Sphinx>=9.0

  • Updated to sphinxcontrib-mermaid>=2.0

0.1.2 - 2025-12-23

Added

  • src/plotly-stubs/express/_stubs_helpers.pyi:

    • Added Pandas DataFrame as allowed type for TypeAlias FrameOrDict

0.1.1 - 2025-12-12

Added

  • Added support for Python 3.14

  • Added support for MacOS

0.1.0 - 2025-12-11

Removed

  • Removed support for Python 3.10
    Main reason being that this removes the need to support numpy 1.x (numpy>=2.3 supports Python 3.11 upwards -> so do we)

Added

  • Added graph types to the plotly.express subpackage, by @OutSquareCapital in https://github.com/ClaasRostock/plotly-stubs/pull/5

Changed

  • pyproject.toml:

    • added required-environments to uv.tools (windows, linux)

    • removed deprecated pyright setting ‘reportShadowedImports’

    • removed deprecated mypy plugin ‘numpy.typing.mypy_plugin’

    • removed leading carets and trailing slashes from ‘exclude’ paths

  • .sourcery.yaml:

    • updated the lowest Python version the project supports to ‘3.11’

  • ruff.toml:

    • updated target Python version to “py311”

  • GitHub workflow _build_and_publish_documentation.yml:

    • changed ‘uv sync –upgrade’ to ‘uv sync –frozen’ to avoid unintentional package upgrades.

  • .pre-commit-config.yaml:

    • updated rev of pre-commit-hooks to v6.0.0

    • updated rev of ruff-pre-commit to v0.14.3

    • updated id of ruff to ruff-check

  • Sphinx documentation:

    • conf.py: removed ruff rule exception on file level

  • VS Code settings:

    • Updated ‘mypy-type-checker.reportingScope’ to ‘custom’.

  • VS Code recommended extensions:

    • Removed deprecated IntelliCode extension and replaced it by GitHub Copilot Chat as recommended replacement.

    • Removed njqdev.vscode-python-typehint (Python Type Hint). Not maintained for a year, and the functionality is now covered by GitHub Copilot.

    • Added ‘ms-python.debugpy’ (Python Debugger).

    • Added ‘ms-python.vscode-python-envs’ (Python Environments). This VS Code extension is expected to replace the legacy VS Code Settings “python.terminal.activateEnvironment” and “python.terminal.activateEnvInCurrentTerminal”. Correspondingly, the two legacy settings have been set to ‘false’.

Dependencies

  • Added polars>=1.31

  • Updated to ruff>=0.14.3 (from ruff>=0.11.0)

  • Updated to pyright>=1.1.407 (from pyright>=1.1.396)

  • Updated to sourcery>=1.40 (from sourcery>=1.35)

  • Updated to numpy>=2.3 (removed split version specifiers)

  • Updated to pandas-stubs>=2.3 (from pandas-stubs>=2.2)

  • Updated to pytest>=8.4 (from pytest>=8.3)

  • Updated to pytest-cov>=7.0 (from pytest-cov>=6.0)

  • Updated to Sphinx>=8.2 (from Sphinx>=8.1)

  • Updated to sphinx-argparse-cli>=1.20 (from sphinx-argparse-cli>=1.19)

  • Updated to sphinx-autodoc-typehints>=3.5 (from sphinx-autodoc-typehints>=3.0)

  • Updated to furo>=2025.9 (from furo>=2024.8)

  • Updated to pre-commit>=4.3 (from pre-commit>=4.1)

  • Updated to mypy>=1.18 (from mypy>=1.15)

  • Updated to checkout@v5 (from checkout@v4)

  • Updated to setup-python@v6 (from setup-python@v5)

  • Updated to setup-uv@v7 (from setup-uv@v5)

  • Updated to upload-artifact@v5 (from upload-artifact@v4)

  • Updated to download-artifact@v5 (from download-artifact@v4)

0.0.6 - 2025-07-29

Added

  • Added stubs for candlestick graph object and accompanying subpackages. by @IAmAMetalHead in https://github.com/ClaasRostock/plotly-stubs/pull/3

  • Added chart types to plotly express stubs. by @OutSquareCapital in https://github.com/ClaasRostock/plotly-stubs/pull/4

0.0.5 - 2025-03-20

Removed

  • src/plotly-stubs/init.pyi : removed import of plotly.version

Dependencies

  • Updated to ruff>=0.11.0 (from ruff>=0.9.5)

  • Updated to pyright>=1.1.396 (from pyright>=1.1.393)

  • Updated to sourcery>=1.35 (from sourcery>=1.33)

  • Updated to pre-commit>=4.1 (from pre-commit>=4.0)

0.0.4 - 2025-02-18

  • Beta release 0.0.4

0.0.3 - 2025-02-18

  • Beta release 0.0.3

0.0.2 - 2025-02-18

  • Beta release 0.0.2

0.0.1 - 2025-02-18

  • Beta release 0.0.1