182 lines
4.7 KiB
TOML
182 lines
4.7 KiB
TOML
[build-system]
|
|
requires = [
|
|
"scikit-build-core>=0.10.7",
|
|
"Cython >=3.0.11, <3.1.0"
|
|
]
|
|
build-backend = "scikit_build_core.build"
|
|
|
|
[project]
|
|
name = "RapidFuzz"
|
|
dynamic = ["version"]
|
|
requires-python = ">= 3.9"
|
|
authors = [
|
|
{name = "Max Bachmann", email = "pypi@maxbachmann.de"},
|
|
]
|
|
description = "rapid fuzzy string matching"
|
|
readme = "README.md"
|
|
classifiers=[
|
|
"Programming Language :: Python :: 3",
|
|
"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",
|
|
"License :: OSI Approved :: MIT License",
|
|
]
|
|
Homepage = "https://github.com/rapidfuzz/RapidFuzz"
|
|
Documentation = "https://rapidfuzz.github.io/RapidFuzz/"
|
|
Repository = "https://github.com/rapidfuzz/RapidFuzz.git"
|
|
Issues = "https://github.com/rapidfuzz/RapidFuzz/issues"
|
|
Changelog = "https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst"
|
|
|
|
[project.optional-dependencies]
|
|
all = [
|
|
"numpy"
|
|
]
|
|
|
|
[project.entry-points.pyinstaller40]
|
|
hook-dirs = "rapidfuzz.__pyinstaller:get_hook_dirs"
|
|
tests = "rapidfuzz.__pyinstaller:get_PyInstaller_tests"
|
|
|
|
[tool.scikit-build]
|
|
minimum-version = "build-system.requires"
|
|
sdist.include = [
|
|
"src/rapidfuzz/*.cxx",
|
|
"src/rapidfuzz/distance/*.cxx",
|
|
]
|
|
sdist.exclude = [
|
|
".github"
|
|
]
|
|
wheel.exclude = [
|
|
"**.pyx",
|
|
"**.cxx",
|
|
"**.pxd",
|
|
"**.cpp",
|
|
"**.hpp",
|
|
"**.h",
|
|
"CMakeLists.txt",
|
|
"generate.sh"
|
|
]
|
|
wheel.packages = ["src/rapidfuzz"]
|
|
wheel.cmake = false
|
|
messages.after-success = "{yellow}CMake unavailable, falling back to pure Python Extension"
|
|
|
|
[[tool.scikit-build.overrides]]
|
|
if.any.system-cmake = ">=3.15"
|
|
if.any.cmake-wheel = true
|
|
wheel.cmake = true
|
|
messages.after-success = "{green}C++ Extension built successfully"
|
|
|
|
[[tool.scikit-build.overrides]]
|
|
if.failed = true
|
|
if.env.CIBUILDWHEEL = false
|
|
if.env.CONDA_BUILD = false
|
|
if.env.PIWHEELS_BUILD = false
|
|
if.env.RAPIDFUZZ_BUILD_EXTENSION = false
|
|
wheel.cmake = false
|
|
messages.after-success = "{yellow}Failed to build C++ Extension, falling back to pure Python Extension"
|
|
|
|
[[tool.scikit-build.overrides]]
|
|
if.any.env.CIBUILDWHEEL = true
|
|
if.any.env.CONDA_BUILD = true
|
|
if.any.env.PIWHEELS_BUILD = true
|
|
if.any.env.RAPIDFUZZ_BUILD_EXTENSION = true
|
|
wheel.cmake = true
|
|
messages.after-success = "{green}C++ Extension built successfully"
|
|
messages.after-failure = "{red}Failed to build C++ Extension in a packaged build"
|
|
|
|
[tool.scikit-build.metadata.version]
|
|
provider = "scikit_build_core.metadata.regex"
|
|
input = "src/rapidfuzz/__init__.py"
|
|
|
|
|
|
[tool.black]
|
|
line-length = 120
|
|
|
|
[tool.mypy]
|
|
files = ["src"]
|
|
python_version = "3.9"
|
|
warn_unused_configs = true
|
|
show_error_codes = true
|
|
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
|
|
strict = true
|
|
disallow_untyped_defs = false
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "6.0"
|
|
testpaths = ["tests"]
|
|
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
|
|
norecursedirs = ["_skbuild"]
|
|
xfail_strict = true
|
|
log_cli_level = "info"
|
|
|
|
[tool.pylint]
|
|
py-version = "3.9"
|
|
|
|
[tool.pylint.reports]
|
|
output-format = "colorized"
|
|
|
|
[tool.pylint.messages_control]
|
|
disable = [
|
|
"design",
|
|
"fixme",
|
|
"imports",
|
|
"line-too-long",
|
|
"imports",
|
|
"invalid-name",
|
|
"protected-access",
|
|
"missing-module-docstring",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py39"
|
|
src = ["src"]
|
|
exclude = []
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", "F", "W", # flake8
|
|
"B", # flake8-bugbear
|
|
"I", # isort
|
|
"ARG", # flake8-unused-arguments
|
|
"C4", # flake8-comprehensions
|
|
"EM", # flake8-errmsg
|
|
"ICN", # flake8-import-conventions
|
|
"ISC", # flake8-implicit-str-concat
|
|
"G", # flake8-logging-format
|
|
"PGH", # pygrep-hooks
|
|
"PIE", # flake8-pie
|
|
"PL", # pylint
|
|
"PT", # flake8-pytest-style
|
|
"PTH", # flake8-use-pathlib
|
|
"RET", # flake8-return
|
|
"RUF", # Ruff-specific
|
|
"SIM", # flake8-simplify
|
|
"T20", # flake8-print
|
|
"UP", # pyupgrade
|
|
"YTT", # flake8-2020
|
|
"EXE", # flake8-executable
|
|
"NPY", # NumPy specific rules
|
|
"PD", # pandas-vet
|
|
]
|
|
extend-ignore = [
|
|
"PLR", # Design related pylint codes
|
|
"E501", # Line too long
|
|
"PT004", # Use underscore for non-returning fixture (use usefixture instead)
|
|
"PTH123", # use pathlib instead of builtin open
|
|
]
|
|
unfixable = [
|
|
"T20", # Removes print statements
|
|
"F841", # Removes unused variables
|
|
]
|
|
flake8-unused-arguments.ignore-variadic-names = true
|
|
isort.required-imports = ["from __future__ import annotations"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/**" = ["T20"]
|
|
"bench/**" = ["T20"]
|
|
"tools/**" = ["T20"]
|
|
"tools/test_process_typing.py" = ["ARG001"]
|
|
"_custom_build/backend.py" = ["T20"]
|
|
"setup.py" = ["T20"]
|