-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
128 lines (108 loc) · 2.97 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
[tool.poetry]
name = "metaphor-aesop"
version = "0.0.0" # Just a placeholder
license = "Apache-2.0"
description = "A CLI application for Metaphor metadata management and discovery"
authors = [
"Metaphor <[email protected]>",
"Tsung-Ju Lii <[email protected]>"
]
readme = "README.md"
homepage = "https://metaphor.io/"
repository = "https://github.com/MetaphorData/aesop"
documentation = "https://docs.metaphor.io/"
keywords = [
"metadata",
"data catalog"
]
classifiers = [
"Topic :: Software Development",
"Intended Audience :: Developers",
"Development Status :: 3 - Alpha"
]
packages = [
{ include = "aesop" },
]
[tool.poetry.dependencies]
httpx = "^0.27.2"
packaging = "^24.1"
pydantic = { version = "^2.0.0", extras = ["email"]}
python = "^3.9"
pyyaml = "^6.0.2"
rich = "^13.3.5"
typer = "^0.12.5"
yarl = "^1.13.1"
[tool.poetry.dev-dependencies]
ariadne-codegen = "^0.14.0"
autoflake = "^2.3.1"
black = "^24.2.0"
flake8 = "^7.0.0"
flake8-pyproject = "^1.2.3"
isort = "^5.11.0"
loguru = "^0.7.2"
mkdocs = "^1.6.1"
mkdocs-material = "^9.5.44"
mypy = "^1.9.0"
poethepoet = "^0.28.0"
pre-commit = "^3.8.0"
pytest = "^8.2.1"
pytest-asyncio = "^0.23.7"
pytest-cov = "^5.0.0"
types-pyyaml = "^6.0.12.20240917"
[tool.poetry-dynamic-versioning]
enable = true
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"
# Add this section to create a CLI entry point
[tool.poetry.scripts]
aesop = "aesop.app:app"
# === TOOLS ===
[tool.pytest.ini_options]
asyncio_mode = "strict"
[tool.black]
target-version = ['py39']
extend-exclude = "aesop/graphql/generated"
[tool.isort]
profile = "black"
skip_glob = ["aesop/graphql/generated/*"]
[tool.mypy]
ignore_missing_imports = true
strict = true
warn_unused_ignores = false
exclude = "aesop/graphql/generated/"
[tool.flake8]
ignore = ['E231', 'E241', 'W503', 'E203']
max-line-length = 88
exclude = "aesop/graphql/generated"
[tool.autoflake]
recursive = true
in-place = true
remove-all-unused-imports = true
[tool.ariadne-codegen]
schema_path = "schema.gql"
queries_path = "aesop/graphql/queries"
target_package_name = "generated"
target_package_path = "./aesop/graphql"
async_client = false
[tool.coverage.run]
omit = [
"aesop/graphql/*", # These are either generated code or graphql definition, no need to test them
"*/__init__.py",
"aesop/__main__.py" # This is the entrypoint if you fire up the program thru debugger
]
# === POE TASKS ===
[tool.poe.tasks]
_black = "black ."
_check_black = "black --check ."
_isort = "isort ."
_check_isort = "isort --check ."
_flake8 = "flake8"
_autoflake = "autoflake ."
format = ["_black", "_isort", "_autoflake"]
check-type = "mypy ."
[tool.poe.tasks.check-format]
sequence = ["_check_black", "_check_isort", "_flake8"]
[tool.poe.tasks.codegen]
help = "Generates the GraphQL client code from schema.gql. To run codegen, copy `@www/data/schema.gql` to the root directory, then run `poe codegen`."
cmd = "ariadne-codegen"