diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a48d66a6..f2811353 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,11 +19,11 @@ repos: hooks: - id: shellcheck - repo: https://github.com/tox-dev/pyproject-fmt - rev: v2.11.1 + rev: v2.15.0 hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.14 + rev: v0.15.0 hooks: - id: ruff args: ["--exit-non-zero-on-fix"] diff --git a/pyproject.toml b/pyproject.toml index 2c7b9b9c..8e9fcdd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,14 +7,10 @@ name = "returns" version = "0.26.0" description = "Make your functions return something meaningful, typed, and safe!" license = "BSD-3-Clause" - authors = [ "sobolevn " ] - readme = "README.md" - repository = "https://github.com/dry-python/returns" homepage = "https://returns.readthedocs.io" - keywords = [ "functional programming", "fp", @@ -26,7 +22,6 @@ keywords = [ "mypy", "railway-oriented-programming", ] - classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -36,63 +31,42 @@ classifiers = [ "Topic :: Utilities", "Typing :: Typed", ] - -[tool.poetry.urls] -"Funding" = "https://github.com/sponsors/dry-python" - -[tool.poetry.plugins.pytest11] -returns = "returns.contrib.pytest.plugin" - -[tool.poetry.plugins.hypothesis] -_ = "returns.contrib.hypothesis._entrypoint:_setup_hook" - -[tool.poetry.dependencies] -python = "^3.10" - -typing-extensions = ">=4.0,<5.0" -pytest = { version = ">=8,<10", optional = true } -hypothesis = { version = "^6.136", optional = true } -mypy = { version = ">=1.12,<1.18", optional = true } - -[tool.poetry.group.dev.dependencies] -anyio = "^4.3" -trio = ">=0.30,<0.33" -attrs = "^25.3" -httpx = "^0.28" - -wemake-python-styleguide = "^1.3" -codespell = "^2.2" -slotscheck = "^0.19" -ruff = ">=0.12,<0.15" - -pytest-cov = ">=6,<8" -pytest-randomly = ">=3.12,<5.0" -pytest-mypy-plugins = "^3.1" -pytest-subtests = ">=0.14,<0.16" -pytest-shard = "^0.1" -covdefaults = "^2.3" - -[tool.poetry.group.docs] -optional = true - -[tool.poetry.group.docs.dependencies] - -sphinx = "^8.1" -sphinx-autodoc-typehints = ">=2.3,<4.0" -sphinxcontrib-mermaid = ">=1,<3" -furo = ">=2024.5,<2026.0" -myst-parser = "^4.0" -tomli = "^2.0" - -[tool.poetry.extras] -compatible-mypy = [ "mypy" ] -check-laws = [ "pytest", "hypothesis" ] +dependencies.python = "^3.10" +dependencies.typing-extensions = ">=4.0,<5.0" +dependencies.pytest = { version = ">=8,<10", optional = true } +dependencies.hypothesis = { version = "^6.136", optional = true } +dependencies.mypy = { version = ">=1.12,<1.18", optional = true } +extras.compatible-mypy = [ "mypy" ] +extras.check-laws = [ "pytest", "hypothesis" ] +group.dev.dependencies.anyio = "^4.3" +group.dev.dependencies.trio = ">=0.30,<0.33" +group.dev.dependencies.attrs = "^25.3" +group.dev.dependencies.httpx = "^0.28" +group.dev.dependencies.wemake-python-styleguide = "^1.3" +group.dev.dependencies.codespell = "^2.2" +group.dev.dependencies.slotscheck = "^0.19" +group.dev.dependencies.ruff = ">=0.12,<0.15" +group.dev.dependencies.pytest-cov = ">=6,<8" +group.dev.dependencies.pytest-randomly = ">=3.12,<5.0" +group.dev.dependencies.pytest-mypy-plugins = "^3.1" +group.dev.dependencies.pytest-subtests = ">=0.14,<0.16" +group.dev.dependencies.pytest-shard = "^0.1" +group.dev.dependencies.covdefaults = "^2.3" +group.docs.optional = true +group.docs.dependencies.sphinx = "^8.1" +group.docs.dependencies.sphinx-autodoc-typehints = ">=2.3,<4.0" +group.docs.dependencies.sphinxcontrib-mermaid = ">=1,<3" +group.docs.dependencies.furo = ">=2024.5,<2026.0" +group.docs.dependencies.myst-parser = "^4.0" +group.docs.dependencies.tomli = "^2.0" +plugins.hypothesis._ = "returns.contrib.hypothesis._entrypoint:_setup_hook" +plugins.pytest11.returns = "returns.contrib.pytest.plugin" +urls."Funding" = "https://github.com/sponsors/dry-python" [tool.ruff] # Ruff config: https://docs.astral.sh/ruff/settings target-version = "py310" line-length = 80 - preview = true fix = true format.quote-style = "single" @@ -139,8 +113,8 @@ lint.select = [ "YTT", # flake8-2020 ] lint.ignore = [ - "A005", # allow to shadow stdlib and builtin module names - "COM812", # trailing comma, conflicts with `ruff format` + "A005", # allow to shadow stdlib and builtin module names + "COM812", # trailing comma, conflicts with `ruff format` # Different doc rules that we don't really care about: "D100", "D104", @@ -195,5 +169,5 @@ lint.pydocstyle.convention = "google" strict-imports = true require-subclass = true require-superclass = true -exclude-modules = 'returns\.contrib\.' -exclude-classes = 'returns\.primitives\.exceptions:UnwrapFailedError' +exclude-modules = "returns\\.contrib\\." +exclude-classes = "returns\\.primitives\\.exceptions:UnwrapFailedError"