IncludeCPP 4.6.6__tar.gz → 4.6.9__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.
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/PKG-INFO +39 -1
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/SOURCES.txt +2 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/PKG-INFO +39 -1
- {includecpp-4.6.6 → includecpp-4.6.9}/README.md +38 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/CHANGELOG.md +19 -0
- includecpp-4.6.9/includecpp/__init__.py +105 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/cli/commands.py +793 -2
- includecpp-4.6.9/includecpp/core/homeserver.py +860 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/pyproject.toml +1 -1
- includecpp-4.6.6/includecpp/__init__.py +0 -59
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/dependency_links.txt +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/entry_points.txt +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/requires.txt +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/IncludeCPP.egg-info/top_level.txt +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/LICENSE +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/MANIFEST.in +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/DOCUMENTATION.md +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/__init__.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/__main__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/cli/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/cli/config_parser.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/ai_integration.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/build_manager.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cpp_api.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cpp_api.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cpp_api_extensions.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cppy_converter.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/CSSL_DOCUMENTATION_NEW.md +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/build/api.pyd +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/build/cssl_core.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/build/libgcc_s_seh-1.dll +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/build/libstdc++-6.dll +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/build/libwinpthread-1.dll +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/cssl_core.cp +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cpp/cssl_lexer.hpp +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_builtins.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_compiler.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_events.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_languages.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_modules.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_optimizer.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_parser.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_runtime.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_syntax.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl/cssl_types.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl_bridge.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/cssl_bridge.pyi +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/error_catalog.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/error_formatter.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/exceptions.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/path_discovery.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/project_ui.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/core/settings_ui.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/generator/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/generator/parser.cpp +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/generator/parser.h +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/generator/type_resolver.cpp +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/generator/type_resolver.h +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/py.typed +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/templates/cpp.proj.template +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/__init__.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/extension.js +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/images/cssl.png +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/language-configuration.json +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/package.json +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/requirements.txt +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/setup.cfg +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/setup.py +0 -0
- {includecpp-4.6.6 → includecpp-4.6.9}/tests/test_multilang.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: IncludeCPP
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.9
|
|
4
4
|
Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
|
|
5
5
|
Home-page: https://github.com/liliassg/IncludeCPP
|
|
6
6
|
Author: Lilias Hatterscheidt
|
|
@@ -179,6 +179,11 @@ includecpp rebuild --clean
|
|
|
179
179
|
| `rebuild --fast` | Fast incremental build |
|
|
180
180
|
| `rebuild --clean` | Full clean rebuild |
|
|
181
181
|
| `get <name>` | Show module's API |
|
|
182
|
+
| `server start` | Start HomeServer |
|
|
183
|
+
| `server stop` | Stop HomeServer |
|
|
184
|
+
| `server upload` | Upload file/project |
|
|
185
|
+
| `server download` | Download file/project |
|
|
186
|
+
| `server list` | List stored items |
|
|
182
187
|
|
|
183
188
|
---
|
|
184
189
|
|
|
@@ -247,6 +252,39 @@ includecpp <command> --help
|
|
|
247
252
|
|
|
248
253
|
---
|
|
249
254
|
|
|
255
|
+
## HomeServer
|
|
256
|
+
|
|
257
|
+
Store and manage your modules, projects and files locally with the HomeServer:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Install and start the server (one-time setup)
|
|
261
|
+
includecpp server install
|
|
262
|
+
|
|
263
|
+
# Manual start/stop
|
|
264
|
+
includecpp server start
|
|
265
|
+
includecpp server stop
|
|
266
|
+
includecpp server status
|
|
267
|
+
|
|
268
|
+
# Upload files or projects
|
|
269
|
+
includecpp server upload mymodule ./include/mymodule.cpp
|
|
270
|
+
includecpp server upload myproject ./myproject --project
|
|
271
|
+
|
|
272
|
+
# List, download, delete
|
|
273
|
+
includecpp server list
|
|
274
|
+
includecpp server download mymodule ./backup/
|
|
275
|
+
includecpp server delete mymodule
|
|
276
|
+
|
|
277
|
+
# Change port (default: 2007)
|
|
278
|
+
includecpp server port 3000
|
|
279
|
+
|
|
280
|
+
# Remove HomeServer completely
|
|
281
|
+
includecpp server deinstall
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The server runs silently in the background and can auto-start with Windows.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
250
288
|
## Experimental Features
|
|
251
289
|
|
|
252
290
|
IncludeCPP also includes experimental features that are still in development:
|
|
@@ -25,6 +25,7 @@ setup.py
|
|
|
25
25
|
./includecpp/core/error_catalog.py
|
|
26
26
|
./includecpp/core/error_formatter.py
|
|
27
27
|
./includecpp/core/exceptions.py
|
|
28
|
+
./includecpp/core/homeserver.py
|
|
28
29
|
./includecpp/core/path_discovery.py
|
|
29
30
|
./includecpp/core/project_ui.py
|
|
30
31
|
./includecpp/core/settings_ui.py
|
|
@@ -91,6 +92,7 @@ includecpp/core/cssl_bridge.pyi
|
|
|
91
92
|
includecpp/core/error_catalog.py
|
|
92
93
|
includecpp/core/error_formatter.py
|
|
93
94
|
includecpp/core/exceptions.py
|
|
95
|
+
includecpp/core/homeserver.py
|
|
94
96
|
includecpp/core/path_discovery.py
|
|
95
97
|
includecpp/core/project_ui.py
|
|
96
98
|
includecpp/core/settings_ui.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: IncludeCPP
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.9
|
|
4
4
|
Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
|
|
5
5
|
Home-page: https://github.com/liliassg/IncludeCPP
|
|
6
6
|
Author: Lilias Hatterscheidt
|
|
@@ -179,6 +179,11 @@ includecpp rebuild --clean
|
|
|
179
179
|
| `rebuild --fast` | Fast incremental build |
|
|
180
180
|
| `rebuild --clean` | Full clean rebuild |
|
|
181
181
|
| `get <name>` | Show module's API |
|
|
182
|
+
| `server start` | Start HomeServer |
|
|
183
|
+
| `server stop` | Stop HomeServer |
|
|
184
|
+
| `server upload` | Upload file/project |
|
|
185
|
+
| `server download` | Download file/project |
|
|
186
|
+
| `server list` | List stored items |
|
|
182
187
|
|
|
183
188
|
---
|
|
184
189
|
|
|
@@ -247,6 +252,39 @@ includecpp <command> --help
|
|
|
247
252
|
|
|
248
253
|
---
|
|
249
254
|
|
|
255
|
+
## HomeServer
|
|
256
|
+
|
|
257
|
+
Store and manage your modules, projects and files locally with the HomeServer:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Install and start the server (one-time setup)
|
|
261
|
+
includecpp server install
|
|
262
|
+
|
|
263
|
+
# Manual start/stop
|
|
264
|
+
includecpp server start
|
|
265
|
+
includecpp server stop
|
|
266
|
+
includecpp server status
|
|
267
|
+
|
|
268
|
+
# Upload files or projects
|
|
269
|
+
includecpp server upload mymodule ./include/mymodule.cpp
|
|
270
|
+
includecpp server upload myproject ./myproject --project
|
|
271
|
+
|
|
272
|
+
# List, download, delete
|
|
273
|
+
includecpp server list
|
|
274
|
+
includecpp server download mymodule ./backup/
|
|
275
|
+
includecpp server delete mymodule
|
|
276
|
+
|
|
277
|
+
# Change port (default: 2007)
|
|
278
|
+
includecpp server port 3000
|
|
279
|
+
|
|
280
|
+
# Remove HomeServer completely
|
|
281
|
+
includecpp server deinstall
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The server runs silently in the background and can auto-start with Windows.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
250
288
|
## Experimental Features
|
|
251
289
|
|
|
252
290
|
IncludeCPP also includes experimental features that are still in development:
|
|
@@ -144,6 +144,11 @@ includecpp rebuild --clean
|
|
|
144
144
|
| `rebuild --fast` | Fast incremental build |
|
|
145
145
|
| `rebuild --clean` | Full clean rebuild |
|
|
146
146
|
| `get <name>` | Show module's API |
|
|
147
|
+
| `server start` | Start HomeServer |
|
|
148
|
+
| `server stop` | Stop HomeServer |
|
|
149
|
+
| `server upload` | Upload file/project |
|
|
150
|
+
| `server download` | Download file/project |
|
|
151
|
+
| `server list` | List stored items |
|
|
147
152
|
|
|
148
153
|
---
|
|
149
154
|
|
|
@@ -212,6 +217,39 @@ includecpp <command> --help
|
|
|
212
217
|
|
|
213
218
|
---
|
|
214
219
|
|
|
220
|
+
## HomeServer
|
|
221
|
+
|
|
222
|
+
Store and manage your modules, projects and files locally with the HomeServer:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Install and start the server (one-time setup)
|
|
226
|
+
includecpp server install
|
|
227
|
+
|
|
228
|
+
# Manual start/stop
|
|
229
|
+
includecpp server start
|
|
230
|
+
includecpp server stop
|
|
231
|
+
includecpp server status
|
|
232
|
+
|
|
233
|
+
# Upload files or projects
|
|
234
|
+
includecpp server upload mymodule ./include/mymodule.cpp
|
|
235
|
+
includecpp server upload myproject ./myproject --project
|
|
236
|
+
|
|
237
|
+
# List, download, delete
|
|
238
|
+
includecpp server list
|
|
239
|
+
includecpp server download mymodule ./backup/
|
|
240
|
+
includecpp server delete mymodule
|
|
241
|
+
|
|
242
|
+
# Change port (default: 2007)
|
|
243
|
+
includecpp server port 3000
|
|
244
|
+
|
|
245
|
+
# Remove HomeServer completely
|
|
246
|
+
includecpp server deinstall
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
The server runs silently in the background and can auto-start with Windows.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
215
253
|
## Experimental Features
|
|
216
254
|
|
|
217
255
|
IncludeCPP also includes experimental features that are still in development:
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# IncludeCPP Changelog
|
|
2
2
|
|
|
3
|
+
## v4.6.7 (2026-01-14)
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
- **HomeServer**: Local storage server for modules, projects and files
|
|
7
|
+
- `includecpp server install` - Install and auto-start HomeServer
|
|
8
|
+
- `includecpp server start/stop` - Manual server control
|
|
9
|
+
- `includecpp server status` - Check server status
|
|
10
|
+
- `includecpp server upload/download` - File and project management
|
|
11
|
+
- `includecpp server list` - List stored items
|
|
12
|
+
- `includecpp server delete` - Remove items
|
|
13
|
+
- `includecpp server port` - Change server port
|
|
14
|
+
- `includecpp server deinstall` - Remove HomeServer completely
|
|
15
|
+
- Server runs in background (no terminal window)
|
|
16
|
+
- Auto-start support on Windows
|
|
17
|
+
- SQLite database for metadata storage
|
|
18
|
+
- Default port: 2007
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
3
22
|
## v4.6.6 (2026-01-14)
|
|
4
23
|
|
|
5
24
|
### New Features
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
from .core.cpp_api import CppApi
|
|
2
|
+
from .core import cssl_bridge as CSSL
|
|
3
|
+
import warnings
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
__version__ = "4.6.9"
|
|
9
|
+
__all__ = ["CppApi", "CSSL"]
|
|
10
|
+
|
|
11
|
+
# Module-level cache for C++ modules
|
|
12
|
+
_api_instance = None
|
|
13
|
+
_loaded_modules = {}
|
|
14
|
+
_frozen_api = None # Cached API module for frozen (PyInstaller) mode
|
|
15
|
+
|
|
16
|
+
def _is_frozen():
|
|
17
|
+
"""Check if running in a frozen PyInstaller bundle."""
|
|
18
|
+
return getattr(sys, 'frozen', False)
|
|
19
|
+
|
|
20
|
+
def _get_frozen_api():
|
|
21
|
+
"""Get the bundled API module when running frozen."""
|
|
22
|
+
global _frozen_api
|
|
23
|
+
if _frozen_api is None:
|
|
24
|
+
try:
|
|
25
|
+
import api
|
|
26
|
+
_frozen_api = api
|
|
27
|
+
except ImportError:
|
|
28
|
+
_frozen_api = False # Mark as not available
|
|
29
|
+
return _frozen_api if _frozen_api else None
|
|
30
|
+
|
|
31
|
+
def _get_api():
|
|
32
|
+
"""Get or create singleton CppApi instance.
|
|
33
|
+
|
|
34
|
+
Checks INCLUDECPP_PROJECT env var for project path when running
|
|
35
|
+
from a different directory (e.g., via 'includecpp server run').
|
|
36
|
+
"""
|
|
37
|
+
global _api_instance
|
|
38
|
+
if _api_instance is None:
|
|
39
|
+
# Check for project path from environment (set by 'server run -p')
|
|
40
|
+
project_path = os.environ.get('INCLUDECPP_PROJECT')
|
|
41
|
+
if project_path:
|
|
42
|
+
config_path = Path(project_path) / 'cpp.proj'
|
|
43
|
+
if config_path.exists():
|
|
44
|
+
_api_instance = CppApi(config_path=config_path)
|
|
45
|
+
else:
|
|
46
|
+
_api_instance = CppApi()
|
|
47
|
+
else:
|
|
48
|
+
_api_instance = CppApi()
|
|
49
|
+
return _api_instance
|
|
50
|
+
|
|
51
|
+
def __getattr__(name: str):
|
|
52
|
+
"""Enable: from includecpp import fast_list
|
|
53
|
+
|
|
54
|
+
This hook is called when Python cannot find an attribute in this module.
|
|
55
|
+
It allows dynamic C++ module loading via the import system.
|
|
56
|
+
"""
|
|
57
|
+
if name.startswith('_'):
|
|
58
|
+
raise AttributeError(f"module 'includecpp' has no attribute '{name}'")
|
|
59
|
+
|
|
60
|
+
if name in _loaded_modules:
|
|
61
|
+
return _loaded_modules[name]
|
|
62
|
+
|
|
63
|
+
# In frozen mode (PyInstaller), try to get module from bundled api
|
|
64
|
+
if _is_frozen():
|
|
65
|
+
frozen_api = _get_frozen_api()
|
|
66
|
+
if frozen_api and hasattr(frozen_api, name):
|
|
67
|
+
module = getattr(frozen_api, name)
|
|
68
|
+
_loaded_modules[name] = module
|
|
69
|
+
return module
|
|
70
|
+
# If not found in frozen api, raise helpful error
|
|
71
|
+
raise AttributeError(
|
|
72
|
+
f"Module '{name}' not found in bundled executable. "
|
|
73
|
+
f"Ensure it was included during build with 'includecpp --make-exe'."
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
# Normal mode: use CppApi
|
|
77
|
+
api = _get_api()
|
|
78
|
+
|
|
79
|
+
if name not in api.registry:
|
|
80
|
+
available = list(api.registry.keys())
|
|
81
|
+
raise AttributeError(
|
|
82
|
+
f"Module '{name}' not found. "
|
|
83
|
+
f"Available: {available}. "
|
|
84
|
+
f"Run 'includecpp rebuild' first."
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
if api.need_update(name):
|
|
88
|
+
warnings.warn(
|
|
89
|
+
f"Module '{name}' source files changed. "
|
|
90
|
+
f"Run 'includecpp rebuild' to update.",
|
|
91
|
+
UserWarning
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
module = api.include(name)
|
|
95
|
+
_loaded_modules[name] = module
|
|
96
|
+
return module
|
|
97
|
+
|
|
98
|
+
def __dir__():
|
|
99
|
+
"""List available attributes including C++ modules."""
|
|
100
|
+
base = ['CppApi', 'CSSL', '__version__']
|
|
101
|
+
try:
|
|
102
|
+
api = _get_api()
|
|
103
|
+
return sorted(set(base + list(api.registry.keys())))
|
|
104
|
+
except Exception:
|
|
105
|
+
return base
|