[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"] filterwarnings = [ # FastAPI emits this internally when handling 422 responses; the constant # is not yet renamed in the installed starlette version, so we can't migrate. "ignore:'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated:DeprecationWarning", ] [tool.isort] profile = "black"