websocket-proxy 0.1.2__tar.gz → 0.3.0__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.
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/PKG-INFO +2 -4
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/pyproject.toml +3 -5
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/__init__.py +2 -2
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/__main__.py +20 -13
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/proxy.py +154 -195
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/transformers/__init__.py +14 -4
- websocket_proxy-0.3.0/src/websocket_proxy/transformers/image_to_video.py +179 -0
- websocket_proxy-0.3.0/src/websocket_proxy/transformers/pointcloud_pureini.py +76 -0
- websocket_proxy-0.1.2/src/websocket_proxy/schemas.py +0 -68
- websocket_proxy-0.1.2/src/websocket_proxy/transformers/image_to_video.py +0 -343
- websocket_proxy-0.1.2/src/websocket_proxy/transformers/pointcloud_voxel.py +0 -148
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/README.md +0 -0
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/dashboard.py +0 -0
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/metrics.py +0 -0
- {websocket_proxy-0.1.2 → websocket_proxy-0.3.0}/src/websocket_proxy/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: websocket-proxy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Foxglove WebSocket proxy with message transformations
|
|
5
5
|
Keywords: websocket,foxglove,robotics,ros,ros2,proxy,compression
|
|
6
6
|
Author: Marko Bausch
|
|
@@ -18,14 +18,12 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
18
18
|
Classifier: Topic :: Internet
|
|
19
19
|
Classifier: Topic :: Scientific/Engineering
|
|
20
20
|
Classifier: Typing :: Typed
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist: pointcloud2>=0.2.3
|
|
21
|
+
Requires-Dist: pymcap-cli[video,pointcloud]
|
|
23
22
|
Requires-Dist: websockets>=15.0.1
|
|
24
23
|
Requires-Dist: typing-extensions>=4.12.2
|
|
25
24
|
Requires-Dist: mcap-ros2-support-fast
|
|
26
25
|
Requires-Dist: robo-ws-bridge
|
|
27
26
|
Requires-Dist: rich>=14.2.0
|
|
28
|
-
Requires-Dist: av>=12.0.0
|
|
29
27
|
Requires-Python: >=3.10
|
|
30
28
|
Project-URL: Homepage, https://github.com/mrkbac/robotic-tools
|
|
31
29
|
Project-URL: Issues, https://github.com/mrkbac/robotic-tools/issues
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "websocket-proxy"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "Foxglove WebSocket proxy with message transformations"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -25,14 +25,12 @@ classifiers = [
|
|
|
25
25
|
"Typing :: Typed",
|
|
26
26
|
]
|
|
27
27
|
dependencies = [
|
|
28
|
-
"
|
|
29
|
-
"pointcloud2>=0.2.3",
|
|
28
|
+
"pymcap-cli[video,pointcloud]",
|
|
30
29
|
"websockets>=15.0.1",
|
|
31
30
|
"typing-extensions>=4.12.2",
|
|
32
31
|
"mcap-ros2-support-fast",
|
|
33
32
|
"robo-ws-bridge",
|
|
34
33
|
"rich>=14.2.0",
|
|
35
|
-
"av>=12.0.0",
|
|
36
34
|
]
|
|
37
35
|
|
|
38
36
|
[project.urls]
|
|
@@ -49,7 +47,7 @@ build-backend = "uv_build"
|
|
|
49
47
|
|
|
50
48
|
[tool.uv.sources]
|
|
51
49
|
mcap-ros2-support-fast = { workspace = true }
|
|
52
|
-
|
|
50
|
+
pymcap-cli = { workspace = true }
|
|
53
51
|
robo-ws-bridge = { workspace = true }
|
|
54
52
|
|
|
55
53
|
[dependency-groups]
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
from websocket_proxy.proxy import ProxyBridge
|
|
4
4
|
from websocket_proxy.transformers import TransformerRegistry
|
|
5
5
|
from websocket_proxy.transformers.image_to_video import ImageToVideoTransformer
|
|
6
|
-
from websocket_proxy.transformers.
|
|
6
|
+
from websocket_proxy.transformers.pointcloud_pureini import PointCloudPureiniTransformer
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
"ImageToVideoTransformer",
|
|
10
|
-
"
|
|
10
|
+
"PointCloudPureiniTransformer",
|
|
11
11
|
"ProxyBridge",
|
|
12
12
|
"TransformerRegistry",
|
|
13
13
|
]
|
|
@@ -12,7 +12,7 @@ from websocket_proxy.dashboard import DashboardRenderer
|
|
|
12
12
|
from websocket_proxy.proxy import ProxyBridge
|
|
13
13
|
from websocket_proxy.transformers import TransformerRegistry
|
|
14
14
|
from websocket_proxy.transformers.image_to_video import ImageToVideoTransformer
|
|
15
|
-
from websocket_proxy.transformers.
|
|
15
|
+
from websocket_proxy.transformers.pointcloud_pureini import PointCloudPureiniTransformer
|
|
16
16
|
|
|
17
17
|
logger = logging.getLogger(__name__)
|
|
18
18
|
|
|
@@ -86,16 +86,22 @@ def parse_args() -> argparse.Namespace:
|
|
|
86
86
|
)
|
|
87
87
|
|
|
88
88
|
parser.add_argument(
|
|
89
|
-
"--pointcloud-
|
|
90
|
-
|
|
91
|
-
default=
|
|
92
|
-
help="
|
|
89
|
+
"--pointcloud-encoding",
|
|
90
|
+
choices=["lossy", "lossless", "none"],
|
|
91
|
+
default="lossy",
|
|
92
|
+
help="Point cloud encoding mode (default: lossy)",
|
|
93
93
|
)
|
|
94
94
|
parser.add_argument(
|
|
95
|
-
"--pointcloud-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
help="
|
|
95
|
+
"--pointcloud-compression",
|
|
96
|
+
choices=["zstd", "lz4", "none"],
|
|
97
|
+
default="zstd",
|
|
98
|
+
help="Point cloud compression algorithm (default: zstd)",
|
|
99
|
+
)
|
|
100
|
+
parser.add_argument(
|
|
101
|
+
"--pointcloud-resolution",
|
|
102
|
+
type=float,
|
|
103
|
+
default=0.01,
|
|
104
|
+
help="Resolution for lossy float compression of point clouds (default: 0.01)",
|
|
99
105
|
)
|
|
100
106
|
|
|
101
107
|
parser.add_argument(
|
|
@@ -110,7 +116,7 @@ def parse_args() -> argparse.Namespace:
|
|
|
110
116
|
help="Dashboard refresh rate in seconds (default: 1.0)",
|
|
111
117
|
)
|
|
112
118
|
|
|
113
|
-
parser.set_defaults(image_use_hardware=True
|
|
119
|
+
parser.set_defaults(image_use_hardware=True)
|
|
114
120
|
return parser.parse_args()
|
|
115
121
|
|
|
116
122
|
|
|
@@ -132,9 +138,10 @@ async def main_async(args: argparse.Namespace) -> None:
|
|
|
132
138
|
)
|
|
133
139
|
registry.register(image_transformer)
|
|
134
140
|
|
|
135
|
-
pointcloud_transformer =
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
pointcloud_transformer = PointCloudPureiniTransformer(
|
|
142
|
+
encoding=args.pointcloud_encoding,
|
|
143
|
+
compression=args.pointcloud_compression,
|
|
144
|
+
resolution=args.pointcloud_resolution,
|
|
138
145
|
)
|
|
139
146
|
registry.register(pointcloud_transformer)
|
|
140
147
|
|