From ac907460415ab887180f44c4a468fd2acfd09cb2 Mon Sep 17 00:00:00 2001 From: backwardspy Date: Fri, 14 Mar 2025 23:30:54 +0000 Subject: [PATCH] docs: document package with pdoc --- .github/workflows/gh-pages.yaml | 4 +- README.md | 185 ++++---------------------------- assets/pepperjack.webp | Bin 0 -> 24376 bytes catppuccin/__init__.py | 91 +++++++++++++++- catppuccin/extras/matplotlib.py | 60 ++++++++++- catppuccin/extras/pygments.py | 34 +++++- catppuccin/extras/rich_ctp.py | 19 +++- catppuccin/models.py | 59 +++++++++- pdoc/syntax-highlighting.css | 1 + pdoc/theme.css | 31 ++++++ pyproject.toml | 17 +-- uv.lock | 154 ++++++++++++++++++++------ 12 files changed, 439 insertions(+), 216 deletions(-) create mode 100644 assets/pepperjack.webp create mode 100644 pdoc/syntax-highlighting.css create mode 100644 pdoc/theme.css diff --git a/.github/workflows/gh-pages.yaml b/.github/workflows/gh-pages.yaml index 2fec7c4..9499ff3 100644 --- a/.github/workflows/gh-pages.yaml +++ b/.github/workflows/gh-pages.yaml @@ -19,8 +19,10 @@ jobs: with: node-version: "latest" - run: "pip install catppuccin[pygments,gh-pages]" + - run: "mkdir -p gh-pages/docs/assets/ && cp assets/pepperjack.webp gh-pages/docs/assets/" + - run: "uv run pdoc catppuccin --no-include-undocumented --favicon https://catppuccin.com/favicon.png --logo https://python.catppuccin.com/docs/assets/pepperjack.webp --logo-link / --template-directory pdoc --output-directory gh-pages/docs" - run: "scripts/build-gh-pages" - - run: "npx lightningcss-cli --minify ./gh-pages/pygments/*.css --output-dir ./gh-pages/pygments/" + - run: "npx lightningcss-cli --minify gh-pages/pygments/*.css --output-dir gh-pages/pygments/" - uses: "peaceiris/actions-gh-pages@v4" with: enable_jekyll: false diff --git a/README.md b/README.md index e83c524..addc4c4 100644 --- a/README.md +++ b/README.md @@ -15,109 +15,15 @@ Install with `pip` or your preferred dependency management tool. -```bash -pip install catppuccin -``` - -## Usage - -Get access to the palette with the `catppuccin.PALETTE` constant: - -```python -from catppuccin import PALETTE - -PALETTE.latte.colors.mauve.hex -# '#8839ef' -PALETTE.mocha.colors.teal.rgb -# RGB(r=148, g=226, b=213) -``` - -The `Palette` data structure matches [the palette JSON](https://github.com/catppuccin/palette/blob/main/palette.json). - -### Iteration - -Both `Palette` and `FlavorColors` can be iterated to yield flavors and colors respectively: - -```python -for flavor in PALETTE: - print(flavor.name) - -# Latte -# Frappé -# Macchiato -# Mocha - -for color in PALETTE.latte.colors: - print(f"{color.name}: {color.hex}") - -# Rosewater: #f2d5cf -# Flamingo: #eebebe -# Pink: #f4b8e4 -# ... -# Base: #303446 -# Mantle: #292c3c -# Crust: #232634 -``` - -### dataclasses - -`Palette`, `Flavor`, `Color` et cetera are all [`dataclasses`](https://docs.python.org/3/library/dataclasses.html), -so you can also inspect and iterate their fields using methods from the dataclass module. - -For example, to list all color names and their hex codes: - -```python -from dataclasses import fields -from catppuccin import PALETTE - -flavor = PALETTE.frappe -for field in fields(flavor.colors): - color = getattr(flavor.colors, field.name) - print(f"{field.name}: {color.hex}") - -# rosewater: #f2d5cf -# flamingo: #eebebe -# pink: #f4b8e4 -# ... -# base: #303446 -# mantle: #292c3c -# crust: #232634 ``` - -## Pygments Styles - -This package provides a Pygments style for each of the four Catppuccin flavors. - -Install Catppuccin with the `pygments` feature to include the relevant dependencies: - -```bash -pip install catppuccin[pygments] -``` - -The styles are registered as importlib entrypoints, which allows Pygments to -find them by name: - -```python -from pygments.styles import get_style_by_name - -get_style_by_name("catppuccin-frappe") -# catppuccin.extras.pygments.FrappeStyle +pip install catppuccin ``` -The following style names are available: - -- `catppuccin-latte` -- `catppuccin-frappe` -- `catppuccin-macchiato` -- `catppuccin-mocha` +## Documentation -They can also be accessed by directly importing them: +For an API reference and usage examples, [see our online documentation](https://python.catppuccin.com/docs). -```python -from catppuccin.extras.pygments import MacchiatoStyle -``` - -### IPython +## IPython Theme A minimal configuration: @@ -131,65 +37,12 @@ and ensuring `catppuccin[pygments]` is installed in the same environment will give you Catppuccin Mocha syntax highlighting in the REPL. See [here](https://github.com/backwardspy/dots/blob/f6991570d6691212e27e266517656192f910ccbf/dot_config/ipython/profile_default/ipython_config.py) for an example of a more complete configuration. -## Matplotlib - -The library tries to register styles and colormaps if `matplotlib` is installed. -See the examples below for some use cases: - -1. Load a style, using `mpl.style.use` - - ```python - import catppuccin - import matplotlib as mpl - import matplotlib.pyplot as plt - - mpl.style.use(catppuccin.PALETTE.mocha.identifier) - plt.plot([0,1,2,3], [1,2,3,4]) - plt.show() - ``` - -1. Mix it with different stylesheets! - - ```python - import catppuccin - import matplotlib as mpl - import matplotlib.pyplot as plt - - mpl.style.use(["ggplot", catppuccin.PALETTE.mocha.identifier]) - plt.plot([0,1,2,3], [1,2,3,4]) - plt.show() - ``` - -1. Load individual colors +Available IPython themes: - ```python - import matplotlib.pyplot as plt - import catppuccin - from catppuccin.extras.matplotlib import load_color - - color = load_color(catppuccin.PALETTE.latte.identifier, "peach") - plt.plot([0,1,2,3], [1,2,3,4], color=color) - plt.show() - ``` - -1. Define custom colormaps - - ```python - import matplotlib.pyplot as plt - import numpy as np - import catppuccin - from catppuccin.extras.matplotlib import get_colormap_from_list - - cmap = get_colormap_from_list( - catppuccin.PALETTE.frappe.identifier, - ["red", "peach", "yellow", "green"], - ) - rng = np.random.default_rng() - data = rng.integers(2, size=(30, 30)) - - plt.imshow(data, cmap=cmap) - plt.show() - ``` +- `catppuccin-latte` +- `catppuccin-frappe` +- `catppuccin-macchiato` +- `catppuccin-mocha` ## Contribution @@ -205,7 +58,7 @@ instructions](https://docs.astral.sh/uv/getting-started/installation/). Install the project's dependencies including extras: -```bash +``` uv sync --all-extras ``` @@ -215,7 +68,7 @@ uv sync --all-extras To update after downloading a new palette JSON file: -```console +``` uv run build.py ``` @@ -232,8 +85,8 @@ Tests are run with [`pytest`](https://docs.pytest.org/en/stable/). To run tests and display coverage: -```console -$ pytest --cov catppuccin +``` +pytest --cov catppuccin ``` ##### Type Checking @@ -242,8 +95,8 @@ Type checking is performed by [`mypy`](https://www.mypy-lang.org/). To run type checks: -```console -$ mypy . +``` +mypy . ``` ##### Lints and Formatting @@ -252,14 +105,14 @@ Code linting and formatting is done by [`ruff`](https://docs.astral.sh/ruff/). To lint the code: -```console -$ ruff check +``` +ruff check ``` To format the code: -```console -$ ruff format +``` +ruff format ``` ## 💝 Thanks to diff --git a/assets/pepperjack.webp b/assets/pepperjack.webp new file mode 100644 index 0000000000000000000000000000000000000000..4680daf57f68a5c53600abd021f4452a7728941f GIT binary patch literal 24376 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 None: """Register the included color maps in the `matplotlib` colormap library.""" for palette_name in asdict(PALETTE): cmap = get_colormap_from_list(palette_name, DEFAULT_COLORMAP_COLORS) - mpl.colormaps.register(cmap=cmap, name=palette_name) + mpl.colormaps.register(cmap=cmap, name=palette_name, force=True) def get_colormap_from_list( diff --git a/catppuccin/extras/pygments.py b/catppuccin/extras/pygments.py index dc883c5..e5c508f 100644 --- a/catppuccin/extras/pygments.py +++ b/catppuccin/extras/pygments.py @@ -1,5 +1,37 @@ # ruff: noqa: ERA001 -"""Pygments styles for all Catppuccin flavors.""" +"""Pygments styles for all Catppuccin flavors. + +This package provides a Pygments style for each of the four Catppuccin flavors. + +Install Catppuccin with the `pygments` feature to include the relevant dependencies: + +``` +pip install catppuccin[pygments] +``` + +The styles are registered as importlib entrypoints, which allows Pygments to +find them by name: + +```python +from pygments.styles import get_style_by_name + +get_style_by_name("catppuccin-frappe") +# catppuccin.extras.pygments.FrappeStyle +``` + +The following style names are available: + +- `catppuccin-latte` +- `catppuccin-frappe` +- `catppuccin-macchiato` +- `catppuccin-mocha` + +They can also be accessed by directly importing them: + +```python +from catppuccin.extras.pygments import MacchiatoStyle +``` +""" from __future__ import annotations diff --git a/catppuccin/extras/rich_ctp.py b/catppuccin/extras/rich_ctp.py index cc625aa..9ead70f 100644 --- a/catppuccin/extras/rich_ctp.py +++ b/catppuccin/extras/rich_ctp.py @@ -1,4 +1,21 @@ -"""Rich themes for all Catppuccin flavors.""" +"""Rich themes for all Catppuccin flavors. + +Install Catppuccin with the `rich` feature to include the relevant dependencies: + +``` +pip install catppuccin[rich] +``` + +Pass one of the four flavors as your `Console` theme: + +```python +from rich.console import Console +from catppuccin.extras.rich_ctp import latte, frappe, macchiato, mocha + +c = Console(theme=mocha) +c.print("Hello", style="yellow") +``` +""" from rich.theme import Theme diff --git a/catppuccin/models.py b/catppuccin/models.py index d2f90ac..b4befa7 100644 --- a/catppuccin/models.py +++ b/catppuccin/models.py @@ -3,14 +3,19 @@ from collections.abc import Iterator from dataclasses import dataclass +__all__ = ["Palette", "Flavor", "FlavorColors", "Color", "RGB", "HSL"] + @dataclass(frozen=True) class RGB: """Color represented as red, green, and blue (all 0-255).""" r: int + """@public""" g: int + """@public""" b: int + """@public""" @dataclass(frozen=True) @@ -18,8 +23,11 @@ class HSL: """Color represented as hue (0-359), saturation (0-1), and lightness (0-1).""" h: float + """@public""" s: float + """@public""" l: float # noqa: E741 + """@public""" @dataclass(frozen=True) @@ -27,12 +35,24 @@ class Color: """A single color in the Catppuccin palette.""" name: str + """A human-readable name such as `Pink` or `Surface0`.""" identifier: str + """The lowercase key used to identify the color. This differs from `name` in + that it's intended for machine usage rather than presentation.""" accent: bool + """Whether the color is considered an accent color. Accent colors are the + first 14 colors in the palette, also called the analogous colours. The + remaining 12 non-accent colors are also referred to as the monochromatic + colors.""" order: int + """Order of the color in the palette spec.""" hex: str + """The color represented as a six-digit hex string with a leading hash (#).""" rgb: RGB + """The color represented as individual red, green, and blue channels. (0-255)""" hsl: HSL + """The color represented as individual hue (0-359), saturation (0-1), and + lightness (0-1) channels.""" @dataclass(frozen=True) @@ -43,31 +63,57 @@ class FlavorColors: """ rosewater: Color + """@public""" flamingo: Color + """@public""" pink: Color + """@public""" mauve: Color + """@public""" red: Color + """@public""" maroon: Color + """@public""" peach: Color + """@public""" yellow: Color + """@public""" green: Color + """@public""" teal: Color + """@public""" sky: Color + """@public""" sapphire: Color + """@public""" blue: Color + """@public""" lavender: Color + """@public""" text: Color + """@public""" subtext1: Color + """@public""" subtext0: Color + """@public""" overlay2: Color + """@public""" overlay1: Color + """@public""" overlay0: Color + """@public""" surface2: Color + """@public""" surface1: Color + """@public""" surface0: Color + """@public""" base: Color + """@public""" mantle: Color + """@public""" crust: Color + """@public""" def __iter__(self) -> Iterator[Color]: """Iterate over colors in the flavor.""" @@ -109,25 +155,36 @@ class Flavor: """ name: str + """A human-readable name such as `Latte` or `Mocha`.""" identifier: str + """The lowercase key used to identify the flavor. This differs from `name` + in that it's intended for machine usage rather than presentation""" order: int + """Order of the flavor in the palette spec.""" dark: bool + """Whether this flavor is dark or light oriented. Latte is light, the other + three flavors are dark.""" colors: FlavorColors + """@public""" @dataclass(frozen=True) class Palette: """The top-level type that encompasses the Catppuccin palette data structure. - Primarily used via the PALETTE constant. + Primarily used via the `PALETTE` constant. Can be iterated over, in which case the flavors are yielded in the canonical order: Latte, Frappé, Macchiato, Mocha. """ latte: Flavor + """The light flavor.""" frappe: Flavor + """The lightest dark flavor.""" macchiato: Flavor + """The medium dark flavor.""" mocha: Flavor + """The darkest dark flavor.""" def __iter__(self) -> Iterator[Flavor]: """Iterate over flavors in the palette.""" diff --git a/pdoc/syntax-highlighting.css b/pdoc/syntax-highlighting.css new file mode 100644 index 0000000..ff61d0d --- /dev/null +++ b/pdoc/syntax-highlighting.css @@ -0,0 +1 @@ +@import url(https://python.catppuccin.com/pygments/catppuccin-latte.css); diff --git a/pdoc/theme.css b/pdoc/theme.css new file mode 100644 index 0000000..202967f --- /dev/null +++ b/pdoc/theme.css @@ -0,0 +1,31 @@ +@import url("https://cdn.jsdelivr.net/npm/@catppuccin/palette@1.7.1/css/catppuccin.min.css"); +:root { + --ctp-text: var(--ctp-latte-text); + --ctp-subtext0: var(--ctp-latte-subtext0); + --ctp-base: var(--ctp-latte-base); + --ctp-mantle: var(--ctp-latte-mantle); + --ctp-crust: var(--ctp-latte-crust); + --ctp-mauve: var(--ctp-latte-mauve); + --ctp-yellow: var(--ctp-latte-yellow); + --ctp-sky: var(--ctp-latte-sky); + --ctp-blue: var(--ctp-latte-blue); + + --pdoc-background: var(--ctp-base); +} + +.pdoc { + --text: var(--ctp-text); + --muted: var(--ctp-subtext0); + --link: var(--ctp-blue); + --link-hover: var(--ctp-sky); + --code: var(--ctp-mantle); + --active: var(--ctp-crust); + + --accent: var(--ctp-mantle); + --accent2: var(--ctp-crust); + + --nav-hover: rgba(0, 0, 0, 0.03); + --name: var(--ctp-text); + --def: var(--ctp-mauve); + --annotation: var(--ctp-mauve); +} diff --git a/pyproject.toml b/pyproject.toml index a996fa1..b0b669c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,25 +21,28 @@ catppuccin-mocha = "catppuccin.extras.pygments:MochaStyle" matplotlib = ["matplotlib>=3.8.4"] pygments = ["pygments>=2.17.2"] rich = ["rich>=13.7.0"] -gh-pages = ["tinycss2>=1.2.1"] +gh-pages = ["tinycss2>=1.2.1", "pdoc>=15.0.1"] [dependency-groups] dev = [ "mypy>=1.15.0", "pytest>=8.3.5", "pytest-cov>=6.0.0", - "ruff>=0.9.9", - "types-pygments>=2.19.0.20250219", + "ruff>=0.11.0", + "types-pygments>=2.19.0.20250305", "types-colorama>=0.4.15.20240205", ] [tool.ruff.lint] select = ["ALL"] ignore = [ - "D203", # one-blank-line-before class, incompatible with D211 - "D213", # multi-line-summary-second-line, incompatible with D212 - "ISC001", # single-line-implicit-string-concatenation, incompatible with formatter - "COM812", # missing-trailing-comma, incompatible with formatter + "D203", # one-blank-line-before class, incompatible with D211 + "D213", # multi-line-summary-second-line, incompatible with D212 + "ISC001", # single-line-implicit-string-concatenation, incompatible with formatter + "COM812", # missing-trailing-comma, incompatible with formatter + "RUF022", # unsorted-dunder-all, __all__ order affects documentation + "TC006", # runtime-cast-value, stylistic choice + "PLC0414", # useless-import-alias, incompatible with unused-import (F401) ] [tool.ruff.lint.per-file-ignores] diff --git a/uv.lock b/uv.lock index 4fae76e..f810f0d 100644 --- a/uv.lock +++ b/uv.lock @@ -13,6 +13,7 @@ source = { editable = "." } [package.optional-dependencies] gh-pages = [ + { name = "pdoc" }, { name = "tinycss2" }, ] matplotlib = [ @@ -39,6 +40,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "matplotlib", marker = "extra == 'matplotlib'", specifier = ">=3.8.4" }, + { name = "pdoc", marker = "extra == 'gh-pages'", specifier = ">=15.0.1" }, { name = "pygments", marker = "extra == 'pygments'", specifier = ">=2.17.2" }, { name = "rich", marker = "extra == 'rich'", specifier = ">=13.7.0" }, { name = "tinycss2", marker = "extra == 'gh-pages'", specifier = ">=1.2.1" }, @@ -50,9 +52,9 @@ dev = [ { name = "mypy", specifier = ">=1.15.0" }, { name = "pytest", specifier = ">=8.3.5" }, { name = "pytest-cov", specifier = ">=6.0.0" }, - { name = "ruff", specifier = ">=0.9.9" }, + { name = "ruff", specifier = ">=0.11.0" }, { name = "types-colorama", specifier = ">=0.4.15.20240205" }, - { name = "types-pygments", specifier = ">=2.19.0.20250219" }, + { name = "types-pygments", specifier = ">=2.19.0.20250305" }, ] [[package]] @@ -372,6 +374,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, +] + [[package]] name = "kiwisolver" version = "1.4.7" @@ -577,6 +591,74 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, ] +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357 }, + { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393 }, + { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732 }, + { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866 }, + { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964 }, + { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977 }, + { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366 }, + { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091 }, + { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065 }, + { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514 }, + { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, + { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, + { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, + { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, + { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, + { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, + { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, + { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, + { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, + { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, + { url = "https://files.pythonhosted.org/packages/a7/ea/9b1530c3fdeeca613faeb0fb5cbcf2389d816072fab72a71b45749ef6062/MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", size = 14344 }, + { url = "https://files.pythonhosted.org/packages/4b/c2/fbdbfe48848e7112ab05e627e718e854d20192b674952d9042ebd8c9e5de/MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", size = 12389 }, + { url = "https://files.pythonhosted.org/packages/f0/25/7a7c6e4dbd4f867d95d94ca15449e91e52856f6ed1905d58ef1de5e211d0/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", size = 21607 }, + { url = "https://files.pythonhosted.org/packages/53/8f/f339c98a178f3c1e545622206b40986a4c3307fe39f70ccd3d9df9a9e425/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", size = 20728 }, + { url = "https://files.pythonhosted.org/packages/1a/03/8496a1a78308456dbd50b23a385c69b41f2e9661c67ea1329849a598a8f9/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", size = 20826 }, + { url = "https://files.pythonhosted.org/packages/e6/cf/0a490a4bd363048c3022f2f475c8c05582179bb179defcee4766fb3dcc18/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", size = 21843 }, + { url = "https://files.pythonhosted.org/packages/19/a3/34187a78613920dfd3cdf68ef6ce5e99c4f3417f035694074beb8848cd77/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", size = 21219 }, + { url = "https://files.pythonhosted.org/packages/17/d8/5811082f85bb88410ad7e452263af048d685669bbbfb7b595e8689152498/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", size = 20946 }, + { url = "https://files.pythonhosted.org/packages/7c/31/bd635fb5989440d9365c5e3c47556cfea121c7803f5034ac843e8f37c2f2/MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", size = 15063 }, + { url = "https://files.pythonhosted.org/packages/b3/73/085399401383ce949f727afec55ec3abd76648d04b9f22e1c0e99cb4bec3/MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", size = 15506 }, +] + [[package]] name = "matplotlib" version = "3.9.4" @@ -886,6 +968,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, ] +[[package]] +name = "pdoc" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/16/1b542af6f18a27de059f722c487a596681127897b6d31f78e46d6e5bf2fe/pdoc-15.0.1.tar.gz", hash = "sha256:3b08382c9d312243ee6c2a1813d0ff517a6ab84d596fa2c6c6b5255b17c3d666", size = 154174 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/4d/60d856a1b12fbf6ac1539efccfa138e57c6b88675c9867d84bbb46455cc1/pdoc-15.0.1-py3-none-any.whl", hash = "sha256:fd437ab8eb55f9b942226af7865a3801e2fb731665199b74fd9a44737dbe20f9", size = 144186 }, +] + [[package]] name = "pillow" version = "11.1.0" @@ -1049,27 +1145,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.9.9" +version = "0.11.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 } +sdist = { url = "https://files.pythonhosted.org/packages/77/2b/7ca27e854d92df5e681e6527dc0f9254c9dc06c8408317893cf96c851cdd/ruff-0.11.0.tar.gz", hash = "sha256:e55c620690a4a7ee6f1cccb256ec2157dc597d109400ae75bbf944fc9d6462e2", size = 3799407 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 }, - { url = "https://files.pythonhosted.org/packages/33/d1/439e58487cf9eac26378332e25e7d5ade4b800ce1eec7dc2cfc9b0d7ca96/ruff-0.9.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cd1428e834b35d7493354723543b28cc11dc14d1ce19b685f6e68e07c05ec7", size = 10840721 }, - { url = "https://files.pythonhosted.org/packages/50/44/fead822c38281ba0122f1b76b460488a175a9bd48b130650a6fb6dbcbcf9/ruff-0.9.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ee162652869120ad260670706f3cd36cd3f32b0c651f02b6da142652c54941d", size = 10161439 }, - { url = "https://files.pythonhosted.org/packages/11/ae/d404a2ab8e61ddf6342e09cc6b7f7846cce6b243e45c2007dbe0ca928a5d/ruff-0.9.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa0f6b75082c9be1ec5a1db78c6d4b02e2375c3068438241dc19c7c306cc61a", size = 10336264 }, - { url = "https://files.pythonhosted.org/packages/6a/4e/7c268aa7d84cd709fb6f046b8972313142cffb40dfff1d2515c5e6288d54/ruff-0.9.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:584cc66e89fb5f80f84b05133dd677a17cdd86901d6479712c96597a3f28e7fe", size = 9908774 }, - { url = "https://files.pythonhosted.org/packages/cc/26/c618a878367ef1b76270fd027ca93692657d3f6122b84ba48911ef5f2edc/ruff-0.9.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf3369325761a35aba75cd5c55ba1b5eb17d772f12ab168fbfac54be85cf18c", size = 11428127 }, - { url = "https://files.pythonhosted.org/packages/d7/9a/c5588a93d9bfed29f565baf193fe802fa676a0c837938137ea6cf0576d8c/ruff-0.9.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3403a53a32a90ce929aa2f758542aca9234befa133e29f4933dcef28a24317be", size = 12133187 }, - { url = "https://files.pythonhosted.org/packages/3e/ff/e7980a7704a60905ed7e156a8d73f604c846d9bd87deda9cabfa6cba073a/ruff-0.9.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18454e7fa4e4d72cffe28a37cf6a73cb2594f81ec9f4eca31a0aaa9ccdfb1590", size = 11602937 }, - { url = "https://files.pythonhosted.org/packages/24/78/3690444ad9e3cab5c11abe56554c35f005b51d1d118b429765249095269f/ruff-0.9.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fadfe2c88724c9617339f62319ed40dcdadadf2888d5afb88bf3adee7b35bfb", size = 13771698 }, - { url = "https://files.pythonhosted.org/packages/6e/bf/e477c2faf86abe3988e0b5fd22a7f3520e820b2ee335131aca2e16120038/ruff-0.9.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6df104d08c442a1aabcfd254279b8cc1e2cbf41a605aa3e26610ba1ec4acf0b0", size = 11249026 }, - { url = "https://files.pythonhosted.org/packages/f7/82/cdaffd59e5a8cb5b14c408c73d7a555a577cf6645faaf83e52fe99521715/ruff-0.9.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d7c62939daf5b2a15af48abbd23bea1efdd38c312d6e7c4cedf5a24e03207e17", size = 10220432 }, - { url = "https://files.pythonhosted.org/packages/fe/a4/2507d0026225efa5d4412b6e294dfe54725a78652a5c7e29e6bd0fc492f3/ruff-0.9.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9494ba82a37a4b81b6a798076e4a3251c13243fc37967e998efe4cce58c8a8d1", size = 9874602 }, - { url = "https://files.pythonhosted.org/packages/d5/be/f3aab1813846b476c4bcffe052d232244979c3cd99d751c17afb530ca8e4/ruff-0.9.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4efd7a96ed6d36ef011ae798bf794c5501a514be369296c672dab7921087fa57", size = 10851212 }, - { url = "https://files.pythonhosted.org/packages/8b/45/8e5fd559bea0d2f57c4e12bf197a2fade2fac465aa518284f157dfbca92b/ruff-0.9.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ab90a7944c5a1296f3ecb08d1cbf8c2da34c7e68114b1271a431a3ad30cb660e", size = 11327490 }, - { url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 }, - { url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 }, - { url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 }, + { url = "https://files.pythonhosted.org/packages/48/40/3d0340a9e5edc77d37852c0cd98c5985a5a8081fc3befaeb2ae90aaafd2b/ruff-0.11.0-py3-none-linux_armv6l.whl", hash = "sha256:dc67e32bc3b29557513eb7eeabb23efdb25753684b913bebb8a0c62495095acb", size = 10098158 }, + { url = "https://files.pythonhosted.org/packages/ec/a9/d8f5abb3b87b973b007649ac7bf63665a05b2ae2b2af39217b09f52abbbf/ruff-0.11.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:38c23fd9bdec4eb437b4c1e3595905a0a8edfccd63a790f818b28c78fe345639", size = 10879071 }, + { url = "https://files.pythonhosted.org/packages/ab/62/aaa198614c6211677913ec480415c5e6509586d7b796356cec73a2f8a3e6/ruff-0.11.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7c8661b0be91a38bd56db593e9331beaf9064a79028adee2d5f392674bbc5e88", size = 10247944 }, + { url = "https://files.pythonhosted.org/packages/9f/52/59e0a9f2cf1ce5e6cbe336b6dd0144725c8ea3b97cac60688f4e7880bf13/ruff-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6c0e8d3d2db7e9f6efd884f44b8dc542d5b6b590fc4bb334fdbc624d93a29a2", size = 10421725 }, + { url = "https://files.pythonhosted.org/packages/a6/c3/dcd71acc6dff72ce66d13f4be5bca1dbed4db678dff2f0f6f307b04e5c02/ruff-0.11.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c3156d3f4b42e57247275a0a7e15a851c165a4fc89c5e8fa30ea6da4f7407b8", size = 9954435 }, + { url = "https://files.pythonhosted.org/packages/a6/9a/342d336c7c52dbd136dee97d4c7797e66c3f92df804f8f3b30da59b92e9c/ruff-0.11.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:490b1e147c1260545f6d041c4092483e3f6d8eba81dc2875eaebcf9140b53905", size = 11492664 }, + { url = "https://files.pythonhosted.org/packages/84/35/6e7defd2d7ca95cc385ac1bd9f7f2e4a61b9cc35d60a263aebc8e590c462/ruff-0.11.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1bc09a7419e09662983b1312f6fa5dab829d6ab5d11f18c3760be7ca521c9329", size = 12207856 }, + { url = "https://files.pythonhosted.org/packages/22/78/da669c8731bacf40001c880ada6d31bcfb81f89cc996230c3b80d319993e/ruff-0.11.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcfa478daf61ac8002214eb2ca5f3e9365048506a9d52b11bea3ecea822bb844", size = 11645156 }, + { url = "https://files.pythonhosted.org/packages/ee/47/e27d17d83530a208f4a9ab2e94f758574a04c51e492aa58f91a3ed7cbbcb/ruff-0.11.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fbb2aed66fe742a6a3a0075ed467a459b7cedc5ae01008340075909d819df1e", size = 13884167 }, + { url = "https://files.pythonhosted.org/packages/9f/5e/42ffbb0a5d4b07bbc642b7d58357b4e19a0f4774275ca6ca7d1f7b5452cd/ruff-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92c0c1ff014351c0b0cdfdb1e35fa83b780f1e065667167bb9502d47ca41e6db", size = 11348311 }, + { url = "https://files.pythonhosted.org/packages/c8/51/dc3ce0c5ce1a586727a3444a32f98b83ba99599bb1ebca29d9302886e87f/ruff-0.11.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e4fd5ff5de5f83e0458a138e8a869c7c5e907541aec32b707f57cf9a5e124445", size = 10305039 }, + { url = "https://files.pythonhosted.org/packages/60/e0/475f0c2f26280f46f2d6d1df1ba96b3399e0234cf368cc4c88e6ad10dcd9/ruff-0.11.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:96bc89a5c5fd21a04939773f9e0e276308be0935de06845110f43fd5c2e4ead7", size = 9937939 }, + { url = "https://files.pythonhosted.org/packages/e2/d3/3e61b7fd3e9cdd1e5b8c7ac188bec12975c824e51c5cd3d64caf81b0331e/ruff-0.11.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a9352b9d767889ec5df1483f94870564e8102d4d7e99da52ebf564b882cdc2c7", size = 10923259 }, + { url = "https://files.pythonhosted.org/packages/30/32/cd74149ebb40b62ddd14bd2d1842149aeb7f74191fb0f49bd45c76909ff2/ruff-0.11.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:049a191969a10897fe052ef9cc7491b3ef6de79acd7790af7d7897b7a9bfbcb6", size = 11406212 }, + { url = "https://files.pythonhosted.org/packages/00/ef/033022a6b104be32e899b00de704d7c6d1723a54d4c9e09d147368f14b62/ruff-0.11.0-py3-none-win32.whl", hash = "sha256:3191e9116b6b5bbe187447656f0c8526f0d36b6fd89ad78ccaad6bdc2fad7df2", size = 10310905 }, + { url = "https://files.pythonhosted.org/packages/ed/8a/163f2e78c37757d035bd56cd60c8d96312904ca4a6deeab8442d7b3cbf89/ruff-0.11.0-py3-none-win_amd64.whl", hash = "sha256:c58bfa00e740ca0a6c43d41fb004cd22d165302f360aaa56f7126d544db31a21", size = 11411730 }, + { url = "https://files.pythonhosted.org/packages/4e/f7/096f6efabe69b49d7ca61052fc70289c05d8d35735c137ef5ba5ef423662/ruff-0.11.0-py3-none-win_arm64.whl", hash = "sha256:868364fc23f5aa122b00c6f794211e85f7e78f5dffdf7c590ab90b8c4e69b657", size = 10538956 }, ] [[package]] @@ -1152,24 +1248,14 @@ wheels = [ [[package]] name = "types-pygments" -version = "2.19.0.20250219" +version = "2.19.0.20250305" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "types-docutils" }, - { name = "types-setuptools" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/54/7a/04c95c518bf90f38645e24b2d6d8e0c85a8cfb8735bfb3756e10a506c687/types_pygments-2.19.0.20250219.tar.gz", hash = "sha256:a4a279338c96f3d4f2eb2c4d7c6c5593c88108b185bb5c664f943f781170cd14", size = 18463 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/7f/c5d2558a29d675fbf146e48879cd3e179a9bfd3c34a54c1954bf6940d749/types_Pygments-2.19.0.20250219-py3-none-any.whl", hash = "sha256:5e3e1f660665b3a2ea946dda794b8d5b05772d789181704b523d646e8a7f4382", size = 25599 }, ] - -[[package]] -name = "types-setuptools" -version = "75.8.0.20250225" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/ad/0747cfa03acc6cbeee3ce15704ac65fb4c7444f3cd5596c34d581e7366a7/types_setuptools-75.8.0.20250225.tar.gz", hash = "sha256:6038f7e983d55792a5f90d8fdbf5d4c186026214a16bb65dd6ae83c624ae9636", size = 48448 } +sdist = { url = "https://files.pythonhosted.org/packages/e6/be/88f777c75022b111f9e9fe4cdb430bf92892fe90188b0fd037601ded2ea1/types_pygments-2.19.0.20250305.tar.gz", hash = "sha256:044c50e80ecd4128c00a7268f20355e16f5c55466d3d49dfda09be920af40b4b", size = 18521 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/f2/6259d7d302d66a1df119baac81a06649c2cf5fa0a671278c408d43711cee/types_setuptools-75.8.0.20250225-py3-none-any.whl", hash = "sha256:94c86b439cc60bcc68c1cda3fd2c301f007f8f9502f4fbb54c66cb5ce9b875af", size = 71839 }, + { url = "https://files.pythonhosted.org/packages/6f/c6/b6d3ad345b76425e46d25a2da1758603d80c3a59405bdcbbbaa86d8c8070/types_pygments-2.19.0.20250305-py3-none-any.whl", hash = "sha256:ca88aae5ec426f9b107c0f7adc36dc096d2882d930a49f679eaf4b8b643db35d", size = 25638 }, ] [[package]]