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.
Files changed (45) hide show
  1. opensmi_core-0.2.2/PKG-INFO +84 -0
  2. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/pyproject.toml +3 -1
  3. opensmi_core-0.2.2/src/OpenSMI_Core.egg-info/PKG-INFO +84 -0
  4. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/scm_version.json +2 -2
  5. opensmi_core-0.2.1/PKG-INFO +0 -32
  6. opensmi_core-0.2.1/src/OpenSMI_Core.egg-info/PKG-INFO +0 -32
  7. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.github/workflows/api-docs.yml +0 -0
  8. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.github/workflows/python-publish.yml +0 -0
  9. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.gitignore +0 -0
  10. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/.gitlab-ci.yml +0 -0
  11. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/LICENSE +0 -0
  12. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/LICENSES/MIT.txt +0 -0
  13. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/README.md +0 -0
  14. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/setup.cfg +0 -0
  15. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/SOURCES.txt +0 -0
  16. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/dependency_links.txt +0 -0
  17. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/requires.txt +0 -0
  18. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/scm_file_list.json +0 -0
  19. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/OpenSMI_Core.egg-info/top_level.txt +0 -0
  20. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/__init__.py +0 -0
  21. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/async_task_mixin.py +0 -0
  22. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/base_server.py +0 -0
  23. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/base_ua_object.py +0 -0
  24. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/config.py +0 -0
  25. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/enums.py +0 -0
  26. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/errors.py +0 -0
  27. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/frozen.py +0 -0
  28. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/hook.py +0 -0
  29. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/lifecycle_mixin.py +0 -0
  30. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/logging.py +0 -0
  31. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/meta.py +0 -0
  32. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/mixin_helpers.py +0 -0
  33. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/protocols.py +0 -0
  34. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/repr_mixin.py +0 -0
  35. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/signal.py +0 -0
  36. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/subscription_manager.py +0 -0
  37. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua.py +0 -0
  38. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua_enums.py +0 -0
  39. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/ua_node_util.py +0 -0
  40. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unit_all.py +0 -0
  41. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unit_base.py +0 -0
  42. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/src/opensmi/core/unset.py +0 -0
  43. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/tests/test_signal.py +0 -0
  44. {opensmi_core-0.2.1 → opensmi_core-0.2.2}/tests/test_unit.py +0 -0
  45. {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
+ ![OpenSMI Logo](https://smartfactory.de/wp-content/uploads/2026/09/Logo_OpenSMI.png)
37
+
38
+ [![Docs](https://img.shields.io/badge/docs-online-blue)](https://smartfactory-kl.github.io/opensmi-core/)
39
+ [![PyPI version](https://img.shields.io/pypi/v/opensmi-core.svg)](https://pypi.org/project/opensmi-core/)
40
+ [![Python versions](https://img.shields.io/pypi/pyversions/opensmi-core.svg)](https://pypi.org/project/opensmi-core/)
41
+ [![License](https://img.shields.io/badge/license-MIT-blue)](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
+ ![OpenSMI Logo](https://smartfactory.de/wp-content/uploads/2026/09/Logo_OpenSMI.png)
37
+
38
+ [![Docs](https://img.shields.io/badge/docs-online-blue)](https://smartfactory-kl.github.io/opensmi-core/)
39
+ [![PyPI version](https://img.shields.io/pypi/v/opensmi-core.svg)](https://pypi.org/project/opensmi-core/)
40
+ [![Python versions](https://img.shields.io/pypi/pyversions/opensmi-core.svg)](https://pypi.org/project/opensmi-core/)
41
+ [![License](https://img.shields.io/badge/license-MIT-blue)](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)
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.2.1",
2
+ "tag": "0.2.2",
3
3
  "distance": 0,
4
- "node": "ga8edabe8cc0987a9434f135a0b149bc312ad6458",
4
+ "node": "g8f5549a283bfc653baf8cb55a097dd3f5f43eab5",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-10-06"
@@ -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