Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
144 lines (129 loc) · 4.15 KB
/
Copy pathpyproject.toml
File metadata and controls
144 lines (129 loc) · 4.15 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
[build-system]
requires = ["build", "setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "singlestoredb"
version = "1.18.1"
description = "Interface to the SingleStoreDB database and workspace management APIs"
readme = {file = "README.md", content-type = "text/markdown"}
license = {text = "Apache-2.0"}
authors = [
{name = "SingleStore", email = "support@singlestore.com"}
]
requires-python = ">=3.9"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Database",
]
dependencies = [
"PyJWT",
"parsimonious",
"requests",
"sqlparams",
"tomli>=1.1.0; python_version < '3.11'",
"typing-extensions; python_version < '3.11'",
]
[project.urls]
Homepage = "https://github.com/singlestore-labs/singlestoredb-python"
[project.optional-dependencies]
dataframe = ["ibis-framework[singlestoredb]"]
dbt = ["dbt-singlestore"]
docker = ["docker"]
ed22519 = ["PyNaCl>=1.4.0"]
gssapi = ["gssapi"]
ibis = ["ibis-framework[singlestoredb]"]
kerberos = ["gssapi"]
pytest = ["pytest"]
rsa = ["cryptography"]
sqlalchemy = ["sqlalchemy-singlestoredb>=1.0.0"]
vectorstore = ["singlestore-vectorstore>=0.1.2"]
# Development dependency groups
test = [
"coverage",
"dash",
"docker",
"fastapi",
"ipython",
"jupysql",
"pandas",
"parameterized",
"polars",
"pyarrow",
"pydantic",
"pytest",
"pytest-cov",
"pytest-xdist",
"singlestore-vectorstore>=0.1.2",
"uvicorn",
]
docs = [
"sphinx<=8.2.3",
"sphinx_rtd_theme",
]
build = [
"build",
"setuptools>=61.0",
"wheel",
]
dev = [
"singlestoredb[test,docs,build]",
]
[project.scripts]
python-udf-server = "singlestoredb.functions.ext.plugin.__main__:main"
[project.entry-points.pytest11]
singlestoredb = "singlestoredb.pytest"
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages.find]
exclude = ["docs*", "resources*", "examples*", "licenses*"]
[tool.setuptools.package-data]
"*" = ["*.typed", "*.sql", "*.csv", "*.ipynb"]
[tool.pytest.ini_options]
# Parallel by default. Both options are overridable on the command line, which
# comes after addopts: -n 1 or -n 0 for a serial run (0 takes xdist out of the
# picture entirely, which is what --pdb needs), --dist load to change grouping.
#
# loadgroup rather than xdist's default load: the default splits a unittest
# class across workers, and each one then runs setUpClass itself, so one shared
# cluster fixture becomes N deployments. loadgroup keeps a class on one worker
# and honours the xdist_group marks below. It is here rather than in the
# invocation because forgetting it costs real money.
#
# 2 workers, not `auto`: the ceiling is the management API's tolerance for
# concurrent provisioning and the org's cluster quota, not this host's CPUs.
# 3 was too many in practice -- the management suite had more clusters in
# flight at once than the org wanted to carry.
#
# Note that xdist must be installed for pytest to start at all with these set
# (`pip install -e ".[test]"`), that SINGLESTOREDB_MANAGEMENT_TRACE's terminal
# summary needs -n 0, and that USE_DATA_API=1 in parallel is unverified.
addopts = ["-n", "2", "--dist", "loadgroup"]
markers = [
"management",
"management_v1: exercises the v1 management API, which v2 has replaced. Deselect with -m 'not management_v1'; the v1 endpoints only need a nightly gate now that v2 is the default.",
"xdist_group: pytest-xdist's own marker, declared here so a run without the plugin installed does not warn on it. Applied to the classes that borrow from the shared cluster pool; see singlestoredb/tests/utils.py.",
]
[tool.mypy]
check_untyped_defs = true
disallow_any_generics = true
disallow_incomplete_defs = true
disallow_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = false
[[tool.mypy.overrides]]
module = "testing.*"
disallow_untyped_defs = false
[[tool.mypy.overrides]]
module = "tests.*"
disallow_untyped_defs = false
[tool.coverage.run]
source_pkgs = ["singlestoredb"]
[tool.coverage.report]
omit = [
"setup.py",
"*/tests/*",
"*/docs/*",
]