Skip to main content

Python API for controlling HG-Fly F09-lite drones via MAVLink

Project description

pyhulaX

Python API for controlling the HG-Fly F09-lite / Hula drone over MAVLink.

This branch packages the drone SDK only:

  • droneapi public API package
  • pypack.core, pypack.fylo, pypack.system, pypack.control, pypack.logging
  • optional video, vision, web, and database extras

It does not publish the maze solver, dashboard, CLI, or competition assets.

Install

Base API only:

pip install pyhulaX

With optional extras:

pip install "pyhulaX[video]"
pip install "pyhulaX[vision]"
pip install "pyhulaX[web]"
pip install "pyhulaX[db]"
pip install "pyhulaX[all]"

Quick Start

from droneapi import DroneAPI
from pypack.core import Direction

with DroneAPI() as drone:
    drone.connect("192.168.100.1")
    drone.takeoff()
    drone.move(Direction.FORWARD, 100)
    battery = drone.get_battery()
    print(f"Battery: {battery}%")
    drone.land()

Configured defaults:

from droneapi import DroneAPI, DroneConfig, MediaConfig, NetworkConfig

config = DroneConfig(
    network=NetworkConfig(
        drone_ip="192.168.100.1",
        tcp_port=8888,
        web_port=5000,
    ),
    media=MediaConfig(
        base_dir="media",
        photo_dir="photos",
    ),
)

drone = DroneAPI(config=config)
drone.connect()  # uses config.network.drone_ip by default

The SDK’s default settings are loaded from packaged files in pypack/config/*.json. Passing DroneConfig(...) only overrides the keys you explicitly set.

Full SDK docs live in docs/sdk/README.md. Auto-generated API reference is configured with MkDocs + mkdocstrings in mkdocs.yml.

Optional Features

  • video: RTP decoding, OpenCV display, recording helpers
  • vision: ONNX-based detection helpers
  • web: browser streaming helpers
  • db: async PostgreSQL flight logging

The core API imports cleanly without these extras installed.

Public API Areas

  • connection lifecycle
  • takeoff, landing, movement, rotation
  • telemetry and obstacle sensing
  • manual control
  • media listing, download, and delete
  • optional video streaming
  • optional structured logging

Local Verification

Run tests from the project venv:

.venv/bin/python -m pytest -q

Build the wheel:

uv build --wheel

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyhulax-0.1.1-cp313-cp313-manylinux_2_38_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

pyhulax-0.1.1-cp313-cp313-macosx_11_0_universal2.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ universal2 (ARM64, x86-64)

pyhulax-0.1.1-cp312-cp312-manylinux_2_38_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

pyhulax-0.1.1-cp312-cp312-macosx_11_0_universal2.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file pyhulax-0.1.1-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyhulax-0.1.1-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 bb81b727f9b408434f275f915444ad4ec128517d1a1bfb570594f2f25c6fb013
MD5 4529baafc67ad0f89652327deb49ec29
BLAKE2b-256 c679d21fd4fcc9772a7ea51f5b10e446915faf13a5b79cd4ec946c4af4f47696

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.1.1-cp313-cp313-manylinux_2_38_x86_64.whl:

Publisher: publish-pypi.yml on XENOPSAE/hula-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyhulax-0.1.1-cp313-cp313-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for pyhulax-0.1.1-cp313-cp313-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 c6586d43576aaaef0a1d8af1d7cdcca2759b9700754d8eafdddc8558cc4d1392
MD5 aeb1244bb1ee332f8566477b1d8418b9
BLAKE2b-256 9bf22c9913a61d74a99384de93bbf3167fef19ac4ccd0e59dfe2426e718f0e89

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.1.1-cp313-cp313-macosx_11_0_universal2.whl:

Publisher: publish-pypi.yml on XENOPSAE/hula-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyhulax-0.1.1-cp312-cp312-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyhulax-0.1.1-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 98c79d3f54a55b1e4de5df038563eac8258f31eca86fce78fa0a59c7a4314d1d
MD5 3087871351aceecbb1216f4b36b8d7ec
BLAKE2b-256 b0899a11b335898463145a2c81b3d0448f0f31672bbc285e7a934cdd557eace3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.1.1-cp312-cp312-manylinux_2_38_x86_64.whl:

Publisher: publish-pypi.yml on XENOPSAE/hula-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyhulax-0.1.1-cp312-cp312-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for pyhulax-0.1.1-cp312-cp312-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 a6ac8a5bc247cd98f850a16347ea04207f056c8d45ca3fc1a0131c92e55992a3
MD5 d2be26623c997add8db00d9da605231e
BLAKE2b-256 9c553488192965ffb01019b226133dfdb0c5b653b22cf021bcd93d9538b2aa66

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.1.1-cp312-cp312-macosx_11_0_universal2.whl:

Publisher: publish-pypi.yml on XENOPSAE/hula-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page