[project]
name = "edgefirst-schemas"
description = "Message schemas for EdgeFirst Perception - ROS2 Common Interfaces, Foxglove, and custom types"
license = { file = "LICENSE" }
readme = "README.md"
requires-python = ">= 3.8"
authors = [
{ name = "Au-Zone Technologies", email = "support@au-zone.com" }
]
keywords = ["ros2", "perception", "schemas", "edge-ai", "zenoh", "cdr", "foxglove"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries",
"Topic :: Scientific/Engineering",
]
dynamic = ["dependencies", "version"]
[project.optional-dependencies]
test = [
"pytest>=7.0",
"pytest-cov>=4.0",
"numpy>=1.21",
"mcap>=1.0",
]
bench = [
"pytest>=7.0",
"pytest-benchmark>=4.0",
"numpy>=1.21",
]
dev = [
"edgefirst-schemas[test,bench]",
"ruff",
]
[project.urls]
Homepage = "https://doc.edgefirst.ai"
Documentation = "https://doc.edgefirst.ai/latest/perception/"
Repository = "https://github.com/EdgeFirstAI/schemas"
Issues = "https://github.com/EdgeFirstAI/schemas/issues"
Changelog = "https://github.com/EdgeFirstAI/schemas/blob/main/CHANGELOG.md"
[tool.setuptools]
packages = [
"edgefirst.schemas",
]
[tool.setuptools.dynamic]
version = { attr = "edgefirst.schemas.__version__" }
dependencies = { file = "requirements.txt" }
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[tool.pytest.ini_options]
testpaths = ["tests/python"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
"-v",
"--tb=short",
"--strict-markers",
]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
]
filterwarnings = [
"ignore:edgefirst_msgs.DmaBuffer is deprecated:DeprecationWarning",
]
[tool.coverage.run]
source = ["edgefirst"]
branch = true
omit = [
"*/tests/*",
"*/__pycache__/*",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise NotImplementedError",
"if TYPE_CHECKING:",
]
show_missing = true
[tool.coverage.xml]
output = "coverage-python.xml"
[tool.pytest-benchmark]
min_rounds = 5
warmup = true
warmup_iterations = 3