muse-driver-framework 1.0.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.
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.4
2
+ Name: muse-driver-framework
3
+ Version: 1.0.0
4
+ Summary: Shared pure-Python framework for AMX MUSE Script-as-Device drivers
5
+ Author: AMX MUSE driver project
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+
9
+ # muse-driver-framework
10
+
11
+ Shared pure-Python runtime framework for AMX MUSE Script-as-Device programs.
12
+
13
+ The package contains the transport-independent pieces shared by the Precis
14
+ Driver and Meter Validation programs:
15
+
16
+ - asynchronous TCP connection lifecycle and reconnect handling;
17
+ - descriptor control registry and control type inference;
18
+ - bounded, latest-only `MeterStream` frame delivery.
19
+
20
+ It has no third-party runtime dependencies and supports the Python 3.10 runtime
21
+ used by current MUSE firmware.
22
+
23
+ ## Runtime use in MUSE
24
+
25
+ Each Script-as-Device program declares the exact framework version in its own
26
+ `requirements.txt`:
27
+
28
+ ```text
29
+ muse-driver-framework==1.0.0
30
+ ```
31
+
32
+ The program imports the package, never a copied local `driver_framework.py`:
33
+
34
+ ```python
35
+ from muse_driver_framework import AsyncTcpDeviceClient, AsyncTcpDeviceManager
36
+ ```
37
+
38
+ MUSE must have internet access when it installs the requirements file. Keep
39
+ the version exact so a framework release cannot silently change an existing
40
+ driver.
41
+
42
+ ## Local verification
43
+
44
+ Build and install the wheel into an isolated environment before testing a
45
+ driver. The driver directories should not contain a local framework copy.
@@ -0,0 +1,37 @@
1
+ # muse-driver-framework
2
+
3
+ Shared pure-Python runtime framework for AMX MUSE Script-as-Device programs.
4
+
5
+ The package contains the transport-independent pieces shared by the Precis
6
+ Driver and Meter Validation programs:
7
+
8
+ - asynchronous TCP connection lifecycle and reconnect handling;
9
+ - descriptor control registry and control type inference;
10
+ - bounded, latest-only `MeterStream` frame delivery.
11
+
12
+ It has no third-party runtime dependencies and supports the Python 3.10 runtime
13
+ used by current MUSE firmware.
14
+
15
+ ## Runtime use in MUSE
16
+
17
+ Each Script-as-Device program declares the exact framework version in its own
18
+ `requirements.txt`:
19
+
20
+ ```text
21
+ muse-driver-framework==1.0.0
22
+ ```
23
+
24
+ The program imports the package, never a copied local `driver_framework.py`:
25
+
26
+ ```python
27
+ from muse_driver_framework import AsyncTcpDeviceClient, AsyncTcpDeviceManager
28
+ ```
29
+
30
+ MUSE must have internet access when it installs the requirements file. Keep
31
+ the version exact so a framework release cannot silently change an existing
32
+ driver.
33
+
34
+ ## Local verification
35
+
36
+ Build and install the wheel into an isolated environment before testing a
37
+ driver. The driver directories should not contain a local framework copy.
@@ -0,0 +1,25 @@
1
+ """Public API for the shared AMX MUSE driver framework."""
2
+
3
+ from .driver_framework import (
4
+ AsyncTcpDeviceClient,
5
+ AsyncTcpDeviceManager,
6
+ MeterStream,
7
+ ProgramControl,
8
+ ProgramControlRegistry,
9
+ export_control_type_contract,
10
+ infer_control_type,
11
+ meter_route_from_descriptor,
12
+ )
13
+
14
+ __version__ = "1.0.0"
15
+
16
+ __all__ = [
17
+ "AsyncTcpDeviceClient",
18
+ "AsyncTcpDeviceManager",
19
+ "MeterStream",
20
+ "ProgramControl",
21
+ "ProgramControlRegistry",
22
+ "export_control_type_contract",
23
+ "infer_control_type",
24
+ "meter_route_from_descriptor",
25
+ ]