[project] name = "rithm" description = "Arbitrary precision arithmetic." authors = [{ name = "Azat Ibrakov", email = "azatibrakov@gmail.com" }] readme = "README.md" license = { file = "LICENSE" } classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] requires-python = ">=3.9" dependencies = [ "typing-extensions>=4.12.2,<5.0" ] dynamic = ["version"] [project.optional-dependencies] tests = [ "hypothesis>=6.118.8,<7.0", "pytest>=8.3.3,<9.0" ] [build-system] requires = [ "setuptools-rust>=1.10.2,<2.0; platform_python_implementation=='CPython'", "setuptools", "wheel" ] build-backend = "setuptools.build_meta" [tool.coverage.run] source = ["rithm"] [tool.mypy] strict = true [tool.pytest.ini_options] addopts = "--verbose -s --hypothesis-profile=default" [tool.ruff] line-length = 79 [tool.ruff.format] docstring-code-format = true quote-style = "single" skip-magic-trailing-comma = true [tool.ruff.lint] preview = true select = [ # flake8-builtins "A", # flake8-annotations "ANN", # flake8-unused-arguments "ARG", # flake8-bugbear "B", # flake8-blind-except "BLE", # flake8-comprehensions "C4", # pycodestyle "E", # Pyflakes "F", # flake8-future-annotations "FA", # flake8-boolean-trap "FBT", # refurb "FURB", # isort "I", # flake8-implicit-str-concat "ISC", # pep8-naming "N", # Perflint "PERF", # flake8-pie "PIE", # flake8-pytest-style "PT", # flake8-quotes "Q", # flake8-return "RET", # flake8-raise "RSE", # Ruff-specific rules "RUF", # flake8-simplify "SIM", # flake8-self "SLF", # flake8-debugger "T10", # flake8-print "T20", # flake8-tidy-imports "TID", # pyupgrade "UP", # pycodestyle "W", ] ignore = [ # disallows `typing.Any` annotation "ANN401", # whitespace before ':' "E203", ] [tool.ruff.lint.flake8-quotes] docstring-quotes = "double" inline-quotes = "single" [tool.ruff.lint.isort] case-sensitive = true combine-as-imports = true order-by-type = false relative-imports-order = "closest-to-furthest" split-on-trailing-comma = false [tool.ruff.lint.per-file-ignores] "tests/*" = ["RUF018"] [tool.setuptools.dynamic] version = { attr = "rithm.__version__" }