OpenSMI-Core 0.2__tar.gz → 0.2.2__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.
- opensmi_core-0.2.2/PKG-INFO +84 -0
- opensmi_core-0.2.2/README.md +49 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/pyproject.toml +3 -1
- opensmi_core-0.2.2/src/OpenSMI_Core.egg-info/PKG-INFO +84 -0
- opensmi_core-0.2.2/src/OpenSMI_Core.egg-info/scm_version.json +8 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/ua_node_util.py +22 -9
- opensmi_core-0.2/PKG-INFO +0 -32
- opensmi_core-0.2/README.md +0 -2
- opensmi_core-0.2/src/OpenSMI_Core.egg-info/PKG-INFO +0 -32
- opensmi_core-0.2/src/OpenSMI_Core.egg-info/scm_version.json +0 -8
- {opensmi_core-0.2 → opensmi_core-0.2.2}/.github/workflows/api-docs.yml +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/.github/workflows/python-publish.yml +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/.gitignore +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/.gitlab-ci.yml +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/LICENSE +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/LICENSES/MIT.txt +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/setup.cfg +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/SOURCES.txt +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/dependency_links.txt +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/requires.txt +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/scm_file_list.json +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/top_level.txt +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/__init__.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/async_task_mixin.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/base_server.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/base_ua_object.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/config.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/enums.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/errors.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/frozen.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/hook.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/lifecycle_mixin.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/logging.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/meta.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/mixin_helpers.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/protocols.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/repr_mixin.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/signal.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/subscription_manager.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/ua.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/ua_enums.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/unit_all.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/unit_base.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/src/opensmi/core/unset.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/tests/test_signal.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/tests/test_unit.py +0 -0
- {opensmi_core-0.2 → opensmi_core-0.2.2}/tools/auto_generate_units.py +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: OpenSMI-Core
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Smart Machine Interface core functionality for server and client applications.
|
|
5
|
+
Author-email: Carsten Harms <Carsten.Harms@dfki.de>, Simon Jungbluth <Simon.Jungbluth@smartfactory.de>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: Intended Audience :: Manufacturing
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Communications
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
20
|
+
Classifier: Topic :: Software Development :: Embedded Systems
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSES/MIT.txt
|
|
26
|
+
Requires-Dist: asyncua<3,>=2.0.1
|
|
27
|
+
Requires-Dist: structlog>=26
|
|
28
|
+
Requires-Dist: typing-extensions>=4.16.0
|
|
29
|
+
Provides-Extra: rich
|
|
30
|
+
Requires-Dist: rich>=15.0.0; extra == "rich"
|
|
31
|
+
Requires-Dist: colorama>=0.4; sys_platform == "win32" and extra == "rich"
|
|
32
|
+
Provides-Extra: json
|
|
33
|
+
Requires-Dist: orjson<4,>=3; extra == "json"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
[](https://smartfactory-kl.github.io/opensmi-core/)
|
|
39
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
40
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
41
|
+
[](LICENSE)
|
|
42
|
+
|
|
43
|
+
# OpenSMI Core
|
|
44
|
+
|
|
45
|
+
Core functionality for other OpenSMI packages such as:
|
|
46
|
+
|
|
47
|
+
- [OpenSMI Client](https://github.com/SmartFactory-KL/opensmi-client)
|
|
48
|
+
- [OpenSMI Server](https://github.com/SmartFactory-KL/opensmi-server)
|
|
49
|
+
|
|
50
|
+
## Features
|
|
51
|
+
|
|
52
|
+
- (Nested) Configuration parsing into dataclasses from TOML files (See [config.py](src/opensmi/core/config.py))
|
|
53
|
+
- Lifecycle management via mixin and `@lifecycle` decorators, allowing explicit ordering
|
|
54
|
+
(See [lifecycle_mixin.py](src/opensmi/core/lifecycle_mixin.py))
|
|
55
|
+
- Simple callbacks via `Signal` (similar to [aiosignal](https://pypi.org/project/aiosignal/), but without freezing)
|
|
56
|
+
(See [signal.py](src/opensmi/core/signal.py))
|
|
57
|
+
- [asyncua](https://pypi.org/project/asyncua/) (OPC UA) helpers
|
|
58
|
+
- Node helper functions (See [ua_node_util.py](src/opensmi/core/ua_node_util.py))
|
|
59
|
+
- SubscriptionManager (See [subscription_manager.py](src/opensmi/core/subscription_manager.py))
|
|
60
|
+
- Enums for OpenSMI machine, component and skill states
|
|
61
|
+
- All [UN/CEFACT-Rec20](https://unece.org/trade/documents/2021/06/uncefact-rec20-0) units as a type-checkable enum.
|
|
62
|
+
(See [unit_all.py](src/opensmi/core/unit_all.py))
|
|
63
|
+
- [Structured Logging](https://pypi.org/project/structlog/) configuration (See [logging.py](src/opensmi/core/logging.py))
|
|
64
|
+
|
|
65
|
+
> [!warning]
|
|
66
|
+
> This library is currently pre-1.0 — expect refactoring outside above-mentioned functionality.
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
Requires Python 3.11+.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install opensmi-core
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Project Status
|
|
77
|
+
|
|
78
|
+
OpenSMI began as a closed-source project at [SmartFactory-KL](https://smartfactory.de/), in active use in our model
|
|
79
|
+
factory since 2020. Its OPC UA information model has been refined across many iterations of research and
|
|
80
|
+
demonstrator use. The framework was open-sourced in 2026 following substantial refactoring and cleanup.
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
[MIT License](LICENSE)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
[](https://smartfactory-kl.github.io/opensmi-core/)
|
|
4
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
5
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
# OpenSMI Core
|
|
9
|
+
|
|
10
|
+
Core functionality for other OpenSMI packages such as:
|
|
11
|
+
|
|
12
|
+
- [OpenSMI Client](https://github.com/SmartFactory-KL/opensmi-client)
|
|
13
|
+
- [OpenSMI Server](https://github.com/SmartFactory-KL/opensmi-server)
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- (Nested) Configuration parsing into dataclasses from TOML files (See [config.py](src/opensmi/core/config.py))
|
|
18
|
+
- Lifecycle management via mixin and `@lifecycle` decorators, allowing explicit ordering
|
|
19
|
+
(See [lifecycle_mixin.py](src/opensmi/core/lifecycle_mixin.py))
|
|
20
|
+
- Simple callbacks via `Signal` (similar to [aiosignal](https://pypi.org/project/aiosignal/), but without freezing)
|
|
21
|
+
(See [signal.py](src/opensmi/core/signal.py))
|
|
22
|
+
- [asyncua](https://pypi.org/project/asyncua/) (OPC UA) helpers
|
|
23
|
+
- Node helper functions (See [ua_node_util.py](src/opensmi/core/ua_node_util.py))
|
|
24
|
+
- SubscriptionManager (See [subscription_manager.py](src/opensmi/core/subscription_manager.py))
|
|
25
|
+
- Enums for OpenSMI machine, component and skill states
|
|
26
|
+
- All [UN/CEFACT-Rec20](https://unece.org/trade/documents/2021/06/uncefact-rec20-0) units as a type-checkable enum.
|
|
27
|
+
(See [unit_all.py](src/opensmi/core/unit_all.py))
|
|
28
|
+
- [Structured Logging](https://pypi.org/project/structlog/) configuration (See [logging.py](src/opensmi/core/logging.py))
|
|
29
|
+
|
|
30
|
+
> [!warning]
|
|
31
|
+
> This library is currently pre-1.0 — expect refactoring outside above-mentioned functionality.
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
Requires Python 3.11+.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pip install opensmi-core
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Project Status
|
|
42
|
+
|
|
43
|
+
OpenSMI began as a closed-source project at [SmartFactory-KL](https://smartfactory.de/), in active use in our model
|
|
44
|
+
factory since 2020. Its OPC UA information model has been refined across many iterations of research and
|
|
45
|
+
demonstrator use. The framework was open-sourced in 2026 following substantial refactoring and cleanup.
|
|
46
|
+
|
|
47
|
+
## License
|
|
48
|
+
|
|
49
|
+
[MIT License](LICENSE)
|
|
@@ -5,12 +5,14 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "OpenSMI-Core"
|
|
7
7
|
dynamic = ["version"]
|
|
8
|
-
|
|
8
|
+
readme = "README.md"
|
|
9
9
|
description = "Smart Machine Interface core functionality for server and client applications."
|
|
10
10
|
authors = [
|
|
11
11
|
{ name = "Carsten Harms", email = "Carsten.Harms@dfki.de" },
|
|
12
12
|
{ name = "Simon Jungbluth", email = "Simon.Jungbluth@smartfactory.de" },
|
|
13
13
|
]
|
|
14
|
+
license = "MIT"
|
|
15
|
+
license-files = ["LICENSES/MIT.txt"]
|
|
14
16
|
|
|
15
17
|
# see https://pypi.org/classifiers/
|
|
16
18
|
classifiers = [
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: OpenSMI-Core
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Smart Machine Interface core functionality for server and client applications.
|
|
5
|
+
Author-email: Carsten Harms <Carsten.Harms@dfki.de>, Simon Jungbluth <Simon.Jungbluth@smartfactory.de>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: Intended Audience :: Manufacturing
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Communications
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
20
|
+
Classifier: Topic :: Software Development :: Embedded Systems
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSES/MIT.txt
|
|
26
|
+
Requires-Dist: asyncua<3,>=2.0.1
|
|
27
|
+
Requires-Dist: structlog>=26
|
|
28
|
+
Requires-Dist: typing-extensions>=4.16.0
|
|
29
|
+
Provides-Extra: rich
|
|
30
|
+
Requires-Dist: rich>=15.0.0; extra == "rich"
|
|
31
|
+
Requires-Dist: colorama>=0.4; sys_platform == "win32" and extra == "rich"
|
|
32
|
+
Provides-Extra: json
|
|
33
|
+
Requires-Dist: orjson<4,>=3; extra == "json"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
[](https://smartfactory-kl.github.io/opensmi-core/)
|
|
39
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
40
|
+
[](https://pypi.org/project/opensmi-core/)
|
|
41
|
+
[](LICENSE)
|
|
42
|
+
|
|
43
|
+
# OpenSMI Core
|
|
44
|
+
|
|
45
|
+
Core functionality for other OpenSMI packages such as:
|
|
46
|
+
|
|
47
|
+
- [OpenSMI Client](https://github.com/SmartFactory-KL/opensmi-client)
|
|
48
|
+
- [OpenSMI Server](https://github.com/SmartFactory-KL/opensmi-server)
|
|
49
|
+
|
|
50
|
+
## Features
|
|
51
|
+
|
|
52
|
+
- (Nested) Configuration parsing into dataclasses from TOML files (See [config.py](src/opensmi/core/config.py))
|
|
53
|
+
- Lifecycle management via mixin and `@lifecycle` decorators, allowing explicit ordering
|
|
54
|
+
(See [lifecycle_mixin.py](src/opensmi/core/lifecycle_mixin.py))
|
|
55
|
+
- Simple callbacks via `Signal` (similar to [aiosignal](https://pypi.org/project/aiosignal/), but without freezing)
|
|
56
|
+
(See [signal.py](src/opensmi/core/signal.py))
|
|
57
|
+
- [asyncua](https://pypi.org/project/asyncua/) (OPC UA) helpers
|
|
58
|
+
- Node helper functions (See [ua_node_util.py](src/opensmi/core/ua_node_util.py))
|
|
59
|
+
- SubscriptionManager (See [subscription_manager.py](src/opensmi/core/subscription_manager.py))
|
|
60
|
+
- Enums for OpenSMI machine, component and skill states
|
|
61
|
+
- All [UN/CEFACT-Rec20](https://unece.org/trade/documents/2021/06/uncefact-rec20-0) units as a type-checkable enum.
|
|
62
|
+
(See [unit_all.py](src/opensmi/core/unit_all.py))
|
|
63
|
+
- [Structured Logging](https://pypi.org/project/structlog/) configuration (See [logging.py](src/opensmi/core/logging.py))
|
|
64
|
+
|
|
65
|
+
> [!warning]
|
|
66
|
+
> This library is currently pre-1.0 — expect refactoring outside above-mentioned functionality.
|
|
67
|
+
|
|
68
|
+
## Installation
|
|
69
|
+
|
|
70
|
+
Requires Python 3.11+.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install opensmi-core
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Project Status
|
|
77
|
+
|
|
78
|
+
OpenSMI began as a closed-source project at [SmartFactory-KL](https://smartfactory.de/), in active use in our model
|
|
79
|
+
factory since 2020. Its OPC UA information model has been refined across many iterations of research and
|
|
80
|
+
demonstrator use. The framework was open-sourced in 2026 following substantial refactoring and cleanup.
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
[MIT License](LICENSE)
|
|
@@ -65,7 +65,7 @@ async def write_value(node: Node, value: Any, *, variant_type: ua.VariantType |
|
|
|
65
65
|
try:
|
|
66
66
|
if isinstance(value, ua.Variant):
|
|
67
67
|
await _write_value(node, value, variant_type=value.VariantType)
|
|
68
|
-
|
|
68
|
+
elif variant_type is not None:
|
|
69
69
|
await _write_value(node, value, variant_type=variant_type)
|
|
70
70
|
else:
|
|
71
71
|
# we need to figure out the correct variant type to use ourselves
|
|
@@ -178,16 +178,29 @@ def get_node_id(
|
|
|
178
178
|
return ua.NodeId(Identifier=identifier, NamespaceIndex=ua.Int16(ns_idx))
|
|
179
179
|
|
|
180
180
|
|
|
181
|
-
async def get_child_without_ns(parent: Node, *, display_name: str) -> Node:
|
|
182
|
-
"""Return the first child node with given
|
|
181
|
+
async def get_child_without_ns(parent: Node, *, browse_name: str | None = None, display_name: str | None = None) -> Node:
|
|
182
|
+
"""Return the first child node with given ``browse_name`` or ``display_name`` while ignoring namespaces.
|
|
183
183
|
|
|
184
|
-
|
|
184
|
+
For each child, ``BrowseName`` is matched first, ``DisplayName`` afterward. If both are given, a child matching
|
|
185
|
+
either one is returned.
|
|
186
|
+
|
|
187
|
+
:param parent: OPC UA parent node.
|
|
188
|
+
:param browse_name: OPC UA ``BrowseName.Name`` content to compare against. ``NamespaceIndex`` is ignored.
|
|
189
|
+
:param display_name: OPC UA ``DisplayName.Text`` content to compare against. ``Locale`` is ignored.
|
|
190
|
+
|
|
191
|
+
:raises ValueError: If neither ``browse_name`` nor ``display_name`` is given.
|
|
192
|
+
:raises BadNoMatch: If no child with given browse name or display name was found.
|
|
185
193
|
"""
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
194
|
+
if browse_name is None and display_name is None:
|
|
195
|
+
msg = "Either browse_name or display_name must be set"
|
|
196
|
+
raise ValueError(msg)
|
|
197
|
+
|
|
198
|
+
for ref in await parent.get_children_descriptions():
|
|
199
|
+
if browse_name is not None and ref.BrowseName.Name == browse_name:
|
|
200
|
+
return Node(session=parent.session, nodeid=ref.NodeId)
|
|
201
|
+
if display_name is not None and ref.DisplayName.Text == display_name:
|
|
202
|
+
return Node(session=parent.session, nodeid=ref.NodeId)
|
|
203
|
+
|
|
191
204
|
raise ua.uaerrors.BadNoMatch
|
|
192
205
|
|
|
193
206
|
|
opensmi_core-0.2/PKG-INFO
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: OpenSMI-Core
|
|
3
|
-
Version: 0.2
|
|
4
|
-
Summary: Smart Machine Interface core functionality for server and client applications.
|
|
5
|
-
Author-email: Carsten Harms <Carsten.Harms@dfki.de>, Simon Jungbluth <Simon.Jungbluth@smartfactory.de>
|
|
6
|
-
Classifier: Development Status :: 4 - Beta
|
|
7
|
-
Classifier: Intended Audience :: Developers
|
|
8
|
-
Classifier: Intended Audience :: Information Technology
|
|
9
|
-
Classifier: Intended Audience :: Manufacturing
|
|
10
|
-
Classifier: Intended Audience :: Science/Research
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
-
Classifier: Topic :: Communications
|
|
17
|
-
Classifier: Topic :: Scientific/Engineering
|
|
18
|
-
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
19
|
-
Classifier: Topic :: Software Development :: Embedded Systems
|
|
20
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
21
|
-
Classifier: Typing :: Typed
|
|
22
|
-
Requires-Python: >=3.11
|
|
23
|
-
License-File: LICENSE
|
|
24
|
-
Requires-Dist: asyncua<3,>=2.0.1
|
|
25
|
-
Requires-Dist: structlog>=26
|
|
26
|
-
Requires-Dist: typing-extensions>=4.16.0
|
|
27
|
-
Provides-Extra: rich
|
|
28
|
-
Requires-Dist: rich>=15.0.0; extra == "rich"
|
|
29
|
-
Requires-Dist: colorama>=0.4; sys_platform == "win32" and extra == "rich"
|
|
30
|
-
Provides-Extra: json
|
|
31
|
-
Requires-Dist: orjson<4,>=3; extra == "json"
|
|
32
|
-
Dynamic: license-file
|
opensmi_core-0.2/README.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: OpenSMI-Core
|
|
3
|
-
Version: 0.2
|
|
4
|
-
Summary: Smart Machine Interface core functionality for server and client applications.
|
|
5
|
-
Author-email: Carsten Harms <Carsten.Harms@dfki.de>, Simon Jungbluth <Simon.Jungbluth@smartfactory.de>
|
|
6
|
-
Classifier: Development Status :: 4 - Beta
|
|
7
|
-
Classifier: Intended Audience :: Developers
|
|
8
|
-
Classifier: Intended Audience :: Information Technology
|
|
9
|
-
Classifier: Intended Audience :: Manufacturing
|
|
10
|
-
Classifier: Intended Audience :: Science/Research
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
-
Classifier: Topic :: Communications
|
|
17
|
-
Classifier: Topic :: Scientific/Engineering
|
|
18
|
-
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
19
|
-
Classifier: Topic :: Software Development :: Embedded Systems
|
|
20
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
21
|
-
Classifier: Typing :: Typed
|
|
22
|
-
Requires-Python: >=3.11
|
|
23
|
-
License-File: LICENSE
|
|
24
|
-
Requires-Dist: asyncua<3,>=2.0.1
|
|
25
|
-
Requires-Dist: structlog>=26
|
|
26
|
-
Requires-Dist: typing-extensions>=4.16.0
|
|
27
|
-
Provides-Extra: rich
|
|
28
|
-
Requires-Dist: rich>=15.0.0; extra == "rich"
|
|
29
|
-
Requires-Dist: colorama>=0.4; sys_platform == "win32" and extra == "rich"
|
|
30
|
-
Provides-Extra: json
|
|
31
|
-
Requires-Dist: orjson<4,>=3; extra == "json"
|
|
32
|
-
Dynamic: license-file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|