IncludeCPP 3.7.9__tar.gz → 3.7.10__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 (57) hide show
  1. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/PKG-INFO +1 -1
  2. {includecpp-3.7.9 → includecpp-3.7.10}/PKG-INFO +1 -1
  3. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/__init__.py +1 -1
  4. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/cli/commands.py +100 -64
  5. {includecpp-3.7.9 → includecpp-3.7.10}/pyproject.toml +1 -1
  6. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/SOURCES.txt +0 -0
  7. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  8. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/entry_points.txt +0 -0
  9. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/requires.txt +0 -0
  10. {includecpp-3.7.9 → includecpp-3.7.10}/IncludeCPP.egg-info/top_level.txt +0 -0
  11. {includecpp-3.7.9 → includecpp-3.7.10}/LICENSE +0 -0
  12. {includecpp-3.7.9 → includecpp-3.7.10}/MANIFEST.in +0 -0
  13. {includecpp-3.7.9 → includecpp-3.7.10}/README.md +0 -0
  14. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/__init__.pyi +0 -0
  15. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/__main__.py +0 -0
  16. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/cli/__init__.py +0 -0
  17. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/cli/config_parser.py +0 -0
  18. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/__init__.py +0 -0
  19. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/ai_integration.py +0 -0
  20. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/build_manager.py +0 -0
  21. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cpp_api.py +0 -0
  22. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cpp_api.pyi +0 -0
  23. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cppy_converter.py +0 -0
  24. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
  25. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/__init__.py +0 -0
  26. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_builtins.py +0 -0
  27. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  28. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_events.py +0 -0
  29. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_modules.py +0 -0
  30. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_parser.py +0 -0
  31. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_runtime.py +0 -0
  32. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_syntax.py +0 -0
  33. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl/cssl_types.py +0 -0
  34. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl_bridge.py +0 -0
  35. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/cssl_bridge.pyi +0 -0
  36. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/error_catalog.py +0 -0
  37. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/error_formatter.py +0 -0
  38. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/exceptions.py +0 -0
  39. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/path_discovery.py +0 -0
  40. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/project_ui.py +0 -0
  41. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/core/settings_ui.py +0 -0
  42. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/generator/__init__.py +0 -0
  43. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/generator/parser.cpp +0 -0
  44. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/generator/parser.h +0 -0
  45. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/generator/type_resolver.cpp +0 -0
  46. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/generator/type_resolver.h +0 -0
  47. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/py.typed +0 -0
  48. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/templates/cpp.proj.template +0 -0
  49. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/__init__.py +0 -0
  50. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/cssl/__init__.py +0 -0
  51. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/cssl/language-configuration.json +0 -0
  52. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/cssl/package.json +0 -0
  53. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  54. {includecpp-3.7.9 → includecpp-3.7.10}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
  55. {includecpp-3.7.9 → includecpp-3.7.10}/requirements.txt +0 -0
  56. {includecpp-3.7.9 → includecpp-3.7.10}/setup.cfg +0 -0
  57. {includecpp-3.7.9 → includecpp-3.7.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.7.9
3
+ Version: 3.7.10
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.9
3
+ Version: 3.7.10
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.9"
5
+ __version__ = "3.7.10"
6
6
  __all__ = ["CppApi", "CSSL"]
7
7
 
8
8
  # Module-level cache for C++ modules
@@ -7858,26 +7858,46 @@ def cssl_vscode():
7858
7858
  click.secho("CSSL extension files not found in package.", fg='red')
7859
7859
  return
7860
7860
 
7861
- # Install extension
7862
- target_dir = vscode_ext_dir / 'includecpp.cssl-1.0.0'
7861
+ # Get version from package.json
7862
+ pkg_json = source_ext_dir / 'package.json'
7863
+ current_version = "1.1.0"
7864
+ if pkg_json.exists():
7865
+ try:
7866
+ pkg_data = json.loads(pkg_json.read_text(encoding='utf-8'))
7867
+ current_version = pkg_data.get('version', '1.1.0')
7868
+ except:
7869
+ pass
7870
+
7871
+ target_dir = vscode_ext_dir / f'includecpp.cssl-{current_version}'
7863
7872
 
7864
7873
  try:
7874
+ # Check for existing installations
7875
+ existing_version = None
7876
+ for existing in vscode_ext_dir.glob('includecpp.cssl-*'):
7877
+ existing_version = existing.name.split('-')[-1]
7878
+ if existing_version != current_version:
7879
+ click.echo(f"Removing old version: {existing_version}")
7880
+ shutil.rmtree(existing)
7881
+
7865
7882
  if target_dir.exists():
7866
7883
  shutil.rmtree(target_dir)
7867
7884
 
7868
7885
  shutil.copytree(source_ext_dir, target_dir)
7869
7886
 
7870
- click.secho("CSSL VSCode extension installed!", fg='green', bold=True)
7887
+ if existing_version and existing_version != current_version:
7888
+ click.secho(f"CSSL extension updated: v{existing_version} -> v{current_version}", fg='green', bold=True)
7889
+ else:
7890
+ click.secho(f"CSSL VSCode extension installed! (v{current_version})", fg='green', bold=True)
7871
7891
  click.echo()
7872
7892
  click.echo(f"Installed to: {target_dir}")
7873
7893
  click.echo()
7874
7894
  click.echo("Features:")
7875
7895
  click.echo(" - Syntax highlighting for .cssl, .cssl-pl, .cssl-mod files")
7876
- click.echo(" - BruteInjection operators: <==, ==>, <<==, +<==, etc.")
7877
- click.echo(" - Type highlighting: int, string, stack<T>, datastruct<T>")
7896
+ click.echo(" - OOP support: class, constructor, this->member")
7897
+ click.echo(" - Injection operators: <== (brute), <<== (infuse)")
7898
+ click.echo(" - Type highlighting: int, string, stack<T>, instance<>")
7878
7899
  click.echo(" - Global references: @Name, r@Name, s@Name")
7879
7900
  click.echo(" - Shared objects: $Name")
7880
- click.echo(" - Filter helpers: string::contains, json::key, etc.")
7881
7901
  click.echo()
7882
7902
  click.secho("Restart VSCode to activate the extension.", fg='yellow')
7883
7903
 
@@ -7901,35 +7921,28 @@ cli.add_command(cssl)
7901
7921
  def vscode(force, stubs_only):
7902
7922
  """Initialize or update VSCode configuration for IncludeCPP/CSSL.
7903
7923
 
7904
- Sets up .vscode folder with:
7905
- - CSSL language support (syntax highlighting, snippets)
7906
- - Type stubs for builtins (.pyi files)
7907
- - Auto-generated stubs for your plugins and modules
7924
+ Installs CSSL extension globally and sets up project stubs.
7908
7925
 
7909
7926
  \b
7910
7927
  Usage:
7911
- includecpp vscode # Initialize .vscode
7912
- includecpp vscode --force # Force overwrite existing
7928
+ includecpp vscode # Install/update extension + stubs
7929
+ includecpp vscode --force # Force reinstall extension
7913
7930
  includecpp vscode --stubs-only # Only update stubs
7914
7931
 
7915
7932
  \b
7916
- What it creates:
7917
- .vscode/
7918
- settings.json - VSCode settings for CSSL
7919
- cssl/ - CSSL language extension
7920
- stubs/ - Type stubs for IDE support
7921
- cssl_builtins.pyi - CSSL builtin functions
7922
- plugins/ - Stubs for your .cp plugins
7923
- modules/ - Stubs for your modules
7933
+ What it does:
7934
+ 1. Installs CSSL extension globally (~/.vscode/extensions/)
7935
+ 2. Creates .vscode/settings.json with file associations
7936
+ 3. Creates .vscode/stubs/ with type hints for IDE support
7924
7937
  """
7925
7938
  from pathlib import Path as PathLib
7939
+ import os
7926
7940
 
7927
7941
  cwd = PathLib.cwd()
7928
7942
  vscode_dir = cwd / '.vscode'
7929
7943
  stubs_dir = vscode_dir / 'stubs'
7930
7944
  plugins_stubs_dir = stubs_dir / 'plugins'
7931
7945
  modules_stubs_dir = stubs_dir / 'modules'
7932
- cssl_ext_dir = vscode_dir / 'cssl'
7933
7946
 
7934
7947
  # Create directories
7935
7948
  vscode_dir.mkdir(exist_ok=True)
@@ -7945,56 +7958,79 @@ def vscode(force, stubs_only):
7945
7958
  updated_count = 0
7946
7959
  created_count = 0
7947
7960
 
7948
- # 1. Copy CSSL extension files (unless stubs-only)
7961
+ # 1. Install CSSL extension GLOBALLY (unless stubs-only)
7949
7962
  if not stubs_only:
7950
- click.secho("Setting up CSSL language support...", fg='yellow')
7963
+ click.secho("Installing CSSL extension globally...", fg='yellow')
7951
7964
 
7952
7965
  # Find source extension directory
7953
7966
  source_ext_dir = PathLib(__file__).parent.parent / 'vscode' / 'cssl'
7954
7967
 
7955
7968
  if source_ext_dir.exists():
7956
- cssl_ext_dir.mkdir(exist_ok=True)
7957
-
7958
- # Copy extension files
7959
- ext_files = [
7960
- 'language-configuration.json',
7961
- 'package.json',
7962
- ]
7963
-
7964
- for fname in ext_files:
7965
- src = source_ext_dir / fname
7966
- dst = cssl_ext_dir / fname
7967
- if src.exists():
7968
- if not dst.exists() or force:
7969
- shutil.copy2(src, dst)
7970
- created_count += 1
7971
- click.echo(f" Created: .vscode/cssl/{fname}")
7972
-
7973
- # Copy syntaxes folder
7974
- syntaxes_src = source_ext_dir / 'syntaxes'
7975
- syntaxes_dst = cssl_ext_dir / 'syntaxes'
7976
- if syntaxes_src.exists():
7977
- syntaxes_dst.mkdir(exist_ok=True)
7978
- for f in syntaxes_src.glob('*.json'):
7979
- dst = syntaxes_dst / f.name
7980
- if not dst.exists() or force:
7981
- shutil.copy2(f, dst)
7982
- created_count += 1
7983
- click.echo(f" Created: .vscode/cssl/syntaxes/{f.name}")
7984
-
7985
- # Copy snippets folder
7986
- snippets_src = source_ext_dir / 'snippets'
7987
- snippets_dst = cssl_ext_dir / 'snippets'
7988
- if snippets_src.exists():
7989
- snippets_dst.mkdir(exist_ok=True)
7990
- for f in snippets_src.glob('*.json'):
7991
- dst = snippets_dst / f.name
7992
- if not dst.exists() or force:
7993
- shutil.copy2(f, dst)
7994
- created_count += 1
7995
- click.echo(f" Created: .vscode/cssl/snippets/{f.name}")
7969
+ # Get version from package.json
7970
+ pkg_json = source_ext_dir / 'package.json'
7971
+ current_version = "1.1.0"
7972
+ if pkg_json.exists():
7973
+ try:
7974
+ pkg_data = json.loads(pkg_json.read_text(encoding='utf-8'))
7975
+ current_version = pkg_data.get('version', '1.1.0')
7976
+ except:
7977
+ pass
7978
+
7979
+ # Find global VSCode extensions directory
7980
+ if os.name == 'nt': # Windows
7981
+ global_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode' / 'extensions'
7982
+ else: # Linux/Mac
7983
+ global_ext_dir = PathLib.home() / '.vscode' / 'extensions'
7984
+
7985
+ if not global_ext_dir.exists():
7986
+ # Try VSCode Insiders
7987
+ if os.name == 'nt':
7988
+ global_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode-insiders' / 'extensions'
7989
+ else:
7990
+ global_ext_dir = PathLib.home() / '.vscode-insiders' / 'extensions'
7991
+
7992
+ if global_ext_dir.exists():
7993
+ target_dir = global_ext_dir / f'includecpp.cssl-{current_version}'
7994
+
7995
+ # Check if already installed with same or older version
7996
+ needs_install = force
7997
+ existing_version = None
7998
+
7999
+ # Find existing installations
8000
+ for existing in global_ext_dir.glob('includecpp.cssl-*'):
8001
+ existing_version = existing.name.split('-')[-1]
8002
+ if existing_version != current_version:
8003
+ # Remove old version
8004
+ click.echo(f" Removing old version: {existing_version}")
8005
+ shutil.rmtree(existing)
8006
+ needs_install = True
8007
+ elif not force:
8008
+ click.echo(f" Already installed: v{current_version}")
8009
+ needs_install = False
8010
+
8011
+ if not target_dir.exists():
8012
+ needs_install = True
8013
+
8014
+ if needs_install:
8015
+ # Remove target if exists (force reinstall)
8016
+ if target_dir.exists():
8017
+ shutil.rmtree(target_dir)
8018
+
8019
+ # Copy extension to global directory
8020
+ shutil.copytree(source_ext_dir, target_dir)
8021
+ created_count += 1
8022
+
8023
+ if existing_version and existing_version != current_version:
8024
+ click.secho(f" Updated: v{existing_version} -> v{current_version}", fg='green')
8025
+ else:
8026
+ click.secho(f" Installed: v{current_version}", fg='green')
7996
8027
 
7997
- click.secho(" CSSL extension configured", fg='green')
8028
+ click.echo(f" Location: {target_dir}")
8029
+ click.echo()
8030
+ click.secho(" Restart VSCode to activate the extension!", fg='yellow', bold=True)
8031
+ else:
8032
+ click.secho(" VSCode extensions directory not found.", fg='red')
8033
+ click.echo(" Make sure VSCode is installed.")
7998
8034
  else:
7999
8035
  click.secho(" Warning: CSSL extension source not found", fg='yellow')
8000
8036
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "IncludeCPP"
7
- version = "3.7.9"
7
+ version = "3.7.10"
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
File without changes