ai4cps 0.1.42__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 (35) hide show
  1. ai4cps-0.1.42/LICENSE +21 -0
  2. ai4cps-0.1.42/MANIFEST.in +9 -0
  3. ai4cps-0.1.42/PKG-INFO +160 -0
  4. ai4cps-0.1.42/README.md +91 -0
  5. ai4cps-0.1.42/ai4cps/__init__.py +3 -0
  6. ai4cps-0.1.42/ai4cps/backend/__init__.py +0 -0
  7. ai4cps-0.1.42/ai4cps/backend/celery_config.py +19 -0
  8. ai4cps-0.1.42/ai4cps/backend/datetime_utils.py +493 -0
  9. ai4cps-0.1.42/ai4cps/backend/features.py +695 -0
  10. ai4cps-0.1.42/ai4cps/backend/perform.py +191 -0
  11. ai4cps-0.1.42/ai4cps/backend/results.py +274 -0
  12. ai4cps-0.1.42/ai4cps/backend/utils.py +137 -0
  13. ai4cps-0.1.42/ai4cps/dash/__init__.py +0 -0
  14. ai4cps-0.1.42/ai4cps/dash/assets/Logo dark.svg +39 -0
  15. ai4cps-0.1.42/ai4cps/dash/assets/Logo light.svg +39 -0
  16. ai4cps-0.1.42/ai4cps/dash/assets/favicon.ico +0 -0
  17. ai4cps-0.1.42/ai4cps/dash/assets/selfx_style.css +950 -0
  18. ai4cps-0.1.42/ai4cps/dash/colors.py +163 -0
  19. ai4cps-0.1.42/ai4cps/dash/dashboard.py +899 -0
  20. ai4cps-0.1.42/ai4cps/dash/layouts.py +215 -0
  21. ai4cps-0.1.42/ai4cps/dash/routing_utils.py +41 -0
  22. ai4cps-0.1.42/ai4cps/version.py +1 -0
  23. ai4cps-0.1.42/ai4cps.egg-info/PKG-INFO +160 -0
  24. ai4cps-0.1.42/ai4cps.egg-info/SOURCES.txt +33 -0
  25. ai4cps-0.1.42/ai4cps.egg-info/dependency_links.txt +1 -0
  26. ai4cps-0.1.42/ai4cps.egg-info/requires.txt +24 -0
  27. ai4cps-0.1.42/ai4cps.egg-info/top_level.txt +1 -0
  28. ai4cps-0.1.42/requirements/dev.txt +1 -0
  29. ai4cps-0.1.42/requirements/install.txt +21 -0
  30. ai4cps-0.1.42/setup.cfg +4 -0
  31. ai4cps-0.1.42/setup.py +66 -0
  32. ai4cps-0.1.42/tests/test_colors.py +132 -0
  33. ai4cps-0.1.42/tests/test_datetime_utils.py +190 -0
  34. ai4cps-0.1.42/tests/test_features_base.py +7 -0
  35. ai4cps-0.1.42/tests/test_results.py +54 -0
ai4cps-0.1.42/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AI4CPS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,9 @@
1
+ include README.md
2
+ include LICENSE
3
+
4
+ recursive-include ai4cps *.py
5
+ recursive-include ai4cps/dash/assets *
6
+ recursive-include requirements *.txt
7
+
8
+ global-exclude *.py[cod]
9
+ global-exclude __pycache__
ai4cps-0.1.42/PKG-INFO ADDED
@@ -0,0 +1,160 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai4cps
3
+ Version: 0.1.42
4
+ Summary: A Python framework for building apps for AI for CPS.Developed by AI4CPS.
5
+ Home-page: https://selfx.ai4cps.com
6
+ Author: Nemanja Hranisavljevic
7
+ Author-email: nemanja@ai4cps.com
8
+ License: MIT
9
+ Project-URL: Documentation, https://selfx.ai4cps.com
10
+ Project-URL: Source, https://github.com/ai4cps-com/ai4cps-oss
11
+ Project-URL: Issue Tracker, https://github.com/ai4cps-com/ai4cps-oss/issues
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Framework :: Dash
14
+ Classifier: Framework :: Flask
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Education
17
+ Classifier: Intended Audience :: Manufacturing
18
+ Classifier: Intended Audience :: Science/Research
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Programming Language :: Python
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.8
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3.10
25
+ Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
27
+ Classifier: Topic :: Database :: Front-Ends
28
+ Classifier: Topic :: Scientific/Engineering :: Visualization
29
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
30
+ Requires-Python: >=3.8
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE
33
+ Requires-Dist: dash==3.4.0
34
+ Requires-Dist: dash-bootstrap-components
35
+ Requires-Dist: dash-cytoscape
36
+ Requires-Dist: dash-extensions
37
+ Requires-Dist: waitress
38
+ Requires-Dist: networkx
39
+ Requires-Dist: numpy
40
+ Requires-Dist: pandas
41
+ Requires-Dist: flask
42
+ Requires-Dist: flask-login
43
+ Requires-Dist: flask-restful
44
+ Requires-Dist: dill
45
+ Requires-Dist: joblib
46
+ Requires-Dist: celery
47
+ Requires-Dist: redis
48
+ Requires-Dist: ml4cps
49
+ Requires-Dist: mlflow
50
+ Requires-Dist: pydotplus
51
+ Requires-Dist: pytz
52
+ Requires-Dist: requests
53
+ Requires-Dist: simpy
54
+ Provides-Extra: dev
55
+ Requires-Dist: pytest; extra == "dev"
56
+ Dynamic: author
57
+ Dynamic: author-email
58
+ Dynamic: classifier
59
+ Dynamic: description
60
+ Dynamic: description-content-type
61
+ Dynamic: home-page
62
+ Dynamic: license
63
+ Dynamic: license-file
64
+ Dynamic: project-url
65
+ Dynamic: provides-extra
66
+ Dynamic: requires-dist
67
+ Dynamic: requires-python
68
+ Dynamic: summary
69
+
70
+ # AI4CPS OSS
71
+
72
+ [![GitHub](https://img.shields.io/github/license/ai4cps-com/ai4cps-oss.svg?color=dark-green)](https://github.com/ai4cps-com/ai4cps-oss/blob/main/LICENSE)
73
+ [![PyPI](https://img.shields.io/pypi/v/ai4cps.svg)](https://pypi.org/project/ai4cps/)
74
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ai4cps.svg)](https://pypi.org/project/ai4cps/)
75
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/ai4cps-com/ai4cps-oss.svg)](https://github.com/ai4cps-com/ai4cps-oss/graphs/contributors)
76
+ [![Sponsor](https://img.shields.io/badge/Sponsor-❤-ff69b4)](https://github.com/sponsors/ai4cps-com)
77
+
78
+ *SelfX is a Python framework for building ML & AI apps in the domain of Cyber-Physical Systems (CPSs)*.
79
+
80
+ <div align="center">
81
+ <a href="https://www.ai4cps.com">
82
+ <picture>
83
+ <source media="(prefers-color-scheme: dark)" srcset="ai4cps/dash/assets/Logo%20dark.svg">
84
+ <source media="(prefers-color-scheme: light)" srcset="ai4cps/dash/assets/Logo%20light.svg">
85
+ <img src="ai4cps/dash/assets/Logo%20light.svg" width="400px" alt="Maintained by AI4CPS">
86
+ </picture>
87
+ </a>
88
+ </div>
89
+
90
+
91
+ Built on top of [Dash](https://dash.plotly.com/), SelfX allows simple implementation of AI tools for CPSs.
92
+ Read [our tutorial](https://selfx.ai4cps.com/getting-started).
93
+
94
+ This software is developed at [Helmut Schmidt University / University of Federal Armed Forces Hamburg](www.hsu-hh.de)
95
+ at the [Professorship of Computer Science in Mechanical Engineering](https://www.hsu.hamburg/imb/en/)
96
+ at the Institute of Automation Technology.
97
+
98
+
99
+ ### SelfX App Examples
100
+
101
+ To be added.
102
+
103
+ ### Styling Overrides
104
+
105
+ SelfX loads override stylesheets after its default dashboard assets. Apps can
106
+ append project CSS with `css_overrides` when creating `SelfXDash`:
107
+
108
+ ```python
109
+ selfx = dashboard.SelfXDash(
110
+ css_overrides=["assets/selfx_overrides.css"],
111
+ )
112
+ ```
113
+
114
+ Local CSS files are served by SelfX, and external CSS URLs can also be passed.
115
+ For small changes, pass raw CSS directly:
116
+
117
+ ```python
118
+ selfx = dashboard.SelfXDash(
119
+ css_overrides=[":root { --selfx-sidebar-width: 19rem; }"],
120
+ )
121
+ ```
122
+
123
+ ### AI4CPS OSS & SelfX Enterprise
124
+
125
+ | Category | Feature | SelfX OOS (Open Source) | SelfX Enterprise |
126
+ |-------------------------------|----------------------------------| ----------------------- | ------------------------ |
127
+ | **Core Platform** | Core SelfX Platform | ✅ | ✅ |
128
+ | | Workflow Engine | ✅ | ✅ |
129
+ | | API Access | Basic | Extended |
130
+ | | Plugin / Extension Support | Limited | Full |
131
+ | | LLM Integration | Limited | Full |
132
+ | **AI Capabilities** | Basic AI tools | ✅ | ✅ |
133
+ | | Dayly and Monthly Reports | ❌ | ✅ |
134
+ | **Security & Access Control** | User Authentication | Basic | Advanced |
135
+ | | Role-Based Access Control (RBAC) | Limited | ✅ |
136
+ | | Single Sign-On (SSO) | ❌ | ✅ |
137
+ | **Scalability & Reliability** | Horizontal Scaling | ❌ | ✅ |
138
+ | | High Availability / Clustering | ❌ | ✅ |
139
+ | | Multi-Tenant Support | ❌ | ✅ |
140
+ | **Integrations** | Standard Integrations | Limited | Extended |
141
+ | | Enterprise Integrations | ❌ | ✅ |
142
+ | | Custom Connectors | Limited | ✅ |
143
+ | **Observability** | Basic Logging | ✅ | ✅ |
144
+ | | Metrics & Monitoring | Basic | Advanced |
145
+ | | Alerting | ❌ | ✅ |
146
+ | **Operations** | Deployment | Self-hosted | Self-hosted / Enterprise |
147
+ | | Backup & Recovery Tools | ❌ | ✅ |
148
+ | | Performance Optimization | ❌ | ✅ |
149
+ | **Support & Licensing** | License | Open Source | Commercial |
150
+ | | Documentation | ✅ | ✅ |
151
+ | | Support | Community | Priority / SLA |
152
+ | | Professional Services | ❌ | Available |
153
+
154
+ LLMs can be used to easily create features
155
+
156
+ See [https://ai4cps.com](https://ai4cps.com) to get in touch.
157
+
158
+
159
+ Install `ai4cps` and import from `ai4cps`, for example `from ai4cps.dash.dashboard import SelfXDash`.
160
+ The deprecated `selfx` distribution provides compatibility for legacy `selfx` imports.
@@ -0,0 +1,91 @@
1
+ # AI4CPS OSS
2
+
3
+ [![GitHub](https://img.shields.io/github/license/ai4cps-com/ai4cps-oss.svg?color=dark-green)](https://github.com/ai4cps-com/ai4cps-oss/blob/main/LICENSE)
4
+ [![PyPI](https://img.shields.io/pypi/v/ai4cps.svg)](https://pypi.org/project/ai4cps/)
5
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ai4cps.svg)](https://pypi.org/project/ai4cps/)
6
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/ai4cps-com/ai4cps-oss.svg)](https://github.com/ai4cps-com/ai4cps-oss/graphs/contributors)
7
+ [![Sponsor](https://img.shields.io/badge/Sponsor-❤-ff69b4)](https://github.com/sponsors/ai4cps-com)
8
+
9
+ *SelfX is a Python framework for building ML & AI apps in the domain of Cyber-Physical Systems (CPSs)*.
10
+
11
+ <div align="center">
12
+ <a href="https://www.ai4cps.com">
13
+ <picture>
14
+ <source media="(prefers-color-scheme: dark)" srcset="ai4cps/dash/assets/Logo%20dark.svg">
15
+ <source media="(prefers-color-scheme: light)" srcset="ai4cps/dash/assets/Logo%20light.svg">
16
+ <img src="ai4cps/dash/assets/Logo%20light.svg" width="400px" alt="Maintained by AI4CPS">
17
+ </picture>
18
+ </a>
19
+ </div>
20
+
21
+
22
+ Built on top of [Dash](https://dash.plotly.com/), SelfX allows simple implementation of AI tools for CPSs.
23
+ Read [our tutorial](https://selfx.ai4cps.com/getting-started).
24
+
25
+ This software is developed at [Helmut Schmidt University / University of Federal Armed Forces Hamburg](www.hsu-hh.de)
26
+ at the [Professorship of Computer Science in Mechanical Engineering](https://www.hsu.hamburg/imb/en/)
27
+ at the Institute of Automation Technology.
28
+
29
+
30
+ ### SelfX App Examples
31
+
32
+ To be added.
33
+
34
+ ### Styling Overrides
35
+
36
+ SelfX loads override stylesheets after its default dashboard assets. Apps can
37
+ append project CSS with `css_overrides` when creating `SelfXDash`:
38
+
39
+ ```python
40
+ selfx = dashboard.SelfXDash(
41
+ css_overrides=["assets/selfx_overrides.css"],
42
+ )
43
+ ```
44
+
45
+ Local CSS files are served by SelfX, and external CSS URLs can also be passed.
46
+ For small changes, pass raw CSS directly:
47
+
48
+ ```python
49
+ selfx = dashboard.SelfXDash(
50
+ css_overrides=[":root { --selfx-sidebar-width: 19rem; }"],
51
+ )
52
+ ```
53
+
54
+ ### AI4CPS OSS & SelfX Enterprise
55
+
56
+ | Category | Feature | SelfX OOS (Open Source) | SelfX Enterprise |
57
+ |-------------------------------|----------------------------------| ----------------------- | ------------------------ |
58
+ | **Core Platform** | Core SelfX Platform | ✅ | ✅ |
59
+ | | Workflow Engine | ✅ | ✅ |
60
+ | | API Access | Basic | Extended |
61
+ | | Plugin / Extension Support | Limited | Full |
62
+ | | LLM Integration | Limited | Full |
63
+ | **AI Capabilities** | Basic AI tools | ✅ | ✅ |
64
+ | | Dayly and Monthly Reports | ❌ | ✅ |
65
+ | **Security & Access Control** | User Authentication | Basic | Advanced |
66
+ | | Role-Based Access Control (RBAC) | Limited | ✅ |
67
+ | | Single Sign-On (SSO) | ❌ | ✅ |
68
+ | **Scalability & Reliability** | Horizontal Scaling | ❌ | ✅ |
69
+ | | High Availability / Clustering | ❌ | ✅ |
70
+ | | Multi-Tenant Support | ❌ | ✅ |
71
+ | **Integrations** | Standard Integrations | Limited | Extended |
72
+ | | Enterprise Integrations | ❌ | ✅ |
73
+ | | Custom Connectors | Limited | ✅ |
74
+ | **Observability** | Basic Logging | ✅ | ✅ |
75
+ | | Metrics & Monitoring | Basic | Advanced |
76
+ | | Alerting | ❌ | ✅ |
77
+ | **Operations** | Deployment | Self-hosted | Self-hosted / Enterprise |
78
+ | | Backup & Recovery Tools | ❌ | ✅ |
79
+ | | Performance Optimization | ❌ | ✅ |
80
+ | **Support & Licensing** | License | Open Source | Commercial |
81
+ | | Documentation | ✅ | ✅ |
82
+ | | Support | Community | Priority / SLA |
83
+ | | Professional Services | ❌ | Available |
84
+
85
+ LLMs can be used to easily create features
86
+
87
+ See [https://ai4cps.com](https://ai4cps.com) to get in touch.
88
+
89
+
90
+ Install `ai4cps` and import from `ai4cps`, for example `from ai4cps.dash.dashboard import SelfXDash`.
91
+ The deprecated `selfx` distribution provides compatibility for legacy `selfx` imports.
@@ -0,0 +1,3 @@
1
+ """AI4CPS framework for cyber-physical systems."""
2
+
3
+ from .version import __version__
File without changes
@@ -0,0 +1,19 @@
1
+ import os
2
+
3
+ broker_url = os.getenv("CELERY_BROKER_URL", "redis://localhost:6379/0")
4
+ result_backend = os.getenv("CELERY_RESULT_BACKEND", "redis://localhost:6379/1")
5
+
6
+ task_serializer = "json"
7
+ result_serializer = "json"
8
+ accept_content = ["json"]
9
+
10
+ timezone = "UTC"
11
+ enable_utc = True
12
+
13
+ task_track_started = True
14
+ task_ignore_result = False
15
+
16
+ task_always_eager = True
17
+ task_eager_propagates = True
18
+
19
+ imports = ("ai4cps.tasks.feature_tasks",)