-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpyproject.toml
More file actions
78 lines (61 loc) · 2.49 KB
/
pyproject.toml
File metadata and controls
78 lines (61 loc) · 2.49 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
# see https://github.com/karlicoss/pymplate for up-to-date reference
[project]
dynamic = ["version"] # version is managed by build backend
name = "cachew"
dependencies = [
"platformdirs", # default cache dir
"sqlalchemy>=1.0", # cache DB interaction
"orjson", # fast json serialization
"typing-extensions",# for depreceated decorator
]
requires-python = ">=3.12"
## these are only useful for pypi
description = "Transparent and persistent cache/serialization powered by type hints" # shows on project page/in search
license = {file = "LICENSE"}
authors = [{name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}]
maintainers = [{name = "Dima Gerasimov (@karlicoss)", email = "karlicoss@gmail.com"}]
[project.urls] # pypi will fetch some github stats/link, so somewhat useful
Homepage = "https://github.com/karlicoss/cachew"
##
[project.optional-dependencies]
optional = [
"colorlog",
]
[dependency-groups]
# TODO: not sure, on the one hand could just use 'standard' dev dependency group
# On the other hand, it's a bit annoying that it's always included by default?
# To make sure it's not included, need to use `uv run --exact --no-default-groups ...`
testing = [
"pytest>=9", # need version 9 for proper namespace package support
# using master version because we're patching display in conftest and latest version makes it easier
# can probably remove after version is >5.2.3
"pytest-benchmark[histogram] @ git+https://github.com/ionelmc/pytest-benchmark.git",
"ruff",
"pytz",
"cattrs", # benchmarking alternative marshalling implementation
"msgspec", # benchmarking alternative typed codec
"more-itertools",
"patchy", # for injecting sleeps and testing concurrent behaviour
"enlighten", # used in logging helper, but not really required
"pyinstrument", # for profiling from within tests
"codetiming", # Timer context manager
]
typecheck = [
"mypy",
"lxml", # for mypy html coverage
"ty>=0.0.37",
"types-pytz", # optional runtime only dependency
"cachew[optional]",
{ include-group = "testing" },
]
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
# unfortunately have to duplicate project name here atm, see https://github.com/pypa/hatch/issues/1894
[tool.hatch.build.targets.wheel]
packages = ["src/cachew"]
[tool.hatch.version]
source = "vcs"
[tool.hatch.version.raw-options]
version_scheme = "python-simplified-semver"
local_scheme = "dirty-tag"