flightdata 0.2.23__tar.gz → 0.2.24__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.
- flightdata-0.2.24/.github/workflows/publish_pypi.yml +26 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/.vscode/settings.json +0 -1
- {flightdata-0.2.23/flightdata.egg-info → flightdata-0.2.24}/PKG-INFO +7 -21
- flightdata-0.2.24/pyproject.toml +23 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/__init__.py +6 -1
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/collection.py +8 -5
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/table.py +1 -1
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flight/flight.py +1 -1
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/origin.py +5 -1
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/state.py +7 -7
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_bindata.py +3 -3
- flightdata-0.2.24/test/test_state/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_state/test_state_builders.py +1 -1
- flightdata-0.2.24/uv.lock +301 -0
- flightdata-0.2.23/.github/workflows/publish_pypi.yml +0 -53
- flightdata-0.2.23/PKG-INFO +0 -52
- flightdata-0.2.23/flightdata.egg-info/SOURCES.txt +0 -87
- flightdata-0.2.23/flightdata.egg-info/dependency_links.txt +0 -1
- flightdata-0.2.23/flightdata.egg-info/entry_points.txt +0 -3
- flightdata-0.2.23/flightdata.egg-info/requires.txt +0 -15
- flightdata-0.2.23/flightdata.egg-info/top_level.txt +0 -1
- flightdata-0.2.23/pyproject.toml +0 -26
- flightdata-0.2.23/requirements-dev.txt +0 -7
- flightdata-0.2.23/requirements.txt +0 -6
- flightdata-0.2.23/setup.cfg +0 -4
- {flightdata-0.2.23 → flightdata-0.2.24}/.gitignore +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/.vscode/launch.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/LICENSE +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/README.md +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/data/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/flight_dynamics/00000150.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/flight_dynamics/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/flight_dynamics/box.f3a +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/flight_dynamics/param_id.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/state_analysis/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/state_analysis/axes.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/examples/state_analysis/state_fill_plot.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/constructs.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/labeling.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/base/numpy_encoder.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/bindata.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/coefficients.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/environment/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/environment/environment.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/environment/wind.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flight/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flight/ardupilot.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flight/fields.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flight/parameters.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/flow.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/model/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/model/aerodynamic.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/model/thrust.py +0 -0
- /flightdata-0.2.23/flightdata/schemas/__init__.py → /flightdata-0.2.24/src/flightdata/py.typed +0 -0
- {flightdata-0.2.23/test → flightdata-0.2.24/src/flightdata/schemas}/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/schemas/fcj.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/scripts/collect_logs.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24/src}/flightdata/scripts/flightline.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/EmailedBox.f3a +0 -0
- {flightdata-0.2.23/test/base → flightdata-0.2.24/test}/__init__.py +0 -0
- {flightdata-0.2.23/test/test_environment → flightdata-0.2.24/test/base}/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/base/test_base_constructs.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/base/test_table.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/conftest.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/bin_parser_GPS.csv +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/bin_parser_POS.csv +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/make_inputs.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/manual_F3A_P23.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/p23.BIN +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/p23.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/p23_box.f3a +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/p23_fc.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/p23_flight.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/vtol_hover.bin +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/vtol_hover.json +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/data/web_bin_parse.json +0 -0
- {flightdata-0.2.23/test/test_model → flightdata-0.2.24/test/test_environment}/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_environment/test_environment.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_environment/test_environment_wind.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_fields.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_flight.py +0 -0
- {flightdata-0.2.23/test/test_state → flightdata-0.2.24/test/test_model}/__init__.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_model/test_model_coefficients.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_model/test_model_flow.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_origin.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_state/test_state.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_state/test_state_conversions.py +0 -0
- {flightdata-0.2.23 → flightdata-0.2.24}/test/test_state/test_state_measurements.py +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Publish to PyPI and TestPyPI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- 'main'
|
|
6
|
+
jobs:
|
|
7
|
+
build:
|
|
8
|
+
name: Build and publish distribution
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Checkout repo
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Install uv
|
|
15
|
+
uses: astral-sh/setup-uv@v3
|
|
16
|
+
with:
|
|
17
|
+
enable-cache: true
|
|
18
|
+
cache-dependency-glob: uv.lock
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
run: uv python install 3.12
|
|
21
|
+
|
|
22
|
+
- name: Build
|
|
23
|
+
run: uv build
|
|
24
|
+
|
|
25
|
+
- name: Publish to PyPI
|
|
26
|
+
run: uv publish -t ${{ secrets.PYPI_TOKEN }}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: flightdata
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.24
|
|
4
|
+
Summary: Python tools for handling flight data
|
|
5
5
|
Author-email: Thomas David <thomasdavid0@gmail.com>
|
|
6
|
-
License: GNU GPL v3
|
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
|
8
6
|
Requires-Python: >=3.12
|
|
7
|
+
Requires-Dist: numpy>=2.1.3
|
|
8
|
+
Requires-Dist: pandas>=2.2.3
|
|
9
|
+
Requires-Dist: pfc-geometry>=0.2.13
|
|
9
10
|
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Requires-Dist: numpy
|
|
12
|
-
Requires-Dist: pandas
|
|
13
|
-
Requires-Dist: simplejson
|
|
14
|
-
Requires-Dist: pydantic
|
|
15
|
-
Requires-Dist: pfc-geometry>=0.2.12
|
|
16
|
-
Requires-Dist: json_stream
|
|
17
|
-
Provides-Extra: dev
|
|
18
|
-
Requires-Dist: numpy; extra == "dev"
|
|
19
|
-
Requires-Dist: pandas; extra == "dev"
|
|
20
|
-
Requires-Dist: simplejson; extra == "dev"
|
|
21
|
-
Requires-Dist: pydantic; extra == "dev"
|
|
22
|
-
Requires-Dist: pfc-geometry>=0.2.12; extra == "dev"
|
|
23
|
-
Requires-Dist: ardupilot-log-reader>=0.3.3; extra == "dev"
|
|
24
|
-
Requires-Dist: pytest; extra == "dev"
|
|
25
11
|
|
|
26
12
|
## FlightData
|
|
27
13
|
This repo is contains a set of datastructures and tools for handling flight log data.
|
|
@@ -49,4 +35,4 @@ pip install pfc-geometry
|
|
|
49
35
|
|
|
50
36
|
```bash
|
|
51
37
|
pip install .
|
|
52
|
-
```
|
|
38
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "flightdata"
|
|
3
|
+
version = "v0.2.24"
|
|
4
|
+
description = "Python tools for handling flight data"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
authors = [{ name = "Thomas David", email = "thomasdavid0@gmail.com" }]
|
|
7
|
+
requires-python = ">=3.12"
|
|
8
|
+
dependencies = [
|
|
9
|
+
"numpy>=2.1.3",
|
|
10
|
+
"pandas>=2.2.3",
|
|
11
|
+
"pfc-geometry>=0.2.13",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[build-system]
|
|
15
|
+
requires = ["hatchling"]
|
|
16
|
+
build-backend = "hatchling.build"
|
|
17
|
+
|
|
18
|
+
[tool.uv.sources]
|
|
19
|
+
pfc-geometry = { path = "../geometry" , editable = true }
|
|
20
|
+
ardupilot_log_reader = { path = "../ArdupilotLogReader" , editable = true }
|
|
21
|
+
|
|
22
|
+
[dependency-groups]
|
|
23
|
+
dev = ["ardupilot_log_reader>=0.3.5", "pymavlink>=2.4.42", "pytest>=8.3.3"]
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
from .table import Table, Constructs, SVar
|
|
2
2
|
from .collection import Collection
|
|
3
3
|
from .numpy_encoder import NumpyEncoder
|
|
4
|
+
from numbers import Number
|
|
4
5
|
|
|
5
6
|
def to_list(obj):
|
|
6
|
-
if
|
|
7
|
+
if obj is None:
|
|
8
|
+
return []
|
|
9
|
+
elif hasattr(obj, 'tolist'):
|
|
7
10
|
return obj.tolist()
|
|
11
|
+
elif obj is None:
|
|
12
|
+
return None
|
|
8
13
|
else:
|
|
9
14
|
return list(obj)
|
|
@@ -66,7 +66,7 @@ class Collection:
|
|
|
66
66
|
def from_dict(cls, vals: dict[str, dict[str, Any]]) -> Self:
|
|
67
67
|
return cls([cls.VType.from_dict(v) for v in vals.values()])
|
|
68
68
|
|
|
69
|
-
def add(self, v:
|
|
69
|
+
def add(self, v: T | Self, inplace=True) -> Self:
|
|
70
70
|
odata = self.data.copy()
|
|
71
71
|
if isinstance(v, self.VType):
|
|
72
72
|
odata[getattr(v, self.uid)] = v
|
|
@@ -86,12 +86,15 @@ class Collection:
|
|
|
86
86
|
coll.add(v)
|
|
87
87
|
return coll
|
|
88
88
|
|
|
89
|
-
def add_start(self, v:
|
|
89
|
+
def add_start(self, v: T | Self, inplace=True) -> Self:
|
|
90
|
+
ocol = self.copy() if not inplace else self
|
|
90
91
|
if isinstance(v, self.VType):
|
|
91
|
-
|
|
92
|
+
ocol.data.update({getattr(v, ocol.uid): v})
|
|
92
93
|
elif isinstance(v, self.__class__):
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
ocol.data = dict(**v.data, **ocol.data)
|
|
95
|
+
else:
|
|
96
|
+
raise TypeError(f"Expected a {self.__class__.__name__} or a {self.VType}")
|
|
97
|
+
return ocol
|
|
95
98
|
|
|
96
99
|
def next_free_name(self, prefix: str) -> str:
|
|
97
100
|
i=0
|
|
@@ -16,7 +16,7 @@ import numpy as np
|
|
|
16
16
|
import pandas as pd
|
|
17
17
|
from .fields import fields, Field
|
|
18
18
|
from geometry import GPS, Point, P0
|
|
19
|
-
from geometry.
|
|
19
|
+
from geometry.checks import assert_almost_equal
|
|
20
20
|
from time import time
|
|
21
21
|
from json import load, dump
|
|
22
22
|
from flightdata.base.numpy_encoder import NumpyEncoder
|
|
@@ -266,7 +266,7 @@ class State(Table):
|
|
|
266
266
|
test="startswith" if subels else None, element=element
|
|
267
267
|
)
|
|
268
268
|
|
|
269
|
-
def
|
|
269
|
+
def body_rotate(self: State, r: g.Point) -> State:
|
|
270
270
|
"""Rotate body axis by an axis angle"""
|
|
271
271
|
att = self.att.body_rotate(r)
|
|
272
272
|
q = att.inverse() * self.att
|
|
@@ -317,13 +317,13 @@ class State(Table):
|
|
|
317
317
|
if not flow:
|
|
318
318
|
env = Environment.from_constructs(self.time)
|
|
319
319
|
flow = Flow.build(self, env)
|
|
320
|
-
return self.
|
|
320
|
+
return self.body_rotate(-g.Point(0, 1, 0) * flow.alpha)
|
|
321
321
|
|
|
322
322
|
def stability_to_wind(self: State, flow: Flow = None) -> State:
|
|
323
323
|
if not flow:
|
|
324
324
|
env = Environment.from_constructs(self.time)
|
|
325
325
|
flow = Flow.build(self, env)
|
|
326
|
-
return self.
|
|
326
|
+
return self.body_rotate(g.Point(0, 0, 1) * flow.beta)
|
|
327
327
|
|
|
328
328
|
def body_to_wind(self: State, flow: Flow = None) -> State:
|
|
329
329
|
return self.body_to_stability(flow).stability_to_wind(flow)
|
|
@@ -346,7 +346,7 @@ class State(Table):
|
|
|
346
346
|
yaw_rotation = (jwind + self.vel).angles(g.PX()) * g.Point(0, 0, 1)
|
|
347
347
|
|
|
348
348
|
# transform the data by this yaw rotation:
|
|
349
|
-
int_axis = self.
|
|
349
|
+
int_axis = self.body_rotate(yaw_rotation)
|
|
350
350
|
|
|
351
351
|
# the local wind vector in the intermediate frame:
|
|
352
352
|
intwind = int_axis.att.inverse().transform_point(env.wind)
|
|
@@ -355,11 +355,11 @@ class State(Table):
|
|
|
355
355
|
pitch_rotation = (intwind + int_axis.vel).angles(g.PX()) * g.Point(0, 1, 0)
|
|
356
356
|
|
|
357
357
|
# transform by this pitch rotation to get the wind axis state
|
|
358
|
-
return int_axis.
|
|
358
|
+
return int_axis.body_rotate(pitch_rotation)
|
|
359
359
|
|
|
360
360
|
def wind_to_body(self: State, flow: Flow) -> State:
|
|
361
|
-
stability_axis = self.
|
|
362
|
-
body_axis = stability_axis.
|
|
361
|
+
stability_axis = self.body_rotate(-g.Point(0, 0, 1) * flow.beta)
|
|
362
|
+
body_axis = stability_axis.body_rotate(g.Point(0, 1, 0) * flow.alpha)
|
|
363
363
|
|
|
364
364
|
return body_axis
|
|
365
365
|
|
|
@@ -6,16 +6,16 @@ import pandas as pd
|
|
|
6
6
|
from ardupilot_log_reader import Ardupilot
|
|
7
7
|
from flightdata import Flight
|
|
8
8
|
from datetime import datetime
|
|
9
|
-
|
|
9
|
+
from pathlib import Path
|
|
10
10
|
|
|
11
11
|
@fixture(scope="session")
|
|
12
12
|
def bin_parser():
|
|
13
|
-
return Ardupilot.parse("
|
|
13
|
+
return Ardupilot.parse(Path(__file__).parent / "data/p23.BIN", types=Flight.ardupilot_types)
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
@fixture(scope="session")
|
|
17
17
|
def web_json():
|
|
18
|
-
with open("
|
|
18
|
+
with open(Path(__file__).parent / "data/web_bin_parse.json", "r") as f:
|
|
19
19
|
return load(f)
|
|
20
20
|
|
|
21
21
|
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from flightdata import Flight, State, Origin, BinData, fcj
|
|
2
2
|
from pytest import approx, fixture
|
|
3
3
|
from geometry import Transformation, PX, PY, P0, Time
|
|
4
|
-
from geometry.
|
|
4
|
+
from geometry.checks import assert_almost_equal
|
|
5
5
|
import numpy as np
|
|
6
6
|
from time import sleep, time
|
|
7
7
|
from json import load
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
version = 1
|
|
2
|
+
requires-python = ">=3.12"
|
|
3
|
+
|
|
4
|
+
[[package]]
|
|
5
|
+
name = "ardupilot-log-reader"
|
|
6
|
+
version = "0.3.5"
|
|
7
|
+
source = { editable = "../ArdupilotLogReader" }
|
|
8
|
+
dependencies = [
|
|
9
|
+
{ name = "numpy" },
|
|
10
|
+
{ name = "pandas" },
|
|
11
|
+
{ name = "pymavlink" },
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[package.metadata]
|
|
15
|
+
requires-dist = [
|
|
16
|
+
{ name = "numpy", specifier = ">=2.1.3" },
|
|
17
|
+
{ name = "pandas", specifier = ">=2.2.3" },
|
|
18
|
+
{ name = "pymavlink", specifier = ">=2.4.42" },
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
[package.metadata.requires-dev]
|
|
22
|
+
dev = [{ name = "pytest", specifier = ">=8.3.3" }]
|
|
23
|
+
lint = [{ name = "ruff", specifier = ">=0.7.3" }]
|
|
24
|
+
|
|
25
|
+
[[package]]
|
|
26
|
+
name = "colorama"
|
|
27
|
+
version = "0.4.6"
|
|
28
|
+
source = { registry = "https://pypi.org/simple" }
|
|
29
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
|
|
30
|
+
wheels = [
|
|
31
|
+
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[[package]]
|
|
35
|
+
name = "flightdata"
|
|
36
|
+
version = "0.2.24"
|
|
37
|
+
source = { editable = "." }
|
|
38
|
+
dependencies = [
|
|
39
|
+
{ name = "numpy" },
|
|
40
|
+
{ name = "pandas" },
|
|
41
|
+
{ name = "pfc-geometry" },
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[package.dev-dependencies]
|
|
45
|
+
dev = [
|
|
46
|
+
{ name = "ardupilot-log-reader" },
|
|
47
|
+
{ name = "pymavlink" },
|
|
48
|
+
{ name = "pytest" },
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[package.metadata]
|
|
52
|
+
requires-dist = [
|
|
53
|
+
{ name = "numpy", specifier = ">=2.1.3" },
|
|
54
|
+
{ name = "pandas", specifier = ">=2.2.3" },
|
|
55
|
+
{ name = "pfc-geometry", editable = "../geometry" },
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
[package.metadata.requires-dev]
|
|
59
|
+
dev = [
|
|
60
|
+
{ name = "ardupilot-log-reader", editable = "../ArdupilotLogReader" },
|
|
61
|
+
{ name = "pymavlink", specifier = ">=2.4.42" },
|
|
62
|
+
{ name = "pytest", specifier = ">=8.3.3" },
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
[[package]]
|
|
66
|
+
name = "future"
|
|
67
|
+
version = "1.0.0"
|
|
68
|
+
source = { registry = "https://pypi.org/simple" }
|
|
69
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a7/b2/4140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba/future-1.0.0.tar.gz", hash = "sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05", size = 1228490 }
|
|
70
|
+
wheels = [
|
|
71
|
+
{ url = "https://files.pythonhosted.org/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl", hash = "sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216", size = 491326 },
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
[[package]]
|
|
75
|
+
name = "iniconfig"
|
|
76
|
+
version = "2.0.0"
|
|
77
|
+
source = { registry = "https://pypi.org/simple" }
|
|
78
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
|
|
79
|
+
wheels = [
|
|
80
|
+
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
[[package]]
|
|
84
|
+
name = "lxml"
|
|
85
|
+
version = "5.3.0"
|
|
86
|
+
source = { registry = "https://pypi.org/simple" }
|
|
87
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/6b/20c3a4b24751377aaa6307eb230b66701024012c29dd374999cc92983269/lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f", size = 3679318 }
|
|
88
|
+
wheels = [
|
|
89
|
+
{ url = "https://files.pythonhosted.org/packages/eb/6d/d1f1c5e40c64bf62afd7a3f9b34ce18a586a1cccbf71e783cd0a6d8e8971/lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859", size = 8171753 },
|
|
90
|
+
{ url = "https://files.pythonhosted.org/packages/bd/83/26b1864921869784355459f374896dcf8b44d4af3b15d7697e9156cb2de9/lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e", size = 4441955 },
|
|
91
|
+
{ url = "https://files.pythonhosted.org/packages/e0/d2/e9bff9fb359226c25cda3538f664f54f2804f4b37b0d7c944639e1a51f69/lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f", size = 5050778 },
|
|
92
|
+
{ url = "https://files.pythonhosted.org/packages/88/69/6972bfafa8cd3ddc8562b126dd607011e218e17be313a8b1b9cc5a0ee876/lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e", size = 4748628 },
|
|
93
|
+
{ url = "https://files.pythonhosted.org/packages/5d/ea/a6523c7c7f6dc755a6eed3d2f6d6646617cad4d3d6d8ce4ed71bfd2362c8/lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179", size = 5322215 },
|
|
94
|
+
{ url = "https://files.pythonhosted.org/packages/99/37/396fbd24a70f62b31d988e4500f2068c7f3fd399d2fd45257d13eab51a6f/lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a", size = 4813963 },
|
|
95
|
+
{ url = "https://files.pythonhosted.org/packages/09/91/e6136f17459a11ce1757df864b213efbeab7adcb2efa63efb1b846ab6723/lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3", size = 4923353 },
|
|
96
|
+
{ url = "https://files.pythonhosted.org/packages/1d/7c/2eeecf87c9a1fca4f84f991067c693e67340f2b7127fc3eca8fa29d75ee3/lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1", size = 4740541 },
|
|
97
|
+
{ url = "https://files.pythonhosted.org/packages/3b/ed/4c38ba58defca84f5f0d0ac2480fdcd99fc7ae4b28fc417c93640a6949ae/lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d", size = 5346504 },
|
|
98
|
+
{ url = "https://files.pythonhosted.org/packages/a5/22/bbd3995437e5745cb4c2b5d89088d70ab19d4feabf8a27a24cecb9745464/lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c", size = 4898077 },
|
|
99
|
+
{ url = "https://files.pythonhosted.org/packages/0a/6e/94537acfb5b8f18235d13186d247bca478fea5e87d224644e0fe907df976/lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99", size = 4946543 },
|
|
100
|
+
{ url = "https://files.pythonhosted.org/packages/8d/e8/4b15df533fe8e8d53363b23a41df9be907330e1fa28c7ca36893fad338ee/lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff", size = 4816841 },
|
|
101
|
+
{ url = "https://files.pythonhosted.org/packages/1a/e7/03f390ea37d1acda50bc538feb5b2bda6745b25731e4e76ab48fae7106bf/lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a", size = 5417341 },
|
|
102
|
+
{ url = "https://files.pythonhosted.org/packages/ea/99/d1133ab4c250da85a883c3b60249d3d3e7c64f24faff494cf0fd23f91e80/lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8", size = 5327539 },
|
|
103
|
+
{ url = "https://files.pythonhosted.org/packages/7d/ed/e6276c8d9668028213df01f598f385b05b55a4e1b4662ee12ef05dab35aa/lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d", size = 5012542 },
|
|
104
|
+
{ url = "https://files.pythonhosted.org/packages/36/88/684d4e800f5aa28df2a991a6a622783fb73cf0e46235cfa690f9776f032e/lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30", size = 3486454 },
|
|
105
|
+
{ url = "https://files.pythonhosted.org/packages/fc/82/ace5a5676051e60355bd8fb945df7b1ba4f4fb8447f2010fb816bfd57724/lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f", size = 3816857 },
|
|
106
|
+
{ url = "https://files.pythonhosted.org/packages/94/6a/42141e4d373903bfea6f8e94b2f554d05506dfda522ada5343c651410dc8/lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a", size = 8156284 },
|
|
107
|
+
{ url = "https://files.pythonhosted.org/packages/91/5e/fa097f0f7d8b3d113fb7312c6308af702f2667f22644441715be961f2c7e/lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd", size = 4432407 },
|
|
108
|
+
{ url = "https://files.pythonhosted.org/packages/2d/a1/b901988aa6d4ff937f2e5cfc114e4ec561901ff00660c3e56713642728da/lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51", size = 5048331 },
|
|
109
|
+
{ url = "https://files.pythonhosted.org/packages/30/0f/b2a54f48e52de578b71bbe2a2f8160672a8a5e103df3a78da53907e8c7ed/lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b", size = 4744835 },
|
|
110
|
+
{ url = "https://files.pythonhosted.org/packages/82/9d/b000c15538b60934589e83826ecbc437a1586488d7c13f8ee5ff1f79a9b8/lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002", size = 5316649 },
|
|
111
|
+
{ url = "https://files.pythonhosted.org/packages/e3/ee/ffbb9eaff5e541922611d2c56b175c45893d1c0b8b11e5a497708a6a3b3b/lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4", size = 4812046 },
|
|
112
|
+
{ url = "https://files.pythonhosted.org/packages/15/ff/7ff89d567485c7b943cdac316087f16b2399a8b997007ed352a1248397e5/lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492", size = 4918597 },
|
|
113
|
+
{ url = "https://files.pythonhosted.org/packages/c6/a3/535b6ed8c048412ff51268bdf4bf1cf052a37aa7e31d2e6518038a883b29/lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3", size = 4738071 },
|
|
114
|
+
{ url = "https://files.pythonhosted.org/packages/7a/8f/cbbfa59cb4d4fd677fe183725a76d8c956495d7a3c7f111ab8f5e13d2e83/lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4", size = 5342213 },
|
|
115
|
+
{ url = "https://files.pythonhosted.org/packages/5c/fb/db4c10dd9958d4b52e34d1d1f7c1f434422aeaf6ae2bbaaff2264351d944/lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367", size = 4893749 },
|
|
116
|
+
{ url = "https://files.pythonhosted.org/packages/f2/38/bb4581c143957c47740de18a3281a0cab7722390a77cc6e610e8ebf2d736/lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832", size = 4945901 },
|
|
117
|
+
{ url = "https://files.pythonhosted.org/packages/fc/d5/18b7de4960c731e98037bd48fa9f8e6e8f2558e6fbca4303d9b14d21ef3b/lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff", size = 4815447 },
|
|
118
|
+
{ url = "https://files.pythonhosted.org/packages/97/a8/cd51ceaad6eb849246559a8ef60ae55065a3df550fc5fcd27014361c1bab/lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd", size = 5411186 },
|
|
119
|
+
{ url = "https://files.pythonhosted.org/packages/89/c3/1e3dabab519481ed7b1fdcba21dcfb8832f57000733ef0e71cf6d09a5e03/lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb", size = 5324481 },
|
|
120
|
+
{ url = "https://files.pythonhosted.org/packages/b6/17/71e9984cf0570cd202ac0a1c9ed5c1b8889b0fc8dc736f5ef0ffb181c284/lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b", size = 5011053 },
|
|
121
|
+
{ url = "https://files.pythonhosted.org/packages/69/68/9f7e6d3312a91e30829368c2b3217e750adef12a6f8eb10498249f4e8d72/lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957", size = 3485634 },
|
|
122
|
+
{ url = "https://files.pythonhosted.org/packages/7d/db/214290d58ad68c587bd5d6af3d34e56830438733d0d0856c0275fde43652/lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d", size = 3814417 },
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
[[package]]
|
|
126
|
+
name = "numpy"
|
|
127
|
+
version = "2.1.3"
|
|
128
|
+
source = { registry = "https://pypi.org/simple" }
|
|
129
|
+
sdist = { url = "https://files.pythonhosted.org/packages/25/ca/1166b75c21abd1da445b97bf1fa2f14f423c6cfb4fc7c4ef31dccf9f6a94/numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", size = 20166090 }
|
|
130
|
+
wheels = [
|
|
131
|
+
{ url = "https://files.pythonhosted.org/packages/8a/f0/385eb9970309643cbca4fc6eebc8bb16e560de129c91258dfaa18498da8b/numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e", size = 20849658 },
|
|
132
|
+
{ url = "https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958", size = 13492258 },
|
|
133
|
+
{ url = "https://files.pythonhosted.org/packages/bd/a7/2332679479c70b68dccbf4a8eb9c9b5ee383164b161bee9284ac141fbd33/numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8", size = 5090249 },
|
|
134
|
+
{ url = "https://files.pythonhosted.org/packages/c1/67/4aa00316b3b981a822c7a239d3a8135be2a6945d1fd11d0efb25d361711a/numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564", size = 6621704 },
|
|
135
|
+
{ url = "https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512", size = 13606089 },
|
|
136
|
+
{ url = "https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b", size = 16043185 },
|
|
137
|
+
{ url = "https://files.pythonhosted.org/packages/43/97/75329c28fea3113d00c8d2daf9bc5828d58d78ed661d8e05e234f86f0f6d/numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc", size = 16410751 },
|
|
138
|
+
{ url = "https://files.pythonhosted.org/packages/ad/7a/442965e98b34e0ae9da319f075b387bcb9a1e0658276cc63adb8c9686f7b/numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0", size = 14082705 },
|
|
139
|
+
{ url = "https://files.pythonhosted.org/packages/ac/b6/26108cf2cfa5c7e03fb969b595c93131eab4a399762b51ce9ebec2332e80/numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", size = 6239077 },
|
|
140
|
+
{ url = "https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", size = 12566858 },
|
|
141
|
+
{ url = "https://files.pythonhosted.org/packages/4d/0b/620591441457e25f3404c8057eb924d04f161244cb8a3680d529419aa86e/numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f", size = 20836263 },
|
|
142
|
+
{ url = "https://files.pythonhosted.org/packages/45/e1/210b2d8b31ce9119145433e6ea78046e30771de3fe353f313b2778142f34/numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598", size = 13507771 },
|
|
143
|
+
{ url = "https://files.pythonhosted.org/packages/55/44/aa9ee3caee02fa5a45f2c3b95cafe59c44e4b278fbbf895a93e88b308555/numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57", size = 5075805 },
|
|
144
|
+
{ url = "https://files.pythonhosted.org/packages/78/d6/61de6e7e31915ba4d87bbe1ae859e83e6582ea14c6add07c8f7eefd8488f/numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe", size = 6608380 },
|
|
145
|
+
{ url = "https://files.pythonhosted.org/packages/3e/46/48bdf9b7241e317e6cf94276fe11ba673c06d1fdf115d8b4ebf616affd1a/numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43", size = 13602451 },
|
|
146
|
+
{ url = "https://files.pythonhosted.org/packages/70/50/73f9a5aa0810cdccda9c1d20be3cbe4a4d6ea6bfd6931464a44c95eef731/numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56", size = 16039822 },
|
|
147
|
+
{ url = "https://files.pythonhosted.org/packages/ad/cd/098bc1d5a5bc5307cfc65ee9369d0ca658ed88fbd7307b0d49fab6ca5fa5/numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a", size = 16411822 },
|
|
148
|
+
{ url = "https://files.pythonhosted.org/packages/83/a2/7d4467a2a6d984549053b37945620209e702cf96a8bc658bc04bba13c9e2/numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef", size = 14079598 },
|
|
149
|
+
{ url = "https://files.pythonhosted.org/packages/e9/6a/d64514dcecb2ee70bfdfad10c42b76cab657e7ee31944ff7a600f141d9e9/numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", size = 6236021 },
|
|
150
|
+
{ url = "https://files.pythonhosted.org/packages/bb/f9/12297ed8d8301a401e7d8eb6b418d32547f1d700ed3c038d325a605421a4/numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", size = 12560405 },
|
|
151
|
+
{ url = "https://files.pythonhosted.org/packages/a7/45/7f9244cd792e163b334e3a7f02dff1239d2890b6f37ebf9e82cbe17debc0/numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f", size = 20859062 },
|
|
152
|
+
{ url = "https://files.pythonhosted.org/packages/b1/b4/a084218e7e92b506d634105b13e27a3a6645312b93e1c699cc9025adb0e1/numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4", size = 13515839 },
|
|
153
|
+
{ url = "https://files.pythonhosted.org/packages/27/45/58ed3f88028dcf80e6ea580311dc3edefdd94248f5770deb980500ef85dd/numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e", size = 5116031 },
|
|
154
|
+
{ url = "https://files.pythonhosted.org/packages/37/a8/eb689432eb977d83229094b58b0f53249d2209742f7de529c49d61a124a0/numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0", size = 6629977 },
|
|
155
|
+
{ url = "https://files.pythonhosted.org/packages/42/a3/5355ad51ac73c23334c7caaed01adadfda49544f646fcbfbb4331deb267b/numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408", size = 13575951 },
|
|
156
|
+
{ url = "https://files.pythonhosted.org/packages/c4/70/ea9646d203104e647988cb7d7279f135257a6b7e3354ea6c56f8bafdb095/numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6", size = 16022655 },
|
|
157
|
+
{ url = "https://files.pythonhosted.org/packages/14/ce/7fc0612903e91ff9d0b3f2eda4e18ef9904814afcae5b0f08edb7f637883/numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f", size = 16399902 },
|
|
158
|
+
{ url = "https://files.pythonhosted.org/packages/ef/62/1d3204313357591c913c32132a28f09a26357e33ea3c4e2fe81269e0dca1/numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17", size = 14067180 },
|
|
159
|
+
{ url = "https://files.pythonhosted.org/packages/24/d7/78a40ed1d80e23a774cb8a34ae8a9493ba1b4271dde96e56ccdbab1620ef/numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", size = 6291907 },
|
|
160
|
+
{ url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098 },
|
|
161
|
+
]
|
|
162
|
+
|
|
163
|
+
[[package]]
|
|
164
|
+
name = "packaging"
|
|
165
|
+
version = "24.2"
|
|
166
|
+
source = { registry = "https://pypi.org/simple" }
|
|
167
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
|
|
168
|
+
wheels = [
|
|
169
|
+
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
|
|
170
|
+
]
|
|
171
|
+
|
|
172
|
+
[[package]]
|
|
173
|
+
name = "pandas"
|
|
174
|
+
version = "2.2.3"
|
|
175
|
+
source = { registry = "https://pypi.org/simple" }
|
|
176
|
+
dependencies = [
|
|
177
|
+
{ name = "numpy" },
|
|
178
|
+
{ name = "python-dateutil" },
|
|
179
|
+
{ name = "pytz" },
|
|
180
|
+
{ name = "tzdata" },
|
|
181
|
+
]
|
|
182
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 }
|
|
183
|
+
wheels = [
|
|
184
|
+
{ url = "https://files.pythonhosted.org/packages/17/a3/fb2734118db0af37ea7433f57f722c0a56687e14b14690edff0cdb4b7e58/pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", size = 12529893 },
|
|
185
|
+
{ url = "https://files.pythonhosted.org/packages/e1/0c/ad295fd74bfac85358fd579e271cded3ac969de81f62dd0142c426b9da91/pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", size = 11363475 },
|
|
186
|
+
{ url = "https://files.pythonhosted.org/packages/c6/2a/4bba3f03f7d07207481fed47f5b35f556c7441acddc368ec43d6643c5777/pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", size = 15188645 },
|
|
187
|
+
{ url = "https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319", size = 12739445 },
|
|
188
|
+
{ url = "https://files.pythonhosted.org/packages/20/e8/45a05d9c39d2cea61ab175dbe6a2de1d05b679e8de2011da4ee190d7e748/pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", size = 16359235 },
|
|
189
|
+
{ url = "https://files.pythonhosted.org/packages/1d/99/617d07a6a5e429ff90c90da64d428516605a1ec7d7bea494235e1c3882de/pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", size = 14056756 },
|
|
190
|
+
{ url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 },
|
|
191
|
+
{ url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 },
|
|
192
|
+
{ url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 },
|
|
193
|
+
{ url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 },
|
|
194
|
+
{ url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 },
|
|
195
|
+
{ url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 },
|
|
196
|
+
{ url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 },
|
|
197
|
+
{ url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 },
|
|
198
|
+
{ url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 },
|
|
199
|
+
{ url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 },
|
|
200
|
+
{ url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 },
|
|
201
|
+
{ url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 },
|
|
202
|
+
{ url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 },
|
|
203
|
+
{ url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 },
|
|
204
|
+
]
|
|
205
|
+
|
|
206
|
+
[[package]]
|
|
207
|
+
name = "pfc-geometry"
|
|
208
|
+
version = "0.2.13"
|
|
209
|
+
source = { editable = "../geometry" }
|
|
210
|
+
dependencies = [
|
|
211
|
+
{ name = "numpy" },
|
|
212
|
+
{ name = "pandas" },
|
|
213
|
+
]
|
|
214
|
+
|
|
215
|
+
[package.metadata]
|
|
216
|
+
requires-dist = [
|
|
217
|
+
{ name = "numpy", specifier = ">=2.1.3" },
|
|
218
|
+
{ name = "pandas", specifier = ">=2.2.3" },
|
|
219
|
+
]
|
|
220
|
+
|
|
221
|
+
[package.metadata.requires-dev]
|
|
222
|
+
dev = [
|
|
223
|
+
{ name = "numpy-quaternion", specifier = ">=2023.0.3" },
|
|
224
|
+
{ name = "pytest", specifier = ">=8.3.3" },
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
[[package]]
|
|
228
|
+
name = "pluggy"
|
|
229
|
+
version = "1.5.0"
|
|
230
|
+
source = { registry = "https://pypi.org/simple" }
|
|
231
|
+
sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 }
|
|
232
|
+
wheels = [
|
|
233
|
+
{ url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 },
|
|
234
|
+
]
|
|
235
|
+
|
|
236
|
+
[[package]]
|
|
237
|
+
name = "pymavlink"
|
|
238
|
+
version = "2.4.42"
|
|
239
|
+
source = { registry = "https://pypi.org/simple" }
|
|
240
|
+
dependencies = [
|
|
241
|
+
{ name = "future" },
|
|
242
|
+
{ name = "lxml" },
|
|
243
|
+
]
|
|
244
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6e/c8/19591ad720be80db73d117bdfe682b701231c2f7a4eae69af5a567ed25c2/pymavlink-2.4.42.tar.gz", hash = "sha256:dfe04408b57425e26538a6b4bd977f77239bc8ce61886174567b1a243f7c3d76", size = 11629743 }
|
|
245
|
+
wheels = [
|
|
246
|
+
{ url = "https://files.pythonhosted.org/packages/34/3c/7709b1662e87a999a780209786b85bd3cf34054138bb76a302e38d7c34d1/pymavlink-2.4.42-py3-none-any.whl", hash = "sha256:c40f9bd8f39247776afd74de83b93b14e795ee825704e7d3d8d021de3ebf65ad", size = 11840706 },
|
|
247
|
+
]
|
|
248
|
+
|
|
249
|
+
[[package]]
|
|
250
|
+
name = "pytest"
|
|
251
|
+
version = "8.3.3"
|
|
252
|
+
source = { registry = "https://pypi.org/simple" }
|
|
253
|
+
dependencies = [
|
|
254
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
255
|
+
{ name = "iniconfig" },
|
|
256
|
+
{ name = "packaging" },
|
|
257
|
+
{ name = "pluggy" },
|
|
258
|
+
]
|
|
259
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 }
|
|
260
|
+
wheels = [
|
|
261
|
+
{ url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 },
|
|
262
|
+
]
|
|
263
|
+
|
|
264
|
+
[[package]]
|
|
265
|
+
name = "python-dateutil"
|
|
266
|
+
version = "2.9.0.post0"
|
|
267
|
+
source = { registry = "https://pypi.org/simple" }
|
|
268
|
+
dependencies = [
|
|
269
|
+
{ name = "six" },
|
|
270
|
+
]
|
|
271
|
+
sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
|
|
272
|
+
wheels = [
|
|
273
|
+
{ url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
|
|
274
|
+
]
|
|
275
|
+
|
|
276
|
+
[[package]]
|
|
277
|
+
name = "pytz"
|
|
278
|
+
version = "2024.2"
|
|
279
|
+
source = { registry = "https://pypi.org/simple" }
|
|
280
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 }
|
|
281
|
+
wheels = [
|
|
282
|
+
{ url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 },
|
|
283
|
+
]
|
|
284
|
+
|
|
285
|
+
[[package]]
|
|
286
|
+
name = "six"
|
|
287
|
+
version = "1.16.0"
|
|
288
|
+
source = { registry = "https://pypi.org/simple" }
|
|
289
|
+
sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 }
|
|
290
|
+
wheels = [
|
|
291
|
+
{ url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
|
|
292
|
+
]
|
|
293
|
+
|
|
294
|
+
[[package]]
|
|
295
|
+
name = "tzdata"
|
|
296
|
+
version = "2024.2"
|
|
297
|
+
source = { registry = "https://pypi.org/simple" }
|
|
298
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 }
|
|
299
|
+
wheels = [
|
|
300
|
+
{ url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
|
|
301
|
+
]
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
#https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
|
|
2
|
-
name: Publish to PyPI and TestPyPI
|
|
3
|
-
|
|
4
|
-
on:
|
|
5
|
-
push:
|
|
6
|
-
tags:
|
|
7
|
-
- 'v[0-9]+.[0-9]+.[0-9]+'
|
|
8
|
-
jobs:
|
|
9
|
-
build:
|
|
10
|
-
name: Build distribution
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Set up Python
|
|
17
|
-
uses: actions/setup-python@v4
|
|
18
|
-
with:
|
|
19
|
-
python-version: ^3.12
|
|
20
|
-
|
|
21
|
-
- name: Install dependencies
|
|
22
|
-
run: pip install -r requirements.txt
|
|
23
|
-
|
|
24
|
-
- name: Install pypa / build
|
|
25
|
-
run: python3 -m pip install build --user
|
|
26
|
-
|
|
27
|
-
- name: Build a binary wheel and a source tarball
|
|
28
|
-
run: python3 -m build
|
|
29
|
-
|
|
30
|
-
- name: Store the distribution packages
|
|
31
|
-
uses: actions/upload-artifact@v3
|
|
32
|
-
with:
|
|
33
|
-
name: python-package-distributions
|
|
34
|
-
path: dist/
|
|
35
|
-
|
|
36
|
-
publish-to-pypi:
|
|
37
|
-
name: Publish Python distribution to PyPI
|
|
38
|
-
needs: build
|
|
39
|
-
runs-on: ubuntu-latest
|
|
40
|
-
environment:
|
|
41
|
-
name: pypi
|
|
42
|
-
url: https://pypi.org/p/<package-name>
|
|
43
|
-
permissions:
|
|
44
|
-
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
45
|
-
|
|
46
|
-
steps:
|
|
47
|
-
- name: Download all the dists
|
|
48
|
-
uses: actions/download-artifact@v3
|
|
49
|
-
with:
|
|
50
|
-
name: python-package-distributions
|
|
51
|
-
path: dist/
|
|
52
|
-
- name: Publish distribution to PyPI
|
|
53
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
flightdata-0.2.23/PKG-INFO
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: flightdata
|
|
3
|
-
Version: 0.2.23
|
|
4
|
-
Summary: Module for handling UAV flight log data
|
|
5
|
-
Author-email: Thomas David <thomasdavid0@gmail.com>
|
|
6
|
-
License: GNU GPL v3
|
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Requires-Python: >=3.12
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Requires-Dist: numpy
|
|
12
|
-
Requires-Dist: pandas
|
|
13
|
-
Requires-Dist: simplejson
|
|
14
|
-
Requires-Dist: pydantic
|
|
15
|
-
Requires-Dist: pfc-geometry>=0.2.12
|
|
16
|
-
Requires-Dist: json_stream
|
|
17
|
-
Provides-Extra: dev
|
|
18
|
-
Requires-Dist: numpy; extra == "dev"
|
|
19
|
-
Requires-Dist: pandas; extra == "dev"
|
|
20
|
-
Requires-Dist: simplejson; extra == "dev"
|
|
21
|
-
Requires-Dist: pydantic; extra == "dev"
|
|
22
|
-
Requires-Dist: pfc-geometry>=0.2.12; extra == "dev"
|
|
23
|
-
Requires-Dist: ardupilot-log-reader>=0.3.3; extra == "dev"
|
|
24
|
-
Requires-Dist: pytest; extra == "dev"
|
|
25
|
-
|
|
26
|
-
## FlightData
|
|
27
|
-
This repo is contains a set of datastructures and tools for handling flight log data.
|
|
28
|
-
|
|
29
|
-
### Flight
|
|
30
|
-
The Flight object represents the data logged by a flight controller. The class wraps a pandas dataframe which is indexed on a single time axis. Where data is logged at different rates for different sensors it is mapped to the closest time index. Attribute access provides individual columns or sets of columns in the groups defined in Fields. Item access subsets the data in the time axis.
|
|
31
|
-
|
|
32
|
-
### Table
|
|
33
|
-
The Table is the base type for most of the datastructures. It allows attribute access to individual columns. Attribute access is also available to return basic entities subclassed from the base type in the pfc-geometry package. For example in the state object table.x provides the x position, table.pos provides a Point representing the xyz position. columns that are not represented by geometric base types are considered to be labels for the data.
|
|
34
|
-
|
|
35
|
-
### State
|
|
36
|
-
The State object is a table representing the position and orientation of the aircraft along with their derivatives, it can be constructed from a Flight or from scratch by extrapolating in lines or around arcs. Many tools are provided to manipulate the data. The position and attitude are in a reference frame (with Z up), the derivatives move with the aircraft in either the body, wind, stability or track (like the wind axis but with no wind) frame.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Further documentation will be provided here: https://pfcdocumentation.readthedocs.io/pyflightcoach/flightdata.html
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### Installation
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
pip install pfc-geometry
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Setup from source
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
pip install .
|
|
52
|
-
```
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
.gitignore
|
|
2
|
-
LICENSE
|
|
3
|
-
README.md
|
|
4
|
-
pyproject.toml
|
|
5
|
-
requirements-dev.txt
|
|
6
|
-
requirements.txt
|
|
7
|
-
.github/workflows/publish_pypi.yml
|
|
8
|
-
.vscode/launch.json
|
|
9
|
-
.vscode/settings.json
|
|
10
|
-
examples/__init__.py
|
|
11
|
-
examples/data/__init__.py
|
|
12
|
-
examples/data/manual_F3A_F23_22_04_28_00000231.json
|
|
13
|
-
examples/data/manual_F3A_P23_22_05_31_00000350.json
|
|
14
|
-
examples/data/manual_F3A_P23_23_08_11_00000094.json
|
|
15
|
-
examples/flight_dynamics/00000150.json
|
|
16
|
-
examples/flight_dynamics/__init__.py
|
|
17
|
-
examples/flight_dynamics/box.f3a
|
|
18
|
-
examples/flight_dynamics/param_id.py
|
|
19
|
-
examples/state_analysis/__init__.py
|
|
20
|
-
examples/state_analysis/axes.py
|
|
21
|
-
examples/state_analysis/state_fill_plot.py
|
|
22
|
-
flightdata/__init__.py
|
|
23
|
-
flightdata/bindata.py
|
|
24
|
-
flightdata/coefficients.py
|
|
25
|
-
flightdata/flow.py
|
|
26
|
-
flightdata/origin.py
|
|
27
|
-
flightdata/state.py
|
|
28
|
-
flightdata.egg-info/PKG-INFO
|
|
29
|
-
flightdata.egg-info/SOURCES.txt
|
|
30
|
-
flightdata.egg-info/dependency_links.txt
|
|
31
|
-
flightdata.egg-info/entry_points.txt
|
|
32
|
-
flightdata.egg-info/requires.txt
|
|
33
|
-
flightdata.egg-info/top_level.txt
|
|
34
|
-
flightdata/base/__init__.py
|
|
35
|
-
flightdata/base/collection.py
|
|
36
|
-
flightdata/base/constructs.py
|
|
37
|
-
flightdata/base/labeling.py
|
|
38
|
-
flightdata/base/numpy_encoder.py
|
|
39
|
-
flightdata/base/table.py
|
|
40
|
-
flightdata/environment/__init__.py
|
|
41
|
-
flightdata/environment/environment.py
|
|
42
|
-
flightdata/environment/wind.py
|
|
43
|
-
flightdata/flight/__init__.py
|
|
44
|
-
flightdata/flight/ardupilot.py
|
|
45
|
-
flightdata/flight/fields.py
|
|
46
|
-
flightdata/flight/flight.py
|
|
47
|
-
flightdata/flight/parameters.py
|
|
48
|
-
flightdata/model/__init__.py
|
|
49
|
-
flightdata/model/aerodynamic.py
|
|
50
|
-
flightdata/model/thrust.py
|
|
51
|
-
flightdata/schemas/__init__.py
|
|
52
|
-
flightdata/schemas/fcj.py
|
|
53
|
-
flightdata/scripts/collect_logs.py
|
|
54
|
-
flightdata/scripts/flightline.py
|
|
55
|
-
test/EmailedBox.f3a
|
|
56
|
-
test/__init__.py
|
|
57
|
-
test/conftest.py
|
|
58
|
-
test/test_bindata.py
|
|
59
|
-
test/test_fields.py
|
|
60
|
-
test/test_flight.py
|
|
61
|
-
test/test_origin.py
|
|
62
|
-
test/base/__init__.py
|
|
63
|
-
test/base/test_base_constructs.py
|
|
64
|
-
test/base/test_table.py
|
|
65
|
-
test/data/bin_parser_GPS.csv
|
|
66
|
-
test/data/bin_parser_POS.csv
|
|
67
|
-
test/data/make_inputs.py
|
|
68
|
-
test/data/manual_F3A_P23.json
|
|
69
|
-
test/data/p23.BIN
|
|
70
|
-
test/data/p23.json
|
|
71
|
-
test/data/p23_box.f3a
|
|
72
|
-
test/data/p23_fc.json
|
|
73
|
-
test/data/p23_flight.json
|
|
74
|
-
test/data/vtol_hover.bin
|
|
75
|
-
test/data/vtol_hover.json
|
|
76
|
-
test/data/web_bin_parse.json
|
|
77
|
-
test/test_environment/__init__.py
|
|
78
|
-
test/test_environment/test_environment.py
|
|
79
|
-
test/test_environment/test_environment_wind.py
|
|
80
|
-
test/test_model/__init__.py
|
|
81
|
-
test/test_model/test_model_coefficients.py
|
|
82
|
-
test/test_model/test_model_flow.py
|
|
83
|
-
test/test_state/__init__.py
|
|
84
|
-
test/test_state/test_state.py
|
|
85
|
-
test/test_state/test_state_builders.py
|
|
86
|
-
test/test_state/test_state_conversions.py
|
|
87
|
-
test/test_state/test_state_measurements.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
flightdata
|
flightdata-0.2.23/pyproject.toml
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = [
|
|
3
|
-
"setuptools>=60",
|
|
4
|
-
"setuptools-scm>=8.0"
|
|
5
|
-
]
|
|
6
|
-
build-backend = "setuptools.build_meta"
|
|
7
|
-
|
|
8
|
-
[project]
|
|
9
|
-
name = "flightdata"
|
|
10
|
-
authors = [{name = "Thomas David", email = "thomasdavid0@gmail.com"}]
|
|
11
|
-
description = "Module for handling UAV flight log data"
|
|
12
|
-
readme = "README.md"
|
|
13
|
-
requires-python = ">=3.12"
|
|
14
|
-
license = {text = "GNU GPL v3"}
|
|
15
|
-
classifiers = ["Programming Language :: Python :: 3",]
|
|
16
|
-
dynamic = ["version", "dependencies", "optional-dependencies"]
|
|
17
|
-
|
|
18
|
-
[project.scripts]
|
|
19
|
-
collect_logs = "flightdata.scripts.collect_logs:main"
|
|
20
|
-
flightline = "flightdata.scripts.flightline:main"
|
|
21
|
-
|
|
22
|
-
[tool.setuptools.dynamic]
|
|
23
|
-
dependencies = {file = ["requirements.txt"]}
|
|
24
|
-
optional-dependencies = {dev = { file = ["requirements-dev.txt"] }}
|
|
25
|
-
|
|
26
|
-
[tool.setuptools_scm]
|
flightdata-0.2.23/setup.cfg
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/flightdata-0.2.23/flightdata/schemas/__init__.py → /flightdata-0.2.24/src/flightdata/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|