From ae6936e4f6e0d3637376b6c86ec1b7dca2d15028 Mon Sep 17 00:00:00 2001 From: wpk-nist-gov Date: Tue, 18 Feb 2025 17:05:24 -0500 Subject: [PATCH] chore: update cruft --- .cruft.json | 4 +- .pre-commit-config.yaml | 8 +-- docs/conf.py | 14 ++++ noxfile.py | 11 +++- pyproject.toml | 1 + requirements/lock/py312-uvxrun-tools.txt | 8 +-- src/pyproject2conda/_typing.py | 13 ++-- src/pyproject2conda/cli.py | 16 ++--- src/pyproject2conda/requirements.py | 3 +- uv.lock | 84 ++++++++++++++++++++---- 10 files changed, 121 insertions(+), 41 deletions(-) diff --git a/.cruft.json b/.cruft.json index 6150008..d16daf4 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/usnistgov/cookiecutter-nist-python.git", - "commit": "ce1bec36acf76cc95cb3f865f059b8804fea4b7a", + "commit": "ea1b44f9306f1965ccf3b8cdf83ef9ad8a9dbd83", "checkout": "develop", "context": { "cookiecutter": { @@ -19,7 +19,7 @@ "__answers": "", "_copy_without_render": [], "_template": "https://github.com/usnistgov/cookiecutter-nist-python.git", - "_commit": "ce1bec36acf76cc95cb3f865f059b8804fea4b7a" + "_commit": "ea1b44f9306f1965ccf3b8cdf83ef9ad8a9dbd83" } }, "directory": null diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 55774de..9de17c4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -45,7 +45,7 @@ repos: # * Prettier - repo: https://github.com/rbubley/mirrors-prettier - rev: v3.5.0 + rev: v3.5.1 hooks: - id: prettier alias: markdownlint @@ -99,7 +99,7 @@ repos: # * uv - repo: https://github.com/astral-sh/uv-pre-commit # uv version. - rev: 0.5.30 + rev: 0.6.0 hooks: - id: uv-lock args: [--locked] @@ -121,7 +121,7 @@ repos: language: python files: ^requirements/.*\.txt$ pass_filenames: false - additional_dependencies: ["nox==2024.10.9"] + additional_dependencies: ["nox==2025.2.9"] # * Manual Linting ------------------------------------------------------------ # - repo: https://github.com/asottile/pyupgrade @@ -156,7 +156,7 @@ repos: # ** typos # Probably stick with codespell, but this might also be nice... - repo: https://github.com/crate-ci/typos - rev: typos-dict-v0.12.4 + rev: typos-dict-v0.12.5 hooks: - id: typos stages: [manual] diff --git a/docs/conf.py b/docs/conf.py index cca28d1..91293d3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -49,6 +49,7 @@ "sphinx_copybutton", "myst_parser", "sphinx_click", + "sphinx_autodoc_typehints", ] autosectionlabel_prefix_document = True @@ -57,6 +58,7 @@ nitpick_ignore = [ ("py:class", "Command"), ("py:class", "typer.core.TyperGroup"), + ("py:class", "Requirement"), ] # -- myst stuff --------------------------------------------------------- @@ -143,8 +145,18 @@ "private-members", "show-inheritance", ] +# autodoc_typehints = "signature" autodoc_typehints = "none" +autodoc_type_aliases = {"Self": "Self"} + +typehints_document_rtype = False +typehints_use_rtype = False +typehints_defaults = "comma" +# always_document_param_types = True +typehints_use_signature = True +typehints_use_signature_return = True + # -- napoleon ------------------------------------------------------------------ napoleon_google_docstring = False napoleon_numpy_docstring = True @@ -408,6 +420,8 @@ def _get_ipython_savefig_dir() -> str: # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), + "click": ("https://click.palletsprojects.com/en/stable/", None), + "packaging": ("https://packaging.pypa.io/en/stable/", None), # "pandas": ("https://pandas.pydata.org/pandas-docs/stable", None), # "numpy": ("https://numpy.org/doc/stable", None), # "scipy": ("https://docs.scipy.org/doc/scipy/", None), diff --git a/noxfile.py b/noxfile.py index 52b890e..d0189f9 100644 --- a/noxfile.py +++ b/noxfile.py @@ -198,7 +198,9 @@ class SessionParams(DataclassParser): | None ) = add_option("--docs", "-d", help="doc commands") docs_run: RUN_ANNO = None - + docs_options: OPT_TYPE = add_option( + "--docs-options", help="Options to sphinx-build" + ) # lint lint_options: OPT_TYPE = add_option(help="Options to pre-commit") @@ -508,7 +510,7 @@ def lock( "--universal", f"--config-file={PIP_COMPILE_CONFIG}", "-q", - "-p", + "--python-version", python_version, *options, path, @@ -711,7 +713,10 @@ def docs( # noqa: C901, PLR0912 cmd.remove("serve") if cmd: - common_opts = ["--doctree-dir=docs/_build/doctree"] + common_opts = [ + "--doctree-dir=docs/_build/doctree", + *(opts.docs_options or ()), + ] for c in combine_list_str(cmd): if c == "clean": for d in ("docs/_build", "generated", "reference/generated"): diff --git a/pyproject.toml b/pyproject.toml index 8d7d011..7bde3f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,6 +64,7 @@ docs = [ "myst-parser", "pyenchant", "sphinx>=5.3.0", + "sphinx-autodoc-typehints", "sphinx-book-theme", "sphinx-click", "sphinx-copybutton", diff --git a/requirements/lock/py312-uvxrun-tools.txt b/requirements/lock/py312-uvxrun-tools.txt index b5da505..71331e7 100644 --- a/requirements/lock/py312-uvxrun-tools.txt +++ b/requirements/lock/py312-uvxrun-tools.txt @@ -1,5 +1,5 @@ # This file was autogenerated by uv via the following command: -# uv pip compile --universal --config-file=requirements/uv.toml -p 3.12 requirements/uvxrun-tools.txt -o requirements/lock/py312-uvxrun-tools.txt +# uv pip compile --universal --config-file=requirements/uv.toml --python-version 3.12 requirements/uvxrun-tools.txt -o requirements/lock/py312-uvxrun-tools.txt annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 @@ -739,9 +739,9 @@ pylev==1.4.0 \ --hash=sha256:7b2e2aa7b00e05bb3f7650eb506fc89f474f70493271a35c242d9a92188ad3dd \ --hash=sha256:9e77e941042ad3a4cc305dcdf2b2dec1aec2fbe3dd9015d2698ad02b173006d1 # via clikit -pyright==1.1.393 \ - --hash=sha256:8320629bb7a44ca90944ba599390162bf59307f3d9fb6e27da3b7011b8c17ae5 \ - --hash=sha256:aeeb7ff4e0364775ef416a80111613f91a05c8e01e58ecfefc370ca0db7aed9c +pyright==1.1.394 \ + --hash=sha256:56f2a3ab88c5214a451eb71d8f2792b7700434f841ea219119ade7f42ca93608 \ + --hash=sha256:5f74cce0a795a295fb768759bbeeec62561215dea657edcaab48a932b031ddbb # via -r requirements/uvxrun-tools.txt python-utils==3.9.1 \ --hash=sha256:0273d7363c7ad4b70999b2791d5ba6b55333d6f7a4e4c8b6b39fb82b5fab4613 \ diff --git a/src/pyproject2conda/_typing.py b/src/pyproject2conda/_typing.py index b8f1a25..85be414 100644 --- a/src/pyproject2conda/_typing.py +++ b/src/pyproject2conda/_typing.py @@ -1,22 +1,25 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Literal, TypeVar +from typing import TYPE_CHECKING, TypeVar R = TypeVar("R") T = TypeVar("T") if TYPE_CHECKING: + from typing import Literal # noqa: F401 + from packaging.requirements import ( Requirement, # pyright: ignore[reportUnusedImport] # noqa: F401 ) + from ._typing_compat import TypeAlias from .overrides import ( OverrideDeps, # pyright: ignore[reportUnusedImport] # noqa: F401 ) - from .utils import _Missing # pyright: ignore[reportPrivateUsage] + from .utils import _Missing # pyright: ignore[reportPrivateUsage] # noqa: F401 - MISSING_TYPE = Literal[_Missing.MISSING] +MISSING_TYPE: TypeAlias = "Literal[_Missing.MISSING]" - RequirementCommentPair = "tuple[Requirement | None, str | None]" - RequirementOverridePair = "tuple[Requirement | None, OverrideDeps | None]" +RequirementCommentPair: TypeAlias = "tuple[Requirement | None, str | None]" +RequirementOverridePair: TypeAlias = "tuple[Requirement | None, OverrideDeps | None]" diff --git a/src/pyproject2conda/cli.py b/src/pyproject2conda/cli.py index 6ed9c05..7d4629d 100644 --- a/src/pyproject2conda/cli.py +++ b/src/pyproject2conda/cli.py @@ -50,7 +50,7 @@ class AliasedGroup(TyperGroup): def get_command( # noqa: D102 self, ctx: click.Context, cmd_name: str - ) -> Optional[click.core.Command]: + ) -> Optional[click.Command]: if (rv := super().get_command(ctx, cmd_name)) is not None: return rv if not ( @@ -479,7 +479,7 @@ def _log_creating( logger.info(s) -def add_verbose_logger( +def _add_verbose_logger( logger: logging.Logger, verbose_arg: str = "verbose" ) -> Callable[[Callable[..., R]], Callable[..., R]]: """Decorator factory to add logger and set logger level based on verbosity argument value.""" @@ -525,7 +525,7 @@ def wrapped(*args: Any, **kwargs: Any) -> R: # ** List # @app_typer.command("l", hidden=True) @app_typer.command("list") -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def create_list( filename: PYPROJECT_CLI = DEFAULT_TOML_PATH, verbose: VERBOSE_CLI = None, # noqa: ARG001 @@ -545,7 +545,7 @@ def create_list( # ** Yaml # @app_typer.command("y", hidden=True) @app_typer.command() -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def yaml( filename: PYPROJECT_CLI = DEFAULT_TOML_PATH, extras: EXTRAS_CLI = None, @@ -613,7 +613,7 @@ def yaml( # ** Requirements # @app_typer.command("r", hidden=True) @app_typer.command() -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def requirements( filename: PYPROJECT_CLI = DEFAULT_TOML_PATH, extras: EXTRAS_CLI = None, @@ -660,7 +660,7 @@ def requirements( # @app_typer.command("p", hidden=True) @app_typer.command() -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def project( filename: PYPROJECT_CLI = DEFAULT_TOML_PATH, envs: ENVS_CLI = None, @@ -738,7 +738,7 @@ def project( # @app_typer.command("cr", hidden=True) @app_typer.command() -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def conda_requirements( path_conda: Annotated[Optional[str], typer.Argument()] = None, path_pip: Annotated[Optional[str], typer.Argument()] = None, @@ -815,7 +815,7 @@ def conda_requirements( # ** json # @app_typer.command("j", hidden=True) @app_typer.command("json") -@add_verbose_logger(logger) +@_add_verbose_logger(logger) def to_json( extras: EXTRAS_CLI = None, groups: GROUPS_CLI = None, diff --git a/src/pyproject2conda/requirements.py b/src/pyproject2conda/requirements.py index 132664a..8cd726b 100644 --- a/src/pyproject2conda/requirements.py +++ b/src/pyproject2conda/requirements.py @@ -139,6 +139,7 @@ def _update_requirement( # noqa: C901 # ** Dependencices def resolve_extras( + *, extras: str | Iterable[str], package_name: str, unresolved: dict[str, list[Requirement]], @@ -399,7 +400,7 @@ def requirements_extras(self) -> dict[str, list[Requirement]]: resolved = { extra: resolve_extras( - extra, package_name=self.package_name, unresolved=unresolved + extras=extra, package_name=self.package_name, unresolved=unresolved ) for extra in unresolved } diff --git a/uv.lock b/uv.lock index 12fa24f..1529602 100644 --- a/uv.lock +++ b/uv.lock @@ -1,4 +1,5 @@ version = 1 +revision = 1 requires-python = ">=3.8" resolution-markers = [ "python_full_version >= '3.12'", @@ -1455,7 +1456,7 @@ wheels = [ [[package]] name = "myst-parser" -version = "4.0.0" +version = "4.0.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.12'", @@ -1470,9 +1471,9 @@ dependencies = [ { name = "pyyaml", marker = "python_full_version >= '3.10'" }, { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/85/55/6d1741a1780e5e65038b74bce6689da15f620261c490c3511eb4c12bac4b/myst_parser-4.0.0.tar.gz", hash = "sha256:851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531", size = 93858 } +sdist = { url = "https://files.pythonhosted.org/packages/66/a5/9626ba4f73555b3735ad86247a8077d4603aa8628537687c839ab08bfe44/myst_parser-4.0.1.tar.gz", hash = "sha256:5cfea715e4f3574138aecbf7d54132296bfd72bb614d31168f48c477a830a7c4", size = 93985 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/b4/b036f8fdb667587bb37df29dc6644681dd78b7a2a6321a34684b79412b28/myst_parser-4.0.0-py3-none-any.whl", hash = "sha256:b9317997552424448c6096c2558872fdb6f81d3ecb3a40ce84a7518798f3f28d", size = 84563 }, + { url = "https://files.pythonhosted.org/packages/5f/df/76d0321c3797b54b60fef9ec3bd6f4cfd124b9e422182156a1dd418722cf/myst_parser-4.0.1-py3-none-any.whl", hash = "sha256:9134e88959ec3b5780aedf8a99680ea242869d012e8821db3126d427edc9c95d", size = 84579 }, ] [[package]] @@ -1664,17 +1665,17 @@ wheels = [ [[package]] name = "psutil" -version = "6.1.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, ] [[package]] @@ -1873,11 +1874,14 @@ dev-extras = [ docs = [ { name = "autodocsumm" }, { name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "myst-parser", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "myst-parser", version = "4.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pyenchant" }, { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "sphinx-autodoc-typehints", version = "2.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "sphinx-autodoc-typehints", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinx-autodoc-typehints", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "sphinx-book-theme", version = "0.0.39", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "sphinx-book-theme", version = "1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "sphinx-click" }, @@ -1888,13 +1892,16 @@ docs = [ docs-live = [ { name = "autodocsumm" }, { name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "myst-parser", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "myst-parser", version = "4.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pyenchant" }, { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "sphinx-autobuild", version = "2021.3.14", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "sphinx-autobuild", version = "2024.10.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "sphinx-autodoc-typehints", version = "2.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "sphinx-autodoc-typehints", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "sphinx-autodoc-typehints", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "sphinx-book-theme", version = "0.0.39", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "sphinx-book-theme", version = "1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "sphinx-click" }, @@ -1987,6 +1994,7 @@ docs = [ { name = "myst-parser" }, { name = "pyenchant" }, { name = "sphinx", specifier = ">=5.3.0" }, + { name = "sphinx-autodoc-typehints" }, { name = "sphinx-book-theme" }, { name = "sphinx-click" }, { name = "sphinx-copybutton" }, @@ -1998,6 +2006,7 @@ docs-live = [ { name = "pyenchant" }, { name = "sphinx", specifier = ">=5.3.0" }, { name = "sphinx-autobuild" }, + { name = "sphinx-autodoc-typehints" }, { name = "sphinx-book-theme" }, { name = "sphinx-click" }, { name = "sphinx-copybutton" }, @@ -2845,6 +2854,53 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/c0/eba125db38c84d3c74717008fd3cb5000b68cd7e2cbafd1349c6a38c3d3b/sphinx_autobuild-2024.10.3-py3-none-any.whl", hash = "sha256:158e16c36f9d633e613c9aaf81c19b0fc458ca78b112533b20dafcda430d60fa", size = 11908 }, ] +[[package]] +name = "sphinx-autodoc-typehints" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.9'", +] +dependencies = [ + { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/f0/b750f1ea593df9ba152e99929807530604d06fae887e5a38ae1e0a31358a/sphinx_autodoc_typehints-2.0.1.tar.gz", hash = "sha256:60ed1e3b2c970acc0aa6e877be42d48029a9faec7378a17838716cacd8c10b12", size = 38816 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/95/5baffb0ef1b8fd72d0a5a3ab531e82c5e810df3530c8f61857c69026b7ac/sphinx_autodoc_typehints-2.0.1-py3-none-any.whl", hash = "sha256:f73ae89b43a799e587e39266672c1075b2ef783aeb382d3ebed77c38a3fc0149", size = 19533 }, +] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "sphinx", version = "7.4.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/cd/03e7b917230dc057922130a79ba0240df1693bfd76727ea33fae84b39138/sphinx_autodoc_typehints-2.3.0.tar.gz", hash = "sha256:535c78ed2d6a1bad393ba9f3dfa2602cf424e2631ee207263e07874c38fde084", size = 40709 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f3/e0a4ce49da4b6f4e4ce84b3c39a0677831884cb9d8a87ccbf1e9e56e53ac/sphinx_autodoc_typehints-2.3.0-py3-none-any.whl", hash = "sha256:3098e2c6d0ba99eacd013eb06861acc9b51c6e595be86ab05c08ee5506ac0c67", size = 19836 }, +] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/f0/43c6a5ff3e7b08a8c3b32f81b859f1b518ccc31e45f22e2b41ced38be7b9/sphinx_autodoc_typehints-3.0.1.tar.gz", hash = "sha256:b9b40dd15dee54f6f810c924f863f9cf1c54f9f3265c495140ea01be7f44fa55", size = 36282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/dc/dc46c5c7c566b7ec5e8f860f9c89533bf03c0e6aadc96fb9b337867e4460/sphinx_autodoc_typehints-3.0.1-py3-none-any.whl", hash = "sha256:4b64b676a14b5b79cefb6628a6dc8070e320d4963e8ff640a2f3e9390ae9045a", size = 20245 }, +] + [[package]] name = "sphinx-book-theme" version = "0.0.39"