pfc-geometry 0.2.12__tar.gz → 0.2.14__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 (41) hide show
  1. pfc_geometry-0.2.14/.dockerignore +5 -0
  2. pfc_geometry-0.2.14/.github/workflows/publish_pypi.yml +26 -0
  3. {pfc_geometry-0.2.12/pfc_geometry.egg-info → pfc_geometry-0.2.14}/PKG-INFO +5 -15
  4. pfc_geometry-0.2.14/pyproject.toml +17 -0
  5. pfc_geometry-0.2.14/tests/__init__.py +0 -0
  6. pfc_geometry-0.2.14/tests/test_gps.py +53 -0
  7. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_point.py +1 -1
  8. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_quaternion.py +3 -4
  9. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_transform.py +2 -3
  10. pfc_geometry-0.2.14/uv.lock +210 -0
  11. pfc_geometry-0.2.12/.github/workflows/publish_pypi.yml +0 -55
  12. pfc_geometry-0.2.12/.vscode/settings.json +0 -16
  13. pfc_geometry-0.2.12/PKG-INFO +0 -35
  14. pfc_geometry-0.2.12/pfc_geometry.egg-info/SOURCES.txt +0 -33
  15. pfc_geometry-0.2.12/pfc_geometry.egg-info/dependency_links.txt +0 -1
  16. pfc_geometry-0.2.12/pfc_geometry.egg-info/requires.txt +0 -7
  17. pfc_geometry-0.2.12/pfc_geometry.egg-info/top_level.txt +0 -1
  18. pfc_geometry-0.2.12/pyproject.toml +0 -27
  19. pfc_geometry-0.2.12/requirements-dev.txt +0 -3
  20. pfc_geometry-0.2.12/requirements.txt +0 -2
  21. pfc_geometry-0.2.12/setup.cfg +0 -4
  22. pfc_geometry-0.2.12/tests/quat_body_diff_test.csv +0 -827
  23. pfc_geometry-0.2.12/tests/test_gps.py +0 -53
  24. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/.gitignore +0 -0
  25. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/LICENSE +0 -0
  26. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/README.md +0 -0
  27. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/__init__.py +0 -0
  28. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/base.py +0 -0
  29. /pfc_geometry-0.2.12/geometry/testing.py → /pfc_geometry-0.2.14/src/geometry/checks.py +0 -0
  30. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/coordinate_frame.py +0 -0
  31. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/gps.py +0 -0
  32. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/mass.py +0 -0
  33. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/point.py +0 -0
  34. /pfc_geometry-0.2.12/tests/__init__.py → /pfc_geometry-0.2.14/src/geometry/py.typed +0 -0
  35. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/quaternion.py +0 -0
  36. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/time.py +0 -0
  37. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14/src}/geometry/transformation.py +0 -0
  38. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_base.py +0 -0
  39. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_coord.py +0 -0
  40. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_mass.py +0 -0
  41. {pfc_geometry-0.2.12 → pfc_geometry-0.2.14}/tests/test_remove_outliers.csv +0 -0
@@ -0,0 +1,5 @@
1
+ __pycache__
2
+ .*
3
+ Dockerfile
4
+ tests
5
+ examples
@@ -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,21 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pfc-geometry
3
- Version: 0.2.12
4
- Summary: A package for handling 3D geometry with a nice interface
5
- Author-email: Thomas David <thomasdavid0@gmail.com>
6
- License: GNU GPL v3
7
- Project-URL: Homepage, https://github.com/PyFlightCoach/geometry
8
- Project-URL: Documentation, https://pfcdocumentation.readthedocs.io/pyflightcoach/geometry.html
9
- Classifier: Programming Language :: Python :: 3
3
+ Version: 0.2.14
4
+ Summary: A library for working with 3D geometry.
10
5
  Requires-Python: >=3.12
6
+ Requires-Dist: numpy>=2.1.3
7
+ Requires-Dist: pandas>=2.2.3
11
8
  Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: numpy
14
- Requires-Dist: pandas
15
- Provides-Extra: dev
16
- Requires-Dist: numpy; extra == "dev"
17
- Requires-Dist: pandas; extra == "dev"
18
- Requires-Dist: pytest; extra == "dev"
19
9
 
20
10
  # geometry #
21
11
 
@@ -0,0 +1,17 @@
1
+ [project]
2
+ name = "pfc-geometry"
3
+ version="0.2.14"
4
+ description = "A library for working with 3D geometry."
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = ["numpy>=2.1.3", "pandas>=2.2.3"]
8
+
9
+ [build-system]
10
+ requires = ["hatchling"]
11
+ build-backend = "hatchling.build"
12
+
13
+ [tool.hatch.build.targets.wheel]
14
+ packages = ["src/geometry"]
15
+
16
+ [dependency-groups]
17
+ dev = ["pytest>=8.3.3"]
File without changes
@@ -0,0 +1,53 @@
1
+ import numpy as np
2
+ from geometry.gps import GPS
3
+ from pytest import approx
4
+
5
+
6
+ def test_offset():
7
+ c = GPS(52.542375, -1.631038, 0)
8
+ p = GPS(52.542264, -1.631817, 0)
9
+ diff = c - p
10
+ c2 = p.offset(diff)
11
+
12
+ diff2 = c2 - p
13
+
14
+ np.testing.assert_array_almost_equal(diff.data, diff2.data, 1e-4)
15
+
16
+
17
+ def test_diff():
18
+ p0 = GPS(50.206, 4.1941755999999994, 0)
19
+ p0n = GPS(50.201, 4.1941755999999994, 0)
20
+
21
+ diff = p0 - p0n # should be south vector
22
+ approx(diff.y, 0)
23
+ assert diff.x > 0
24
+
25
+ p0e = GPS(50.206, 4.195, 0)
26
+ diff = p0 - p0e # should be west vector
27
+ approx(diff.x, 0)
28
+ assert diff.y < 0
29
+
30
+
31
+ def test_diff():
32
+ p0 = GPS(50.201, 4.195, 0)
33
+ p0n = GPS(50.206, 4.195, 0) # directly north of p0
34
+
35
+ diff = p0 - p0n # should be south vector
36
+ assert diff.y == approx(0)
37
+ assert diff.x < 0
38
+
39
+ p0e = GPS(50.201, 4.196, 0)
40
+ diff = p0 - p0e # should be west vector
41
+ assert diff.x == approx(0)
42
+ assert diff.y < 0
43
+
44
+
45
+ def test_sub():
46
+ centre = GPS(52.542375, -1.631038, 0)
47
+ pilot = GPS(52.542264, -1.631817, 0)
48
+
49
+ vec = centre - pilot
50
+
51
+ assert abs(vec)[0] == approx(54.167, 1e-3)
52
+ assert vec.x[0] == approx(12.3563, 1e-3)
53
+ assert vec.y[0] == approx(52.7393, 1e-3)
@@ -4,7 +4,7 @@ import unittest
4
4
  from math import pi
5
5
  from pytest import mark, approx, fixture, raises
6
6
  import numpy as np
7
- from geometry.testing import assert_equal
7
+ from geometry.checks import assert_equal
8
8
 
9
9
  def test_init():
10
10
  p = Point(1,2,3)
@@ -1,9 +1,8 @@
1
- import unittest
2
- from pytest import mark, approx, raises
1
+ from pytest import approx, mark
3
2
  from geometry.quaternion import Quaternion, Q0
4
3
  from geometry.point import Point, PX, PY, PZ, P0
5
4
  from geometry import Euler, Euldeg
6
- from geometry.testing import assert_almost_equal
5
+ from geometry.checks import assert_almost_equal
7
6
  import pandas as pd
8
7
  import numpy as np
9
8
 
@@ -197,7 +196,7 @@ def test_closest_principal():
197
196
  )
198
197
 
199
198
 
200
-
199
+ @mark.skip("to be thought about later")
201
200
  def test_backward_diff_problem():
202
201
  data = pd.read_csv('tests/quat_body_diff_test.csv')
203
202
  ps = Quaternion(data.iloc[:,1:]).body_diff(data.iloc[:,0].to_numpy())
@@ -1,7 +1,6 @@
1
- from pytest import mark, approx
2
- from geometry import Coord, Transformation, Point, Quaternion, PX, PY, PZ, P0
3
1
  import numpy as np
4
- from geometry.testing import assert_almost_equal
2
+ from geometry import P0, PX, PY, PZ, Coord, Point, Quaternion, Transformation
3
+ from geometry.checks import assert_almost_equal
5
4
 
6
5
 
7
6
  def test_from_coords():
@@ -0,0 +1,210 @@
1
+ version = 1
2
+ requires-python = ">=3.12"
3
+
4
+ [[package]]
5
+ name = "colorama"
6
+ version = "0.4.6"
7
+ source = { registry = "https://pypi.org/simple" }
8
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
9
+ wheels = [
10
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
11
+ ]
12
+
13
+ [[package]]
14
+ name = "iniconfig"
15
+ version = "2.0.0"
16
+ source = { registry = "https://pypi.org/simple" }
17
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
18
+ wheels = [
19
+ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
20
+ ]
21
+
22
+ [[package]]
23
+ name = "numpy"
24
+ version = "2.1.3"
25
+ source = { registry = "https://pypi.org/simple" }
26
+ sdist = { url = "https://files.pythonhosted.org/packages/25/ca/1166b75c21abd1da445b97bf1fa2f14f423c6cfb4fc7c4ef31dccf9f6a94/numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", size = 20166090 }
27
+ wheels = [
28
+ { 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 },
29
+ { 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 },
30
+ { 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 },
31
+ { 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 },
32
+ { 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 },
33
+ { 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 },
34
+ { 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 },
35
+ { 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 },
36
+ { url = "https://files.pythonhosted.org/packages/ac/b6/26108cf2cfa5c7e03fb969b595c93131eab4a399762b51ce9ebec2332e80/numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", size = 6239077 },
37
+ { url = "https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", size = 12566858 },
38
+ { 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 },
39
+ { 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 },
40
+ { 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 },
41
+ { 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 },
42
+ { 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 },
43
+ { 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 },
44
+ { 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 },
45
+ { 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 },
46
+ { url = "https://files.pythonhosted.org/packages/e9/6a/d64514dcecb2ee70bfdfad10c42b76cab657e7ee31944ff7a600f141d9e9/numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", size = 6236021 },
47
+ { url = "https://files.pythonhosted.org/packages/bb/f9/12297ed8d8301a401e7d8eb6b418d32547f1d700ed3c038d325a605421a4/numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", size = 12560405 },
48
+ { 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 },
49
+ { 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 },
50
+ { 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 },
51
+ { 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 },
52
+ { 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 },
53
+ { 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 },
54
+ { 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 },
55
+ { 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 },
56
+ { url = "https://files.pythonhosted.org/packages/24/d7/78a40ed1d80e23a774cb8a34ae8a9493ba1b4271dde96e56ccdbab1620ef/numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", size = 6291907 },
57
+ { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098 },
58
+ ]
59
+
60
+ [[package]]
61
+ name = "numpy-quaternion"
62
+ version = "2023.0.3"
63
+ source = { registry = "https://pypi.org/simple" }
64
+ dependencies = [
65
+ { name = "numpy" },
66
+ ]
67
+ sdist = { url = "https://files.pythonhosted.org/packages/30/66/42eaef5f1a4e12a2008691987451936f6f00e18c38166eef24480a4a6e8c/numpy-quaternion-2023.0.3.tar.gz", hash = "sha256:392bf3cb4eee36c0e9271534e93e39e46cdb4f7e2062b08cb38bd0872061ff6c", size = 65476 }
68
+ wheels = [
69
+ { url = "https://files.pythonhosted.org/packages/c0/f1/5a3eeb806e82c1fa0494773bc4039a5eebae06d2015df4442bb9c9762698/numpy_quaternion-2023.0.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7c67e35c3f128f8c32b76be448d8b8f102d4fd8d19086afc816fa8908abd91f0", size = 87492 },
70
+ { url = "https://files.pythonhosted.org/packages/29/ed/e348d8edcccc52e42abf8d0a3fe176889394044edc1855a9a2f2c2244406/numpy_quaternion-2023.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0ba2e4f266a94650d45407ff8507c546951f30a445f3a3f1701e517c6c456dda", size = 61582 },
71
+ { url = "https://files.pythonhosted.org/packages/dd/24/8fd2244cf3fe61685ba16cc41f435506d031f5732c652abdc3a627d402d1/numpy_quaternion-2023.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4285e8e4df7216f9adfe15d2802472c89758d92cbf3c7fde31798ca0e22eb7e0", size = 56063 },
72
+ { url = "https://files.pythonhosted.org/packages/9e/ee/8142063f6ec73bc3a56f604d23187760e9bf2750d1c2f8a8e70366810ca6/numpy_quaternion-2023.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:481d386e4863e2aef88b618ac73e6dec9635737d01c9ccddfd53a855edcfea84", size = 182455 },
73
+ { url = "https://files.pythonhosted.org/packages/06/4e/486c2eb582b6fe247169906d1704f9a43041ca421d25279797d1dd31845a/numpy_quaternion-2023.0.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92be260eccb718f07c67e314601a3cca22bb5cdcba8e6fd6c70febd24f947d4a", size = 198604 },
74
+ { url = "https://files.pythonhosted.org/packages/df/61/47f572c9404a55adc2e0cce92c3d46539358776a9928095ee0f44d8b1430/numpy_quaternion-2023.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e56939aae3f493acfa7c09dc5476893a61b3a7843e7c22d7cf65a14f9fe5eba3", size = 213267 },
75
+ { url = "https://files.pythonhosted.org/packages/81/19/b462c46dbc895356bbb93de918aa1ee9e4d2121db06f78514448187d5eb4/numpy_quaternion-2023.0.3-cp312-cp312-win32.whl", hash = "sha256:1b8fc0d8cdee31cee21d8564726dab3ad8206a4119d60e0732bcd9b8b7d079d2", size = 61145 },
76
+ { url = "https://files.pythonhosted.org/packages/c7/4f/2256dfa245a29bc671515cac8765ee423a94f0d38fe0a17f7bc02802beef/numpy_quaternion-2023.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:23f429263e0e6f290ca6f6187a2739567f7fcd5e066259f0098007fa06068d44", size = 69958 },
77
+ ]
78
+
79
+ [[package]]
80
+ name = "packaging"
81
+ version = "24.2"
82
+ source = { registry = "https://pypi.org/simple" }
83
+ sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
84
+ wheels = [
85
+ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
86
+ ]
87
+
88
+ [[package]]
89
+ name = "pandas"
90
+ version = "2.2.3"
91
+ source = { registry = "https://pypi.org/simple" }
92
+ dependencies = [
93
+ { name = "numpy" },
94
+ { name = "python-dateutil" },
95
+ { name = "pytz" },
96
+ { name = "tzdata" },
97
+ ]
98
+ sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 }
99
+ wheels = [
100
+ { 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 },
101
+ { 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 },
102
+ { 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 },
103
+ { 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 },
104
+ { 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 },
105
+ { 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 },
106
+ { url = "https://files.pythonhosted.org/packages/29/d4/1244ab8edf173a10fd601f7e13b9566c1b525c4f365d6bee918e68381889/pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", size = 11504248 },
107
+ { 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 },
108
+ { 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 },
109
+ { 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 },
110
+ { 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 },
111
+ { 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 },
112
+ { 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 },
113
+ { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 },
114
+ { 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 },
115
+ { 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 },
116
+ { 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 },
117
+ { 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 },
118
+ { 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 },
119
+ { 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 },
120
+ ]
121
+
122
+ [[package]]
123
+ name = "pfc-geometry"
124
+ version = "0.2.13"
125
+ source = { editable = "." }
126
+ dependencies = [
127
+ { name = "numpy" },
128
+ { name = "pandas" },
129
+ ]
130
+
131
+ [package.dev-dependencies]
132
+ dev = [
133
+ { name = "numpy-quaternion" },
134
+ { name = "pytest" },
135
+ ]
136
+
137
+ [package.metadata]
138
+ requires-dist = [
139
+ { name = "numpy", specifier = ">=2.1.3" },
140
+ { name = "pandas", specifier = ">=2.2.3" },
141
+ ]
142
+
143
+ [package.metadata.requires-dev]
144
+ dev = [
145
+ { name = "numpy-quaternion", specifier = ">=2023.0.3" },
146
+ { name = "pytest", specifier = ">=8.3.3" },
147
+ ]
148
+
149
+ [[package]]
150
+ name = "pluggy"
151
+ version = "1.5.0"
152
+ source = { registry = "https://pypi.org/simple" }
153
+ sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 }
154
+ wheels = [
155
+ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 },
156
+ ]
157
+
158
+ [[package]]
159
+ name = "pytest"
160
+ version = "8.3.3"
161
+ source = { registry = "https://pypi.org/simple" }
162
+ dependencies = [
163
+ { name = "colorama", marker = "sys_platform == 'win32'" },
164
+ { name = "iniconfig" },
165
+ { name = "packaging" },
166
+ { name = "pluggy" },
167
+ ]
168
+ sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 }
169
+ wheels = [
170
+ { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 },
171
+ ]
172
+
173
+ [[package]]
174
+ name = "python-dateutil"
175
+ version = "2.9.0.post0"
176
+ source = { registry = "https://pypi.org/simple" }
177
+ dependencies = [
178
+ { name = "six" },
179
+ ]
180
+ sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
181
+ wheels = [
182
+ { 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 },
183
+ ]
184
+
185
+ [[package]]
186
+ name = "pytz"
187
+ version = "2024.2"
188
+ source = { registry = "https://pypi.org/simple" }
189
+ sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 }
190
+ wheels = [
191
+ { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 },
192
+ ]
193
+
194
+ [[package]]
195
+ name = "six"
196
+ version = "1.16.0"
197
+ source = { registry = "https://pypi.org/simple" }
198
+ sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 }
199
+ wheels = [
200
+ { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
201
+ ]
202
+
203
+ [[package]]
204
+ name = "tzdata"
205
+ version = "2024.2"
206
+ source = { registry = "https://pypi.org/simple" }
207
+ sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 }
208
+ wheels = [
209
+ { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
210
+ ]
@@ -1,55 +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
54
-
55
-
@@ -1,16 +0,0 @@
1
- {
2
- "python.testing.unittestArgs": [
3
- "-v",
4
- "-s",
5
- "./tests",
6
- "-p",
7
- "test_*.py"
8
- ],
9
- "python.testing.pytestEnabled": true,
10
- "python.testing.nosetestsEnabled": false,
11
- "python.testing.unittestEnabled": false,
12
- "python.pythonPath": "/home/tom/miniconda3/envs/geom/bin/python",
13
- "python.testing.pytestArgs": [
14
- "tests"
15
- ]
16
- }
@@ -1,35 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pfc-geometry
3
- Version: 0.2.12
4
- Summary: A package for handling 3D geometry with a nice interface
5
- Author-email: Thomas David <thomasdavid0@gmail.com>
6
- License: GNU GPL v3
7
- Project-URL: Homepage, https://github.com/PyFlightCoach/geometry
8
- Project-URL: Documentation, https://pfcdocumentation.readthedocs.io/pyflightcoach/geometry.html
9
- Classifier: Programming Language :: Python :: 3
10
- Requires-Python: >=3.12
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: numpy
14
- Requires-Dist: pandas
15
- Provides-Extra: dev
16
- Requires-Dist: numpy; extra == "dev"
17
- Requires-Dist: pandas; extra == "dev"
18
- Requires-Dist: pytest; extra == "dev"
19
-
20
- # geometry #
21
-
22
- Tools for handling 3D geometry, mostly just adds a nice interface to various geometric enterties. Each geometric entity can also be a vector of geometric entities. Each entity wraps a numpy array with the relevant number of columns labelled according to the cols class property and rows equal to the number of elements in the vector. Attribute access to each column is available and returns a numpy array.
23
-
24
- Where operations are supported between geometric types the size of the output is inferred based on the length of the inputs. Where the two vectors of entities are of the same length, elementwise operations are performed. Where one vector is length one and the other is greater than one then the operation will be performed on every element of the longer vector.
25
-
26
- Magic methods are used extensively and the function of operators are logical for each type. If unsure what the logical option is then check the code where it should be pretty clear.
27
-
28
- Many convenience methods and constructors are available. Documentation is limited but if you need something it has probably already been written so check the code first.
29
-
30
- Some examples are available here: https://pfcdocumentation.readthedocs.io/pyflightcoach/geometry.html
31
-
32
- now available on pypi:
33
- ```bash
34
- pip install pfc-geometry
35
- ```
@@ -1,33 +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/settings.json
9
- geometry/__init__.py
10
- geometry/base.py
11
- geometry/coordinate_frame.py
12
- geometry/gps.py
13
- geometry/mass.py
14
- geometry/point.py
15
- geometry/quaternion.py
16
- geometry/testing.py
17
- geometry/time.py
18
- geometry/transformation.py
19
- pfc_geometry.egg-info/PKG-INFO
20
- pfc_geometry.egg-info/SOURCES.txt
21
- pfc_geometry.egg-info/dependency_links.txt
22
- pfc_geometry.egg-info/requires.txt
23
- pfc_geometry.egg-info/top_level.txt
24
- tests/__init__.py
25
- tests/quat_body_diff_test.csv
26
- tests/test_base.py
27
- tests/test_coord.py
28
- tests/test_gps.py
29
- tests/test_mass.py
30
- tests/test_point.py
31
- tests/test_quaternion.py
32
- tests/test_remove_outliers.csv
33
- tests/test_transform.py
@@ -1,7 +0,0 @@
1
- numpy
2
- pandas
3
-
4
- [dev]
5
- numpy
6
- pandas
7
- pytest
@@ -1 +0,0 @@
1
- geometry
@@ -1,27 +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 = "pfc-geometry"
10
- authors = [{name = "Thomas David", email = "thomasdavid0@gmail.com"}]
11
- description = "A package for handling 3D geometry with a nice interface"
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
-
19
- [project.urls]
20
- Homepage = "https://github.com/PyFlightCoach/geometry"
21
- Documentation = "https://pfcdocumentation.readthedocs.io/pyflightcoach/geometry.html"
22
-
23
- [tool.setuptools.dynamic]
24
- dependencies = {file = ["requirements.txt"]}
25
- optional-dependencies = {dev = { file = ["requirements-dev.txt"] }}
26
-
27
- [tool.setuptools_scm]
@@ -1,3 +0,0 @@
1
- numpy
2
- pandas
3
- pytest
@@ -1,2 +0,0 @@
1
- numpy
2
- pandas
@@ -1,4 +0,0 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-