pyMAVLinCS 1.0.5__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyMAVLinCS
3
- Version: 1.0.5
3
+ Version: 1.2.0
4
4
  Summary: Python API for autonomous drone control based on pymavlink
5
5
  Author-email: Noah Redon <redonnoah.cs@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -17,6 +17,7 @@ Dynamic: license-file
17
17
 
18
18
  <p align="center">
19
19
  <img alt="License_new" src="https://img.shields.io/badge/License-GPL%20v3-yellow">
20
+ <a href="https://github.com/noahredon/pyMAVLinCS/actions/workflows/test.yml"><img alt="Tests" src="https://img.shields.io/github/actions/workflow/status/noahredon/pyMAVLinCS/test.yml?branch=main&label=tests&logo=github"></a>
20
21
  <img alt="GitHub" src="https://img.shields.io/badge/github-noahredon-blue?logo=github">
21
22
  <img alt="Python" src="https://img.shields.io/badge/Python-grey?logo=python">
22
23
  </p>
@@ -124,6 +125,7 @@ pyMAVLinCS is designed as a focused Python library, utilizing highly optimized c
124
125
  | **Python** | Primary development language for the API. | Provides a clean, readable syntax ideal for complex robotics and scientific computation. |
125
126
  | **pymavlink** | Core dependency for MAVLink protocol communication. | Essential library for parsing, generating, and transmitting MAVLink messages to flight controllers. |
126
127
  | **geopy** | Dependency for geographic calculations. | Provides accurate tools for distance, azimuth, and coordinate transformation necessary for mission planning. |
128
+ | **pytest** | Testing framework for unit and SITL integration tests. | Provides an extensible framework for running automated tests with simulated drones (ArduPilot SITL). |
127
129
  | **setuptools** | Build system component. | Standard tool used for packaging and distributing Python projects, defining the required metadata. |
128
130
  | **wheel** | Build system component. | Enables the creation of standardized binary distribution packages for faster installation. |
129
131
 
@@ -146,11 +148,20 @@ The project structure is organized to separate the core MAVLink interface, suppo
146
148
  │ ├── 📄 mcc_creation.py # Example script showing MCC object usage
147
149
  │ ├── 📄 __init__.py # Initialization file for examples package
148
150
  │ └── 📄 connection_test.py # Script to test basic flight controller connectivity
149
- ├── 📂 tests/ # Placeholder directory for test files
151
+ ├── 📂 tests/ # Automated test suite (unit and SITL integration tests)
152
+ │ ├── 📄 conftest.py # Pytest configuration and SITL fixtures
153
+ │ ├── 📄 test_basic.py # Basic connectivity & initialization tests
154
+ │ ├── 📄 test_commands.py # MAVLink command execution tests
155
+ │ ├── 📄 test_control.py # Drone control & navigation tests
156
+ │ ├── 📄 test_math.py # Mathematical and geographic utility tests
157
+ │ ├── 📄 test_mcc.py # Mission Control Code tests
158
+ │ ├── 📄 test_telemetry.py # Real-time telemetry tests
150
159
  │ └── 📄 __init__.py # Initialization file for tests package
151
160
  ├── 📂 .github/ # GitHub configuration
152
- │ └── 📂 workflows/ # Continuous Integration workflows
153
- │ └── 📄 publish.yml # Workflow for package publication (e.g., PyPI)
161
+ │ └── 📂 workflows/ # Continuous Integration & Delivery workflows
162
+ │ ├── 📄 test.yml # CI workflow (pytest with ArduPilot SITL)
163
+ │ └── 📄 publish.yml # CD workflow for package publication (PyPI)
164
+ ├── 📄 pytest.ini # Pytest configuration file
154
165
  ├── 📄 pyproject.toml # Project metadata, dependencies, and build requirements
155
166
  ├── 📄 LICENSE # Project License (GPL-3.0-or-later)
156
167
  ├── 📄 README.md # Project documentation (this file)
@@ -330,9 +341,12 @@ We welcome contributions to improve pyMAVLinCS! Your input helps make this proje
330
341
  git checkout -b feature/new-telemetry-endpoint
331
342
  ```
332
343
  3. **Make your changes** - Improve code, documentation, or features within the `pyMAVLinCS/` directory.
333
- 4. **Test thoroughly** - Ensure all existing and new functionality works as expected. While no external testing suite (like pytest) is available right now, manual verification of functionality is crucial.
344
+ 4. **Test thoroughly** - Ensure all existing and new functionality works as expected. Automated tests run on push and PR via GitHub Actions using ArduPilot SITL. You can run the test suite locally with `pytest`:
334
345
  ```bash
335
- # Execute existing test files or examples:
346
+ # Run the automated test suite:
347
+ pytest tests/
348
+
349
+ # Or execute manual test scripts / examples:
336
350
  python examples/connection_test.py
337
351
  ```
338
352
  5. **Commit your changes** - Write clear, descriptive commit messages.
@@ -3,6 +3,7 @@
3
3
 
4
4
  <p align="center">
5
5
  <img alt="License_new" src="https://img.shields.io/badge/License-GPL%20v3-yellow">
6
+ <a href="https://github.com/noahredon/pyMAVLinCS/actions/workflows/test.yml"><img alt="Tests" src="https://img.shields.io/github/actions/workflow/status/noahredon/pyMAVLinCS/test.yml?branch=main&label=tests&logo=github"></a>
6
7
  <img alt="GitHub" src="https://img.shields.io/badge/github-noahredon-blue?logo=github">
7
8
  <img alt="Python" src="https://img.shields.io/badge/Python-grey?logo=python">
8
9
  </p>
@@ -110,6 +111,7 @@ pyMAVLinCS is designed as a focused Python library, utilizing highly optimized c
110
111
  | **Python** | Primary development language for the API. | Provides a clean, readable syntax ideal for complex robotics and scientific computation. |
111
112
  | **pymavlink** | Core dependency for MAVLink protocol communication. | Essential library for parsing, generating, and transmitting MAVLink messages to flight controllers. |
112
113
  | **geopy** | Dependency for geographic calculations. | Provides accurate tools for distance, azimuth, and coordinate transformation necessary for mission planning. |
114
+ | **pytest** | Testing framework for unit and SITL integration tests. | Provides an extensible framework for running automated tests with simulated drones (ArduPilot SITL). |
113
115
  | **setuptools** | Build system component. | Standard tool used for packaging and distributing Python projects, defining the required metadata. |
114
116
  | **wheel** | Build system component. | Enables the creation of standardized binary distribution packages for faster installation. |
115
117
 
@@ -132,11 +134,20 @@ The project structure is organized to separate the core MAVLink interface, suppo
132
134
  │ ├── 📄 mcc_creation.py # Example script showing MCC object usage
133
135
  │ ├── 📄 __init__.py # Initialization file for examples package
134
136
  │ └── 📄 connection_test.py # Script to test basic flight controller connectivity
135
- ├── 📂 tests/ # Placeholder directory for test files
137
+ ├── 📂 tests/ # Automated test suite (unit and SITL integration tests)
138
+ │ ├── 📄 conftest.py # Pytest configuration and SITL fixtures
139
+ │ ├── 📄 test_basic.py # Basic connectivity & initialization tests
140
+ │ ├── 📄 test_commands.py # MAVLink command execution tests
141
+ │ ├── 📄 test_control.py # Drone control & navigation tests
142
+ │ ├── 📄 test_math.py # Mathematical and geographic utility tests
143
+ │ ├── 📄 test_mcc.py # Mission Control Code tests
144
+ │ ├── 📄 test_telemetry.py # Real-time telemetry tests
136
145
  │ └── 📄 __init__.py # Initialization file for tests package
137
146
  ├── 📂 .github/ # GitHub configuration
138
- │ └── 📂 workflows/ # Continuous Integration workflows
139
- │ └── 📄 publish.yml # Workflow for package publication (e.g., PyPI)
147
+ │ └── 📂 workflows/ # Continuous Integration & Delivery workflows
148
+ │ ├── 📄 test.yml # CI workflow (pytest with ArduPilot SITL)
149
+ │ └── 📄 publish.yml # CD workflow for package publication (PyPI)
150
+ ├── 📄 pytest.ini # Pytest configuration file
140
151
  ├── 📄 pyproject.toml # Project metadata, dependencies, and build requirements
141
152
  ├── 📄 LICENSE # Project License (GPL-3.0-or-later)
142
153
  ├── 📄 README.md # Project documentation (this file)
@@ -316,9 +327,12 @@ We welcome contributions to improve pyMAVLinCS! Your input helps make this proje
316
327
  git checkout -b feature/new-telemetry-endpoint
317
328
  ```
318
329
  3. **Make your changes** - Improve code, documentation, or features within the `pyMAVLinCS/` directory.
319
- 4. **Test thoroughly** - Ensure all existing and new functionality works as expected. While no external testing suite (like pytest) is available right now, manual verification of functionality is crucial.
330
+ 4. **Test thoroughly** - Ensure all existing and new functionality works as expected. Automated tests run on push and PR via GitHub Actions using ArduPilot SITL. You can run the test suite locally with `pytest`:
320
331
  ```bash
321
- # Execute existing test files or examples:
332
+ # Run the automated test suite:
333
+ pytest tests/
334
+
335
+ # Or execute manual test scripts / examples:
322
336
  python examples/connection_test.py
323
337
  ```
324
338
  5. **Commit your changes** - Write clear, descriptive commit messages.