photonlibpy 2024.3.1__py3-none-any.whl → 2025.0.0b1__py3-none-any.whl

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.
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: photonlibpy
3
+ Version: 2025.0.0b1
4
+ Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors. Implemented with PhotonVision version v2025.0.0-beta-1 .
5
+ Home-page: https://photonvision.org
6
+ Author: Photonvision Development Team
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: wpilib<2025,>=2024.0.0b2
9
+ Requires-Dist: robotpy-wpimath<2025,>=2024.0.0b2
10
+ Requires-Dist: robotpy-apriltag<2025,>=2024.0.0b2
11
+ Requires-Dist: pyntcore<2025,>=2024.0.0b2
12
+
13
+ A Pure-python implementation of PhotonLib
@@ -0,0 +1,22 @@
1
+ photonlibpy/__init__.py,sha256=JnwWj53fEM263hUjEFGmJ--M3XCX0LYovdrl4wcNRnU,1136
2
+ photonlibpy/estimatedRobotPose.py,sha256=X7wF9xdPXGKSVy0MY0qrWZJOEbuZPd721lYp0KXKlP0,1603
3
+ photonlibpy/packet.py,sha256=ppNJGN9bgWA4smefFvaxqF56Qwcjj0dnqwSIjP92JlE,9528
4
+ photonlibpy/photonCamera.py,sha256=c3Q9AFuccR41AkajkqCRt3mqUtv7a-TNSKOmXBi9p7M,10181
5
+ photonlibpy/photonPoseEstimator.py,sha256=vSpPbKR2WB-bNgWnskSP0Os2CcCzqcPGsE1lUVrcSw0,12584
6
+ photonlibpy/version.py,sha256=Cac9aJKhHkgx4HcwV63_46tpcc8q-mu8IN_P1THZx2Q,77
7
+ photonlibpy/generated/MultiTargetPNPResultSerde.py,sha256=t0hQgz0BvzQTsx-l0EJjr5eRfkY6piQRhu_2N2s2nlw,2342
8
+ photonlibpy/generated/PhotonPipelineMetadataSerde.py,sha256=RiSWwu6ftwc19U_5uexu8VjET7NksjrXanzV8GYEHkE,2767
9
+ photonlibpy/generated/PhotonPipelineResultSerde.py,sha256=DUrkUj2E6nS-Ru-drY-sX8odAl693VKJx_8lp0U-V9M,2847
10
+ photonlibpy/generated/PhotonTrackedTargetSerde.py,sha256=AFuvhmOTBdDtkAOfdS99MRnTk7P-94P0wXi3GHyvJco,4271
11
+ photonlibpy/generated/PnpResultSerde.py,sha256=tdHNHs9A7KBkYgqXQ5mUBc2TF3R_w3I_t922-DS6sQw,2586
12
+ photonlibpy/generated/TargetCornerSerde.py,sha256=K2GJ_t_Gl91lJX823TeR10dzch1IQEX28tfob3eIftg,2080
13
+ photonlibpy/generated/__init__.py,sha256=WdCA9k7QNY1i8B9u5kBilnibajDBg7zfU8GbV7F2H8g,505
14
+ photonlibpy/targeting/TargetCorner.py,sha256=iFWTWu5HcpkBQyvhz_klpAB0TEmy-7_SsD1FHeNfnkE,147
15
+ photonlibpy/targeting/__init__.py,sha256=1GUy4MC8NbZ-TEcFgsnvSm_X0LYeZ0HZagMMRmGpx8A,295
16
+ photonlibpy/targeting/multiTargetPNPResult.py,sha256=G_5Rll-a0wnV2iJhwVpODY1Ag52uOUkzZfsGu5ns04Q,1006
17
+ photonlibpy/targeting/photonPipelineResult.py,sha256=jXaZoyJvNYXg8N3senagkk2iduV5m_qsNnqWS3OsHx8,2508
18
+ photonlibpy/targeting/photonTrackedTarget.py,sha256=qNPqh8eKTP9IIkBMVvkS_dq7SoVOpIm7d5b1ZUtN8bE,1811
19
+ photonlibpy-2025.0.0b1.dist-info/METADATA,sha256=nS1JEF7rUJQSFhyUbfaQsGdook8yknRW74EkZqR0mi0,555
20
+ photonlibpy-2025.0.0b1.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
21
+ photonlibpy-2025.0.0b1.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
22
+ photonlibpy-2025.0.0b1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: bdist_wheel (0.45.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,49 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from wpimath.geometry import Transform3d
3
- from photonlibpy.packet import Packet
4
-
5
-
6
- @dataclass
7
- class PNPResult:
8
- _NUM_BYTES_IN_FLOAT = 8
9
- PACK_SIZE_BYTES = 1 + (_NUM_BYTES_IN_FLOAT * 7 * 2) + (_NUM_BYTES_IN_FLOAT * 3)
10
-
11
- isPresent: bool = False
12
- best: Transform3d = field(default_factory=Transform3d)
13
- alt: Transform3d = field(default_factory=Transform3d)
14
- ambiguity: float = 0.0
15
- bestReprojError: float = 0.0
16
- altReprojError: float = 0.0
17
-
18
- def createFromPacket(self, packet: Packet) -> Packet:
19
- self.isPresent = packet.decodeBoolean()
20
-
21
- if not self.isPresent:
22
- return packet
23
-
24
- self.best = packet.decodeTransform()
25
- self.alt = packet.decodeTransform()
26
- self.bestReprojError = packet.decodeDouble()
27
- self.altReprojError = packet.decodeDouble()
28
- self.ambiguity = packet.decodeDouble()
29
- return packet
30
-
31
-
32
- @dataclass
33
- class MultiTargetPNPResult:
34
- _MAX_IDS = 32
35
- # pnpresult + MAX_IDS possible targets (arbitrary upper limit that should never be hit, ideally)
36
- _PACK_SIZE_BYTES = PNPResult.PACK_SIZE_BYTES + (1 * _MAX_IDS)
37
-
38
- estimatedPose: PNPResult = field(default_factory=PNPResult)
39
- fiducialIDsUsed: list[int] = field(default_factory=list)
40
-
41
- def createFromPacket(self, packet: Packet) -> Packet:
42
- self.estimatedPose = PNPResult()
43
- self.estimatedPose.createFromPacket(packet)
44
- self.fiducialIDsUsed = []
45
- for _ in range(MultiTargetPNPResult._MAX_IDS):
46
- fidId = packet.decode16()
47
- if fidId >= 0:
48
- self.fiducialIDsUsed.append(fidId)
49
- return packet
@@ -1,43 +0,0 @@
1
- from dataclasses import dataclass, field
2
-
3
- from photonlibpy.multiTargetPNPResult import MultiTargetPNPResult
4
- from photonlibpy.packet import Packet
5
- from photonlibpy.photonTrackedTarget import PhotonTrackedTarget
6
-
7
-
8
- @dataclass
9
- class PhotonPipelineResult:
10
- latencyMillis: float = -1.0
11
- timestampSec: float = -1.0
12
- targets: list[PhotonTrackedTarget] = field(default_factory=list)
13
- multiTagResult: MultiTargetPNPResult = field(default_factory=MultiTargetPNPResult)
14
-
15
- def populateFromPacket(self, packet: Packet) -> Packet:
16
- self.targets = []
17
- self.latencyMillis = packet.decodeDouble()
18
- targetCount = packet.decode8()
19
-
20
- for _ in range(targetCount):
21
- target = PhotonTrackedTarget()
22
- target.createFromPacket(packet)
23
- self.targets.append(target)
24
-
25
- self.multiTagResult = MultiTargetPNPResult()
26
- self.multiTagResult.createFromPacket(packet)
27
-
28
- return packet
29
-
30
- def setTimestampSeconds(self, timestampSec: float) -> None:
31
- self.timestampSec = timestampSec
32
-
33
- def getLatencyMillis(self) -> float:
34
- return self.latencyMillis
35
-
36
- def getTimestamp(self) -> float:
37
- return self.timestampSec
38
-
39
- def getTargets(self) -> list[PhotonTrackedTarget]:
40
- return self.targets
41
-
42
- def hasTargets(self) -> bool:
43
- return len(self.targets) > 0
@@ -1,13 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: photonlibpy
3
- Version: 2024.3.1
4
- Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors.
5
- Home-page: https://photonvision.org
6
- Author: Photonvision Development Team
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: wpilib <2025,>=2024.0.0b2
9
- Requires-Dist: robotpy-wpimath <2025,>=2024.0.0b2
10
- Requires-Dist: robotpy-apriltag <2025,>=2024.0.0b2
11
- Requires-Dist: pyntcore <2025,>=2024.0.0b2
12
-
13
- A Pure-python implementation of PhotonLib
@@ -1,13 +0,0 @@
1
- photonlibpy/__init__.py,sha256=Poafj5ngdQ2T0yW3zhnQ2NHw70XrTwXvT8aDCAImYbg,30
2
- photonlibpy/estimatedRobotPose.py,sha256=_lgVu157fBpG85WpeS4uXWCF4aQDUbMI2SWXG5lee9I,673
3
- photonlibpy/multiTargetPNPResult.py,sha256=AgrRjSna1s8yJWUdBgWxqKxm0cqgXwYrKEzgfP7pzGE,1660
4
- photonlibpy/packet.py,sha256=Sg_Sln_DNYvdT0DpekIb6v67e3c4oX08zLQe9oDd2OU,3969
5
- photonlibpy/photonCamera.py,sha256=5bbyMIVnz9oCfeQR0CrycjrM7TuoDF_ybe6OZbAdVpk,6946
6
- photonlibpy/photonPipelineResult.py,sha256=IpHxXKuyfOKcslgm_Ce2PqV8HgXTN_IMUuNb5BBTzSo,1351
7
- photonlibpy/photonPoseEstimator.py,sha256=s99TjCi3SFpCo5fPckw2ZfJK7E3lvFO3zpr0GnDDyKM,11580
8
- photonlibpy/photonTrackedTarget.py,sha256=Br2L4fNNwQP4eUj9eV9I653FOER00JbeHB5SMNTSaHc,2482
9
- photonlibpy/version.py,sha256=cLtN559uk-KlzHhdhRQ2MoAO-iHP1C1nyS5PJ2F8TZo,62
10
- photonlibpy-2024.3.1.dist-info/METADATA,sha256=hd_3Q0yZnYzxZ4wHBequLJQOJokRlO-sq8zoOcQsvl8,500
11
- photonlibpy-2024.3.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
12
- photonlibpy-2024.3.1.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
13
- photonlibpy-2024.3.1.dist-info/RECORD,,