[build-system]
requires = ["setuptools>=75.0.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "pyubxutils"
dynamic = ["version"]
authors = [{ name = "Steve Smith", email = "semuadmin@semuconsulting.com" }]
maintainers = [{ name = "Steve Smith", email = "semuadmin@semuconsulting.com" }]
description = "UBX Protocol Command Line Utilities"
license = "BSD-3-Clause"
license-files = ["LICENSE"]
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
    "Operating System :: OS Independent",
    "Development Status :: 5 - Production/Stable",
    "Environment :: MacOS X",
    "Environment :: Win32 (MS Windows)",
    "Environment :: X11 Applications",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "Intended Audience :: End Users/Desktop",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
    "Topic :: Utilities",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Topic :: Scientific/Engineering :: GIS",
]

dependencies = ["pyserial>=3.5", "pyubx2>=1.2.58"]

[project.scripts]
ubxsetrate = "pyubxutils.ubxsetrate:main"
ubxsave = "pyubxutils.ubxsave:main"
ubxload = "pyubxutils.ubxload:main"
ubxsimulator = "pyubxutils.ubxsimulator_cli:main"
ubxcompare = "pyubxutils.ubxcompare:main"
ubxbase = "pyubxutils.ubxbase:main"

[project.urls]
homepage = "https://github.com/semuconsulting/pyubx2"
documentation = "https://www.semuconsulting.com/pyubx2/"
repository = "https://github.com/semuconsulting/pyubx2"
changelog = "https://github.com/semuconsulting/pyubx2/blob/master/RELEASE_NOTES.md"

[dependency-groups]
build = [
    "awscli",
    "build",
    "packaging>=24.2",
    "pip",
    "setuptools>=75.0.0",
    "twine>=6.1.0",
    "wheel",
]
test = [
    "bandit",
    "black",
    "isort",
    "pylint",
    "pytest",
    "pytest-cov",
    "Sphinx",
    "sphinx-rtd-theme",
]
deploy = [{ include-group = "build" }, { include-group = "test" }]

[tool.setuptools.dynamic]
version = { attr = "pyubxutils._version.__version__" }

[tool.black]
target-version = ['py310']

[tool.isort]
py_version = 310
profile = "black"

[tool.bandit]
exclude_dirs = ["docs", "examples", "references", "tests", ".venv"]
skips = []

[tool.pylint]
jobs = 0
reports = "y"
recursive = "y"
py-version = "3.10"
fail-under = "9.7"
fail-on = "E,F"
clear-cache-post-run = "y"
good-names = "i,j,x,y"
disable = """
    raw-checker-failed,
    bad-inline-option,
    locally-disabled,
    file-ignored,
    suppressed-message,
    useless-suppression,
    deprecated-pragma,
    use-symbolic-message-instead,
    logging-fstring-interpolation,
"""

[tool.pytest.ini_options]
minversion = "7.0"
addopts = "--cov --cov-report html"
pythonpath = ["src"]
testpaths = ["tests"]

[tool.coverage.run]
source = ["src"]

[tool.coverage.paths]
source = ["src"]

[tool.coverage.report]


[tool.coverage.html]
directory = "htmlcov"
