-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
91 lines (81 loc) · 2.95 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
[tool.poetry]
name = "spark-on-k8s"
version = "0.7.1"
description = "A Python package to submit and manage Apache Spark applications on Kubernetes."
authors = ["Hussein Awala <[email protected]>"]
readme = "README.md"
repository = "https://github.com/hussein-awala/spark-on-k8s"
keywords = ["spark", "kubernetes", "k8s", "spark-submit", "spark-on-k8s"]
license = "Apache-2.0"
packages = [{include = "spark_on_k8s"}]
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/hussein-awala/spark-on-k8s/issues"
"Documentation" = "https://github.com/hussein-awala/spark-on-k8s/blob/main/README.md"
[tool.poetry.dependencies]
python = "^3.8"
kubernetes = ">=26.1.0"
click = "^8.0.1"
fastapi = {version = "^0.109.1", optional = true}
kubernetes-asyncio = {version = ">=26.9.0", optional = true}
uvicorn = {version = "^0.26.0", optional = true}
httpx = {version = "^0.26.0", optional = true}
jinja2 = {version = "^3.1.3", optional = true}
apache-airflow = {version = ">=2.6.0", python = "<3.12", optional = true}
apache-airflow-providers-cncf-kubernetes = {version = ">=7.0.0", python = "<3.12", optional = true}
pendulum = {version = "<3.0.0", python = "<3.12", optional = true}
aiohttp = {version = ">=3.10.2", optional = true} # CVE-2024-23829, CVE-2024-23334
websockets = {version = "^12", optional = true}
multidict = [
# Specific workaround for Python 3.9 with exclusion of version 6.0.5
{version = "^6.0.4,!=6.0.5", markers = "python_version <= '3.9'", optional = true},
# Standard version for Python 3.10 and above
{version = "^6.0.5", markers = "python_version >= '3.10'", optional = true},
]
[tool.poetry.dev-dependencies]
mock = "^5.1.0"
pytest = "^7.4.3"
pytest-cov = "^5.0.0"
pre-commit = "^3"
freezegun = "^1.4.0"
mkdocs = "^1.6.0"
mkdocs-material = "^9.5.21"
mkdocstrings = {version = "^0.25.1", extras = ["python"]}
mkdocs-gen-files = "^0.5.0"
mkdocs-literate-nav = "^0.6.1"
helm-mkdocs = "^0.0.5"
[tool.poetry.extras]
api = ["fastapi", "kubernetes-asyncio", "uvicorn", "httpx", "jinja2", "aiohttp", "websockets"]
airflow = ["kubernetes-asyncio", "apache-airflow", "apache-airflow-providers-cncf-kubernetes", "pendulum"]
[tool.poetry.scripts]
spark-on-k8s = "spark_on_k8s:cli.main"
[tool.poetry.plugins."apache_airflow_provider"]
provider_info = "spark_on_k8s.airflow.provider_info:get_provider_info"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
target-version = "py38"
line-length = 110
indent-width = 4
src = ["spark_on_k8s", "tests"]
[tool.ruff.lint]
fixable = ["ALL"]
ignore = ["E712"]
select = [
"E", # pycodestyle
"W", # pycodestyle
"F", # Pyflakes
"B", # flake8-bugbear
"PIE", # flake8-pie
"C4", # flake8-comprehensions
"I", # isort
"UP", # pyupgrade,
"TCH", # flake8-type-checking
]
[tool.ruff.lint.isort]
required-imports = ["from __future__ import annotations"]
combine-as-imports = true
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint.pydocstyle]
convention = "google"