current-data-py 0.1.0__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.
- current_data_py/__init__.py +6 -0
- current_data_py/_proto/builtin_interfaces/duration_pb2.py +25 -0
- current_data_py/_proto/builtin_interfaces/time_pb2.py +25 -0
- current_data_py/_proto/custom_msgs/joint_current_pb2.py +26 -0
- current_data_py/_proto/foxglove/compressed_video_pb2.py +26 -0
- current_data_py/_proto/geometry_msgs/point32_pb2.py +25 -0
- current_data_py/_proto/geometry_msgs/point_pb2.py +25 -0
- current_data_py/_proto/geometry_msgs/pose_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/pose_stamped_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/pose_with_covariance_pb2.py +26 -0
- current_data_py/_proto/geometry_msgs/pose_with_covariance_stamped_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/quaternion_pb2.py +25 -0
- current_data_py/_proto/geometry_msgs/transform_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/transform_stamped_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/twist_pb2.py +26 -0
- current_data_py/_proto/geometry_msgs/twist_stamped_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/twist_with_covariance_pb2.py +26 -0
- current_data_py/_proto/geometry_msgs/twist_with_covariance_stamped_pb2.py +27 -0
- current_data_py/_proto/geometry_msgs/vector3_pb2.py +25 -0
- current_data_py/_proto/geometry_msgs/wrench_pb2.py +26 -0
- current_data_py/_proto/geometry_msgs/wrench_stamped_pb2.py +27 -0
- current_data_py/_proto/nav_msgs/map_meta_data_pb2.py +27 -0
- current_data_py/_proto/nav_msgs/occupancy_grid_pb2.py +27 -0
- current_data_py/_proto/nav_msgs/odometry_pb2.py +28 -0
- current_data_py/_proto/nav_msgs/path_pb2.py +27 -0
- current_data_py/_proto/sensor_msgs/battery_state_pb2.py +32 -0
- current_data_py/_proto/sensor_msgs/camera_info_pb2.py +27 -0
- current_data_py/_proto/sensor_msgs/compressed_image_pb2.py +26 -0
- current_data_py/_proto/sensor_msgs/image_pb2.py +26 -0
- current_data_py/_proto/sensor_msgs/imu_pb2.py +28 -0
- current_data_py/_proto/sensor_msgs/joint_state_pb2.py +26 -0
- current_data_py/_proto/sensor_msgs/laser_scan_pb2.py +26 -0
- current_data_py/_proto/sensor_msgs/nav_sat_fix_pb2.py +29 -0
- current_data_py/_proto/sensor_msgs/nav_sat_status_pb2.py +27 -0
- current_data_py/_proto/sensor_msgs/point_cloud2_pb2.py +27 -0
- current_data_py/_proto/sensor_msgs/point_field_pb2.py +27 -0
- current_data_py/_proto/sensor_msgs/range_pb2.py +28 -0
- current_data_py/_proto/sensor_msgs/region_of_interest_pb2.py +25 -0
- current_data_py/_proto/std_msgs/bool_pb2.py +25 -0
- current_data_py/_proto/std_msgs/color_rgba_pb2.py +25 -0
- current_data_py/_proto/std_msgs/float32_pb2.py +25 -0
- current_data_py/_proto/std_msgs/float64_pb2.py +25 -0
- current_data_py/_proto/std_msgs/header_pb2.py +26 -0
- current_data_py/_proto/std_msgs/int32_pb2.py +25 -0
- current_data_py/_proto/std_msgs/string_pb2.py +25 -0
- current_data_py/_proto/std_msgs/uint32_pb2.py +25 -0
- current_data_py/_proto/tf2_msgs/tf_message_pb2.py +26 -0
- current_data_py/message_metadata.py +31 -0
- current_data_py/read_td.py +30 -0
- current_data_py/schema.py +102 -0
- current_data_py/write_td.py +30 -0
- current_data_py-0.1.0.dist-info/METADATA +70 -0
- current_data_py-0.1.0.dist-info/RECORD +55 -0
- current_data_py-0.1.0.dist-info/WHEEL +5 -0
- current_data_py-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from google.protobuf import descriptor_pb2
|
|
2
|
+
|
|
3
|
+
from .schema import SCHEMA_TO_CLASS
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
CLASS_TO_SCHEMA = {message_class: schema for schema, message_class in SCHEMA_TO_CLASS.items()}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def descriptor_set(message_class) -> bytes:
|
|
10
|
+
seen = set()
|
|
11
|
+
result = descriptor_pb2.FileDescriptorSet()
|
|
12
|
+
|
|
13
|
+
def collect(descriptor) -> None:
|
|
14
|
+
if descriptor.name in seen:
|
|
15
|
+
return
|
|
16
|
+
seen.add(descriptor.name)
|
|
17
|
+
for dependency in descriptor.dependencies:
|
|
18
|
+
collect(dependency)
|
|
19
|
+
result.file.add().ParseFromString(descriptor.serialized_pb)
|
|
20
|
+
|
|
21
|
+
collect(message_class.DESCRIPTOR.file)
|
|
22
|
+
return result.SerializeToString()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def topic_metadata(message_class) -> dict[str, object]:
|
|
26
|
+
return {
|
|
27
|
+
"message_encoding": "protobuf",
|
|
28
|
+
"schema_name": CLASS_TO_SCHEMA[message_class],
|
|
29
|
+
"schema_encoding": "protobuf",
|
|
30
|
+
"schema_data": descriptor_set(message_class),
|
|
31
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
from turbodata import FileReadSource, Reader
|
|
5
|
+
|
|
6
|
+
from .schema import SCHEMA_TO_CLASS
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def main() -> None:
|
|
10
|
+
parser = argparse.ArgumentParser(description="Read protobuf messages from a TD file")
|
|
11
|
+
parser.add_argument("path", type=Path)
|
|
12
|
+
args = parser.parse_args()
|
|
13
|
+
|
|
14
|
+
with FileReadSource(str(args.path)) as source:
|
|
15
|
+
reader = Reader(source)
|
|
16
|
+
schemas = {
|
|
17
|
+
topic.name: topic.metadata["schema_name"]
|
|
18
|
+
for group in reader.summary().topics_infos
|
|
19
|
+
for topic in group.topic_metadatas
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for message in reader.read_messages(topic_names=["/head/pose/command"]):
|
|
23
|
+
schema = schemas[message.topic_name]
|
|
24
|
+
msg = SCHEMA_TO_CLASS[schema]()
|
|
25
|
+
msg.ParseFromString(message.data)
|
|
26
|
+
print(message.timestamp, message.topic_name, schema, msg.position.y)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
if __name__ == "__main__":
|
|
30
|
+
main()
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from ._proto.builtin_interfaces.duration_pb2 import Duration
|
|
2
|
+
from ._proto.builtin_interfaces.time_pb2 import Time
|
|
3
|
+
from ._proto.custom_msgs.joint_current_pb2 import JointCurrent
|
|
4
|
+
from ._proto.foxglove.compressed_video_pb2 import CompressedVideo
|
|
5
|
+
from ._proto.geometry_msgs.point_pb2 import Point
|
|
6
|
+
from ._proto.geometry_msgs.point32_pb2 import Point32
|
|
7
|
+
from ._proto.geometry_msgs.pose_pb2 import Pose
|
|
8
|
+
from ._proto.geometry_msgs.pose_stamped_pb2 import PoseStamped
|
|
9
|
+
from ._proto.geometry_msgs.pose_with_covariance_pb2 import PoseWithCovariance
|
|
10
|
+
from ._proto.geometry_msgs.pose_with_covariance_stamped_pb2 import PoseWithCovarianceStamped
|
|
11
|
+
from ._proto.geometry_msgs.quaternion_pb2 import Quaternion
|
|
12
|
+
from ._proto.geometry_msgs.transform_pb2 import Transform
|
|
13
|
+
from ._proto.geometry_msgs.transform_stamped_pb2 import TransformStamped
|
|
14
|
+
from ._proto.geometry_msgs.twist_pb2 import Twist
|
|
15
|
+
from ._proto.geometry_msgs.twist_stamped_pb2 import TwistStamped
|
|
16
|
+
from ._proto.geometry_msgs.twist_with_covariance_pb2 import TwistWithCovariance
|
|
17
|
+
from ._proto.geometry_msgs.twist_with_covariance_stamped_pb2 import TwistWithCovarianceStamped
|
|
18
|
+
from ._proto.geometry_msgs.vector3_pb2 import Vector3
|
|
19
|
+
from ._proto.geometry_msgs.wrench_pb2 import Wrench
|
|
20
|
+
from ._proto.geometry_msgs.wrench_stamped_pb2 import WrenchStamped
|
|
21
|
+
from ._proto.nav_msgs.map_meta_data_pb2 import MapMetaData
|
|
22
|
+
from ._proto.nav_msgs.occupancy_grid_pb2 import OccupancyGrid
|
|
23
|
+
from ._proto.nav_msgs.odometry_pb2 import Odometry
|
|
24
|
+
from ._proto.nav_msgs.path_pb2 import Path
|
|
25
|
+
from ._proto.sensor_msgs.battery_state_pb2 import BatteryState
|
|
26
|
+
from ._proto.sensor_msgs.camera_info_pb2 import CameraInfo
|
|
27
|
+
from ._proto.sensor_msgs.compressed_image_pb2 import CompressedImage
|
|
28
|
+
from ._proto.sensor_msgs.image_pb2 import Image
|
|
29
|
+
from ._proto.sensor_msgs.imu_pb2 import Imu
|
|
30
|
+
from ._proto.sensor_msgs.joint_state_pb2 import JointState
|
|
31
|
+
from ._proto.sensor_msgs.laser_scan_pb2 import LaserScan
|
|
32
|
+
from ._proto.sensor_msgs.nav_sat_fix_pb2 import NavSatFix
|
|
33
|
+
from ._proto.sensor_msgs.nav_sat_status_pb2 import NavSatStatus
|
|
34
|
+
from ._proto.sensor_msgs.point_cloud2_pb2 import PointCloud2
|
|
35
|
+
from ._proto.sensor_msgs.point_field_pb2 import PointField
|
|
36
|
+
from ._proto.sensor_msgs.range_pb2 import Range
|
|
37
|
+
from ._proto.sensor_msgs.region_of_interest_pb2 import RegionOfInterest
|
|
38
|
+
from ._proto.std_msgs.bool_pb2 import Bool
|
|
39
|
+
from ._proto.std_msgs.color_rgba_pb2 import ColorRGBA
|
|
40
|
+
from ._proto.std_msgs.float32_pb2 import Float32
|
|
41
|
+
from ._proto.std_msgs.float64_pb2 import Float64
|
|
42
|
+
from ._proto.std_msgs.header_pb2 import Header
|
|
43
|
+
from ._proto.std_msgs.int32_pb2 import Int32
|
|
44
|
+
from ._proto.std_msgs.string_pb2 import String
|
|
45
|
+
from ._proto.std_msgs.uint32_pb2 import UInt32
|
|
46
|
+
from ._proto.tf2_msgs.tf_message_pb2 import TFMessage
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
SCHEMA_TO_CLASS = {
|
|
50
|
+
"builtin_interfaces.Duration": Duration,
|
|
51
|
+
"builtin_interfaces.Time": Time,
|
|
52
|
+
"custom_msgs.JointCurrent": JointCurrent,
|
|
53
|
+
"foxglove.CompressedVideo": CompressedVideo,
|
|
54
|
+
"geometry_msgs.Point": Point,
|
|
55
|
+
"geometry_msgs.Point32": Point32,
|
|
56
|
+
"geometry_msgs.Pose": Pose,
|
|
57
|
+
"geometry_msgs.PoseStamped": PoseStamped,
|
|
58
|
+
"geometry_msgs.PoseWithCovariance": PoseWithCovariance,
|
|
59
|
+
"geometry_msgs.PoseWithCovarianceStamped": PoseWithCovarianceStamped,
|
|
60
|
+
"geometry_msgs.Quaternion": Quaternion,
|
|
61
|
+
"geometry_msgs.Transform": Transform,
|
|
62
|
+
"geometry_msgs.TransformStamped": TransformStamped,
|
|
63
|
+
"geometry_msgs.Twist": Twist,
|
|
64
|
+
"geometry_msgs.TwistStamped": TwistStamped,
|
|
65
|
+
"geometry_msgs.TwistWithCovariance": TwistWithCovariance,
|
|
66
|
+
"geometry_msgs.TwistWithCovarianceStamped": TwistWithCovarianceStamped,
|
|
67
|
+
"geometry_msgs.Vector3": Vector3,
|
|
68
|
+
"geometry_msgs.Wrench": Wrench,
|
|
69
|
+
"geometry_msgs.WrenchStamped": WrenchStamped,
|
|
70
|
+
"nav_msgs.MapMetaData": MapMetaData,
|
|
71
|
+
"nav_msgs.OccupancyGrid": OccupancyGrid,
|
|
72
|
+
"nav_msgs.Odometry": Odometry,
|
|
73
|
+
"nav_msgs.Path": Path,
|
|
74
|
+
"sensor_msgs.BatteryState": BatteryState,
|
|
75
|
+
"sensor_msgs.CameraInfo": CameraInfo,
|
|
76
|
+
"sensor_msgs.CompressedImage": CompressedImage,
|
|
77
|
+
"sensor_msgs.Image": Image,
|
|
78
|
+
"sensor_msgs.Imu": Imu,
|
|
79
|
+
"sensor_msgs.JointState": JointState,
|
|
80
|
+
"sensor_msgs.LaserScan": LaserScan,
|
|
81
|
+
"sensor_msgs.NavSatFix": NavSatFix,
|
|
82
|
+
"sensor_msgs.NavSatStatus": NavSatStatus,
|
|
83
|
+
"sensor_msgs.PointCloud2": PointCloud2,
|
|
84
|
+
"sensor_msgs.PointField": PointField,
|
|
85
|
+
"sensor_msgs.Range": Range,
|
|
86
|
+
"sensor_msgs.RegionOfInterest": RegionOfInterest,
|
|
87
|
+
"std_msgs.Bool": Bool,
|
|
88
|
+
"std_msgs.ColorRGBA": ColorRGBA,
|
|
89
|
+
"std_msgs.Float32": Float32,
|
|
90
|
+
"std_msgs.Float64": Float64,
|
|
91
|
+
"std_msgs.Header": Header,
|
|
92
|
+
"std_msgs.Int32": Int32,
|
|
93
|
+
"std_msgs.String": String,
|
|
94
|
+
"std_msgs.UInt32": UInt32,
|
|
95
|
+
"tf2_msgs.TFMessage": TFMessage,
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
if __name__ == "__main__":
|
|
100
|
+
print("SCHEMA_TO_CLASS:")
|
|
101
|
+
for schema, msg_class in SCHEMA_TO_CLASS.items():
|
|
102
|
+
print(f" {schema}: {msg_class}")
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import time
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from turbodata import Writer
|
|
6
|
+
|
|
7
|
+
from .message_metadata import topic_metadata
|
|
8
|
+
from .schema import Pose
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
TOPIC = "/head/pose/command"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def main() -> None:
|
|
15
|
+
parser = argparse.ArgumentParser(description="Write a protobuf message to a TD file")
|
|
16
|
+
parser.add_argument("path", type=Path)
|
|
17
|
+
args = parser.parse_args()
|
|
18
|
+
|
|
19
|
+
message = Pose()
|
|
20
|
+
message.position.y = 1.0
|
|
21
|
+
|
|
22
|
+
with args.path.open("wb") as output, Writer(output) as writer:
|
|
23
|
+
writer.open_topics([TOPIC], [topic_metadata(type(message))])
|
|
24
|
+
timestamp = time.time_ns()
|
|
25
|
+
writer.write_message(TOPIC, message.SerializeToString(), timestamp)
|
|
26
|
+
writer.close_topic()
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
if __name__ == "__main__":
|
|
30
|
+
main()
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: current-data-py
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Current Data protobuf messages and schema metadata
|
|
5
|
+
Requires-Python: >=3.9
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: protobuf>=3.20
|
|
8
|
+
Requires-Dist: turbodata==0.1.0
|
|
9
|
+
|
|
10
|
+
# current-data-py
|
|
11
|
+
|
|
12
|
+
Current Data protobuf messages and schema metadata. Requires Python 3.9+.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install current-data-py
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from current_data_py import SCHEMA_TO_CLASS, descriptor_set, topic_metadata
|
|
20
|
+
from current_data_py.schema import Pose
|
|
21
|
+
|
|
22
|
+
message = Pose()
|
|
23
|
+
message.position.y = 1.0
|
|
24
|
+
metadata = topic_metadata(Pose)
|
|
25
|
+
decoded = SCHEMA_TO_CLASS[metadata["schema_name"]].FromString(message.SerializeToString())
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
TD examples write/read a Pose on `/head/pose/command`:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python -m current_data_py.write_td example.td
|
|
32
|
+
python -m current_data_py.read_td example.td
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Development and releases
|
|
36
|
+
|
|
37
|
+
Packaging configuration lives in `current_data_py/`. Generated messages live
|
|
38
|
+
only in the repository's `proto_gen/python/msg`. Regenerate them using the
|
|
39
|
+
existing `proto/generate.sh` workflow after changing `proto/msg`.
|
|
40
|
+
The build reads those files and adjusts their Python imports in the build
|
|
41
|
+
directory, placing them under `current_data_py._proto` in the wheel.
|
|
42
|
+
It does not modify or duplicate generated sources in the checkout.
|
|
43
|
+
The source distribution includes the original generated files so it can also
|
|
44
|
+
build without `protoc`. Installation requires neither the repository nor `protoc`.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
cd current_data_py # from the repository root
|
|
48
|
+
python -m pip install build twine
|
|
49
|
+
python -m build
|
|
50
|
+
python -m twine check dist/*
|
|
51
|
+
python tests/check_distribution.py
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Artifacts are written to `current_data_py/dist/`. The build adds the shared
|
|
55
|
+
protobuf inputs to the source archive without copying them into this directory.
|
|
56
|
+
|
|
57
|
+
For development, use a regular `pip install .` and run from outside the checkout;
|
|
58
|
+
reinstall after changes. Editable installs are not supported by this build step.
|
|
59
|
+
|
|
60
|
+
Install the wheel in a fresh environment and run
|
|
61
|
+
`python /absolute/path/to/current_data_py/tests/check_package.py` from outside
|
|
62
|
+
the repository. Use a clean `dist` for each release and increment the version
|
|
63
|
+
in `pyproject.toml`. Confirm the package name, license and supported Python
|
|
64
|
+
versions before publishing. No license has been selected yet.
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python -m twine upload --repository testpypi dist/*
|
|
68
|
+
# After validating the test release:
|
|
69
|
+
python -m twine upload dist/*
|
|
70
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
current_data_py/__init__.py,sha256=5O9ofb4Z3cKR4m_T0fwEHJKBDxbQdvdFivRMcLqVNEQ,227
|
|
2
|
+
current_data_py/message_metadata.py,sha256=taUQurHhAKN00qIFU7mVILncl3TQBDh6v1WshMY-POk,913
|
|
3
|
+
current_data_py/read_td.py,sha256=ZxG-2KffxgxOyO4tg63P6CSKsxx0wrCxaOnwZB2FbYU,922
|
|
4
|
+
current_data_py/schema.py,sha256=kXHjpg3qD3rVOi9jNbn1H2Hk1PVDdA9qtiAs5aEJYrU,4797
|
|
5
|
+
current_data_py/write_td.py,sha256=qd9sX3eJWwygGNfe39PyjnpQ1AdnsxsjwgkSWJRcFFY,739
|
|
6
|
+
current_data_py/_proto/builtin_interfaces/duration_pb2.py,sha256=2q4yFpxUwagxWEW6qE-7Q1gfhvD6TOGNKeMs9ExAw74,1077
|
|
7
|
+
current_data_py/_proto/builtin_interfaces/time_pb2.py,sha256=fjn0VkOgIORX-JOxYykpSc-dwQTfTrQrIZOdn0_XML0,1056
|
|
8
|
+
current_data_py/_proto/custom_msgs/joint_current_pb2.py,sha256=sghxQtvroGWfj8cwf6pb3WLeUTg9Z3tawdoRgN0rIDk,1259
|
|
9
|
+
current_data_py/_proto/foxglove/compressed_video_pb2.py,sha256=NzL3v_0vp_ggP3nUn4YmylgryqHPZnj2s6vi0sMBqhg,1332
|
|
10
|
+
current_data_py/_proto/geometry_msgs/point32_pb2.py,sha256=CtRNL4S0BpTcnpmeQi2YwFMyWTWrxBm18f8z-_UTGkA,1070
|
|
11
|
+
current_data_py/_proto/geometry_msgs/point_pb2.py,sha256=RwDnf6YyQxcSsKKXkRXEqTr8HfNHi9_5aMK4YYy29Vw,1058
|
|
12
|
+
current_data_py/_proto/geometry_msgs/pose_pb2.py,sha256=muW6vlKHPJT6_iCFyggSj5A8-2tNOc6P59qUE84lpxU,1361
|
|
13
|
+
current_data_py/_proto/geometry_msgs/pose_stamped_pb2.py,sha256=DBeSe0yFPbcy7-qelgx9MXctLA7XGmbFLr5rERn7ZWE,1354
|
|
14
|
+
current_data_py/_proto/geometry_msgs/pose_with_covariance_pb2.py,sha256=vtU3n9y_kOb3gY6LzGLglL2ozXOvYsf6UrH0You-GdQ,1269
|
|
15
|
+
current_data_py/_proto/geometry_msgs/pose_with_covariance_stamped_pb2.py,sha256=8SAPlOL0ahzuZBJ87JTDksFbZy_3c3eoRX3SGVk9Oxs,1502
|
|
16
|
+
current_data_py/_proto/geometry_msgs/quaternion_pb2.py,sha256=9bJQHm6W_a1FXIyTex4_ncaF3FZeKx4FbKA5NYuLY5k,1118
|
|
17
|
+
current_data_py/_proto/geometry_msgs/transform_pb2.py,sha256=WpNKB-qNZ_ED9E_l_GZuDvYvxOU3Lbv-TH08WosXBj4,1397
|
|
18
|
+
current_data_py/_proto/geometry_msgs/transform_stamped_pb2.py,sha256=DqoAh6sXROkqAyoY9JWPmxmA8tEQa5KjIscurIOOLT8,1454
|
|
19
|
+
current_data_py/_proto/geometry_msgs/twist_pb2.py,sha256=UKm7er5jd5FeZBHWOYGESuDJ45pXuZVNi_ou36fHN0g,1229
|
|
20
|
+
current_data_py/_proto/geometry_msgs/twist_stamped_pb2.py,sha256=PJxEWCAa1my2xx7_ITAEBaXVyquhUL0O8biItKH5C9E,1365
|
|
21
|
+
current_data_py/_proto/geometry_msgs/twist_with_covariance_pb2.py,sha256=FkNQnOGnkVroaI7h5-JQMMr20oZRvMUvIluR9X4j04I,1280
|
|
22
|
+
current_data_py/_proto/geometry_msgs/twist_with_covariance_stamped_pb2.py,sha256=1Kv1654TFQDucoWknMXaKH1Pdb_pUOMHAH7Iuji9JlA,1517
|
|
23
|
+
current_data_py/_proto/geometry_msgs/vector3_pb2.py,sha256=1H8xHD5S7CuQDeDS5ru0vXxYm2te-mxEQXhPCCD7zFU,1070
|
|
24
|
+
current_data_py/_proto/geometry_msgs/wrench_pb2.py,sha256=p5jDTygS5wn78ZdslDBFflRAP6rAjaBkHWvCZ1lIrGw,1232
|
|
25
|
+
current_data_py/_proto/geometry_msgs/wrench_stamped_pb2.py,sha256=X7KVHR_kZzYrOOiiKC_gmK6LpTXfAf5irTMpdN-ILb0,1375
|
|
26
|
+
current_data_py/_proto/nav_msgs/map_meta_data_pb2.py,sha256=DDW_YlthHehQ3AUHIdhLnxbY8SJCpXp_bQ6P39tddP0,1500
|
|
27
|
+
current_data_py/_proto/nav_msgs/occupancy_grid_pb2.py,sha256=IuorxxQkvOxAIZwABRyVblzJn08h0A4zSilraHQTER4,1409
|
|
28
|
+
current_data_py/_proto/nav_msgs/odometry_pb2.py,sha256=xJbIWwvhP7d3uNTZEvKJnkHGW6tLeWznSUGH20wnamo,1679
|
|
29
|
+
current_data_py/_proto/nav_msgs/path_pb2.py,sha256=8qIgXj849tr0Ewp05IoVI4jqWWxp_Mk8ep5vyzunTxg,1323
|
|
30
|
+
current_data_py/_proto/sensor_msgs/battery_state_pb2.py,sha256=Oi9ZF0szAJBHT8Xv68VDn2jCxlSf_Bs7AcSrdqe20s0,3566
|
|
31
|
+
current_data_py/_proto/sensor_msgs/camera_info_pb2.py,sha256=RCduf6hJTHFB0zlv2zFGjVcTJ7U695kGolXLzZzx1HE,1709
|
|
32
|
+
current_data_py/_proto/sensor_msgs/compressed_image_pb2.py,sha256=r5kkLrzVcuXKGifN_4seFAaIp39_1M0-cfCLfjmXpH4,1277
|
|
33
|
+
current_data_py/_proto/sensor_msgs/image_pb2.py,sha256=t55fLNdxwbLgquAXxxmu7DzxjUi-IpRg_1XtT0CIUEw,1367
|
|
34
|
+
current_data_py/_proto/sensor_msgs/imu_pb2.py,sha256=S4pj7O265_FXMzdry6OSVdMz0USBDHc5kFzWwdGOeW8,1806
|
|
35
|
+
current_data_py/_proto/sensor_msgs/joint_state_pb2.py,sha256=ld1CfBs_qJU3GCwFsFor2r8KvoyG1SueUa59Kazs9a8,1324
|
|
36
|
+
current_data_py/_proto/sensor_msgs/laser_scan_pb2.py,sha256=l9jERJy-QJTWLRkM7L6FG6641Ls6PBZq4ajeIr4yaWc,1532
|
|
37
|
+
current_data_py/_proto/sensor_msgs/nav_sat_fix_pb2.py,sha256=BzFlkhP0I_21hyZbtpV5-25Oku4impRNa4CRPvBr2pU,1977
|
|
38
|
+
current_data_py/_proto/sensor_msgs/nav_sat_status_pb2.py,sha256=sjA99FwyGuenIsZnN4PfnAbq9_s8dfHyjRmapEBSEnY,1472
|
|
39
|
+
current_data_py/_proto/sensor_msgs/point_cloud2_pb2.py,sha256=OdIHuWAHGyxRFSLzdSqWUBgw3BRXkYbmCXVFbqD58WU,1656
|
|
40
|
+
current_data_py/_proto/sensor_msgs/point_field_pb2.py,sha256=f2EVP6MivK8JDY5GmE1tq_LmWD5RTRqYwon5AMdveSI,1642
|
|
41
|
+
current_data_py/_proto/sensor_msgs/range_pb2.py,sha256=QWgeyctnnyKQna4K6zjxR-KQTS9keD-nY_-IUeAIbzo,1586
|
|
42
|
+
current_data_py/_proto/sensor_msgs/region_of_interest_pb2.py,sha256=_o0KcY0LkHI721ZU7ICTU8l0oJ9SIOxJDBtj-yubLW8,1214
|
|
43
|
+
current_data_py/_proto/std_msgs/bool_pb2.py,sha256=sumGdH92DVoJhoNpge_AqKz4VcKrgkHFsSuFK3EUYmQ,989
|
|
44
|
+
current_data_py/_proto/std_msgs/color_rgba_pb2.py,sha256=-jw0m3rGPIjZ5lcnc5ppfMead77nwK_0C2hgmaJuLJ4,1102
|
|
45
|
+
current_data_py/_proto/std_msgs/float32_pb2.py,sha256=7mveMvRU9KrumQw9nV1PzsiiDs3QLhHa_LChrXe9mOI,1007
|
|
46
|
+
current_data_py/_proto/std_msgs/float64_pb2.py,sha256=qzJMZ1jXMnXn9iRgEeMGgCJ1lR1CBPbC_bZ_loHHsww,1007
|
|
47
|
+
current_data_py/_proto/std_msgs/header_pb2.py,sha256=ZQX7vJg0tuRUFEpry3m8VkfoIbeucjx9FEPpGNihl4M,1199
|
|
48
|
+
current_data_py/_proto/std_msgs/int32_pb2.py,sha256=vOfrxTinRRigJ6yFaRF0Cv9kKwyr6176rlYDhcLMIHI,992
|
|
49
|
+
current_data_py/_proto/std_msgs/string_pb2.py,sha256=L0lYUDw-EXFXmUj3r7xARgcO-ktlb5-ckEftotJE6kw,993
|
|
50
|
+
current_data_py/_proto/std_msgs/uint32_pb2.py,sha256=q__AA777l5D_cl4qVGfOcuy21KwRb35am3h7BxNKOjM,993
|
|
51
|
+
current_data_py/_proto/tf2_msgs/tf_message_pb2.py,sha256=DwyqptrxP02OpVONr7E8js4BAg5NxfY6cUTdmNAc8-w,1208
|
|
52
|
+
current_data_py-0.1.0.dist-info/METADATA,sha256=vIJR1dRXylG4mWB9I4sUbsVd9TDGMouZdpLAkrYu3Pk,2426
|
|
53
|
+
current_data_py-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
54
|
+
current_data_py-0.1.0.dist-info/top_level.txt,sha256=0mK7Pl32sOQYw7GQdjnoeOEvXHswY3MePJICWL1xRIo,16
|
|
55
|
+
current_data_py-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
current_data_py
|