OpenSMI-Core 0.2.1__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.1 → 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.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/scm_version.json +2 -2
- opensmi_core-0.2.1/PKG-INFO +0 -32
- opensmi_core-0.2.1/src/OpenSMI_Core.egg-info/PKG-INFO +0 -32
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.github/workflows/api-docs.yml +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.github/workflows/python-publish.yml +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.gitignore +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.gitlab-ci.yml +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/LICENSE +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/LICENSES/MIT.txt +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/README.md +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/setup.cfg +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/SOURCES.txt +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/dependency_links.txt +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/requires.txt +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/scm_file_list.json +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/top_level.txt +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/__init__.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/async_task_mixin.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/base_server.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/base_ua_object.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/config.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/enums.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/errors.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/frozen.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/hook.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/lifecycle_mixin.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/logging.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/meta.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/mixin_helpers.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/protocols.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/repr_mixin.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/signal.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/subscription_manager.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua_enums.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua_node_util.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unit_all.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unit_base.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unset.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/tests/test_signal.py +0 -0
- {opensmi_core-0.2.1 → opensmi_core-0.2.2}/tests/test_unit.py +0 -0
- {opensmi_core-0.2.1 → 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)
|
|
@@ -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)
|
opensmi_core-0.2.1/PKG-INFO
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: OpenSMI-Core
|
|
3
|
-
Version: 0.2.1
|
|
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
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: OpenSMI-Core
|
|
3
|
-
Version: 0.2.1
|
|
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
|
|
File without changes
|
|
File without changes
|