IncludeCPP 3.7.16__tar.gz → 3.7.17__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 (59) hide show
  1. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/PKG-INFO +1 -1
  2. {includecpp-3.7.16 → includecpp-3.7.17}/PKG-INFO +1 -1
  3. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/__init__.py +1 -1
  4. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_builtins.py +59 -2
  5. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_types.py +4 -1
  6. {includecpp-3.7.16 → includecpp-3.7.17}/pyproject.toml +1 -1
  7. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/SOURCES.txt +0 -0
  8. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  9. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/entry_points.txt +0 -0
  10. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/requires.txt +0 -0
  11. {includecpp-3.7.16 → includecpp-3.7.17}/IncludeCPP.egg-info/top_level.txt +0 -0
  12. {includecpp-3.7.16 → includecpp-3.7.17}/LICENSE +0 -0
  13. {includecpp-3.7.16 → includecpp-3.7.17}/MANIFEST.in +0 -0
  14. {includecpp-3.7.16 → includecpp-3.7.17}/README.md +0 -0
  15. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/__init__.pyi +0 -0
  16. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/__main__.py +0 -0
  17. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/cli/__init__.py +0 -0
  18. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/cli/commands.py +0 -0
  19. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/cli/config_parser.py +0 -0
  20. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/__init__.py +0 -0
  21. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/ai_integration.py +0 -0
  22. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/build_manager.py +0 -0
  23. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cpp_api.py +0 -0
  24. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cpp_api.pyi +0 -0
  25. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cppy_converter.py +0 -0
  26. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
  27. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/__init__.py +0 -0
  28. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  29. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_events.py +0 -0
  30. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_modules.py +0 -0
  31. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_parser.py +0 -0
  32. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_runtime.py +0 -0
  33. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl/cssl_syntax.py +0 -0
  34. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl_bridge.py +0 -0
  35. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/cssl_bridge.pyi +0 -0
  36. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/error_catalog.py +0 -0
  37. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/error_formatter.py +0 -0
  38. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/exceptions.py +0 -0
  39. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/path_discovery.py +0 -0
  40. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/project_ui.py +0 -0
  41. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/core/settings_ui.py +0 -0
  42. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/generator/__init__.py +0 -0
  43. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/generator/parser.cpp +0 -0
  44. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/generator/parser.h +0 -0
  45. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/generator/type_resolver.cpp +0 -0
  46. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/generator/type_resolver.h +0 -0
  47. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/py.typed +0 -0
  48. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/templates/cpp.proj.template +0 -0
  49. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/__init__.py +0 -0
  50. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/__init__.py +0 -0
  51. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/images/cssl.png +0 -0
  52. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
  53. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/language-configuration.json +0 -0
  54. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/package.json +0 -0
  55. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  56. {includecpp-3.7.16 → includecpp-3.7.17}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
  57. {includecpp-3.7.16 → includecpp-3.7.17}/requirements.txt +0 -0
  58. {includecpp-3.7.16 → includecpp-3.7.17}/setup.cfg +0 -0
  59. {includecpp-3.7.16 → includecpp-3.7.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.7.16
3
+ Version: 3.7.17
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.7.16
3
+ Version: 3.7.17
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
@@ -2,7 +2,7 @@ from .core.cpp_api import CppApi
2
2
  from .core import cssl_bridge as CSSL
3
3
  import warnings
4
4
 
5
- __version__ = "3.7.16"
5
+ __version__ = "3.7.17"
6
6
  __all__ = ["CppApi", "CSSL"]
7
7
 
8
8
  # Module-level cache for C++ modules
@@ -1044,6 +1044,13 @@ class CSSLBuiltins:
1044
1044
  Usage: instance::getMethods(@module) or instance::getMethods($obj)
1045
1045
  Returns list of method names.
1046
1046
  """
1047
+ from .cssl_types import CSSLInstance
1048
+
1049
+ # Handle CSSL class instances
1050
+ if isinstance(obj, CSSLInstance):
1051
+ return list(obj._class.methods.keys())
1052
+
1053
+ # Handle Python objects
1047
1054
  import inspect
1048
1055
  methods = []
1049
1056
  for name in dir(obj):
@@ -1058,6 +1065,13 @@ class CSSLBuiltins:
1058
1065
  Usage: instance::getClasses(@module)
1059
1066
  Returns list of class names.
1060
1067
  """
1068
+ from .cssl_types import CSSLInstance
1069
+
1070
+ # Handle CSSL class instances - they don't contain nested classes
1071
+ if isinstance(obj, CSSLInstance):
1072
+ return [obj._class.name] # Return the class name itself
1073
+
1074
+ # Handle Python objects
1061
1075
  import inspect
1062
1076
  classes = []
1063
1077
  for name in dir(obj):
@@ -1072,6 +1086,13 @@ class CSSLBuiltins:
1072
1086
  Usage: instance::getVars(@module)
1073
1087
  Returns list of variable names.
1074
1088
  """
1089
+ from .cssl_types import CSSLInstance
1090
+
1091
+ # Handle CSSL class instances
1092
+ if isinstance(obj, CSSLInstance):
1093
+ return list(obj._members.keys())
1094
+
1095
+ # Handle Python objects
1075
1096
  vars_list = []
1076
1097
  for name in dir(obj):
1077
1098
  if not name.startswith('_'):
@@ -1085,12 +1106,23 @@ class CSSLBuiltins:
1085
1106
  Usage: instance::getAll(@module)
1086
1107
  Returns dict with 'methods', 'classes', 'vars' keys.
1087
1108
  """
1088
- import inspect
1109
+ from .cssl_types import CSSLInstance
1110
+
1089
1111
  result = {
1090
1112
  'methods': [],
1091
1113
  'classes': [],
1092
1114
  'vars': []
1093
1115
  }
1116
+
1117
+ # Handle CSSL class instances
1118
+ if isinstance(obj, CSSLInstance):
1119
+ result['methods'] = list(obj._class.methods.keys())
1120
+ result['classes'] = [obj._class.name]
1121
+ result['vars'] = list(obj._members.keys())
1122
+ return result
1123
+
1124
+ # Handle Python objects
1125
+ import inspect
1094
1126
  for name in dir(obj):
1095
1127
  if not name.startswith('_'):
1096
1128
  attr = getattr(obj, name, None)
@@ -1106,21 +1138,46 @@ class CSSLBuiltins:
1106
1138
  """Dynamically call a method on an object.
1107
1139
  Usage: instance::call(@module, 'methodName', arg1, arg2)
1108
1140
  """
1141
+ from .cssl_types import CSSLInstance
1142
+
1143
+ # Handle CSSL class instances
1144
+ if isinstance(obj, CSSLInstance):
1145
+ if obj.has_method(method_name):
1146
+ # Need runtime to call the method
1147
+ if self.runtime:
1148
+ return self.runtime._call_method(obj, obj.get_method(method_name), list(args), kwargs or {})
1149
+ raise RuntimeError(f"Method '{method_name}' not found on CSSL instance")
1150
+
1151
+ # Handle Python objects
1109
1152
  method = getattr(obj, method_name, None)
1110
1153
  if method and callable(method):
1111
1154
  return method(*args, **kwargs)
1112
1155
  raise RuntimeError(f"Method '{method_name}' not found on object")
1113
1156
 
1114
1157
  def builtin_instance_has(self, obj: Any, name: str) -> bool:
1115
- """Check if object has an attribute.
1158
+ """Check if object has an attribute or method.
1116
1159
  Usage: instance::has(@module, 'methodName')
1117
1160
  """
1161
+ from .cssl_types import CSSLInstance
1162
+
1163
+ # Handle CSSL class instances
1164
+ if isinstance(obj, CSSLInstance):
1165
+ return obj.has_member(name) or obj.has_method(name)
1166
+
1167
+ # Handle Python objects
1118
1168
  return hasattr(obj, name)
1119
1169
 
1120
1170
  def builtin_instance_type(self, obj: Any) -> str:
1121
1171
  """Get the type name of an object.
1122
1172
  Usage: instance::type(@module)
1123
1173
  """
1174
+ from .cssl_types import CSSLInstance
1175
+
1176
+ # Handle CSSL class instances
1177
+ if isinstance(obj, CSSLInstance):
1178
+ return obj._class.name
1179
+
1180
+ # Handle Python objects
1124
1181
  return type(obj).__name__
1125
1182
 
1126
1183
  def builtin_isavailable(self, name_or_obj: Any) -> bool:
@@ -1499,7 +1499,10 @@ class CSSLInstance:
1499
1499
  object.__setattr__(self, name, value)
1500
1500
 
1501
1501
  def __repr__(self):
1502
- return f"<CSSLInstance of '{self._class.name}'>"
1502
+ return f"<{self._class.name} instance at 0x{id(self):x}>"
1503
+
1504
+ def __str__(self):
1505
+ return f"<{self._class.name} instance at 0x{id(self):x}>"
1503
1506
 
1504
1507
 
1505
1508
  __all__ = [
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "IncludeCPP"
7
- version = "3.7.16"
7
+ version = "3.7.17"
8
8
  description = "Professional C++ Python bindings with type-generic templates, pystubs and native threading"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes
File without changes
File without changes