IncludeCPP 4.6.4__tar.gz → 4.6.8__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 (77) hide show
  1. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/PKG-INFO +39 -1
  2. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/SOURCES.txt +2 -0
  3. {includecpp-4.6.4 → includecpp-4.6.8}/PKG-INFO +39 -1
  4. {includecpp-4.6.4 → includecpp-4.6.8}/README.md +38 -0
  5. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/CHANGELOG.md +38 -0
  6. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/__init__.py +18 -3
  7. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/__init__.pyi +1 -1
  8. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/cli/commands.py +914 -36
  9. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/build_manager.py +4 -2
  10. includecpp-4.6.8/includecpp/core/cpp_api_extensions.pyi +165 -0
  11. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_builtins.py +325 -0
  12. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_optimizer.py +12 -1
  13. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_parser.py +12 -0
  14. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_runtime.py +15 -2
  15. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_syntax.py +29 -1
  16. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl_bridge.py +370 -1
  17. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/error_catalog.py +2 -5
  18. includecpp-4.6.8/includecpp/core/homeserver.py +860 -0
  19. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/generator/parser.cpp +203 -39
  20. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/generator/parser.h +15 -1
  21. {includecpp-4.6.4 → includecpp-4.6.8}/pyproject.toml +1 -1
  22. {includecpp-4.6.4 → includecpp-4.6.8}/setup.py +1 -1
  23. includecpp-4.6.4/includecpp/core/cpp_api_extensions.pyi +0 -354
  24. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  25. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/entry_points.txt +0 -0
  26. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/requires.txt +0 -0
  27. {includecpp-4.6.4 → includecpp-4.6.8}/IncludeCPP.egg-info/top_level.txt +0 -0
  28. {includecpp-4.6.4 → includecpp-4.6.8}/LICENSE +0 -0
  29. {includecpp-4.6.4 → includecpp-4.6.8}/MANIFEST.in +0 -0
  30. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/DOCUMENTATION.md +0 -0
  31. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/__main__.py +0 -0
  32. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/cli/__init__.py +0 -0
  33. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/cli/config_parser.py +0 -0
  34. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/__init__.py +0 -0
  35. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/ai_integration.py +0 -0
  36. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cpp_api.py +0 -0
  37. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cpp_api.pyi +0 -0
  38. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cppy_converter.py +0 -0
  39. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
  40. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/CSSL_DOCUMENTATION_NEW.md +0 -0
  41. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/__init__.py +0 -0
  42. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/build/api.pyd +0 -0
  43. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/build/cssl_core.pyi +0 -0
  44. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/build/libgcc_s_seh-1.dll +0 -0
  45. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/build/libstdc++-6.dll +0 -0
  46. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/build/libwinpthread-1.dll +0 -0
  47. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/cssl_core.cp +0 -0
  48. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cpp/cssl_lexer.hpp +0 -0
  49. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  50. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_compiler.py +0 -0
  51. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_events.py +0 -0
  52. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_languages.py +0 -0
  53. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_modules.py +0 -0
  54. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl/cssl_types.py +0 -0
  55. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/cssl_bridge.pyi +0 -0
  56. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/error_formatter.py +0 -0
  57. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/exceptions.py +0 -0
  58. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/path_discovery.py +0 -0
  59. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/project_ui.py +0 -0
  60. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/core/settings_ui.py +0 -0
  61. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/generator/__init__.py +0 -0
  62. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/generator/type_resolver.cpp +0 -0
  63. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/generator/type_resolver.h +0 -0
  64. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/py.typed +0 -0
  65. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/templates/cpp.proj.template +0 -0
  66. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/__init__.py +0 -0
  67. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/__init__.py +0 -0
  68. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/extension.js +0 -0
  69. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/images/cssl.png +0 -0
  70. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
  71. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/language-configuration.json +0 -0
  72. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/package.json +0 -0
  73. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  74. {includecpp-4.6.4 → includecpp-4.6.8}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
  75. {includecpp-4.6.4 → includecpp-4.6.8}/requirements.txt +0 -0
  76. {includecpp-4.6.4 → includecpp-4.6.8}/setup.cfg +0 -0
  77. {includecpp-4.6.4 → includecpp-4.6.8}/tests/test_multilang.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 4.6.4
3
+ Version: 4.6.8
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.4
3
+ Version: 4.6.8
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,43 @@
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
+
22
+ ## v4.6.6 (2026-01-14)
23
+
24
+ ### New Features
25
+ - **ENUM support**: Expose C++ enums to Python via `ENUM(EnumName) CLASS { values... }` syntax
26
+ - **Multiple SOURCE support**: `SOURCE(file1) && SOURCE(file2)` in .cp files
27
+ - **FIELD_ARRAY support**: C-style arrays now properly bound as read-only `bytes` properties
28
+ - Automatic detection of array fields in plugin command
29
+
30
+ ### Bug Fixes
31
+ - Fixed signed/unsigned comparison warning from pybind11 enum bindings
32
+ - Removed SIGNED_UNSIGNED from error catalog (was a warning, not error)
33
+ - Fixed array fields causing `invalid array assignment` error
34
+ - Version display now shows X.X format in build output
35
+
36
+ ### Breaking Changes
37
+ - Array fields in structs are now read-only (accessible as `bytes`)
38
+
39
+ ---
40
+
3
41
  ## v4.3.2 (2026-01-08)
4
42
 
5
43
  ### New Features
@@ -1,8 +1,10 @@
1
1
  from .core.cpp_api import CppApi
2
2
  from .core import cssl_bridge as CSSL
3
3
  import warnings
4
+ import os
5
+ from pathlib import Path
4
6
 
5
- __version__ = "4.6.4"
7
+ __version__ = "4.6.8"
6
8
  __all__ = ["CppApi", "CSSL"]
7
9
 
8
10
  # Module-level cache for C++ modules
@@ -10,10 +12,23 @@ _api_instance = None
10
12
  _loaded_modules = {}
11
13
 
12
14
  def _get_api():
13
- """Get or create singleton CppApi instance."""
15
+ """Get or create singleton CppApi instance.
16
+
17
+ Checks INCLUDECPP_PROJECT env var for project path when running
18
+ from a different directory (e.g., via 'includecpp server run').
19
+ """
14
20
  global _api_instance
15
21
  if _api_instance is None:
16
- _api_instance = CppApi()
22
+ # Check for project path from environment (set by 'server run -p')
23
+ project_path = os.environ.get('INCLUDECPP_PROJECT')
24
+ if project_path:
25
+ config_path = Path(project_path) / 'cpp.proj'
26
+ if config_path.exists():
27
+ _api_instance = CppApi(config_path=config_path)
28
+ else:
29
+ _api_instance = CppApi()
30
+ else:
31
+ _api_instance = CppApi()
17
32
  return _api_instance
18
33
 
19
34
  def __getattr__(name: str):
@@ -147,7 +147,7 @@ __version__: str
147
147
  # Dynamic module access via: from includecpp import <module_name>
148
148
  # Auto-generated module declarations
149
149
  # These allow: from includecpp import <module_name>
150
- cssl_core: Cssl_coreModuleWrapper
150
+ stepcompiler: StepcompilerModuleWrapper
151
151
 
152
152
  def __dir__() -> List[str]:
153
153
  """List available modules including dynamically loaded C++ modules."""