[project]
name = "blueye.sdk"
version = "2.6.0"
license = { file = "LICENSE" }
description = "SDK for controlling Blueye underwater drones"
authors = [{ name = "Blueye Robotics", email = "contact@blueye.no" }]
requires-python = ">=3.10, <4"
readme = "README.md"
keywords = [
    "Blueye",
    "Robotics",
    "SDK",
    "Software Development Kit",
]
dependencies = [
    "requests>=2.22.0,<3",
    "tabulate>=0.9,<0.10",
    "packaging>=24.2",
    "blueye.protocol>=3.2.0,<4",
    "python-dateutil>=2.8.2,<3",
    "pyzmq~=26.0",
    "proto-plus>=1.22.2,<2",
]

[project.optional-dependencies]
# These are dependencies that are not necessary for the core functionality of the SDK, but are
# necessary for some of the examples.
examples = [
    "inputs>=0.5,<0.6",
    "asciimatics>=1.11.0,<2",
    "pandas~=2.2",
    "matplotlib~=3.10",
    "webdavclient3>=3.14.6,<4",
    "foxglove_websocket>=0.1.2,<0.2",
    "pyserial~=3.5",
    "mcap-protobuf-support>=0.5.3,<0.6",
]

[project.urls]
Homepage = "https://www.blueyerobotics.com"
Repository = "https://github.com/blueye-robotics/blueye.sdk"

[dependency-groups]
dev = [
    "pytest~=8.3",
    "pytest-mock~=3.11",
    "mike~=2.1",
    "mkdocs~=1.5",
    "mkdocs-material~=9.5",
    "mkdocs-macros-plugin~=1.0",
    "pymdown-extensions~=10.14",
    "pre-commit~=4.0",
    "black~=24.3",
    "pytest-cov~=6.0",
    "requests-mock~=1.11",
    "freezegun~=1.2",
    "mkdocstrings[python]>=0.27.0,<0.28",
    "mkdocs-gen-files>=0.5.0,<0.6",
]

[tool.hatch.build.targets.sdist]
include = [
    "blueye",
]
artifacts = [
    "blueye.sdk_docs/**/*",
]

[tool.hatch.build.targets.wheel]
include = [
    "blueye",
]
artifacts = [
    "blueye.sdk_docs/**/*",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.black]
line-length = 100
target-version = ['py310', 'py311', 'py312', 'py313']

[tool.pytest.ini_options]
markers = "connected_to_drone: a mark for test that can only be run when connected to a drone, useful when developing"

addopts = "--cov=blueye --cov-report=xml:coverage.xml --cov-report=html --cov-append"
