blob: 368cd202fc6dba340837bb5db8878c16fe30d464 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[build-system]
requires = ["maturin>=1.2,<2.0"]
build-backend = "maturin"
[project]
name = "apache-iggy"
requires-python = ">=3.10"
version = "0.6.4.dev1"
description = "Apache Iggy is the persistent message streaming platform written in Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing millions of messages per second."
readme = "README.md"
license = { file = "LICENSE" }
authors = [
{ name = "Dario Lencina Talarico", email = "darioalessandrolencina@gmail.com" },
{ name = "Albin Skott", email = "albin@mattsson.io" },
]
keywords = ["streaming", "messaging", "pubsub", "iggy", "rust", "performance"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Networking",
"Topic :: System :: Distributed Computing",
]
[project.urls]
"Homepage" = "https://iggy.apache.org"
"Documentation" = "https://iggy.apache.org/docs/"
"Repository" = "https://github.com/apache/iggy"
"Bug Tracker" = "https://github.com/apache/iggy/issues"
"Discord" = "https://discord.gg/C5Sux5NcRa"
[tool.maturin]
features = ["pyo3/extension-module"]
include = [
{ path = "LICENSE", format = [
"sdist",
"wheel",
] },
{ path = "NOTICE", format = [
"sdist",
"wheel",
] },
{ path = "apache_iggy.pyi", format = [
"sdist",
] },
]
[project.optional-dependencies]
# Core testing dependencies
testing = [
"pytest>=7.0,<9.0",
"pytest-asyncio>=0.21.0,<1.0",
"pytest-xdist>=3.0,<4.0",
"pytest-timeout>=2.0,<3.0",
]
# For containerized testing (CI/CD)
testing-docker = ["testcontainers[docker]>=3.7.0,<5.0"]
# Development tools
dev = [
"maturin>=1.2,<2.0",
"black>=23.0,<25.0",
"isort>=5.12.0,<6.0",
"mypy>=1.5.0,<2.0",
"ruff>=0.1.0,<1.0",
]
# All dependencies for full development setup
all = [
"pytest>=7.0,<9.0",
"pytest-asyncio>=0.21.0,<1.0",
"pytest-xdist>=3.0,<4.0",
"pytest-timeout>=2.0,<3.0",
"loguru>=0.7.0,<1.0",
"testcontainers[docker]>=3.7.0,<5.0",
"maturin>=1.2,<2.0",
"black>=23.0,<25.0",
"isort>=5.12.0,<6.0",
"mypy>=1.5.0,<2.0",
"ruff>=0.1.0,<1.0",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = ["-v", "--strict-markers", "--tb=short", "--disable-warnings"]
markers = [
"integration: Integration tests that require a running server",
"unit: Fast unit tests",
]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::pytest.PytestUnraisableExceptionWarning",
]