-
Notifications
You must be signed in to change notification settings - Fork 69
/
pyproject.toml
97 lines (87 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
92
93
94
95
96
97
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "quixstreams"
dynamic = ["version", "dependencies"]
description = "Python library for building stream processing applications with Apache Kafka"
license = {file = "LICENSE"}
readme = "README.md"
requires-python = ">=3.9, <4"
keywords = ["streaming", "processing", "pipeline", "event", "real-time", "time series", "DataFrame", "Kafka", "Quix"]
authors = [
{ name = "Quix Analytics Ltd", email = "devs@quix.io" },
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS :: MacOS X",
"Programming Language :: Python :: 3",
]
[project.urls]
Homepage = "https://github.com/quixio/quix-streams"
[project.optional-dependencies]
all = [
"fastavro>=1.8,<2.0",
"protobuf>=5.27.2,<6.0",
"influxdb3-python>=0.7,<1.0",
"pyiceberg[pyarrow,glue]>=0.7,<0.8",
"google-cloud-bigquery>=3.26.0,<3.27",
"google-cloud-pubsub>=2.23.1,<3",
"psycopg2-binary>=2.9.9,<3",
"boto3>=1.35.60,<2.0",
]
avro = ["fastavro>=1.8,<2.0"]
protobuf = ["protobuf>=5.27.2,<6.0"]
influxdb3 = ["influxdb3-python>=0.7,<1.0"]
iceberg = ["pyiceberg[pyarrow]>=0.7,<0.8"]
iceberg_aws = ["pyiceberg[pyarrow,glue]>=0.7,<0.8"]
bigquery = ["google-cloud-bigquery>=3.26.0,<3.27"]
pubsub = ["google-cloud-pubsub>=2.23.1,<3"]
postgresql = ["psycopg2-binary>=2.9.9,<3"]
kinesis = ["boto3>=1.35.60,<2.0"]
[tool.setuptools.packages.find]
include = ["quixstreams*"]
exclude = ["tests*", "docs*", "examples*"]
[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}
version = {attr = "quixstreams.__version__"}
# This enables the pydantic pycharm plugin to suggest field names correctly
[tool.pydantic-pycharm-plugin]
ignore-init-method-arguments = true
[tool.ruff]
fix = true
lint.select = [
"F", # Pyflakes
"I", # isort
"S", # flake8-bandit
"SLF", # flake8-self
]
exclude = [
"*_pb2.py", # Protobuf files
]
[tool.ruff.lint.per-file-ignores]
# S101 Use of `assert` detected
# S105 Possible hardcoded password assigned to variable
# S106 Possible hardcoded password assigned to argument
# S311 Standard pseudo-random generators are not suitable for cryptographic purposes
# SLF001 Private member accessed
"docs/*.py" = ["S311"]
"examples/*.py" = ["S311"]
"tests/*.py" = ["S101", "S105", "S106", "S311", "SLF001"]
[tool.pytest.ini_options]
minversion = "6.0"
filterwarnings = [
"ignore::Warning:confluent_kafka.schema_registry.*",
]
# Ignore manual tests by and some loggers by default
addopts = "--log-disable=urllib3.connectionpool --log-disable=parso --log-disable=docker --log-disable=asyncio"
# Print debug logs to the console in tests
log_cli = true
log_cli_level = "INFO"
log_cli_format = "[%(levelname)s] %(name)s: %(message)s"
# Custom markers
markers = ["timeit"]