Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
flockwave-server / pyproject.toml
Size: Mime:
[project]
name = "flockwave-server"
version = "2.40.2"
description = "Skybrush server component"
authors = [
  { name = "Tamas Nepusz", email = "tamas@collmot.com" },
  { name = "Gabor Vasarhelyi", email = "vasarhelyi@collmot.com" },
]
license = "GPL-3.0-or-later"
requires-python = ">=3.10,<4.0"
dependencies = [
  "bidict>=0.23.1",
  "click>=8.2.1",
  "blinker>=1.9.0",
  "python-baseconv>=1.2.2",
  "pynmea2>=1.19.0",
  "trio>=0.30.0",
  "quart>=0.20.0",
  "quart-trio>=0.12.0",
  "trio-util>=0.8.0",
  "python-dotenv>=1.1.0",
  "colour>=0.1.5",
  "pyjwt>=2.10.1",
  "hypercorn[trio]>=0.17.3",
  "passlib[bcrypt]>=1.7.4",
  "flockwave-app-framework[daemon]>=3.6.0",
  "flockwave-async>=2.2.1",
  "flockwave-conn[rpc,serial]>=9.1.0",
  "flockwave-ext>=1.27.0",
  "flockwave-gps>=4.0.0",
  "flockwave-logger>=2.1.1",
  "flockwave-mavlink>=0.6.0",
  "flockwave-net[async]>=8.1.0",
  "flockwave-parsers>=4.0.1",
  "flockwave-spec[validation]>=2.4.0",
  "pyledctrl>=4.1.0",
  "aiocflib>=4.1.0",
  "crcmod-plus>=2.1.0",
  "msgpack>=1.1.1",
  "aio-usb-hotplug>=7.0.0",
  "pyserial>=3.5",
  "compose>=1.6.2",
  "adrenaline>=4.0.1",
  "httpx>=0.28.1",
  "igrf-model>=1.1.4",
  "deprecated>=1.2.18",
  "unidecode>=1.4.0",
  "wrapt>=1.17.2",
  "cachetools>=6.1.0",
  "platformdirs>=4.3.8",
  "fastjsonschema>=2.21.1",
  "orjson>=3.10.18",
]

[project.scripts]
skybrushd = "flockwave.server.launcher:start"
skybrush-gateway = "flockwave.gateway.launcher:start"
skybrush-proxy = "flockwave.proxy.launcher:start"

[project.optional-dependencies]
all = ["flockwave-server[collmot,pro]"]
collmot = [
  "flockwave-server[pro]",
  "flockwave-flockctrl>=4.0.0",
  "skybrush-ext-dock>=1.2.0",
  "skybrush-ext-flockctrl>=4.0.3",
]
pro = [
  "skybrush-ext-firmware-update>=0.5.0",
  "skybrush-ext-flight-report>=1.0.3",
  "skybrush-ext-map-cache>=1.1.1",
  "skybrush-ext-show-pro>=0.4.0",
  "skybrush-ext-sidekick>=1.1.1",
  "skybrush-ext-skynet>=0.6.0",
  "skybrush-ext-studio>=1.2.2",
  "skybrush-ext-timecode>=1.4.1",
  "skybrush-lib-mission-planning>=2.4.1",
  "skybrush-opt-rs",
  "skybrush-studio",
  "skynet",
]

[tool.uv.build-backend]
module-name = "flockwave"
namespace = true

[[tool.uv.index]]
name = "collmot"
url = "https://pypi.collmot.com/"
explicit = true

[[tool.uv.index]]
name = "fury"
url = "https://pypi.fury.io/skybrush/"
publish-url = "https://pypi.fury.io/skybrush/"

[tool.uv.sources]
flockwave-app-framework = { index = "fury" }
flockwave-async = { index = "fury" }
flockwave-conn = { index = "fury" }
flockwave-ext = { index = "fury" }
flockwave-flockctrl = { index = "collmot" }
flockwave-gps = { index = "fury" }
flockwave-logger = { index = "fury" }
flockwave-mavlink = { index = "fury" }
flockwave-net = { index = "fury" }
flockwave-parsers = { index = "fury" }
flockwave-spec = { index = "fury" }
pyledctrl = { index = "fury" }
skybrush-ext-dock = { index = "collmot" }
skybrush-ext-firmware-update = { index = "collmot" }
skybrush-ext-flight-report = { index = "collmot" }
skybrush-ext-flockctrl = { index = "collmot" }
skybrush-ext-map-cache = { index = "collmot" }
skybrush-ext-show-pro = { index = "collmot" }
skybrush-ext-skynet = { index = "collmot" }
skybrush-ext-sidekick = { index = "collmot" }
skybrush-ext-studio = { index = "collmot" }
skybrush-ext-timecode = { index = "collmot" }
skybrush-lib-mission-planning = { index = "collmot" }
skybrush-opt-rs = { index = "collmot" }
skybrush-studio = { index = "collmot" }
skynet = { index = "collmot" }

[dependency-groups]
dev = [
  # do not add flockwave-server[all] here because it would cause problems for
  # users working with the open-source version
  "coverage[toml]>=7.9.1",
  "pytest>=8.4.1",
  "pytest-cov>=6.2.1",
  "pytest-trio>=0.8.0",
  "pdoc>=15.0.4",
  "pytest-datadir>=1.8.0",
]

[tool.pytest.ini_options]
trio_mode = 1

[tool.ruff]
lint.ignore = ["B905", "C901", "E402", "E501"]
lint.select = ["B", "C", "E", "F", "W"]
extend-exclude = ["src/flockwave/server/ext/socketio/vendor"]

[build-system]
requires = ["uv_build>=0.8.0"]
build-backend = "uv_build"