ria-toolkit-oss/pyproject.toml
ben f67c995846
Some checks failed
Build Sphinx Docs Set / Build Docs (pull_request) Successful in 16s
Test with tox / Test with tox (3.11) (pull_request) Successful in 3m56s
Test with tox / Test with tox (3.12) (pull_request) Successful in 7m51s
Build Project / Build Project (3.12) (pull_request) Successful in 12m32s
Build Project / Build Project (3.11) (pull_request) Successful in 13m9s
Build Project / Build Project (3.10) (pull_request) Successful in 13m14s
Test with tox / Test with tox (3.10) (pull_request) Failing after 13m13s
reformats
2026-04-01 12:28:41 -04:00

152 lines
4.1 KiB
TOML

[project]
name = "ria-toolkit-oss"
version = "0.1.4"
description = "An open-source version of the RIA Toolkit, including the fundamental tools to get started developing, testing, and deploying radio intelligence applications"
license = { text = "AGPL-3.0-only" }
readme = "README.md"
requires-python = ">=3.10"
authors = [
{ name = "Qoherent Inc.", email = "info@qoherent.ai" },
]
maintainers = [
{ name = "Benjamin Chinnery", email = "ben@qoherent.ai" },
{ name = "Ashkan Beigi", email = "ash@qoherent.ai" },
{ name = "Madrigal Weersink", email = "madrigal@qoherent.ai" },
{ name = "Gillian Ford", email = "gillian@qoherent.ai" }
]
keywords = [
"radio",
"rf",
"sdr",
"software-defined radio",
"signal processing",
"wireless",
"machine learning",
"radio intelligence"
]
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Natural Language :: English",
"Operating System :: POSIX :: Linux",
"Topic :: Education",
"Topic :: Scientific/Engineering",
"Topic :: Communications :: Ham Radio",
"Topic :: Software Development :: Libraries",
"Typing :: Typed"
]
dependencies = [
"numpy (==1.26.4)", # Pinned at 1.26.4 for compatibility with Radioconda
"scipy (<1.16)",
"sigmf (>=1.2.10,<2.0.0)",
"quantiphy (>=2.20,<3.0)",
"plotly (>=6.3.0,<7.0.0)",
"h5py (>=3.14.0,<4.0.0)",
"pandas (>=2.3.2,<3.0.0)",
"pyzmq (>=27.1.0,<28.0.0)",
"pyyaml (>=6.0.3,<7.0.0)",
"click (>=8.1.0,<9.0.0)",
"matplotlib (>=3.8.0,<4.0.0)"
]
# [project.optional-dependencies] Commented out to prevent Tox tests from failing
# # SDR hardware-specific dependencies (optional installs)
# rtlsdr = ["pyrtlsdr>=0.2.9"]
# pluto = ["pyadi-iio>=0.0.14"]
# usrp = [] # Requires system UHD installation
# hackrf = ["pyhackrf>=0.2.0"]
# bladerf = [] # Requires system libbladerf installation
# thinkrf = ["pyrf>=2.8.0"] # NOTE: Requires lib2to3 post-install fix (see docs/)
# All SDR hardware support
all-sdr = [
"pyrtlsdr>=0.2.9",
"pyadi-iio>=0.0.14",
"pyhackrf>=0.2.0",
"pyrf>=2.8.0",
]
[tool.poetry]
packages = [
{ include = "ria_toolkit_oss", from = "src" },
{ include = "ria_toolkit_oss_cli", from = "src" }
]
include = [
"**/*.so", # Required for Nuitkaification
]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.group.test.dependencies]
pytest = "^8.0.0"
tox = "^4.19.0"
fastapi = ">=0.111,<1.0"
uvicorn = {version = ">=0.29,<1.0", extras = ["standard"]}
onnxruntime = ">=1.17,<2.0"
httpx = ">=0.27,<1.0"
[tool.poetry.group.docs.dependencies]
sphinx = "^7.2.6"
sphinx-rtd-theme = "^2.0.0"
sphinx-autobuild = "^2024.2.4"
[tool.poetry.group.agent]
optional = true
[tool.poetry.group.agent.dependencies]
requests = ">=2.28,<3.0"
[tool.poetry.group.dev.dependencies]
flake8 = "^7.1.0"
black = "^26.3.1"
isort = "^5.13.2"
pylint = "^3.2.6" # For pyreverse, to automate the creation of UML diagrams
[tool.poetry.urls]
"Qoherent" = "https://qoherent.ai/"
"Source" = "https://riahub.ai/qoherent/ria-toolkit-oss"
"Issues Board" = "https://riahub.ai/qoherent/ria-toolkit-oss/issues"
[tool.poetry.scripts]
ria = "ria_toolkit_oss_cli.cli:cli"
ria-tools = "ria_toolkit_oss_cli.cli:cli"
ria-server = "ria_toolkit_oss.server.cli:serve"
ria-agent = "ria_toolkit_oss.agent:main"
[tool.poetry.group.server.dependencies]
fastapi = ">=0.111,<1.0"
uvicorn = {version = ">=0.29,<1.0", extras = ["standard"]}
onnxruntime = ">=1.17,<2.0"
[tool.black]
line-length = 119
target-version = ["py310"]
exclude = '''
/(
\.git
| \.riahub
| \.tox
| build
| dist
| docs
| venv
| \.venv
| env
| \.env
| \.idea
| \.vscode
| _external
)/
'''
[tool.pytest.ini_options]
pythonpath = ["src"]
[tool.isort]
profile = "black"