-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathpyproject.toml
More file actions
103 lines (93 loc) · 2.8 KB
/
pyproject.toml
File metadata and controls
103 lines (93 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[project]
name = "ldlite"
version = "4.0.0"
description = "Lightweight analytics tool for FOLIO services"
authors = [
{ name = "Katherine Bargar", email = "kbargar@fivecolleges.edu" },
{ name = "Nassib Nassar", email = "nassib@indexdata.com" },
]
dependencies = [
# 1.4 introduces WITH ORDINALITY
# 1.4.1 fixes https://github.com/duckdb/duckdb-python/issues/78
"duckdb>=1.4.1",
# pytz is required for timestamptz columns in duckdb
# 2021.3 was released with 3.10
"pytz>=2021.3",
# 4.64 is the first release with type stubs
"tqdm>=4.64.0",
# 0.3 allows checking the path for id based paging
"httpx-folio>=0.3.0",
# 3.9 introduces orjson.Fragment
"orjson>=3.9",
# 3.2 changes the sql.SQL.format signature
"psycopg>=3.2.0",
]
requires-python = ">=3.10"
readme = "README.md"
license = { text = "Apache-2.0" }
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
]
[project.urls]
Homepage = "https://github.com/library-data-platform/ldlite"
"Bug Tracker" = "https://github.com/library-data-platform/ldlite/issues"
[tool.pytest.ini_options]
pythonpath = "src"
addopts = ["--import-mode=importlib"]
[tool.mypy]
python_version = "3.10"
strict = true
[tool.ruff]
target-version = "py310"
[tool.ruff.lint]
select = ["ALL"]
fixable = ["ALL"]
ignore = ["FBT", "D105", "FIX002", "PLR2004", "TD002", "TD003", "COM812"]
pydocstyle.convention = "google"
[tool.ruff.lint.per-file-ignores]
"examples/*" = ["D", "INP001", "T201", "S106", "ERA001", "PERF203"]
"tests/*" = ["D", "S", "INP001", "N813", "PLC0415"]
"src/ldlite/{_jsonx.py,_select.py}" = ["S608"]
"src/ldlite/__init__.py" = ["T201"]
[tool.ruff.lint.flake8-annotations]
mypy-init-return = true
[tool.coverage.run]
branch = true
include = ["src/**"]
omit = [
"src/ldlite/__init__.py",
"src/ldlite/_jsonx.py",
"src/ldlite/_sqlx.py",
"src/ldlite/_camelcase.py",
]
[tool.pdm]
distribution = true
package-dir = "src"
[tool.pdm.resolution]
allow-prereleases = false
[tool.pdm.scripts]
test.composite = [
"rm -f .coverage",
"python -m coverage run -m pytest -vv {args}",
"python -m coverage report",
]
lock.composite = [
"rm -f pylock.toml pylock.maximal.toml pylock.minimal.toml",
"pdm lock --python=3.10",
"cp pylock.toml pylock.lint.toml",
"pdm lock --lockfile pylock.maximal.toml --python=3.14",
"pdm lock --strategy direct_minimal_versions --lockfile pylock.minimal.toml --python=3.10",
]
test-install.composite = [
"pdm sync --lockfile=pylock.minimal.toml",
"pdm sync --lockfile=pylock.toml",
]
[dependency-groups]
lint = ["mypy==1.18.2", "ruff==0.13.1", "pre-commit-hooks==6.0.0"]
test = ["pytest>=8.4.2", "pytest-cases>=3.9.1", "coverage>=7.10.7"]
types = ["types-tqdm>=4.64.0"]