[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.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
requires-python = ">=3.10"
dependencies = [
"typing-extensions>=4.15.0,<5.0"
]
dynamic = ["version"]
[project.optional-dependencies]
tests = [
"hypothesis>=6.148.2,<7.0",
"pytest>=9.0.1,<10.0",
]
[build-system]
requires = [
"setuptools-rust>=1.12.0,<2.0; platform_python_implementation=='CPython'",
"setuptools",
]
build-backend = "setuptools.build_meta"
[tool.bumpversion]
current_version = "14.7.1"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
serialize = ["{major}.{minor}.{patch}"]
search = "{current_version}"
replace = "{new_version}"
regex = false
ignore_missing_version = false
ignore_missing_files = false
tag = true
sign_tags = false
tag_name = "v{new_version}"
tag_message = "Bump version: {current_version} → {new_version}"
allow_dirty = false
commit = true
message = "Bump version: {current_version} → {new_version}"
moveable_tags = []
commit_args = ""
setup_hooks = []
pre_commit_hooks = []
post_commit_hooks = []
files = [
{ "filename" = "Cargo.toml" },
{ "filename" = "docker-compose.cpython.yml" },
{ "filename" = "docker-compose.pypy.yml" },
{ "filename" = "rithm/__init__.py" },
]
[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 = [
"A",
"ANN",
"ARG",
"B",
"BLE",
"C4",
"E",
"F",
"FA",
"FBT",
"FURB",
"I",
"ISC",
"N",
"PERF",
"PIE",
"PT",
"Q",
"RET",
"RSE",
"RUF",
"SIM",
"SLF",
"T10",
"T20",
"TID",
"UP",
"W",
]
ignore = [
"ANN401",
"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__" }