flightplotting 0.2.10__tar.gz → 0.2.12__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.
Files changed (34) hide show
  1. flightplotting-0.2.12/.github/workflows/publish_pypi.yml +26 -0
  2. flightplotting-0.2.12/MANIFEST.in +1 -0
  3. flightplotting-0.2.12/PKG-INFO +25 -0
  4. {flightplotting-0.2.10 → flightplotting-0.2.12}/README.md +2 -2
  5. flightplotting-0.2.12/pyproject.toml +23 -0
  6. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/__init__.py +2 -2
  7. flightplotting-0.2.12/src/plotting/model.py +90 -0
  8. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/plots.py +7 -4
  9. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/templates.py +20 -0
  10. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/traces.py +2 -2
  11. flightplotting-0.2.12/tests/data/__init__.py +0 -0
  12. {flightplotting-0.2.10 → flightplotting-0.2.12}/tests/test_plots.py +2 -2
  13. flightplotting-0.2.12/uv.lock +476 -0
  14. flightplotting-0.2.10/.github/workflows/publish_pypi.yml +0 -52
  15. flightplotting-0.2.10/MANIFEST.in +0 -1
  16. flightplotting-0.2.10/PKG-INFO +0 -30
  17. flightplotting-0.2.10/flightplotting/model.py +0 -63
  18. flightplotting-0.2.10/flightplotting.egg-info/PKG-INFO +0 -30
  19. flightplotting-0.2.10/flightplotting.egg-info/SOURCES.txt +0 -25
  20. flightplotting-0.2.10/flightplotting.egg-info/dependency_links.txt +0 -1
  21. flightplotting-0.2.10/flightplotting.egg-info/requires.txt +0 -6
  22. flightplotting-0.2.10/flightplotting.egg-info/top_level.txt +0 -1
  23. flightplotting-0.2.10/pyproject.toml +0 -21
  24. flightplotting-0.2.10/requirements.txt +0 -6
  25. flightplotting-0.2.10/setup.cfg +0 -4
  26. {flightplotting-0.2.10 → flightplotting-0.2.12}/.gitignore +0 -0
  27. {flightplotting-0.2.10 → flightplotting-0.2.12}/.vscode/settings.json +0 -0
  28. {flightplotting-0.2.10 → flightplotting-0.2.12}/COPYING +0 -0
  29. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/data/ColdDraftF3APlane.obj +0 -0
  30. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/data/__init__.py +0 -0
  31. /flightplotting-0.2.10/tests/__init__.py → /flightplotting-0.2.12/src/plotting/py.typed +0 -0
  32. {flightplotting-0.2.10/flightplotting → flightplotting-0.2.12/src/plotting}/titlerenderer.py +0 -0
  33. {flightplotting-0.2.10/tests/data → flightplotting-0.2.12/tests}/__init__.py +0 -0
  34. {flightplotting-0.2.10 → flightplotting-0.2.12}/tests/data/p23_flight.json +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 }}
@@ -0,0 +1 @@
1
+ include plotting/data/*.obj
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.3
2
+ Name: flightplotting
3
+ Version: 0.2.12
4
+ Summary: Add your description here
5
+ Author-email: Thomas David <thomasdavid0@gmail.com>
6
+ Requires-Python: >=3.12
7
+ Requires-Dist: flightanalysis>=0.3.14
8
+ Requires-Dist: numpy>=2.1.3
9
+ Requires-Dist: pandas>=2.2.3
10
+ Requires-Dist: plotly>=5.24.1
11
+ Description-Content-Type: text/markdown
12
+
13
+ # plotting
14
+
15
+
16
+ This module contains utilities for plotting flight data using plotly
17
+
18
+
19
+ ```bash
20
+ pip install plotting
21
+ ```
22
+
23
+ ```bash
24
+ pip install -e .
25
+ ```
@@ -1,11 +1,11 @@
1
- # FlightPlotting
1
+ # plotting
2
2
 
3
3
 
4
4
  This module contains utilities for plotting flight data using plotly
5
5
 
6
6
 
7
7
  ```bash
8
- pip install flightplotting
8
+ pip install plotting
9
9
  ```
10
10
 
11
11
  ```bash
@@ -0,0 +1,23 @@
1
+ [project]
2
+ name = "flightplotting"
3
+ version="v0.2.12"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ authors = [{ name = "Thomas David", email = "thomasdavid0@gmail.com" }]
7
+ requires-python = ">=3.12"
8
+ dependencies = [
9
+ "flightanalysis>=0.3.14",
10
+ "numpy>=2.1.3",
11
+ "pandas>=2.2.3",
12
+ "plotly>=5.24.1",
13
+ ]
14
+
15
+ [build-system]
16
+ requires = ["hatchling"]
17
+ build-backend = "hatchling.build"
18
+
19
+ [tool.hatch.build.targets.wheel]
20
+ packages = ["src/plotting"]
21
+
22
+ [dependency-groups]
23
+ dev = ["pytest>=8.3.3"]
@@ -1,11 +1,11 @@
1
- from flightplotting.plots import (
1
+ from plotting.plots import (
2
2
  plotsec,
3
3
  plot_analysis,
4
4
  plotdtw,
5
5
  create_3d_plot,
6
6
  plot_regions,
7
7
  )
8
- from flightplotting.traces import (
8
+ from plotting.traces import (
9
9
  axestrace,
10
10
  trace3d,
11
11
  dtwtrace,
@@ -0,0 +1,90 @@
1
+ from dataclasses import dataclass
2
+ from importlib.resources import files
3
+
4
+ import numpy as np
5
+ import numpy.typing as npt
6
+ import plotly.graph_objects as go
7
+ from geometry import Point, Quaternion, Transformation
8
+
9
+
10
+ @dataclass
11
+ class OBJ:
12
+ vertices: Point
13
+ faces: npt.NDArray
14
+ normals: npt.NDArray = None
15
+
16
+ @staticmethod
17
+ def from_obj_data(odata):
18
+ lines = odata.splitlines()
19
+
20
+ vertices = np.array(
21
+ [l.split(" ")[1:] for l in lines if l[:2] == "v "], dtype=float
22
+ )
23
+ normals = [l.split(" ")[1:] for l in lines if l[:3] == "vn "]
24
+ faces = (
25
+ np.array(
26
+ [
27
+ [fn.split("//")[0] for fn in l.split(" ")[1:]]
28
+ for l in lines
29
+ if l[:2] == "f "
30
+ ],
31
+ dtype=int,
32
+ )
33
+ - 1
34
+ )
35
+
36
+ return OBJ(Point(vertices), faces, normals)
37
+
38
+ @staticmethod
39
+ def from_obj_file(file):
40
+ if isinstance(file, str):
41
+ file = open(file, encoding="utf-8")
42
+ obj_data = file.read()
43
+ return OBJ.from_obj_data(obj_data)
44
+
45
+ def transform(
46
+ self,
47
+ transformantion: Transformation = Transformation(
48
+ Point(0.75, 0, 0), Quaternion.from_euler(Point(np.pi, 0, -np.pi / 2))
49
+ ),
50
+ ):
51
+ return OBJ(transformantion.point(self.vertices), self.faces)
52
+
53
+ def scale(self, scale_factor):
54
+ return OBJ(self.vertices * scale_factor, self.faces)
55
+
56
+ def create_mesh(self, colour="orange", name: str = ""):
57
+ """Generate a Mesh3d of my plane transformed by the requested transformation.
58
+
59
+ Args:
60
+ name (str, optional): The name of the series. Defaults to ''.
61
+
62
+ Returns:
63
+ go.Mesh3d: a plotly Mesh3d containing the model
64
+ """
65
+
66
+ x, y, z = self.vertices.data[:, :3].T
67
+ I, J, K = self.faces.T
68
+ return go.Mesh3d(
69
+ x=x,
70
+ y=y,
71
+ z=z,
72
+ i=I,
73
+ j=J,
74
+ k=K,
75
+ name=name,
76
+ showscale=False,
77
+ hoverinfo="name",
78
+ color=colour,
79
+ ) # vertexcolor=vertices[:, 3:], #the color codes must be triplets of floats in [0,1]!!
80
+
81
+
82
+ _obj_string = (
83
+ files("plotting.data").joinpath("ColdDraftF3APlane.obj").open("r").read()
84
+ )
85
+
86
+ obj = OBJ.from_obj_data(_obj_string).transform(
87
+ Transformation(
88
+ Point(0.75, 0, 0), Quaternion.from_euler(Point(np.pi, 0, -np.pi / 2))
89
+ )
90
+ )
@@ -1,8 +1,8 @@
1
1
  import plotly.graph_objects as go
2
2
  from plotly.subplots import make_subplots
3
3
  import plotly.express as px
4
- import flightplotting.templates
5
- from flightplotting.traces import (
4
+ import plotting.templates
5
+ from plotting.traces import (
6
6
  tiptrace,
7
7
  meshes,
8
8
  control_input_trace,
@@ -17,11 +17,12 @@ from flightplotting.traces import (
17
17
  from flightdata import State
18
18
  from flightdata.base.labeling import get_appended_id
19
19
  from geometry import Coord
20
- from flightplotting.model import obj
20
+ from plotting.model import obj
21
21
  import numpy.typing as npt
22
22
  import numpy as np
23
23
  import pandas as pd
24
24
  from typing import List, Union
25
+ from flightanalysis.scoring.box import Box
25
26
 
26
27
 
27
28
  def plotsec(
@@ -135,7 +136,7 @@ def plotdtw(sec: State, manoeuvres: List[str], span=3, fig=None):
135
136
 
136
137
 
137
138
  def plot_regions(
138
- st: State, lab_cols: list[str], span=3, colours=None, fig=None, **kwargs
139
+ st: State, lab_cols: list[str], span=3, colours=None, fig=None, box:Box=None, **kwargs
139
140
  ):
140
141
  colours = px.colors.qualitative.Plotly if colours is None else colours
141
142
  lab_cols = [lab_cols] if isinstance(lab_cols, str) else lab_cols
@@ -174,6 +175,8 @@ def plot_regions(
174
175
  if fig is None:
175
176
  fig = go.Figure(layout=go.Layout(template="flight3d+judge_view"))
176
177
  fig.add_traces(traces)
178
+ if box:
179
+ fig.add_traces(box.plot())
177
180
  return fig
178
181
 
179
182
 
@@ -27,3 +27,23 @@ judges_view_template = go.layout.Template(layout=go.Layout(scene_camera=dict(
27
27
 
28
28
 
29
29
  pio.templates["judge_view"] = judges_view_template
30
+
31
+
32
+ clean_paper_template = go.layout.Template(layout=go.Layout(
33
+ margin=dict(l=0, r=0, t=0, b=0),
34
+ scene=dict(
35
+ aspectmode='data',
36
+ xaxis = dict(visible=False),
37
+ yaxis = dict(visible=False),
38
+ zaxis =dict(visible=False)
39
+ ),
40
+ legend=dict(
41
+ font=dict(size=20),
42
+ yanchor="top",
43
+ y=0.99,
44
+ xanchor="left",
45
+ x=0.01
46
+ )
47
+ ))
48
+
49
+ pio.templates["clean_paper"] = judges_view_template
@@ -1,10 +1,10 @@
1
1
  import plotly.graph_objects as go
2
- import flightplotting.templates
2
+ import plotting.templates
3
3
  from geometry import Point, Coord, Transformation
4
4
  import numpy as np
5
5
  from plotly.colors import DEFAULT_PLOTLY_COLORS
6
6
  from flightdata import State
7
- from flightplotting.model import obj, OBJ
7
+ from plotting.model import obj, OBJ
8
8
  import plotly.express as px
9
9
 
10
10
 
File without changes
@@ -1,7 +1,7 @@
1
1
  from flightdata import Flight, State
2
2
  from pytest import fixture
3
- from flightplotting import plotsec
4
- from flightplotting.traces import cgtrace
3
+ from plotting import plotsec
4
+ from plotting.traces import cgtrace
5
5
  import plotly.graph_objects as go
6
6
 
7
7
  @fixture
@@ -0,0 +1,476 @@
1
+ version = 1
2
+ requires-python = ">=3.12"
3
+
4
+ [[package]]
5
+ name = "annotated-types"
6
+ version = "0.7.0"
7
+ source = { registry = "https://pypi.org/simple" }
8
+ sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 }
9
+ wheels = [
10
+ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 },
11
+ ]
12
+
13
+ [[package]]
14
+ name = "colorama"
15
+ version = "0.4.6"
16
+ source = { registry = "https://pypi.org/simple" }
17
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
18
+ wheels = [
19
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
20
+ ]
21
+
22
+ [[package]]
23
+ name = "fastdtw"
24
+ version = "0.3.4"
25
+ source = { registry = "https://pypi.org/simple" }
26
+ dependencies = [
27
+ { name = "numpy" },
28
+ ]
29
+ sdist = { url = "https://files.pythonhosted.org/packages/99/43/30f2d8db076f216b15c10db663b46e22d1750b1ebacd7af6e62b83d6ab98/fastdtw-0.3.4.tar.gz", hash = "sha256:2350fa6ec36bcad186eaf81f46eff35181baf04e324f522de8aeb43d0243f64f", size = 133402 }
30
+
31
+ [[package]]
32
+ name = "flightanalysis"
33
+ version = "0.3.14"
34
+ source = { registry = "https://pypi.org/simple" }
35
+ dependencies = [
36
+ { name = "fastdtw" },
37
+ { name = "flightdata" },
38
+ { name = "joblib" },
39
+ { name = "json-stream" },
40
+ { name = "loguru" },
41
+ { name = "numpy" },
42
+ { name = "pandas" },
43
+ { name = "pfcschemas" },
44
+ { name = "scipy" },
45
+ { name = "simplejson" },
46
+ ]
47
+ sdist = { url = "https://files.pythonhosted.org/packages/2c/67/ad018e2f0664d587512e19cb52b43da7c8890bf73f2c6ba4a583a86cc014/flightanalysis-0.3.14.tar.gz", hash = "sha256:3bafb5304c280172e80bfd191b16a3f3ff1c97118d4aebd822538d900c3636ac", size = 23696186 }
48
+ wheels = [
49
+ { url = "https://files.pythonhosted.org/packages/1b/e7/5299afd2b6c8941136bf73f68265cced3ef144c0edec4d1cdb75004a2218/flightanalysis-0.3.14-py3-none-any.whl", hash = "sha256:8fea47338514ca391738d64dbf2040943fd9d969b6835e5a3def7b12cc1791e2", size = 83900 },
50
+ ]
51
+
52
+ [[package]]
53
+ name = "flightdata"
54
+ version = "0.2.25"
55
+ source = { registry = "https://pypi.org/simple" }
56
+ dependencies = [
57
+ { name = "numpy" },
58
+ { name = "pandas" },
59
+ { name = "pfc-geometry" },
60
+ ]
61
+ sdist = { url = "https://files.pythonhosted.org/packages/f5/5b/dd6b34a5b4c50eb541d393ea90f3ead9a58a10f0df4976f03d84e7b9390e/flightdata-0.2.25.tar.gz", hash = "sha256:dd0fb47383d3e9ade940b8b25683b38b65082c869f500bececdabf3b8cfcab06", size = 71868855 }
62
+ wheels = [
63
+ { url = "https://files.pythonhosted.org/packages/b1/34/6f572e5a10a4a08c1243e3598fc895b07cb57cf1984b5d89982a70aa4ca2/flightdata-0.2.25-py3-none-any.whl", hash = "sha256:3d59bfd579d4f7e7d8b65877c2a7ef2175df28b4acd9d58a120b3c8fa156ce2a", size = 40005 },
64
+ ]
65
+
66
+ [[package]]
67
+ name = "flightplotting"
68
+ version = "0.2.11"
69
+ source = { editable = "." }
70
+ dependencies = [
71
+ { name = "flightanalysis" },
72
+ { name = "numpy" },
73
+ { name = "pandas" },
74
+ { name = "plotly" },
75
+ ]
76
+
77
+ [package.dev-dependencies]
78
+ dev = [
79
+ { name = "pytest" },
80
+ ]
81
+
82
+ [package.metadata]
83
+ requires-dist = [
84
+ { name = "flightanalysis", specifier = ">=0.3.14" },
85
+ { name = "numpy", specifier = ">=2.1.3" },
86
+ { name = "pandas", specifier = ">=2.2.3" },
87
+ { name = "plotly", specifier = ">=5.24.1" },
88
+ ]
89
+
90
+ [package.metadata.requires-dev]
91
+ dev = [{ name = "pytest", specifier = ">=8.3.3" }]
92
+
93
+ [[package]]
94
+ name = "iniconfig"
95
+ version = "2.0.0"
96
+ source = { registry = "https://pypi.org/simple" }
97
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
98
+ wheels = [
99
+ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
100
+ ]
101
+
102
+ [[package]]
103
+ name = "joblib"
104
+ version = "1.4.2"
105
+ source = { registry = "https://pypi.org/simple" }
106
+ sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 }
107
+ wheels = [
108
+ { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 },
109
+ ]
110
+
111
+ [[package]]
112
+ name = "json-stream"
113
+ version = "2.3.2"
114
+ source = { registry = "https://pypi.org/simple" }
115
+ dependencies = [
116
+ { name = "json-stream-rs-tokenizer" },
117
+ ]
118
+ sdist = { url = "https://files.pythonhosted.org/packages/6a/0c/8d654a510a43e4a5ec8a8ac523a1d225daa81afaccd69e974577c9cfb18b/json-stream-2.3.2.tar.gz", hash = "sha256:b8b450ea8e8e3c239e9e7e38d12fed934e77a353c14b297f8ee345a5ceb25b91", size = 31485 }
119
+ wheels = [
120
+ { url = "https://files.pythonhosted.org/packages/da/11/861be54b293856d054a1129202d6393801190b5fd6c599c70a47d4c174b2/json_stream-2.3.2-py3-none-any.whl", hash = "sha256:236b8e08e2761b209816452a3527355e757913d833e6802b68a034a13b8bd3ac", size = 30687 },
121
+ ]
122
+
123
+ [[package]]
124
+ name = "json-stream-rs-tokenizer"
125
+ version = "0.4.26"
126
+ source = { registry = "https://pypi.org/simple" }
127
+ sdist = { url = "https://files.pythonhosted.org/packages/fb/44/c90d60b2fc03f7cc0ccc17e585fd686ce857c3789c253d331541b5ec1ef6/json-stream-rs-tokenizer-0.4.26.tar.gz", hash = "sha256:19333ccda9121b1224598d67178665f77e142862800cb1edd7797a62936f7a1c", size = 27586 }
128
+ wheels = [
129
+ { url = "https://files.pythonhosted.org/packages/eb/de/06ec2114d240702f80c81fbe9dea2b12e0e7de419c9c02991c801eb303eb/json_stream_rs_tokenizer-0.4.26-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5b9f1f61ad4cc1f8a7c0715d5ab095555699734082231d907f3acb7d1bb6bfaf", size = 297570 },
130
+ { url = "https://files.pythonhosted.org/packages/cc/df/716a10700836500867b2dfeb1a0c39d68e207c6e65f9cb22c5ccbfcfe1ac/json_stream_rs_tokenizer-0.4.26-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:79d20bf715ce506b174596a5d9a50682f2c0cc93ec9acec06872860820de6918", size = 294402 },
131
+ { url = "https://files.pythonhosted.org/packages/a8/cc/3239e2e2d2b5d5fb1a94c2eb5a6a084407276e1418846f7f85619fb2154c/json_stream_rs_tokenizer-0.4.26-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36a262305dcf1dca0786047369720b3b628b3484d98428a89cbcc8fe6a88f6", size = 1056118 },
132
+ { url = "https://files.pythonhosted.org/packages/56/52/ead4a492180d711af1e284f5bc389575396ce5e25570ecd13143650090ce/json_stream_rs_tokenizer-0.4.26-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf3fd93d9e26906436ad5df4197d5a6ea3bdf36b3917c8507a80e4430e4c768", size = 1067076 },
133
+ { url = "https://files.pythonhosted.org/packages/b4/30/7f26149e561e6a7017a3cd984d08d92a2a22cbdab7ad9d2d2275e177b369/json_stream_rs_tokenizer-0.4.26-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9af9f62d2f765be4cd02973390e604cf8ef64527b6123f0dde22f2b760f35b4b", size = 1097509 },
134
+ { url = "https://files.pythonhosted.org/packages/6f/e6/504bcac124dca256ec97585018a94a33be3d8dbf62e263d344479261cda5/json_stream_rs_tokenizer-0.4.26-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9c3e35c1ab59461d338b18dbc24ecec477a3b2b16380d738ad8b6566da57fa91", size = 1084238 },
135
+ { url = "https://files.pythonhosted.org/packages/ff/08/3fdbe72cf0321c3918f3bc5d0615c31eafaadd0955130cb3cc6ae83d6dbb/json_stream_rs_tokenizer-0.4.26-cp312-cp312-win32.whl", hash = "sha256:0413f8cdffdb00f58dede2488daf9b7b6e388aff9204c16aaacdf45cf857d839", size = 170129 },
136
+ { url = "https://files.pythonhosted.org/packages/62/3f/6c537891d61b7883ad8ccc29321470fcf8a1d627f5197e05207d9f9f5e33/json_stream_rs_tokenizer-0.4.26-cp312-cp312-win_amd64.whl", hash = "sha256:9d946e880ef7d8963ecf54077fb1606fda51a631b69b6613cfb01487930781d2", size = 175342 },
137
+ ]
138
+
139
+ [[package]]
140
+ name = "loguru"
141
+ version = "0.7.2"
142
+ source = { registry = "https://pypi.org/simple" }
143
+ dependencies = [
144
+ { name = "colorama", marker = "sys_platform == 'win32'" },
145
+ { name = "win32-setctime", marker = "sys_platform == 'win32'" },
146
+ ]
147
+ sdist = { url = "https://files.pythonhosted.org/packages/9e/30/d87a423766b24db416a46e9335b9602b054a72b96a88a241f2b09b560fa8/loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac", size = 145103 }
148
+ wheels = [
149
+ { url = "https://files.pythonhosted.org/packages/03/0a/4f6fed21aa246c6b49b561ca55facacc2a44b87d65b8b92362a8e99ba202/loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb", size = 62549 },
150
+ ]
151
+
152
+ [[package]]
153
+ name = "numpy"
154
+ version = "2.1.3"
155
+ source = { registry = "https://pypi.org/simple" }
156
+ sdist = { url = "https://files.pythonhosted.org/packages/25/ca/1166b75c21abd1da445b97bf1fa2f14f423c6cfb4fc7c4ef31dccf9f6a94/numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", size = 20166090 }
157
+ wheels = [
158
+ { 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 },
159
+ { 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 },
160
+ { 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 },
161
+ { 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 },
162
+ { 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 },
163
+ { 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 },
164
+ { 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 },
165
+ { 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 },
166
+ { url = "https://files.pythonhosted.org/packages/ac/b6/26108cf2cfa5c7e03fb969b595c93131eab4a399762b51ce9ebec2332e80/numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", size = 6239077 },
167
+ { url = "https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", size = 12566858 },
168
+ { 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 },
169
+ { 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 },
170
+ { 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 },
171
+ { 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 },
172
+ { 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 },
173
+ { 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 },
174
+ { 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 },
175
+ { 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 },
176
+ { url = "https://files.pythonhosted.org/packages/e9/6a/d64514dcecb2ee70bfdfad10c42b76cab657e7ee31944ff7a600f141d9e9/numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", size = 6236021 },
177
+ { url = "https://files.pythonhosted.org/packages/bb/f9/12297ed8d8301a401e7d8eb6b418d32547f1d700ed3c038d325a605421a4/numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", size = 12560405 },
178
+ { 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 },
179
+ { 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 },
180
+ { 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 },
181
+ { 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 },
182
+ { 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 },
183
+ { 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 },
184
+ { 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 },
185
+ { 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 },
186
+ { url = "https://files.pythonhosted.org/packages/24/d7/78a40ed1d80e23a774cb8a34ae8a9493ba1b4271dde96e56ccdbab1620ef/numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", size = 6291907 },
187
+ { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098 },
188
+ ]
189
+
190
+ [[package]]
191
+ name = "packaging"
192
+ version = "24.2"
193
+ source = { registry = "https://pypi.org/simple" }
194
+ sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
195
+ wheels = [
196
+ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
197
+ ]
198
+
199
+ [[package]]
200
+ name = "pandas"
201
+ version = "2.2.3"
202
+ source = { registry = "https://pypi.org/simple" }
203
+ dependencies = [
204
+ { name = "numpy" },
205
+ { name = "python-dateutil" },
206
+ { name = "pytz" },
207
+ { name = "tzdata" },
208
+ ]
209
+ sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 }
210
+ wheels = [
211
+ { 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 },
212
+ { 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 },
213
+ { 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 },
214
+ { 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 },
215
+ { 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 },
216
+ { 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 },
217
+ { url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 },
218
+ { 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 },
219
+ { 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 },
220
+ { 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 },
221
+ { 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 },
222
+ { 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 },
223
+ { 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 },
224
+ { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 },
225
+ { 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 },
226
+ { 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 },
227
+ { 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 },
228
+ { 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 },
229
+ { 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 },
230
+ { 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 },
231
+ ]
232
+
233
+ [[package]]
234
+ name = "pfc-geometry"
235
+ version = "0.2.14"
236
+ source = { registry = "https://pypi.org/simple" }
237
+ dependencies = [
238
+ { name = "numpy" },
239
+ { name = "pandas" },
240
+ ]
241
+ sdist = { url = "https://files.pythonhosted.org/packages/de/0c/3ae95787e090336c2ece1db5aab51d9cb27199740782c9d3054b02c61040/pfc_geometry-0.2.14.tar.gz", hash = "sha256:b2aae23e76be392672cc0ffa4df42c04d8bd9e8afbd9278218830b08d395112f", size = 28590 }
242
+ wheels = [
243
+ { url = "https://files.pythonhosted.org/packages/c6/83/a3695b75079641bca55a04f61e9fae487376eae5741570a3c03f98cdfebf/pfc_geometry-0.2.14-py3-none-any.whl", hash = "sha256:bbe06fba3fad53d7116b253de9d987a071a4d38c4d909da7e79202871f324230", size = 19822 },
244
+ ]
245
+
246
+ [[package]]
247
+ name = "pfcschemas"
248
+ version = "0.1.4"
249
+ source = { registry = "https://pypi.org/simple" }
250
+ dependencies = [
251
+ { name = "numpy" },
252
+ { name = "pandas" },
253
+ { name = "pydantic" },
254
+ ]
255
+ sdist = { url = "https://files.pythonhosted.org/packages/13/68/8c5fa5ee4fc7ea423d116a74c759774e1fe6d29bf305dcc8e5ecdb2922cb/pfcschemas-0.1.4.tar.gz", hash = "sha256:549e9dd01c9ee3b59adc1feef7ca1163b3461920a9e1c9bafa11daf9fd1064f0", size = 3098799 }
256
+ wheels = [
257
+ { url = "https://files.pythonhosted.org/packages/95/8a/7072dc34ed7e0397de584e8c453fc2c3c01571b71b37948d95af52445571/pfcschemas-0.1.4-py3-none-any.whl", hash = "sha256:da62cee733ddbf48f0c16c93863064b5ee46595267988c7303fe41f6755abad2", size = 9881 },
258
+ ]
259
+
260
+ [[package]]
261
+ name = "plotly"
262
+ version = "5.24.1"
263
+ source = { registry = "https://pypi.org/simple" }
264
+ dependencies = [
265
+ { name = "packaging" },
266
+ { name = "tenacity" },
267
+ ]
268
+ sdist = { url = "https://files.pythonhosted.org/packages/79/4f/428f6d959818d7425a94c190a6b26fbc58035cbef40bf249be0b62a9aedd/plotly-5.24.1.tar.gz", hash = "sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae", size = 9479398 }
269
+ wheels = [
270
+ { url = "https://files.pythonhosted.org/packages/e5/ae/580600f441f6fc05218bd6c9d5794f4aef072a7d9093b291f1c50a9db8bc/plotly-5.24.1-py3-none-any.whl", hash = "sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089", size = 19054220 },
271
+ ]
272
+
273
+ [[package]]
274
+ name = "pluggy"
275
+ version = "1.5.0"
276
+ source = { registry = "https://pypi.org/simple" }
277
+ sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 }
278
+ wheels = [
279
+ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 },
280
+ ]
281
+
282
+ [[package]]
283
+ name = "pydantic"
284
+ version = "2.10.2"
285
+ source = { registry = "https://pypi.org/simple" }
286
+ dependencies = [
287
+ { name = "annotated-types" },
288
+ { name = "pydantic-core" },
289
+ { name = "typing-extensions" },
290
+ ]
291
+ sdist = { url = "https://files.pythonhosted.org/packages/41/86/a03390cb12cf64e2a8df07c267f3eb8d5035e0f9a04bb20fb79403d2a00e/pydantic-2.10.2.tar.gz", hash = "sha256:2bc2d7f17232e0841cbba4641e65ba1eb6fafb3a08de3a091ff3ce14a197c4fa", size = 785401 }
292
+ wheels = [
293
+ { url = "https://files.pythonhosted.org/packages/d5/74/da832196702d0c56eb86b75bfa346db9238617e29b0b7ee3b8b4eccfe654/pydantic-2.10.2-py3-none-any.whl", hash = "sha256:cfb96e45951117c3024e6b67b25cdc33a3cb7b2fa62e239f7af1378358a1d99e", size = 456364 },
294
+ ]
295
+
296
+ [[package]]
297
+ name = "pydantic-core"
298
+ version = "2.27.1"
299
+ source = { registry = "https://pypi.org/simple" }
300
+ dependencies = [
301
+ { name = "typing-extensions" },
302
+ ]
303
+ sdist = { url = "https://files.pythonhosted.org/packages/a6/9f/7de1f19b6aea45aeb441838782d68352e71bfa98ee6fa048d5041991b33e/pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235", size = 412785 }
304
+ wheels = [
305
+ { url = "https://files.pythonhosted.org/packages/be/51/2e9b3788feb2aebff2aa9dfbf060ec739b38c05c46847601134cc1fed2ea/pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f", size = 1895239 },
306
+ { url = "https://files.pythonhosted.org/packages/7b/9e/f8063952e4a7d0127f5d1181addef9377505dcce3be224263b25c4f0bfd9/pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02", size = 1805070 },
307
+ { url = "https://files.pythonhosted.org/packages/2c/9d/e1d6c4561d262b52e41b17a7ef8301e2ba80b61e32e94520271029feb5d8/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c", size = 1828096 },
308
+ { url = "https://files.pythonhosted.org/packages/be/65/80ff46de4266560baa4332ae3181fffc4488ea7d37282da1a62d10ab89a4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac", size = 1857708 },
309
+ { url = "https://files.pythonhosted.org/packages/d5/ca/3370074ad758b04d9562b12ecdb088597f4d9d13893a48a583fb47682cdf/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb", size = 2037751 },
310
+ { url = "https://files.pythonhosted.org/packages/b1/e2/4ab72d93367194317b99d051947c071aef6e3eb95f7553eaa4208ecf9ba4/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529", size = 2733863 },
311
+ { url = "https://files.pythonhosted.org/packages/8a/c6/8ae0831bf77f356bb73127ce5a95fe115b10f820ea480abbd72d3cc7ccf3/pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35", size = 2161161 },
312
+ { url = "https://files.pythonhosted.org/packages/f1/f4/b2fe73241da2429400fc27ddeaa43e35562f96cf5b67499b2de52b528cad/pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089", size = 1993294 },
313
+ { url = "https://files.pythonhosted.org/packages/77/29/4bb008823a7f4cc05828198153f9753b3bd4c104d93b8e0b1bfe4e187540/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381", size = 2001468 },
314
+ { url = "https://files.pythonhosted.org/packages/f2/a9/0eaceeba41b9fad851a4107e0cf999a34ae8f0d0d1f829e2574f3d8897b0/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb", size = 2091413 },
315
+ { url = "https://files.pythonhosted.org/packages/d8/36/eb8697729725bc610fd73940f0d860d791dc2ad557faaefcbb3edbd2b349/pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae", size = 2154735 },
316
+ { url = "https://files.pythonhosted.org/packages/52/e5/4f0fbd5c5995cc70d3afed1b5c754055bb67908f55b5cb8000f7112749bf/pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c", size = 1833633 },
317
+ { url = "https://files.pythonhosted.org/packages/ee/f2/c61486eee27cae5ac781305658779b4a6b45f9cc9d02c90cb21b940e82cc/pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16", size = 1986973 },
318
+ { url = "https://files.pythonhosted.org/packages/df/a6/e3f12ff25f250b02f7c51be89a294689d175ac76e1096c32bf278f29ca1e/pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e", size = 1883215 },
319
+ { url = "https://files.pythonhosted.org/packages/0f/d6/91cb99a3c59d7b072bded9959fbeab0a9613d5a4935773c0801f1764c156/pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073", size = 1895033 },
320
+ { url = "https://files.pythonhosted.org/packages/07/42/d35033f81a28b27dedcade9e967e8a40981a765795c9ebae2045bcef05d3/pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08", size = 1807542 },
321
+ { url = "https://files.pythonhosted.org/packages/41/c2/491b59e222ec7e72236e512108ecad532c7f4391a14e971c963f624f7569/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf", size = 1827854 },
322
+ { url = "https://files.pythonhosted.org/packages/e3/f3/363652651779113189cefdbbb619b7b07b7a67ebb6840325117cc8cc3460/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737", size = 1857389 },
323
+ { url = "https://files.pythonhosted.org/packages/5f/97/be804aed6b479af5a945daec7538d8bf358d668bdadde4c7888a2506bdfb/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2", size = 2037934 },
324
+ { url = "https://files.pythonhosted.org/packages/42/01/295f0bd4abf58902917e342ddfe5f76cf66ffabfc57c2e23c7681a1a1197/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107", size = 2735176 },
325
+ { url = "https://files.pythonhosted.org/packages/9d/a0/cd8e9c940ead89cc37812a1a9f310fef59ba2f0b22b4e417d84ab09fa970/pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51", size = 2160720 },
326
+ { url = "https://files.pythonhosted.org/packages/73/ae/9d0980e286627e0aeca4c352a60bd760331622c12d576e5ea4441ac7e15e/pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a", size = 1992972 },
327
+ { url = "https://files.pythonhosted.org/packages/bf/ba/ae4480bc0292d54b85cfb954e9d6bd226982949f8316338677d56541b85f/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc", size = 2001477 },
328
+ { url = "https://files.pythonhosted.org/packages/55/b7/e26adf48c2f943092ce54ae14c3c08d0d221ad34ce80b18a50de8ed2cba8/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960", size = 2091186 },
329
+ { url = "https://files.pythonhosted.org/packages/ba/cc/8491fff5b608b3862eb36e7d29d36a1af1c945463ca4c5040bf46cc73f40/pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23", size = 2154429 },
330
+ { url = "https://files.pythonhosted.org/packages/78/d8/c080592d80edd3441ab7f88f865f51dae94a157fc64283c680e9f32cf6da/pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05", size = 1833713 },
331
+ { url = "https://files.pythonhosted.org/packages/83/84/5ab82a9ee2538ac95a66e51f6838d6aba6e0a03a42aa185ad2fe404a4e8f/pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337", size = 1987897 },
332
+ { url = "https://files.pythonhosted.org/packages/df/c3/b15fb833926d91d982fde29c0624c9f225da743c7af801dace0d4e187e71/pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5", size = 1882983 },
333
+ ]
334
+
335
+ [[package]]
336
+ name = "pytest"
337
+ version = "8.3.3"
338
+ source = { registry = "https://pypi.org/simple" }
339
+ dependencies = [
340
+ { name = "colorama", marker = "sys_platform == 'win32'" },
341
+ { name = "iniconfig" },
342
+ { name = "packaging" },
343
+ { name = "pluggy" },
344
+ ]
345
+ sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 }
346
+ wheels = [
347
+ { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 },
348
+ ]
349
+
350
+ [[package]]
351
+ name = "python-dateutil"
352
+ version = "2.9.0.post0"
353
+ source = { registry = "https://pypi.org/simple" }
354
+ dependencies = [
355
+ { name = "six" },
356
+ ]
357
+ sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
358
+ wheels = [
359
+ { 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 },
360
+ ]
361
+
362
+ [[package]]
363
+ name = "pytz"
364
+ version = "2024.2"
365
+ source = { registry = "https://pypi.org/simple" }
366
+ sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 }
367
+ wheels = [
368
+ { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 },
369
+ ]
370
+
371
+ [[package]]
372
+ name = "scipy"
373
+ version = "1.14.1"
374
+ source = { registry = "https://pypi.org/simple" }
375
+ dependencies = [
376
+ { name = "numpy" },
377
+ ]
378
+ sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 }
379
+ wheels = [
380
+ { url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 },
381
+ { url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 },
382
+ { url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 },
383
+ { url = "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", size = 25578573 },
384
+ { url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 },
385
+ { url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 },
386
+ { url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 },
387
+ { url = "https://files.pythonhosted.org/packages/aa/7d/43ab67228ef98c6b5dd42ab386eae2d7877036970a0d7e3dd3eb47a0d530/scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", size = 44521212 },
388
+ { url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 },
389
+ { url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 },
390
+ { url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 },
391
+ { url = "https://files.pythonhosted.org/packages/3f/d6/b028e3f3e59fae61fb8c0f450db732c43dd1d836223a589a8be9f6377203/scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", size = 25503364 },
392
+ { url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 },
393
+ { url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 },
394
+ { url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 },
395
+ { url = "https://files.pythonhosted.org/packages/f5/1b/6ee032251bf4cdb0cc50059374e86a9f076308c1512b61c4e003e241efb7/scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", size = 44469524 },
396
+ ]
397
+
398
+ [[package]]
399
+ name = "simplejson"
400
+ version = "3.19.3"
401
+ source = { registry = "https://pypi.org/simple" }
402
+ sdist = { url = "https://files.pythonhosted.org/packages/3d/29/085111f19717f865eceaf0d4397bf3e76b08d60428b076b64e2a1903706d/simplejson-3.19.3.tar.gz", hash = "sha256:8e086896c36210ab6050f2f9f095a5f1e03c83fa0e7f296d6cba425411364680", size = 85237 }
403
+ wheels = [
404
+ { url = "https://files.pythonhosted.org/packages/20/15/513fea93fafbdd4993eacfcb762965b2ff3d29e618c029e2956174d68c4b/simplejson-3.19.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:66a0399e21c2112acacfebf3d832ebe2884f823b1c7e6d1363f2944f1db31a99", size = 92921 },
405
+ { url = "https://files.pythonhosted.org/packages/a4/4f/998a907ae1a6c104dc0ee48aa248c2478490152808d34d8e07af57f396c3/simplejson-3.19.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6ef9383c5e05f445be60f1735c1816163c874c0b1ede8bb4390aff2ced34f333", size = 75311 },
406
+ { url = "https://files.pythonhosted.org/packages/db/44/acd6122201e927451869d45952b9ab1d3025cdb5e61548d286d08fbccc08/simplejson-3.19.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42e5acf80d4d971238d4df97811286a044d720693092b20a56d5e56b7dcc5d09", size = 74964 },
407
+ { url = "https://files.pythonhosted.org/packages/27/ca/d0a1e8f16e1bbdc0b8c6d88166f45f565ed7285f53928cfef3b6ce78f14d/simplejson-3.19.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0b0efc7279d768db7c74d3d07f0b5c81280d16ae3fb14e9081dc903e8360771", size = 150106 },
408
+ { url = "https://files.pythonhosted.org/packages/63/59/0554b78cf26c98e2b9cae3f44723bd72c2394e2afec1a14eedc6211f7187/simplejson-3.19.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0552eb06e7234da892e1d02365cd2b7b2b1f8233aa5aabdb2981587b7cc92ea0", size = 158347 },
409
+ { url = "https://files.pythonhosted.org/packages/b2/fe/9f30890352e431e8508cc569912d3322147d3e7e4f321e48c0adfcb4c97d/simplejson-3.19.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf6a3b9a7d7191471b464fe38f684df10eb491ec9ea454003edb45a011ab187", size = 148456 },
410
+ { url = "https://files.pythonhosted.org/packages/37/e3/663a09542ee021d4131162f7a164cb2e7f04ef48433a67591738afbf12ea/simplejson-3.19.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7017329ca8d4dca94ad5e59f496e5fc77630aecfc39df381ffc1d37fb6b25832", size = 152190 },
411
+ { url = "https://files.pythonhosted.org/packages/31/20/4e0c4d35e10ff6465003bec304316d822a559a1c38c66ef6892ca199c207/simplejson-3.19.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:67a20641afebf4cfbcff50061f07daad1eace6e7b31d7622b6fa2c40d43900ba", size = 149846 },
412
+ { url = "https://files.pythonhosted.org/packages/08/7a/46e2e072cac3987cbb05946f25167f0ad2fe536748e7405953fd6661a486/simplejson-3.19.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:dd6a7dabcc4c32daf601bc45e01b79175dde4b52548becea4f9545b0a4428169", size = 151714 },
413
+ { url = "https://files.pythonhosted.org/packages/7f/7d/dbeeac10eb61d5d8858d0bb51121a21050d281dc83af4c557f86da28746c/simplejson-3.19.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:08f9b443a94e72dd02c87098c96886d35790e79e46b24e67accafbf13b73d43b", size = 158777 },
414
+ { url = "https://files.pythonhosted.org/packages/fc/8f/a98bdbb799c6a4a884b5823db31785a96ba895b4b0f4d8ac345d6fe98bbf/simplejson-3.19.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa97278ae6614346b5ca41a45a911f37a3261b57dbe4a00602048652c862c28b", size = 154230 },
415
+ { url = "https://files.pythonhosted.org/packages/b1/db/852eebceb85f969ae40e06babed1a93d3bacb536f187d7a80ff5823a5979/simplejson-3.19.3-cp312-cp312-win32.whl", hash = "sha256:ef28c3b328d29b5e2756903aed888960bc5df39b4c2eab157ae212f70ed5bf74", size = 74002 },
416
+ { url = "https://files.pythonhosted.org/packages/fe/68/9f0e5df0651cb79ef83cba1378765a00ee8038e6201cc82b8e7178a7778e/simplejson-3.19.3-cp312-cp312-win_amd64.whl", hash = "sha256:1e662336db50ad665777e6548b5076329a94a0c3d4a0472971c588b3ef27de3a", size = 75596 },
417
+ { url = "https://files.pythonhosted.org/packages/93/3a/5896821ed543899fcb9c4256c7e71bb110048047349a00f42bc8b8fb379f/simplejson-3.19.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0959e6cb62e3994b5a40e31047ff97ef5c4138875fae31659bead691bed55896", size = 92931 },
418
+ { url = "https://files.pythonhosted.org/packages/39/15/5d33d269440912ee40d856db0c8be2b91aba7a219690ab01f86cb0edd590/simplejson-3.19.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a7bfad839c624e139a4863007233a3f194e7c51551081f9789cba52e4da5167", size = 75318 },
419
+ { url = "https://files.pythonhosted.org/packages/2a/8d/2e7483a2bf7ec53acf7e012bafbda79d7b34f90471dda8e424544a59d484/simplejson-3.19.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afab2f7f2486a866ff04d6d905e9386ca6a231379181a3838abce1f32fbdcc37", size = 74971 },
420
+ { url = "https://files.pythonhosted.org/packages/4d/9d/9bdf34437c8834a7cf7246f85e9d5122e30579f512c10a0c2560e994294f/simplejson-3.19.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00313681015ac498e1736b304446ee6d1c72c5b287cd196996dad84369998f7", size = 150112 },
421
+ { url = "https://files.pythonhosted.org/packages/a7/e2/1f2ae2d89eaf85f6163c82150180aae5eaa18085cfaf892f8a57d4c51cbd/simplejson-3.19.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d936ae682d5b878af9d9eb4d8bb1fdd5e41275c8eb59ceddb0aeed857bb264a2", size = 158354 },
422
+ { url = "https://files.pythonhosted.org/packages/60/83/26f610adf234c8492b3f30501e12f2271e67790f946c6898fe0c58aefe99/simplejson-3.19.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c6657485393f2e9b8177c77a7634f13ebe70d5e6de150aae1677d91516ce6b", size = 148455 },
423
+ { url = "https://files.pythonhosted.org/packages/b5/4b/109af50006af77133653c55b5b91b4bd2d579ff8254ce11216c0b75f911b/simplejson-3.19.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a6a750d3c7461b1c47cfc6bba8d9e57a455e7c5f80057d2a82f738040dd1129", size = 152191 },
424
+ { url = "https://files.pythonhosted.org/packages/75/dc/108872a8825cbd99ae6f4334e0490ff1580367baf12198bcaf988f6820ba/simplejson-3.19.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea7a4a998c87c5674a27089e022110a1a08a7753f21af3baf09efe9915c23c3c", size = 149954 },
425
+ { url = "https://files.pythonhosted.org/packages/eb/be/deec1d947a5d0472276ab4a4d1a9378dc5ee27f3dc9e54d4f62ffbad7a08/simplejson-3.19.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6300680d83a399be2b8f3b0ef7ef90b35d2a29fe6e9c21438097e0938bbc1564", size = 151812 },
426
+ { url = "https://files.pythonhosted.org/packages/e9/58/4ee130702d36b1551ef66e7587eefe56651f3669255bf748cd71691e2434/simplejson-3.19.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ab69f811a660c362651ae395eba8ce84f84c944cea0df5718ea0ba9d1e4e7252", size = 158880 },
427
+ { url = "https://files.pythonhosted.org/packages/0f/e1/59cc6a371b60f89e3498d9f4c8109f6b7359094d453f5fe80b2677b777b0/simplejson-3.19.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:256e09d0f94d9c3d177d9e95fd27a68c875a4baa2046633df387b86b652f5747", size = 154344 },
428
+ { url = "https://files.pythonhosted.org/packages/79/45/1b36044670016f5cb25ebd92497427d2d1711ecb454d00f71eb9a00b77cc/simplejson-3.19.3-cp313-cp313-win32.whl", hash = "sha256:2c78293470313aefa9cfc5e3f75ca0635721fb016fb1121c1c5b0cb8cc74712a", size = 74002 },
429
+ { url = "https://files.pythonhosted.org/packages/e2/58/b06226e6b0612f2b1fa13d5273551da259f894566b1eef32249ddfdcce44/simplejson-3.19.3-cp313-cp313-win_amd64.whl", hash = "sha256:3bbcdc438dc1683b35f7a8dc100960c721f922f9ede8127f63bed7dfded4c64c", size = 75599 },
430
+ { url = "https://files.pythonhosted.org/packages/0d/e7/f9fafbd4f39793a20cc52e77bbd766f7384312526d402c382928dc7667f6/simplejson-3.19.3-py3-none-any.whl", hash = "sha256:49cc4c7b940d43bd12bf87ec63f28cbc4964fc4e12c031cc8cd01650f43eb94e", size = 57004 },
431
+ ]
432
+
433
+ [[package]]
434
+ name = "six"
435
+ version = "1.16.0"
436
+ source = { registry = "https://pypi.org/simple" }
437
+ sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 }
438
+ wheels = [
439
+ { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
440
+ ]
441
+
442
+ [[package]]
443
+ name = "tenacity"
444
+ version = "9.0.0"
445
+ source = { registry = "https://pypi.org/simple" }
446
+ sdist = { url = "https://files.pythonhosted.org/packages/cd/94/91fccdb4b8110642462e653d5dcb27e7b674742ad68efd146367da7bdb10/tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b", size = 47421 }
447
+ wheels = [
448
+ { url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 },
449
+ ]
450
+
451
+ [[package]]
452
+ name = "typing-extensions"
453
+ version = "4.12.2"
454
+ source = { registry = "https://pypi.org/simple" }
455
+ sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
456
+ wheels = [
457
+ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
458
+ ]
459
+
460
+ [[package]]
461
+ name = "tzdata"
462
+ version = "2024.2"
463
+ source = { registry = "https://pypi.org/simple" }
464
+ sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 }
465
+ wheels = [
466
+ { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
467
+ ]
468
+
469
+ [[package]]
470
+ name = "win32-setctime"
471
+ version = "1.1.0"
472
+ source = { registry = "https://pypi.org/simple" }
473
+ sdist = { url = "https://files.pythonhosted.org/packages/6b/dd/f95a13d2b235a28d613ba23ebad55191514550debb968b46aab99f2e3a30/win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2", size = 3676 }
474
+ wheels = [
475
+ { url = "https://files.pythonhosted.org/packages/0a/e6/a7d828fef907843b2a5773ebff47fb79ac0c1c88d60c0ca9530ee941e248/win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad", size = 3604 },
476
+ ]
@@ -1,52 +0,0 @@
1
- name: Publish to PyPI and create GH release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v[0-9]+.[0-9]+.[0-9]+'
7
- jobs:
8
- build:
9
- name: Build distribution
10
- runs-on: ubuntu-latest
11
-
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - name: Set up Python
16
- uses: actions/setup-python@v4
17
- with:
18
- python-version: 3.x
19
-
20
- - name: Install dependencies
21
- run: pip install -r requirements.txt
22
-
23
- - name: Install pypa / build
24
- run: python3 -m pip install build --user
25
-
26
- - name: Build a binary wheel and a source tarball
27
- run: python3 -m build
28
-
29
- - name: Store the distribution packages
30
- uses: actions/upload-artifact@v3
31
- with:
32
- name: python-package-distributions
33
- path: dist/
34
-
35
- publish-to-pypi:
36
- name: Publish Python distribution to PyPI
37
- needs: build
38
- runs-on: ubuntu-latest
39
- environment:
40
- name: pypi
41
- url: https://pypi.org/p/<package-name>
42
- permissions:
43
- id-token: write # IMPORTANT: mandatory for trusted publishing
44
-
45
- steps:
46
- - name: Download all the dists
47
- uses: actions/download-artifact@v3
48
- with:
49
- name: python-package-distributions
50
- path: dist/
51
- - name: Publish distribution to PyPI
52
- uses: pypa/gh-action-pypi-publish@release/v1
@@ -1 +0,0 @@
1
- include flightplotting/data/*.obj
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: flightplotting
3
- Version: 0.2.10
4
- Summary: Tools for Plotting Flight Data in Plotly
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: COPYING
11
- Requires-Dist: numpy
12
- Requires-Dist: pandas
13
- Requires-Dist: plotly
14
- Requires-Dist: pfc-geometry>=0.2.8
15
- Requires-Dist: flightdata>=0.2.16
16
- Requires-Dist: flightanalysis>=0.2.17
17
-
18
- # FlightPlotting
19
-
20
-
21
- This module contains utilities for plotting flight data using plotly
22
-
23
-
24
- ```bash
25
- pip install flightplotting
26
- ```
27
-
28
- ```bash
29
- pip install -e .
30
- ```
@@ -1,63 +0,0 @@
1
- import numpy as np
2
- import plotly.graph_objects as go
3
- from geometry import Transformation, Quaternion, Point
4
- from pkg_resources import resource_stream
5
- from dataclasses import dataclass
6
- import numpy.typing as npt
7
-
8
- @dataclass
9
- class OBJ:
10
- vertices: Point
11
- faces: npt.NDArray
12
- normals: npt.NDArray = None
13
-
14
-
15
- @staticmethod
16
- def from_obj_data(odata):
17
- lines = odata.splitlines()
18
-
19
- vertices = np.array([l.split(' ')[1:] for l in lines if l[:2]=='v '] , dtype=float)
20
- normals = [l.split(' ')[1:] for l in lines if l[:3]=='vn ']
21
- faces = np.array([[fn.split('//')[0] for fn in l.split(' ')[1:]] for l in lines if l[:2]=='f '], dtype=int)-1
22
-
23
- return OBJ(Point(vertices),faces, normals)
24
-
25
- @staticmethod
26
- def from_obj_file(file):
27
- if isinstance(file, str):
28
- file = open(file, encoding="utf-8")
29
- obj_data = file.read()
30
- return OBJ.from_obj_data(obj_data)
31
-
32
- def transform(self, transformantion: Transformation=Transformation(Point(0.75, 0, 0), Quaternion.from_euler(Point(np.pi, 0, -np.pi/2)))):
33
- return OBJ(transformantion.point(self.vertices), self.faces)
34
-
35
- def scale(self, scale_factor):
36
- return OBJ(self.vertices * scale_factor, self.faces)
37
-
38
- def create_mesh(self, colour='orange', name: str = ''):
39
- """Generate a Mesh3d of my plane transformed by the requested transformation.
40
-
41
- Args:
42
- name (str, optional): The name of the series. Defaults to ''.
43
-
44
- Returns:
45
- go.Mesh3d: a plotly Mesh3d containing the model
46
- """
47
-
48
- x, y, z = self.vertices.data[:, :3].T
49
- I, J, K = self.faces.T
50
- return go.Mesh3d(
51
- x=x, y=y, z=z, i=I, j=J, k=K,
52
- name=name,
53
- showscale=False,
54
- hoverinfo="name",
55
- color=colour
56
- ) # vertexcolor=vertices[:, 3:], #the color codes must be triplets of floats in [0,1]!!
57
-
58
-
59
- _obj_string = resource_stream(__name__,'data/ColdDraftF3APlane.obj').read().decode()
60
-
61
- obj = OBJ.from_obj_data(_obj_string).transform(Transformation(
62
- Point(0.75, 0, 0), Quaternion.from_euler(Point(np.pi, 0, -np.pi/2))
63
- ))
@@ -1,30 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: flightplotting
3
- Version: 0.2.10
4
- Summary: Tools for Plotting Flight Data in Plotly
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: COPYING
11
- Requires-Dist: numpy
12
- Requires-Dist: pandas
13
- Requires-Dist: plotly
14
- Requires-Dist: pfc-geometry>=0.2.8
15
- Requires-Dist: flightdata>=0.2.16
16
- Requires-Dist: flightanalysis>=0.2.17
17
-
18
- # FlightPlotting
19
-
20
-
21
- This module contains utilities for plotting flight data using plotly
22
-
23
-
24
- ```bash
25
- pip install flightplotting
26
- ```
27
-
28
- ```bash
29
- pip install -e .
30
- ```
@@ -1,25 +0,0 @@
1
- .gitignore
2
- COPYING
3
- MANIFEST.in
4
- README.md
5
- pyproject.toml
6
- requirements.txt
7
- .github/workflows/publish_pypi.yml
8
- .vscode/settings.json
9
- flightplotting/__init__.py
10
- flightplotting/model.py
11
- flightplotting/plots.py
12
- flightplotting/templates.py
13
- flightplotting/titlerenderer.py
14
- flightplotting/traces.py
15
- flightplotting.egg-info/PKG-INFO
16
- flightplotting.egg-info/SOURCES.txt
17
- flightplotting.egg-info/dependency_links.txt
18
- flightplotting.egg-info/requires.txt
19
- flightplotting.egg-info/top_level.txt
20
- flightplotting/data/ColdDraftF3APlane.obj
21
- flightplotting/data/__init__.py
22
- tests/__init__.py
23
- tests/test_plots.py
24
- tests/data/__init__.py
25
- tests/data/p23_flight.json
@@ -1,6 +0,0 @@
1
- numpy
2
- pandas
3
- plotly
4
- pfc-geometry>=0.2.8
5
- flightdata>=0.2.16
6
- flightanalysis>=0.2.17
@@ -1 +0,0 @@
1
- flightplotting
@@ -1,21 +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 = "flightplotting"
10
- authors = [{name = "Thomas David", email = "thomasdavid0@gmail.com"}]
11
- description = "Tools for Plotting Flight Data in Plotly"
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"]
17
-
18
- [tool.setuptools.dynamic]
19
- dependencies = {file = ["requirements.txt"]}
20
-
21
- [tool.setuptools_scm]
@@ -1,6 +0,0 @@
1
- numpy
2
- pandas
3
- plotly
4
- pfc-geometry>=0.2.8
5
- flightdata>=0.2.16
6
- flightanalysis>=0.2.17
@@ -1,4 +0,0 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
File without changes