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:
pyhulaxpublic API packagepyhulax.core,pyhulax.fylo,pyhulax.system,pyhulax.control,pyhulax.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 pyhulax import DroneAPI
from pyhulax.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 pyhulax 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
pyhulax/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 helpersvision: ONNX-based detection helpersweb: browser streaming helpersdb: 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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyhulax-0.2.0.tar.gz.
File metadata
- Download URL: pyhulax-0.2.0.tar.gz
- Upload date:
- Size: 147.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2c7c516dae5bc8e99253dddc17baf9f2679be56d540461a7d3d4f41e2efd955
|
|
| MD5 |
dc27a47843d3ec206babc05aaa82a746
|
|
| BLAKE2b-256 |
38287f471d205a5b82781df5abfd76d93f60da508c9f2f5f0ee4688fca0ca35f
|
Provenance
The following attestation bundles were made for pyhulax-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on XENOPSAE/pyhulax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhulax-0.2.0.tar.gz -
Subject digest:
b2c7c516dae5bc8e99253dddc17baf9f2679be56d540461a7d3d4f41e2efd955 - Sigstore transparency entry: 1349153383
- Sigstore integration time:
-
Permalink:
XENOPSAE/pyhulax@bb8ee948ad2773986f9c2195cf5bbd11d60675c3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/XENOPSAE
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bb8ee948ad2773986f9c2195cf5bbd11d60675c3 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pyhulax-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pyhulax-0.2.0-py3-none-any.whl
- Upload date:
- Size: 153.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14cfe5b89dc7c76494531455251e525ceafbad7d1ba94966c36e1e67eef09eef
|
|
| MD5 |
936cb4f50338a507fec44374ba4ee1ff
|
|
| BLAKE2b-256 |
e2957ab18061dac79dae538191dcb76b51df4589d731d8012b65cc7b79242a6e
|
Provenance
The following attestation bundles were made for pyhulax-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on XENOPSAE/pyhulax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyhulax-0.2.0-py3-none-any.whl -
Subject digest:
14cfe5b89dc7c76494531455251e525ceafbad7d1ba94966c36e1e67eef09eef - Sigstore transparency entry: 1349153597
- Sigstore integration time:
-
Permalink:
XENOPSAE/pyhulax@bb8ee948ad2773986f9c2195cf5bbd11d60675c3 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/XENOPSAE
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bb8ee948ad2773986f9c2195cf5bbd11d60675c3 -
Trigger Event:
workflow_dispatch
-
Statement type: