-
Notifications
You must be signed in to change notification settings - Fork 25
/
pyproject.toml
134 lines (123 loc) · 2.88 KB
/
pyproject.toml
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
[project]
name = "recap-core"
version = "0.12.1"
description = "Recap reads and writes schemas from web services, databases, and schema registries in a standard format"
authors = [
{name = "Chris Riccomini", email = "[email protected]"},
]
dependencies = [
]
requires-python = ">=3.10, <=3.12"
readme = "README.md"
license = {text = "MIT"}
keywords = [
"avro",
"data",
"data catalog",
"data discovery",
"data engineering",
"data governance",
"data infrastructure",
"data integration",
"data pipelines",
"data quality",
"devops",
"devtools",
"etl",
"infrastructure",
"json schema",
"metadata",
"protobuf",
]
[project.urls]
documentation = "https://recap.build"
homepage = "https://recap.build"
repository = "https://github.com/recap-cloud/recap"
[project.optional-dependencies]
kafka = [
"confluent-kafka[schema-registry]>=2.1.1",
]
proto = [
"proto-schema-parser>=0.2.0",
]
hive = [
"pymetastore>=0.2.0",
]
bigquery = [
"google-cloud-bigquery>=3.17.2",
]
json = [
"referencing>=0.30.0",
"httpx>=0.24.1",
]
app = [
"fastapi>=0.103.0",
"pydantic>=2.3.0",
"pydantic-settings>=2.0.3",
"typer>=0.9.0",
"uvicorn>=0.23.2",
"rich>=13.5.2",
"python-dotenv>=1.0.0",
"fsspec>=2023.9.2",
]
all = [
"recap-core[app,bigquery,hive,json,kafka,proto]",
]
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[project.scripts]
recap = "recap.cli:app"
[tool.pdm.build]
# Need this to make `recap` an implicit namespace package, so it works with
# other recap.build packages that start with `recap.`.
includes = ["recap"]
[tool.pdm.dev-dependencies]
tests = [
"pytest>=7.2.1",
# For snowflake
"snowflake-connector-python>=3.0.4",
"fakesnow>=0.5.1",
# For postgres
"psycopg2-binary>=2.9.6",
# For spec tests
"jsonschema>=4.18.4",
# For MySQL
"mysql-connector-python>=8.1.0",
# For gateway
"httpx>=0.24.1",
"uvicorn>=0.23.2",
]
style = [
"black>=23.1.0",
"isort>=5.12.0",
"pylint>=2.16.1",
"pyright>=1.1.293",
"autoflake>=2.2.0",
]
[tool.isort]
profile = "black"
case_sensitive = true
[tool.pylint.messages_control]
max-line-length = 110
[tool.pyright]
include = ["recap/"]
pythonPlatform = "All"
exclude = [
"**/__pycache__",
]
[tool.pdm.scripts]
run-black = "black recap/ tests/"
run-isort = "isort recap/ tests/"
run-autoflake = "autoflake --in-place --remove-unused-variables --remove-all-unused-imports --recursive recap/ tests/"
style = {composite = ["run-black", "run-isort", "run-autoflake"]}
unit = "pytest tests/unit -vv"
spec = "pytest tests/spec -vv"
integration = "pytest tests/integration -vv"
test = {composite = ["unit", "spec"]}
serve ="uvicorn recap.server.app:app --reload"
[tool.pytest.ini_options]
addopts = [
# Allow test files to have the same name in different directories
"--import-mode=importlib",
]