IncludeCPP 3.4.21__py3-none-any.whl → 3.5.0__py3-none-any.whl

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/__init__.py CHANGED
@@ -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.4.21"
5
+ __version__ = "3.5.0"
6
6
  __all__ = ["CppApi", "CSSL"]
7
7
 
8
8
  # Module-level cache for C++ modules
@@ -7139,20 +7139,21 @@ def cppy_types():
7139
7139
  # EXEC - Interactive Code Execution
7140
7140
  # ============================================================================
7141
7141
 
7142
- @cli.command()
7143
- @click.argument('lang', type=click.Choice(['py', 'cpp', 'python', 'c++']))
7142
+ @cli.command(name='exec')
7143
+ @click.argument('lang', type=click.Choice(['py', 'cpp', 'python', 'c++', 'cssl']))
7144
7144
  @click.argument('path', required=False, type=click.Path())
7145
7145
  @click.option('--all', 'import_all', is_flag=True, help='Import all available modules')
7146
- def exec(lang, path, import_all):
7146
+ def exec_repl(lang, path, import_all):
7147
7147
  """Execute code interactively for quick testing.
7148
7148
 
7149
- Run Python or C++ code snippets without creating files.
7149
+ Run Python, C++ or CSSL code snippets without creating files.
7150
7150
  Perfect for testing your IncludeCPP modules quickly.
7151
7151
 
7152
7152
  \b
7153
7153
  Usage:
7154
7154
  includecpp exec py # Interactive Python
7155
7155
  includecpp exec cpp # Interactive C++
7156
+ includecpp exec cssl # Interactive CSSL
7156
7157
  includecpp exec py mymodule # Auto-import mymodule
7157
7158
  includecpp exec py plugins/x.cp # Auto-import from plugin
7158
7159
  includecpp exec py --all # Import all modules
@@ -7178,7 +7179,8 @@ def exec(lang, path, import_all):
7178
7179
 
7179
7180
  # Normalize language
7180
7181
  is_python = lang in ('py', 'python')
7181
- lang_name = 'Python' if is_python else 'C++'
7182
+ is_cssl = lang == 'cssl'
7183
+ lang_name = 'Python' if is_python else ('CSSL' if is_cssl else 'C++')
7182
7184
 
7183
7185
  # Build imports/includes
7184
7186
  imports = []
@@ -7286,6 +7288,7 @@ def exec(lang, path, import_all):
7286
7288
 
7287
7289
  if is_python:
7288
7290
  # Execute Python code
7291
+ import builtins
7289
7292
  full_code = '\n'.join(code_lines)
7290
7293
  try:
7291
7294
  # Use exec with captured output
@@ -7299,7 +7302,7 @@ def exec(lang, path, import_all):
7299
7302
  exec_globals = {'__name__': '__main__'}
7300
7303
 
7301
7304
  with redirect_stdout(stdout_capture), redirect_stderr(stderr_capture):
7302
- exec(full_code, exec_globals)
7305
+ builtins.exec(full_code, exec_globals)
7303
7306
 
7304
7307
  stdout_val = stdout_capture.getvalue()
7305
7308
  stderr_val = stderr_capture.getvalue()
@@ -7315,6 +7318,29 @@ def exec(lang, path, import_all):
7315
7318
  except Exception as e:
7316
7319
  click.secho(f"Error: {e}", fg='red')
7317
7320
 
7321
+ elif is_cssl:
7322
+ # Execute CSSL code
7323
+ full_code = '\n'.join(lines)
7324
+ try:
7325
+ from ..core.cssl_bridge import CsslLang
7326
+ cssl_lang = CsslLang()
7327
+ result = cssl_lang.exec(full_code)
7328
+
7329
+ # Print any output from the execution
7330
+ output = cssl_lang.get_output()
7331
+ if output:
7332
+ for line in output:
7333
+ click.echo(line)
7334
+
7335
+ if result is not None:
7336
+ click.echo(result)
7337
+
7338
+ if not output and result is None:
7339
+ click.secho("(no output)", fg='bright_black')
7340
+
7341
+ except Exception as e:
7342
+ click.secho(f"Error: {e}", fg='red')
7343
+
7318
7344
  else:
7319
7345
  # Execute C++ code
7320
7346
  # Build a complete C++ program
@@ -7631,6 +7657,74 @@ void error(string message) {{
7631
7657
  click.echo(f" CSSL.exec('{cssl_file}')")
7632
7658
 
7633
7659
 
7660
+ @cssl.command(name='vscode')
7661
+ def cssl_vscode():
7662
+ """Install VSCode extension for CSSL syntax highlighting."""
7663
+ from pathlib import Path as PathLib
7664
+ import shutil
7665
+ import os
7666
+
7667
+ # Find VSCode extensions directory
7668
+ if os.name == 'nt': # Windows
7669
+ vscode_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode' / 'extensions'
7670
+ else: # Linux/Mac
7671
+ vscode_ext_dir = PathLib.home() / '.vscode' / 'extensions'
7672
+
7673
+ if not vscode_ext_dir.exists():
7674
+ # Try VSCode Insiders
7675
+ if os.name == 'nt':
7676
+ vscode_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode-insiders' / 'extensions'
7677
+ else:
7678
+ vscode_ext_dir = PathLib.home() / '.vscode-insiders' / 'extensions'
7679
+
7680
+ if not vscode_ext_dir.exists():
7681
+ click.secho("VSCode extensions directory not found.", fg='red')
7682
+ click.echo("Make sure VSCode is installed.")
7683
+ click.echo()
7684
+ click.echo("Expected locations:")
7685
+ if os.name == 'nt':
7686
+ click.echo(f" %USERPROFILE%\\.vscode\\extensions")
7687
+ else:
7688
+ click.echo(f" ~/.vscode/extensions")
7689
+ return
7690
+
7691
+ # Find our bundled extension
7692
+ package_dir = PathLib(__file__).parent.parent
7693
+ source_ext_dir = package_dir / 'vscode' / 'cssl'
7694
+
7695
+ if not source_ext_dir.exists():
7696
+ click.secho("CSSL extension files not found in package.", fg='red')
7697
+ return
7698
+
7699
+ # Install extension
7700
+ target_dir = vscode_ext_dir / 'includecpp.cssl-1.0.0'
7701
+
7702
+ try:
7703
+ if target_dir.exists():
7704
+ shutil.rmtree(target_dir)
7705
+
7706
+ shutil.copytree(source_ext_dir, target_dir)
7707
+
7708
+ click.secho("CSSL VSCode extension installed!", fg='green', bold=True)
7709
+ click.echo()
7710
+ click.echo(f"Installed to: {target_dir}")
7711
+ click.echo()
7712
+ click.echo("Features:")
7713
+ click.echo(" - Syntax highlighting for .cssl, .cssl-pl, .cssl-mod files")
7714
+ click.echo(" - BruteInjection operators: <==, ==>, <<==, +<==, etc.")
7715
+ click.echo(" - Type highlighting: int, string, stack<T>, datastruct<T>")
7716
+ click.echo(" - Global references: @Name, r@Name, s@Name")
7717
+ click.echo(" - Shared objects: $Name")
7718
+ click.echo(" - Filter helpers: string::contains, json::key, etc.")
7719
+ click.echo()
7720
+ click.secho("Restart VSCode to activate the extension.", fg='yellow')
7721
+
7722
+ except PermissionError:
7723
+ click.secho("Permission denied. Try running as administrator.", fg='red')
7724
+ except Exception as e:
7725
+ click.secho(f"Installation failed: {e}", fg='red')
7726
+
7727
+
7634
7728
  # Register hidden cssl command group
7635
7729
  cli.add_command(cssl)
7636
7730
 
@@ -145,6 +145,8 @@ class CSSLRuntime:
145
145
  self._running = False
146
146
  self._exit_code = 0
147
147
  self._output_callback = output_callback # Callback for console output (text, level)
148
+ self._source_lines: List[str] = [] # Store source code lines for error reporting
149
+ self._current_file: str = "<code>" # Current file being executed
148
150
 
149
151
  self._setup_modules()
150
152
  self._setup_builtins()
@@ -230,23 +232,68 @@ class CSSLRuntime:
230
232
 
231
233
  return obj
232
234
 
235
+ def _format_error(self, line: int, message: str, hint: str = None) -> CSSLRuntimeError:
236
+ """Format a detailed error with source context"""
237
+ error_parts = []
238
+
239
+ # Main error header
240
+ if line and line > 0:
241
+ error_parts.append(f"Error at line {line} in {self._current_file}:")
242
+ else:
243
+ error_parts.append(f"Error in {self._current_file}:")
244
+
245
+ # Extract message without existing line info
246
+ clean_msg = message
247
+ if "at line" in clean_msg.lower():
248
+ # Remove redundant line info from message
249
+ clean_msg = clean_msg.split(":", 1)[-1].strip() if ":" in clean_msg else clean_msg
250
+
251
+ error_parts.append(f" {clean_msg}")
252
+
253
+ # Show source context (3 lines before and after)
254
+ if self._source_lines and line and line > 0:
255
+ error_parts.append("")
256
+ start = max(0, line - 3)
257
+ end = min(len(self._source_lines), line + 2)
258
+
259
+ for i in range(start, end):
260
+ line_num = i + 1
261
+ source_line = self._source_lines[i] if i < len(self._source_lines) else ""
262
+ marker = ">>>" if line_num == line else " "
263
+ error_parts.append(f" {marker} {line_num:4d} | {source_line}")
264
+
265
+ # Add hint
266
+ if hint:
267
+ error_parts.append("")
268
+ error_parts.append(f" Hint: {hint}")
269
+
270
+ return CSSLRuntimeError("\n".join(error_parts), line)
271
+
272
+ def _get_source_line(self, line: int) -> str:
273
+ """Get source line by number (1-indexed)"""
274
+ if self._source_lines and 0 < line <= len(self._source_lines):
275
+ return self._source_lines[line - 1]
276
+ return ""
277
+
233
278
  def execute(self, source: str) -> Any:
234
279
  """Execute CSSL service source code"""
280
+ self._source_lines = source.splitlines()
235
281
  try:
236
282
  ast = parse_cssl(source)
237
283
  return self._execute_node(ast)
238
284
  except CSSLSyntaxError as e:
239
- raise CSSLRuntimeError(str(e), e.line)
285
+ raise self._format_error(e.line, str(e))
240
286
  except SyntaxError as e:
241
287
  raise CSSLRuntimeError(f"Syntax error: {e}")
242
288
 
243
289
  def execute_program(self, source: str) -> Any:
244
290
  """Execute standalone CSSL program (no service wrapper)"""
291
+ self._source_lines = source.splitlines()
245
292
  try:
246
293
  ast = parse_cssl_program(source)
247
294
  return self._exec_program(ast)
248
295
  except CSSLSyntaxError as e:
249
- raise CSSLRuntimeError(str(e), e.line)
296
+ raise self._format_error(e.line, str(e))
250
297
  except SyntaxError as e:
251
298
  raise CSSLRuntimeError(f"Syntax error: {e}")
252
299
 
@@ -256,12 +303,16 @@ class CSSLRuntime:
256
303
 
257
304
  def execute_file(self, filepath: str) -> Any:
258
305
  """Execute a CSSL service file"""
306
+ import os
307
+ self._current_file = os.path.basename(filepath)
259
308
  with open(filepath, 'r', encoding='utf-8') as f:
260
309
  source = f.read()
261
310
  return self.execute(source)
262
311
 
263
312
  def execute_program_file(self, filepath: str) -> Any:
264
313
  """Execute a standalone CSSL program file"""
314
+ import os
315
+ self._current_file = os.path.basename(filepath)
265
316
  with open(filepath, 'r', encoding='utf-8') as f:
266
317
  source = f.read()
267
318
  return self.execute_program(source)
@@ -1026,10 +1077,33 @@ class CSSLRuntime:
1026
1077
  # === STRING HELPERS ===
1027
1078
  if filter_type == 'string':
1028
1079
  if helper == 'where':
1080
+ # Exact match
1081
+ if isinstance(result, str):
1082
+ result = result if result == filter_val else None
1083
+ elif isinstance(result, list):
1084
+ result = [item for item in result if isinstance(item, str) and item == filter_val]
1085
+ elif helper == 'contains':
1086
+ # Contains substring
1029
1087
  if isinstance(result, str):
1030
1088
  result = result if filter_val in result else None
1031
1089
  elif isinstance(result, list):
1032
1090
  result = [item for item in result if isinstance(item, str) and filter_val in item]
1091
+ elif helper == 'not':
1092
+ # Exclude matching
1093
+ if isinstance(result, str):
1094
+ result = result if result != filter_val else None
1095
+ elif isinstance(result, list):
1096
+ result = [item for item in result if not (isinstance(item, str) and item == filter_val)]
1097
+ elif helper == 'startsWith':
1098
+ if isinstance(result, str):
1099
+ result = result if result.startswith(filter_val) else None
1100
+ elif isinstance(result, list):
1101
+ result = [item for item in result if isinstance(item, str) and item.startswith(filter_val)]
1102
+ elif helper == 'endsWith':
1103
+ if isinstance(result, str):
1104
+ result = result if result.endswith(filter_val) else None
1105
+ elif isinstance(result, list):
1106
+ result = [item for item in result if isinstance(item, str) and item.endswith(filter_val)]
1033
1107
  elif helper in ('length', 'lenght'): # Support common typo
1034
1108
  if isinstance(result, str):
1035
1109
  result = result if len(result) == filter_val else None
@@ -289,7 +289,12 @@ class CsslLang:
289
289
 
290
290
  return result
291
291
  except Exception as e:
292
- raise RuntimeError(f"CSSL Error: {e}") from e
292
+ # Format error message nicely
293
+ error_msg = str(e)
294
+ # Don't double-wrap error messages
295
+ if error_msg.startswith("CSSL Error:"):
296
+ raise RuntimeError(error_msg) from e
297
+ raise RuntimeError(f"CSSL Error:\n{error_msg}") from e
293
298
 
294
299
  def T_exec(self, path_or_code: str, *args, callback: Optional[Callable[[Any], None]] = None) -> threading.Thread:
295
300
  """
@@ -0,0 +1 @@
1
+ # VSCode extension resources for CSSL
@@ -0,0 +1 @@
1
+ # CSSL VSCode extension files
@@ -0,0 +1,38 @@
1
+ {
2
+ "comments": {
3
+ "lineComment": "//",
4
+ "blockComment": ["/*", "*/"]
5
+ },
6
+ "brackets": [
7
+ ["{", "}"],
8
+ ["[", "]"],
9
+ ["(", ")"],
10
+ ["<", ">"]
11
+ ],
12
+ "autoClosingPairs": [
13
+ { "open": "{", "close": "}" },
14
+ { "open": "[", "close": "]" },
15
+ { "open": "(", "close": ")" },
16
+ { "open": "<", "close": ">" },
17
+ { "open": "\"", "close": "\"", "notIn": ["string"] },
18
+ { "open": "'", "close": "'", "notIn": ["string", "comment"] }
19
+ ],
20
+ "surroundingPairs": [
21
+ ["{", "}"],
22
+ ["[", "]"],
23
+ ["(", ")"],
24
+ ["<", ">"],
25
+ ["\"", "\""],
26
+ ["'", "'"]
27
+ ],
28
+ "folding": {
29
+ "markers": {
30
+ "start": "^\\s*//\\s*#?region\\b",
31
+ "end": "^\\s*//\\s*#?endregion\\b"
32
+ }
33
+ },
34
+ "indentationRules": {
35
+ "increaseIndentPattern": "^.*\\{[^}]*$",
36
+ "decreaseIndentPattern": "^\\s*\\}"
37
+ }
38
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "cssl",
3
+ "displayName": "CSSL - CSO Service Script Language",
4
+ "description": "Syntax highlighting and language support for CSSL scripts",
5
+ "version": "1.0.0",
6
+ "publisher": "IncludeCPP",
7
+ "engines": {
8
+ "vscode": "^1.60.0"
9
+ },
10
+ "categories": [
11
+ "Programming Languages"
12
+ ],
13
+ "contributes": {
14
+ "languages": [
15
+ {
16
+ "id": "cssl",
17
+ "aliases": ["CSSL", "cssl", "CSO Service Script"],
18
+ "extensions": [".cssl", ".cssl-pl", ".cssl-mod"],
19
+ "configuration": "./language-configuration.json"
20
+ }
21
+ ],
22
+ "grammars": [
23
+ {
24
+ "language": "cssl",
25
+ "scopeName": "source.cssl",
26
+ "path": "./syntaxes/cssl.tmLanguage.json"
27
+ }
28
+ ]
29
+ }
30
+ }
@@ -0,0 +1,221 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3
+ "name": "CSSL",
4
+ "scopeName": "source.cssl",
5
+ "patterns": [
6
+ { "include": "#comments" },
7
+ { "include": "#strings" },
8
+ { "include": "#numbers" },
9
+ { "include": "#keywords" },
10
+ { "include": "#types" },
11
+ { "include": "#function-modifiers" },
12
+ { "include": "#injection-operators" },
13
+ { "include": "#filter-helpers" },
14
+ { "include": "#global-references" },
15
+ { "include": "#shared-references" },
16
+ { "include": "#module-references" },
17
+ { "include": "#function-calls" },
18
+ { "include": "#operators" },
19
+ { "include": "#constants" }
20
+ ],
21
+ "repository": {
22
+ "comments": {
23
+ "patterns": [
24
+ {
25
+ "name": "comment.line.double-slash.cssl",
26
+ "match": "//.*$"
27
+ },
28
+ {
29
+ "name": "comment.block.cssl",
30
+ "begin": "/\\*",
31
+ "end": "\\*/"
32
+ }
33
+ ]
34
+ },
35
+ "strings": {
36
+ "patterns": [
37
+ {
38
+ "name": "string.quoted.double.cssl",
39
+ "begin": "\"",
40
+ "end": "\"",
41
+ "patterns": [
42
+ {
43
+ "name": "constant.character.escape.cssl",
44
+ "match": "\\\\."
45
+ },
46
+ {
47
+ "name": "variable.other.interpolated.cssl",
48
+ "match": "<[a-zA-Z_][a-zA-Z0-9_]*>"
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "name": "string.quoted.single.cssl",
54
+ "begin": "'",
55
+ "end": "'",
56
+ "patterns": [
57
+ {
58
+ "name": "constant.character.escape.cssl",
59
+ "match": "\\\\."
60
+ }
61
+ ]
62
+ }
63
+ ]
64
+ },
65
+ "numbers": {
66
+ "patterns": [
67
+ {
68
+ "name": "constant.numeric.float.cssl",
69
+ "match": "\\b[0-9]+\\.[0-9]+\\b"
70
+ },
71
+ {
72
+ "name": "constant.numeric.integer.cssl",
73
+ "match": "\\b[0-9]+\\b"
74
+ }
75
+ ]
76
+ },
77
+ "keywords": {
78
+ "patterns": [
79
+ {
80
+ "name": "keyword.control.cssl",
81
+ "match": "\\b(if|else|elif|while|for|foreach|in|range|switch|case|default|break|continue|return|try|catch|finally|throw)\\b"
82
+ },
83
+ {
84
+ "name": "keyword.other.cssl",
85
+ "match": "\\b(service-init|service-run|service-include|struct|structure|define|main|package|package-includes|exec|as|global|include|get|payload)\\b"
86
+ },
87
+ {
88
+ "name": "keyword.operator.logical.cssl",
89
+ "match": "\\b(and|or|not)\\b"
90
+ },
91
+ {
92
+ "name": "keyword.other.async.cssl",
93
+ "match": "\\b(start|stop|wait_for|on_event|emit_event|await)\\b"
94
+ }
95
+ ]
96
+ },
97
+ "types": {
98
+ "patterns": [
99
+ {
100
+ "name": "storage.type.primitive.cssl",
101
+ "match": "\\b(int|string|float|bool|void|json|dynamic)\\b"
102
+ },
103
+ {
104
+ "name": "storage.type.container.cssl",
105
+ "match": "\\b(array|vector|stack|datastruct|dataspace|shuffled|iterator|combo|openquote)\\b"
106
+ },
107
+ {
108
+ "name": "storage.type.generic.cssl",
109
+ "match": "\\b(array|vector|stack|datastruct|dataspace|shuffled|iterator|combo|openquote)\\s*<",
110
+ "captures": {
111
+ "1": { "name": "storage.type.container.cssl" }
112
+ }
113
+ }
114
+ ]
115
+ },
116
+ "function-modifiers": {
117
+ "patterns": [
118
+ {
119
+ "name": "storage.modifier.cssl",
120
+ "match": "\\b(undefined|open|closed|private|virtual|meta|super|sqlbased)\\b"
121
+ }
122
+ ]
123
+ },
124
+ "injection-operators": {
125
+ "patterns": [
126
+ {
127
+ "name": "keyword.operator.injection.cssl",
128
+ "match": "(\\+<<==|<<==|-<<==|==>>\\+|==>>|-==>>)"
129
+ },
130
+ {
131
+ "name": "keyword.operator.brute-injection.cssl",
132
+ "match": "(\\+<==|<==|-<==|==>\\+|==>|-==>)"
133
+ }
134
+ ]
135
+ },
136
+ "filter-helpers": {
137
+ "patterns": [
138
+ {
139
+ "name": "support.function.filter.cssl",
140
+ "match": "\\b(string|integer|json|array|vector|combo|dynamic|sql)::(where|contains|not|startsWith|endsWith|length|lenght|key|value|index|filterdb|blocked|data)\\b"
141
+ }
142
+ ]
143
+ },
144
+ "global-references": {
145
+ "patterns": [
146
+ {
147
+ "name": "variable.other.global.cssl",
148
+ "match": "@[a-zA-Z_][a-zA-Z0-9_]*"
149
+ },
150
+ {
151
+ "name": "variable.other.global-decl.cssl",
152
+ "match": "r@[a-zA-Z_][a-zA-Z0-9_]*"
153
+ },
154
+ {
155
+ "name": "variable.other.self-ref.cssl",
156
+ "match": "s@[a-zA-Z_][a-zA-Z0-9_]*"
157
+ }
158
+ ]
159
+ },
160
+ "shared-references": {
161
+ "patterns": [
162
+ {
163
+ "name": "variable.other.shared.cssl",
164
+ "match": "\\$[a-zA-Z_][a-zA-Z0-9_]*"
165
+ }
166
+ ]
167
+ },
168
+ "module-references": {
169
+ "patterns": [
170
+ {
171
+ "name": "entity.name.type.module.cssl",
172
+ "match": "@[A-Z][a-zA-Z0-9_]*"
173
+ }
174
+ ]
175
+ },
176
+ "function-calls": {
177
+ "patterns": [
178
+ {
179
+ "name": "entity.name.function.cssl",
180
+ "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=\\()"
181
+ },
182
+ {
183
+ "name": "support.function.builtin.cssl",
184
+ "match": "\\b(printl|print|println|len|type|toInt|toFloat|toString|toBool|range|input|exit|sleep|OpenFind|parameter\\.get|parameter\\.return)\\b"
185
+ }
186
+ ]
187
+ },
188
+ "operators": {
189
+ "patterns": [
190
+ {
191
+ "name": "keyword.operator.comparison.cssl",
192
+ "match": "(==|!=|<=|>=|<|>)"
193
+ },
194
+ {
195
+ "name": "keyword.operator.arithmetic.cssl",
196
+ "match": "(\\+\\+|--|\\+=|-=|\\+|-|\\*|/|%)"
197
+ },
198
+ {
199
+ "name": "keyword.operator.logical.cssl",
200
+ "match": "(&&|\\|\\||!)"
201
+ },
202
+ {
203
+ "name": "keyword.operator.assignment.cssl",
204
+ "match": "="
205
+ }
206
+ ]
207
+ },
208
+ "constants": {
209
+ "patterns": [
210
+ {
211
+ "name": "constant.language.boolean.cssl",
212
+ "match": "\\b(true|false|True|False)\\b"
213
+ },
214
+ {
215
+ "name": "constant.language.null.cssl",
216
+ "match": "\\b(null|None)\\b"
217
+ }
218
+ ]
219
+ }
220
+ }
221
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.4.21
3
+ Version: 3.5.0
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,9 +1,9 @@
1
- includecpp/__init__.py,sha256=LEEUAR8w2v0NHGgMiOX2nK47f4KlzUvZCq7mAIa-8bU,1673
1
+ includecpp/__init__.py,sha256=Lg4ApbFSBpQVYm5SgU_irWBxdxpWkOJOmWYy9xG_wiQ,1672
2
2
  includecpp/__init__.pyi,sha256=c4gZW7_XQXcp6FBcTi5W7zXTmCtbgQhlC4cyeVqtRRM,7253
3
3
  includecpp/__main__.py,sha256=d6QK0PkvUe1ENofpmHRAg3bwNbZr8PiRscfI3-WRfVg,72
4
4
  includecpp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  includecpp/cli/__init__.py,sha256=Yda-4a5QJb_tKu35YQNfc5lu-LewTsM5abqNNkzS47M,113
6
- includecpp/cli/commands.py,sha256=_KnxbpgUUdqdzEYGeHRSafXF0o9qt8JCfnM9l10gbh0,321214
6
+ includecpp/cli/commands.py,sha256=RsG1ixzxSnnHHb1a42x_4hBapV1i360AIK9swQVZBRQ,324721
7
7
  includecpp/cli/config_parser.py,sha256=KveeYUg2TA9sC5hKVzYYfgdNm2WfLG5y7_yxgBWn9yM,4886
8
8
  includecpp/core/__init__.py,sha256=L1bT6oikTjdto-6Px7DpjePtM07ymo3Bnov1saZzsGg,390
9
9
  includecpp/core/ai_integration.py,sha256=PW6yFDqdXjfchpfKTKg59AOLhLry9kqJEGf_65BztrY,87603
@@ -11,7 +11,7 @@ includecpp/core/build_manager.py,sha256=uLuYsuiC6OsOGaU5wAJfl4M3IbdnIDgogfMd8VsV
11
11
  includecpp/core/cpp_api.py,sha256=8y_B1L18rhSBZln654xPPzqO2PdvAlLpJrfEjzl7Wnc,14039
12
12
  includecpp/core/cpp_api.pyi,sha256=IEiaKqaPItnn6rjL7aK32D3o9FYmRYCgCZbqiQNUwdc,3496
13
13
  includecpp/core/cppy_converter.py,sha256=b7yqu-aoa0wShNY0GvQT67TnNhYya4GyYmG7oDdqDV4,156686
14
- includecpp/core/cssl_bridge.py,sha256=1l4okSND3EAtdf4M_QVq3pOWfiPtE_Ei30LMGORRvEQ,24157
14
+ includecpp/core/cssl_bridge.py,sha256=ZrFXkJmu0ikZu0CeNuxjKyaarzpb1O6Ph3ynf8ZomTE,24396
15
15
  includecpp/core/cssl_bridge.pyi,sha256=Q4zjc2Kf2wPJPnfgHS-koPEon3Kty6o3mCvp9E5Q8tE,7635
16
16
  includecpp/core/error_catalog.py,sha256=VS3N-P0yEbiHimsDPtcaYfrUb7mXQ-7pqw18PtSngaU,33869
17
17
  includecpp/core/error_formatter.py,sha256=7-MzRIT8cM4uODxy0IZ9pu7pqR4Pq2I8Si0QQZHjmVc,39239
@@ -25,7 +25,7 @@ includecpp/core/cssl/cssl_builtins.py,sha256=WJtSWPsNNOSYtXBHK0h4ImXLrqId8ElfykQ
25
25
  includecpp/core/cssl/cssl_events.py,sha256=nupIcXW_Vjdud7zCU6hdwkQRQ0MujlPM7Tk2u7eDAiY,21013
26
26
  includecpp/core/cssl/cssl_modules.py,sha256=cUg0-zdymMnWWTsA_BUrW5dx4R04dHpKcUhm-Wfiwwo,103006
27
27
  includecpp/core/cssl/cssl_parser.py,sha256=TxkqYHSGoY8ddHupD7qfaBgwKTCofhpmApzN-rWFCnY,91644
28
- includecpp/core/cssl/cssl_runtime.py,sha256=Mchv9eutE8x-y_XAUBKzRPwzyATe4dtjAIttcBmC3mQ,93608
28
+ includecpp/core/cssl/cssl_runtime.py,sha256=g_R5BPWlqYgkk8wIEjawKr-_W7S_wdXAtkzrgJ-7yxs,97317
29
29
  includecpp/core/cssl/cssl_syntax.py,sha256=vgI-dgj6gs9cOHwNRff6JbwZZYW_fYutnwCkznlgZiE,17006
30
30
  includecpp/core/cssl/cssl_types.py,sha256=JaBhVFcByaC-Thdkd0J9IMkUzLkxriBWx1XfwPr6knM,30561
31
31
  includecpp/generator/__init__.py,sha256=Rsy41bwimaEloD3gDRR_znPfIJzIsCFuWZgCTJBLJlc,62
@@ -34,9 +34,14 @@ includecpp/generator/parser.h,sha256=EDm0b-pEesIIIQQ2PvH5h2qwlqJU9BH8SiMV7MWbsTo
34
34
  includecpp/generator/type_resolver.cpp,sha256=MmFK_4HXd1wqxALDiDyXVuU397SXoQL_o5zb_8N8Hzs,12346
35
35
  includecpp/generator/type_resolver.h,sha256=ZsaxQqcCcKJJApYn7KOp2dLlQ1VFVG_oZDjaK5LhBSg,2590
36
36
  includecpp/templates/cpp.proj.template,sha256=Iy-L8I4Cl3tIgBMx1Qp5h6gURvkqOAqyodVHuDJ0Luw,359
37
- includecpp-3.4.21.dist-info/licenses/LICENSE,sha256=fWCsGGsiWZir0UzDd20Hh-3wtRyk1zqUntvtVuAWhvc,1093
38
- includecpp-3.4.21.dist-info/METADATA,sha256=_C5lYdo9fpO18toixnsaWR0_thu6oPVQ9wvpapiqc8E,32123
39
- includecpp-3.4.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
40
- includecpp-3.4.21.dist-info/entry_points.txt,sha256=6A5Mif9gi0139Bf03W5plAb3wnAgbNaEVe1HJoGE-2o,59
41
- includecpp-3.4.21.dist-info/top_level.txt,sha256=RFUaR1KG-M6mCYwP6w4ydP5Cgc8yNbP78jxGAvyjMa8,11
42
- includecpp-3.4.21.dist-info/RECORD,,
37
+ includecpp/vscode/__init__.py,sha256=yLKw-_7MTX1Rx3jLk5JjharJQfFXbwtZVE7YqHpM7yg,39
38
+ includecpp/vscode/cssl/__init__.py,sha256=rQJAx5X05v-mAwqX1Qb-rbZO219iR73MziFNRUCNUIo,31
39
+ includecpp/vscode/cssl/language-configuration.json,sha256=vBZSVBpV0UFlTO4d0aQrhTpR4lHje0Tb2n889k9W_Uc,986
40
+ includecpp/vscode/cssl/package.json,sha256=t_xEMMew3ohtxv9riyPdGo_T6TMJi-REJ-GDS_GYbCk,872
41
+ includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json,sha256=lvg2EHN8If1Hw0RY_EqatLupclQmhq3oZlnBA0Zi-54,8023
42
+ includecpp-3.5.0.dist-info/licenses/LICENSE,sha256=fWCsGGsiWZir0UzDd20Hh-3wtRyk1zqUntvtVuAWhvc,1093
43
+ includecpp-3.5.0.dist-info/METADATA,sha256=5rCFLg7vB9EsiDxQdmIJaaTHm2T1rwOP_hZn2hNwyfI,32122
44
+ includecpp-3.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
45
+ includecpp-3.5.0.dist-info/entry_points.txt,sha256=6A5Mif9gi0139Bf03W5plAb3wnAgbNaEVe1HJoGE-2o,59
46
+ includecpp-3.5.0.dist-info/top_level.txt,sha256=RFUaR1KG-M6mCYwP6w4ydP5Cgc8yNbP78jxGAvyjMa8,11
47
+ includecpp-3.5.0.dist-info/RECORD,,