shellsmith 0.3.0__tar.gz → 0.5.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.
Files changed (54) hide show
  1. shellsmith-0.5.0/.gitignore +20 -0
  2. shellsmith-0.5.0/PKG-INFO +195 -0
  3. shellsmith-0.5.0/README.md +128 -0
  4. {shellsmith-0.3.0 → shellsmith-0.5.0}/pyproject.toml +37 -19
  5. shellsmith-0.5.0/src/shellsmith/__init__.py +50 -0
  6. shellsmith-0.5.0/src/shellsmith/api.py +529 -0
  7. shellsmith-0.5.0/src/shellsmith/clients.py +1388 -0
  8. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/config.py +2 -2
  9. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/services.py +24 -31
  10. shellsmith-0.5.0/src/shellsmith/types.py +5 -0
  11. shellsmith-0.5.0/src/shellsmith/upload.py +44 -0
  12. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/utils.py +1 -1
  13. shellsmith-0.3.0/PKG-INFO +0 -343
  14. shellsmith-0.3.0/README.md +0 -285
  15. shellsmith-0.3.0/setup.cfg +0 -4
  16. shellsmith-0.3.0/src/shellsmith/__init__.py +0 -30
  17. shellsmith-0.3.0/src/shellsmith/cli/__init__.py +0 -0
  18. shellsmith-0.3.0/src/shellsmith/cli/app.py +0 -44
  19. shellsmith-0.3.0/src/shellsmith/cli/args.py +0 -30
  20. shellsmith-0.3.0/src/shellsmith/cli/commands/__init__.py +0 -0
  21. shellsmith-0.3.0/src/shellsmith/cli/commands/decode.py +0 -13
  22. shellsmith-0.3.0/src/shellsmith/cli/commands/encode.py +0 -13
  23. shellsmith-0.3.0/src/shellsmith/cli/commands/groups/__init__.py +0 -0
  24. shellsmith-0.3.0/src/shellsmith/cli/commands/groups/create.py +0 -79
  25. shellsmith-0.3.0/src/shellsmith/cli/commands/groups/delete.py +0 -83
  26. shellsmith-0.3.0/src/shellsmith/cli/commands/groups/get.py +0 -165
  27. shellsmith-0.3.0/src/shellsmith/cli/commands/groups/update.py +0 -111
  28. shellsmith-0.3.0/src/shellsmith/cli/commands/info.py +0 -71
  29. shellsmith-0.3.0/src/shellsmith/cli/commands/nuke.py +0 -66
  30. shellsmith-0.3.0/src/shellsmith/cli/commands/upload.py +0 -32
  31. shellsmith-0.3.0/src/shellsmith/cli/formats.py +0 -13
  32. shellsmith-0.3.0/src/shellsmith/cli/handlers.py +0 -31
  33. shellsmith-0.3.0/src/shellsmith/cli/opts.py +0 -41
  34. shellsmith-0.3.0/src/shellsmith/cli/pretty.py +0 -142
  35. shellsmith-0.3.0/src/shellsmith/cli/resolve.py +0 -30
  36. shellsmith-0.3.0/src/shellsmith/cli/simplify.py +0 -74
  37. shellsmith-0.3.0/src/shellsmith/crud/__init__.py +0 -29
  38. shellsmith-0.3.0/src/shellsmith/crud/shells.py +0 -205
  39. shellsmith-0.3.0/src/shellsmith/crud/submodels.py +0 -434
  40. shellsmith-0.3.0/src/shellsmith/upload.py +0 -62
  41. shellsmith-0.3.0/src/shellsmith.egg-info/PKG-INFO +0 -343
  42. shellsmith-0.3.0/src/shellsmith.egg-info/SOURCES.txt +0 -44
  43. shellsmith-0.3.0/src/shellsmith.egg-info/dependency_links.txt +0 -1
  44. shellsmith-0.3.0/src/shellsmith.egg-info/entry_points.txt +0 -2
  45. shellsmith-0.3.0/src/shellsmith.egg-info/requires.txt +0 -16
  46. shellsmith-0.3.0/src/shellsmith.egg-info/top_level.txt +0 -1
  47. shellsmith-0.3.0/tests/test_neo4j.py +0 -137
  48. shellsmith-0.3.0/tests/test_services.py +0 -65
  49. shellsmith-0.3.0/tests/test_upload.py +0 -12
  50. shellsmith-0.3.0/tests/test_utils.py +0 -39
  51. {shellsmith-0.3.0 → shellsmith-0.5.0}/LICENSE +0 -0
  52. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/__main__.py +0 -0
  53. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/extract.py +0 -0
  54. {shellsmith-0.3.0 → shellsmith-0.5.0}/src/shellsmith/neo4j.py +0 -0
@@ -0,0 +1,20 @@
1
+ .backup
2
+ .coverage
3
+ .idea
4
+ .pytest_cache
5
+ .ruff_cache
6
+ .venv*
7
+ *.egg-info
8
+ __pycache__
9
+ aasx
10
+ aas-*
11
+ build
12
+ coverage.xml
13
+ dist
14
+ db.sqlite3
15
+ htmlcov
16
+ site
17
+ venv
18
+ *_config.json
19
+ *.log
20
+ settings.local.json
@@ -0,0 +1,195 @@
1
+ Metadata-Version: 2.4
2
+ Name: shellsmith
3
+ Version: 0.5.0
4
+ Summary: A Python SDK for Eclipse BaSyx to manage Asset Administration Shells (AAS)
5
+ Project-URL: Homepage, https://github.com/SmartFactory-KL/shellsmith
6
+ Project-URL: Issues, https://github.com/SmartFactory-KL/shellsmith/issues
7
+ Project-URL: Documentation, https://shellsmith.pages.dev
8
+ Author-email: Peter Stein <peter.stein@dfki.de>
9
+ License: MIT License
10
+
11
+ Copyright (c) 2025 Peter Stein
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in all
21
+ copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ SOFTWARE.
30
+ License-File: LICENSE
31
+ Keywords: aas,asset-administration-shell,basyx,digital-twin,eclipse-basyx,i40,industry40,python,rest-client
32
+ Classifier: Environment :: Console
33
+ Classifier: Intended Audience :: Developers
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Operating System :: OS Independent
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Programming Language :: Python :: 3.10
38
+ Classifier: Programming Language :: Python :: 3.11
39
+ Classifier: Programming Language :: Python :: 3.12
40
+ Classifier: Programming Language :: Python :: 3.13
41
+ Classifier: Topic :: Software Development :: Libraries
42
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
43
+ Requires-Python: >=3.10
44
+ Requires-Dist: httpx
45
+ Requires-Dist: pydantic-settings
46
+ Requires-Dist: pyyaml
47
+ Provides-Extra: cli
48
+ Requires-Dist: aas-cli; extra == 'cli'
49
+ Provides-Extra: docs
50
+ Requires-Dist: mkdocs; extra == 'docs'
51
+ Requires-Dist: mkdocs-material; extra == 'docs'
52
+ Requires-Dist: termynal; extra == 'docs'
53
+ Provides-Extra: mcp
54
+ Requires-Dist: aas-mcp; extra == 'mcp'
55
+ Provides-Extra: neo4j
56
+ Requires-Dist: neo4j; extra == 'neo4j'
57
+ Provides-Extra: test
58
+ Requires-Dist: mypy; extra == 'test'
59
+ Requires-Dist: pytest; extra == 'test'
60
+ Requires-Dist: pytest-asyncio; extra == 'test'
61
+ Requires-Dist: pytest-cov; extra == 'test'
62
+ Requires-Dist: pytest-dotenv; extra == 'test'
63
+ Requires-Dist: ruff; extra == 'test'
64
+ Requires-Dist: types-pyyaml; extra == 'test'
65
+ Requires-Dist: types-requests; extra == 'test'
66
+ Description-Content-Type: text/markdown
67
+
68
+ <div align="center">
69
+ <img src="https://raw.githubusercontent.com/SmartFactory-KL/shellsmith/main/docs/images/banner-purple-500.png" alt="shellsmith">
70
+ </div>
71
+
72
+ <div align="center">
73
+ <a href="https://github.com/SmartFactory-KL/shellsmith/actions/workflows/test.yaml"><img src="https://github.com/SmartFactory-KL/shellsmith/actions/workflows/test.yaml/badge.svg" alt="Test"></a>
74
+ <a href="https://codecov.io/gh/SmartFactory-KL/shellsmith"><img src="https://codecov.io/gh/SmartFactory-KL/shellsmith/branch/main/graph/badge.svg" alt="codecov"></a>
75
+ <a href="https://pypi.org/project/shellsmith"><img src="https://img.shields.io/pypi/v/shellsmith?color=%2334D058" alt="PyPI - Version"></a>
76
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff"></a>
77
+ </div>
78
+
79
+ <p align="center">
80
+ <b>Documentation</b>: <a href="https://shellsmith.pages.dev/" target="_blank">https://shellsmith.pages.dev</a>
81
+ </p>
82
+
83
+ **Shellsmith** is a Python SDK for managing [Asset Administration Shells (AAS)](https://industrialdigitaltwin.org/en/content-hub/aasspecifications) via the [Eclipse BaSyx](https://www.eclipse.org/basyx/) REST API.
84
+
85
+ ## Installation
86
+
87
+ ```bash
88
+ pip install shellsmith
89
+ ```
90
+
91
+ For CLI and MCP server support, install with optional dependencies:
92
+
93
+ ```bash
94
+ pip install shellsmith[cli,mcp]
95
+ ```
96
+
97
+ **Requires**: Python 3.10+
98
+
99
+ ## Python API Usage
100
+
101
+ You can also use `shellsmith` as a Python client library to interact with the BaSyx Environment REST API.
102
+
103
+ ```python
104
+ import shellsmith
105
+
106
+ # Fetch all AAS Shells
107
+ shells = shellsmith.get_shells()
108
+
109
+ # Fetch a specific Submodel
110
+ submodel = shellsmith.get_submodel("https://example.com/submodels/my-submodel")
111
+
112
+ # Read and update a Submodel Element's value
113
+ value = shellsmith.get_submodel_element_value(submodel["id"], "temperature")
114
+ shellsmith.patch_submodel_element_value(submodel["id"], "temperature", "42.0")
115
+ ```
116
+
117
+ > ℹ️ `shell_id` and `submodel_id` are automatically base64-encoded unless you pass `encode=False`.
118
+
119
+ ➡️ Full Python API reference: [shellsmith.pages.dev/api](https://shellsmith.pages.dev/api)
120
+
121
+ ## CLI Usage
122
+
123
+ Shellsmith provides a powerful command-line interface:
124
+
125
+ ```bash
126
+ aas --help
127
+ ```
128
+
129
+ | Command | Description |
130
+ |----------|----------------------------------------------------------|
131
+ | `info` | Display the current Shell tree and identify issues. |
132
+ | `upload` | Upload a single AAS file or all AAS files from a folder. |
133
+ | `nuke` | ☢️ Delete all Shells and Submodels (irrevocable). |
134
+ | `encode` | Encode a value (e.g. Shell ID) to Base64. |
135
+ | `decode` | Decode a Base64-encoded value. |
136
+ | `get` | Get Shells, Submodels, and Submodel Elements. |
137
+ | `delete` | Delete Shells, Submodels, or Submodel Elements. |
138
+ | `update` | Update Shells, Submodels, or Submodel Elements. |
139
+ | `create` | Create new Shells, Submodels, or Submodel Elements. |
140
+
141
+ > ℹ️ Run `aas <command> --help` to view subcommands and options.
142
+
143
+ ➡️ Full CLI reference: [shellsmith.pages.dev/cli](https://shellsmith.pages.dev/cli)
144
+
145
+ ## MCP Integration
146
+
147
+ Shellsmith provides a Model Context Protocol (MCP) server that enables AI assistants to interact with Asset Administration Shells. The server exposes 25+ tools for comprehensive AAS management through a standardized interface.
148
+
149
+ Configure with Claude Desktop or other MCP clients to get AI-powered AAS operations.
150
+
151
+ ➡️ Full MCP reference: [shellsmith.pages.dev/mcp](https://shellsmith.pages.dev/mcp)
152
+
153
+ ## Configuration
154
+
155
+ The default AAS environment host is:
156
+
157
+ ```
158
+ http://localhost:8081
159
+ ```
160
+
161
+ You can override it in several ways:
162
+
163
+ - Set the environment variable:
164
+ ```bash
165
+ SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
166
+ ```
167
+
168
+ - Create a `.env` file in your project with:
169
+ ```dotenv
170
+ SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
171
+ ```
172
+
173
+ - Use the `--host` option with any CLI command:
174
+ ```bash
175
+ aas get shells --host https://your-host:1234
176
+ ```
177
+
178
+ - Pass the `host` parameter in any `shellsmith` Python function:
179
+ ```python
180
+ shellsmith.get_shells(host="https://your-host:1234")
181
+ ```
182
+
183
+ > ℹ️ The `--host` CLI flag and `host=` Python argument **take precedence** over environment variables and `.env`.
184
+
185
+ ## Contributing
186
+
187
+ We welcome contributions!
188
+
189
+ See the [Contributing Guide](https://shellsmith.pages.dev/contributing/) for setup, testing, and coding standards.
190
+
191
+ ## Resources
192
+
193
+ - https://github.com/eclipse-basyx/basyx-java-server-sdk
194
+ - https://github.com/admin-shell-io/aas-specs-api
195
+ - https://app.swaggerhub.com/apis/Plattform_i40/Entire-API-Collection
@@ -0,0 +1,128 @@
1
+ <div align="center">
2
+ <img src="https://raw.githubusercontent.com/SmartFactory-KL/shellsmith/main/docs/images/banner-purple-500.png" alt="shellsmith">
3
+ </div>
4
+
5
+ <div align="center">
6
+ <a href="https://github.com/SmartFactory-KL/shellsmith/actions/workflows/test.yaml"><img src="https://github.com/SmartFactory-KL/shellsmith/actions/workflows/test.yaml/badge.svg" alt="Test"></a>
7
+ <a href="https://codecov.io/gh/SmartFactory-KL/shellsmith"><img src="https://codecov.io/gh/SmartFactory-KL/shellsmith/branch/main/graph/badge.svg" alt="codecov"></a>
8
+ <a href="https://pypi.org/project/shellsmith"><img src="https://img.shields.io/pypi/v/shellsmith?color=%2334D058" alt="PyPI - Version"></a>
9
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff"></a>
10
+ </div>
11
+
12
+ <p align="center">
13
+ <b>Documentation</b>: <a href="https://shellsmith.pages.dev/" target="_blank">https://shellsmith.pages.dev</a>
14
+ </p>
15
+
16
+ **Shellsmith** is a Python SDK for managing [Asset Administration Shells (AAS)](https://industrialdigitaltwin.org/en/content-hub/aasspecifications) via the [Eclipse BaSyx](https://www.eclipse.org/basyx/) REST API.
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ pip install shellsmith
22
+ ```
23
+
24
+ For CLI and MCP server support, install with optional dependencies:
25
+
26
+ ```bash
27
+ pip install shellsmith[cli,mcp]
28
+ ```
29
+
30
+ **Requires**: Python 3.10+
31
+
32
+ ## Python API Usage
33
+
34
+ You can also use `shellsmith` as a Python client library to interact with the BaSyx Environment REST API.
35
+
36
+ ```python
37
+ import shellsmith
38
+
39
+ # Fetch all AAS Shells
40
+ shells = shellsmith.get_shells()
41
+
42
+ # Fetch a specific Submodel
43
+ submodel = shellsmith.get_submodel("https://example.com/submodels/my-submodel")
44
+
45
+ # Read and update a Submodel Element's value
46
+ value = shellsmith.get_submodel_element_value(submodel["id"], "temperature")
47
+ shellsmith.patch_submodel_element_value(submodel["id"], "temperature", "42.0")
48
+ ```
49
+
50
+ > ℹ️ `shell_id` and `submodel_id` are automatically base64-encoded unless you pass `encode=False`.
51
+
52
+ ➡️ Full Python API reference: [shellsmith.pages.dev/api](https://shellsmith.pages.dev/api)
53
+
54
+ ## CLI Usage
55
+
56
+ Shellsmith provides a powerful command-line interface:
57
+
58
+ ```bash
59
+ aas --help
60
+ ```
61
+
62
+ | Command | Description |
63
+ |----------|----------------------------------------------------------|
64
+ | `info` | Display the current Shell tree and identify issues. |
65
+ | `upload` | Upload a single AAS file or all AAS files from a folder. |
66
+ | `nuke` | ☢️ Delete all Shells and Submodels (irrevocable). |
67
+ | `encode` | Encode a value (e.g. Shell ID) to Base64. |
68
+ | `decode` | Decode a Base64-encoded value. |
69
+ | `get` | Get Shells, Submodels, and Submodel Elements. |
70
+ | `delete` | Delete Shells, Submodels, or Submodel Elements. |
71
+ | `update` | Update Shells, Submodels, or Submodel Elements. |
72
+ | `create` | Create new Shells, Submodels, or Submodel Elements. |
73
+
74
+ > ℹ️ Run `aas <command> --help` to view subcommands and options.
75
+
76
+ ➡️ Full CLI reference: [shellsmith.pages.dev/cli](https://shellsmith.pages.dev/cli)
77
+
78
+ ## MCP Integration
79
+
80
+ Shellsmith provides a Model Context Protocol (MCP) server that enables AI assistants to interact with Asset Administration Shells. The server exposes 25+ tools for comprehensive AAS management through a standardized interface.
81
+
82
+ Configure with Claude Desktop or other MCP clients to get AI-powered AAS operations.
83
+
84
+ ➡️ Full MCP reference: [shellsmith.pages.dev/mcp](https://shellsmith.pages.dev/mcp)
85
+
86
+ ## Configuration
87
+
88
+ The default AAS environment host is:
89
+
90
+ ```
91
+ http://localhost:8081
92
+ ```
93
+
94
+ You can override it in several ways:
95
+
96
+ - Set the environment variable:
97
+ ```bash
98
+ SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
99
+ ```
100
+
101
+ - Create a `.env` file in your project with:
102
+ ```dotenv
103
+ SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
104
+ ```
105
+
106
+ - Use the `--host` option with any CLI command:
107
+ ```bash
108
+ aas get shells --host https://your-host:1234
109
+ ```
110
+
111
+ - Pass the `host` parameter in any `shellsmith` Python function:
112
+ ```python
113
+ shellsmith.get_shells(host="https://your-host:1234")
114
+ ```
115
+
116
+ > ℹ️ The `--host` CLI flag and `host=` Python argument **take precedence** over environment variables and `.env`.
117
+
118
+ ## Contributing
119
+
120
+ We welcome contributions!
121
+
122
+ See the [Contributing Guide](https://shellsmith.pages.dev/contributing/) for setup, testing, and coding standards.
123
+
124
+ ## Resources
125
+
126
+ - https://github.com/eclipse-basyx/basyx-java-server-sdk
127
+ - https://github.com/admin-shell-io/aas-specs-api
128
+ - https://app.swaggerhub.com/apis/Plattform_i40/Entire-API-Collection
@@ -1,23 +1,25 @@
1
1
  [build-system]
2
- requires = ["setuptools>=64", "wheel"]
3
- build-backend = "setuptools.build_meta"
2
+ requires = ["hatchling >= 1.26", "hatch-vcs>=0.3"]
3
+ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "shellsmith"
7
- version = "0.3.0"
8
- authors = [{ name = "Peter Stein", email = "peterstein@dfki.de" }]
9
- description = "Python client and CLI for Eclipse BaSyx to manage Asset Administration Shells (AAS)"
7
+ dynamic = ["version"]
8
+ authors = [{ name = "Peter Stein", email = "peter.stein@dfki.de" }]
9
+ description = "A Python SDK for Eclipse BaSyx to manage Asset Administration Shells (AAS)"
10
10
  license = { file = "LICENSE" }
11
11
  readme = { file = "README.md", content-type = "text/markdown" }
12
12
  requires-python = ">=3.10"
13
13
  classifiers = [
14
+ "Environment :: Console",
15
+ "Intended Audience :: Developers",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
14
18
  "Programming Language :: Python :: 3",
15
19
  "Programming Language :: Python :: 3.10",
16
20
  "Programming Language :: Python :: 3.11",
17
21
  "Programming Language :: Python :: 3.12",
18
22
  "Programming Language :: Python :: 3.13",
19
- "Operating System :: OS Independent",
20
- "Intended Audience :: Developers",
21
23
  "Topic :: Software Development :: Libraries",
22
24
  "Topic :: Software Development :: Libraries :: Python Modules",
23
25
  ]
@@ -29,39 +31,51 @@ keywords = [
29
31
  "industry40",
30
32
  "i40",
31
33
  "digital-twin",
32
- "cli",
33
- "typer",
34
34
  "rest-client",
35
35
  "python",
36
36
  ]
37
37
  dependencies = [
38
+ "httpx",
38
39
  "pydantic-settings",
39
40
  "pyyaml",
40
- "requests",
41
- "typer",
42
41
  ]
43
42
 
44
43
  [project.optional-dependencies]
45
44
  test = [
46
- "mkdocs",
47
- "mkdocs-material",
45
+ "mypy",
48
46
  "pytest",
47
+ "pytest-asyncio",
49
48
  "pytest-cov",
50
49
  "pytest-dotenv",
51
50
  "ruff",
51
+ "types-pyyaml",
52
+ "types-requests"
53
+ ]
54
+ cli = [
55
+ "aas-cli",
56
+ ]
57
+ docs = [
58
+ "mkdocs",
59
+ "mkdocs-material",
52
60
  "termynal",
53
61
  ]
54
-
62
+ mcp = [
63
+ "aas-mcp",
64
+ ]
55
65
  neo4j = [
56
66
  "neo4j",
57
67
  ]
58
68
 
59
- [project.scripts]
60
- aas = "shellsmith.cli.app:main"
61
-
62
69
  [project.urls]
63
- Homepage = "https://github.com/ptrstn/shellsmith"
64
- Issues = "https://github.com/ptrstn/shellsmith/issues"
70
+ Homepage = "https://github.com/SmartFactory-KL/shellsmith"
71
+ Issues = "https://github.com/SmartFactory-KL/shellsmith/issues"
72
+ Documentation = "https://shellsmith.pages.dev"
73
+
74
+ [tool.hatch.version]
75
+ source = "vcs"
76
+
77
+ [tool.hatch.build.targets.sdist]
78
+ include = ["src", "README.md", "LICENSE"]
65
79
 
66
80
  [tool.ruff]
67
81
  target-version = "py310"
@@ -82,6 +96,10 @@ select = [
82
96
  "W", # pycodestyle warnings
83
97
  ]
84
98
 
99
+ ignore = [
100
+ "ANN401", # Allow Any types
101
+ ]
102
+
85
103
  [tool.ruff.lint.per-file-ignores]
86
104
  "__init__.py" = ["D104", "F401"]
87
105
  "tests/**/test_*.py" = ["ANN", "PL"]
@@ -0,0 +1,50 @@
1
+ """Module level imports."""
2
+
3
+ from importlib.metadata import version
4
+
5
+ __version__ = version("shellsmith")
6
+
7
+ from .api import (
8
+ create_shell,
9
+ create_submodel,
10
+ create_submodel_element,
11
+ create_submodel_ref,
12
+ delete_shell,
13
+ delete_submodel,
14
+ delete_submodel_element,
15
+ delete_submodel_ref,
16
+ get_health_status,
17
+ get_shell,
18
+ get_shells,
19
+ get_submodel,
20
+ get_submodel_element,
21
+ get_submodel_element_value,
22
+ get_submodel_elements,
23
+ get_submodel_metadata,
24
+ get_submodel_refs,
25
+ get_submodel_value,
26
+ get_submodels,
27
+ is_healthy,
28
+ update_shell,
29
+ update_submodel,
30
+ update_submodel_element,
31
+ update_submodel_element_value,
32
+ update_submodel_value,
33
+ )
34
+ from .clients import AsyncClient, Client
35
+ from .upload import upload_aas, upload_aas_folder
36
+
37
+ # Aliases for backwards compatibility
38
+ post_shell = create_shell
39
+ put_shell = update_shell
40
+
41
+ post_submodel = create_submodel
42
+ put_submodel = update_submodel
43
+ post_submodel_ref = create_submodel_ref
44
+ patch_submodel_value = update_submodel_value
45
+
46
+ post_submodel_element = create_submodel_element
47
+ put_submodel_element = update_submodel_element
48
+ patch_submodel_element_value = update_submodel_element_value
49
+
50
+ health = get_health_status