Files
turso/bindings/python/pyproject.toml
Lauri Virtanen c5218e2f79 Run Python tests for versions 3.8 to 3.12
Match Python versions in GitHub workflow and pyproject.toml.

Format workflow YAML and rename steps.

Checkout using `actions/checkout@v4`.

Disable pip version checking in Python workflow to suppress warnings on
older Python versions.
2024-09-01 13:28:38 +03:00

82 lines
2.2 KiB
TOML

[build-system]
requires = ['maturin>=1,<2', 'typing_extensions']
build-backend = 'maturin'
[project]
name = 'limbo'
description = "Limbo is a work-in-progress, in-process OLTP database management system, compatible with SQLite."
requires-python = '>=3.8'
classifiers = [
'Development Status :: 3 - Alpha',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Rust',
'License :: OSI Approved :: MIT License',
'Operating System :: POSIX :: Linux',
'Operating System :: Microsoft :: Windows',
'Operating System :: MacOS',
'Topic :: Database',
'Topic :: Software Development :: Libraries',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Database :: Database Engines/Servers',
]
dependencies = ['typing-extensions >=4.6.0,!=4.7.0']
dynamic = ['readme', 'version']
[project.optional-dependencies]
dev = [
"black==24.4.2",
"isort==5.13.2",
"mypy==1.11.0",
"pytest==8.3.1",
"pytest-cov==5.0.0",
"ruff==0.5.4",
]
[project.urls]
Homepage = "https://github.com/penberg/limbo"
Source = "https://github.com/penberg/limbo"
[tool.maturin]
bindings = 'pyo3'
module-name = "limbo._limbo"
features = ["pyo3/extension-module"]
[tool.ruff]
line-length = 120
[tool.ruff.lint]
extend-select = ['Q', 'RUF100', 'C90', 'I']
extend-ignore = [
'E721', # using type() instead of isinstance() - we use this in tests
]
flake8-quotes = { inline-quotes = 'single', multiline-quotes = 'double' }
mccabe = { max-complexity = 13 }
isort = { known-first-party = ['pydantic_core', 'tests'] }
[tool.ruff.format]
quote-style = 'single'
[tool.pytest.ini_options]
testpaths = 'tests'
log_format = '%(name)s %(levelname)s: %(message)s'
[tool.coverage.run]
source = ['limbo']
branch = true
[tool.coverage.report]
precision = 2
exclude_lines = [
'pragma: no cover',
'raise NotImplementedError',
'if TYPE_CHECKING:',
'@overload',
]