IncludeCPP 3.7.1__tar.gz → 3.7.2__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.1 → includecpp-3.7.2}/IncludeCPP.egg-info/PKG-INFO +1 -1
  2. {includecpp-3.7.1 → includecpp-3.7.2}/PKG-INFO +1 -1
  3. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/__init__.py +1 -1
  4. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/cli/commands.py +111 -4
  5. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1 -1
  6. {includecpp-3.7.1 → includecpp-3.7.2}/pyproject.toml +1 -1
  7. {includecpp-3.7.1 → includecpp-3.7.2}/setup.py +1 -1
  8. {includecpp-3.7.1 → includecpp-3.7.2}/IncludeCPP.egg-info/SOURCES.txt +0 -0
  9. {includecpp-3.7.1 → includecpp-3.7.2}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  10. {includecpp-3.7.1 → includecpp-3.7.2}/IncludeCPP.egg-info/entry_points.txt +0 -0
  11. {includecpp-3.7.1 → includecpp-3.7.2}/IncludeCPP.egg-info/requires.txt +0 -0
  12. {includecpp-3.7.1 → includecpp-3.7.2}/IncludeCPP.egg-info/top_level.txt +0 -0
  13. {includecpp-3.7.1 → includecpp-3.7.2}/LICENSE +0 -0
  14. {includecpp-3.7.1 → includecpp-3.7.2}/MANIFEST.in +0 -0
  15. {includecpp-3.7.1 → includecpp-3.7.2}/README.md +0 -0
  16. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/__init__.pyi +0 -0
  17. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/__main__.py +0 -0
  18. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/cli/__init__.py +0 -0
  19. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/cli/config_parser.py +0 -0
  20. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/__init__.py +0 -0
  21. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/ai_integration.py +0 -0
  22. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/build_manager.py +0 -0
  23. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cpp_api.py +0 -0
  24. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cpp_api.pyi +0 -0
  25. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cppy_converter.py +0 -0
  26. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/__init__.py +0 -0
  27. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_builtins.py +0 -0
  28. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  29. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_events.py +0 -0
  30. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_modules.py +0 -0
  31. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_parser.py +0 -0
  32. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_runtime.py +0 -0
  33. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_syntax.py +0 -0
  34. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl/cssl_types.py +0 -0
  35. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl_bridge.py +0 -0
  36. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/cssl_bridge.pyi +0 -0
  37. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/error_catalog.py +0 -0
  38. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/error_formatter.py +0 -0
  39. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/exceptions.py +0 -0
  40. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/path_discovery.py +0 -0
  41. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/project_ui.py +0 -0
  42. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/core/settings_ui.py +0 -0
  43. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/generator/__init__.py +0 -0
  44. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/generator/parser.cpp +0 -0
  45. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/generator/parser.h +0 -0
  46. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/generator/type_resolver.cpp +0 -0
  47. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/generator/type_resolver.h +0 -0
  48. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/py.typed +0 -0
  49. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/templates/cpp.proj.template +0 -0
  50. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/__init__.py +0 -0
  51. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/cssl/__init__.py +0 -0
  52. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/cssl/language-configuration.json +0 -0
  53. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/cssl/package.json +0 -0
  54. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  55. {includecpp-3.7.1 → includecpp-3.7.2}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
  56. {includecpp-3.7.1 → includecpp-3.7.2}/requirements.txt +0 -0
  57. {includecpp-3.7.1 → includecpp-3.7.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.7.1
3
+ Version: 3.7.2
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.1
3
+ Version: 3.7.2
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.0"
5
+ __version__ = "3.7.2"
6
6
  __all__ = ["CppApi", "CSSL"]
7
7
 
8
8
  # Module-level cache for C++ modules
@@ -7535,10 +7535,29 @@ def cssl_makemodule(path, output):
7535
7535
 
7536
7536
 
7537
7537
  @cssl.command(name='doc')
7538
- def cssl_doc():
7539
- """Show CSSL documentation."""
7538
+ @click.argument('search', required=False, default=None)
7539
+ @click.option('--list', '-l', 'list_sections', is_flag=True, help='List all documentation sections')
7540
+ def cssl_doc(search, list_sections):
7541
+ """Show CSSL documentation.
7542
+
7543
+ \b
7544
+ Usage:
7545
+ includecpp cssl doc # Show full documentation
7546
+ includecpp cssl doc "open" # Search for 'open' keyword
7547
+ includecpp cssl doc "$" # Search for shared variable syntax
7548
+ includecpp cssl doc "define" # Search for define keyword
7549
+ includecpp cssl doc --list # List all sections
7550
+
7551
+ \b
7552
+ Examples:
7553
+ includecpp cssl doc "class" # Show OOP/class documentation
7554
+ includecpp cssl doc "json::" # Show JSON functions
7555
+ includecpp cssl doc "this->" # Show this-> keyword usage
7556
+ includecpp cssl doc "map" # Show Map container docs
7557
+ """
7540
7558
  from pathlib import Path as PathLib
7541
7559
  import os
7560
+ import re
7542
7561
 
7543
7562
  # Find the documentation file in the cssl package directory
7544
7563
  cssl_dir = PathLib(__file__).parent.parent / 'core' / 'cssl'
@@ -7558,8 +7577,96 @@ def cssl_doc():
7558
7577
 
7559
7578
  if doc_path.exists():
7560
7579
  content = doc_path.read_text(encoding='utf-8')
7561
- # Use pager for long content
7562
- click.echo_via_pager(content)
7580
+
7581
+ # List sections mode
7582
+ if list_sections:
7583
+ click.secho("CSSL Documentation Sections", fg='cyan', bold=True)
7584
+ click.secho("=" * 40, fg='cyan')
7585
+ sections = re.findall(r'^##\s+(.+)$', content, re.MULTILINE)
7586
+ for i, section in enumerate(sections, 1):
7587
+ click.echo(f" {i:2d}. {section}")
7588
+ click.echo()
7589
+ click.echo("Use: includecpp cssl doc \"<keyword>\" to search")
7590
+ return
7591
+
7592
+ # Search mode
7593
+ if search:
7594
+ click.secho(f"Searching for: '{search}'", fg='cyan', bold=True)
7595
+ click.secho("=" * 50, fg='cyan')
7596
+ click.echo()
7597
+
7598
+ # Split into sections (## headers)
7599
+ sections = re.split(r'(?=^## )', content, flags=re.MULTILINE)
7600
+
7601
+ found_sections = []
7602
+ for section in sections:
7603
+ if search.lower() in section.lower():
7604
+ found_sections.append(section)
7605
+
7606
+ if found_sections:
7607
+ # Also find specific lines with the search term
7608
+ all_lines = content.split('\n')
7609
+ matching_lines = []
7610
+ for i, line in enumerate(all_lines):
7611
+ if search.lower() in line.lower():
7612
+ # Get context (2 lines before and after)
7613
+ start = max(0, i - 2)
7614
+ end = min(len(all_lines), i + 3)
7615
+ context = '\n'.join(all_lines[start:end])
7616
+ if context not in matching_lines:
7617
+ matching_lines.append((i + 1, context))
7618
+
7619
+ # Show summary
7620
+ click.secho(f"Found in {len(found_sections)} section(s):", fg='green')
7621
+ for section in found_sections:
7622
+ # Extract section title
7623
+ title_match = re.match(r'^##\s+(.+)$', section, re.MULTILINE)
7624
+ if title_match:
7625
+ click.echo(f" - {title_match.group(1)}")
7626
+
7627
+ click.echo()
7628
+
7629
+ # Show matching contexts with highlighting
7630
+ click.secho("Matching content:", fg='yellow', bold=True)
7631
+ click.secho("-" * 50, fg='yellow')
7632
+
7633
+ for line_num, context in matching_lines[:15]: # Limit to 15 matches
7634
+ click.echo(f"\nLine {line_num}:")
7635
+ # Highlight the search term
7636
+ highlighted = re.sub(
7637
+ f'({re.escape(search)})',
7638
+ click.style(r'\1', fg='green', bold=True),
7639
+ context,
7640
+ flags=re.IGNORECASE
7641
+ )
7642
+ click.echo(highlighted)
7643
+ click.echo("-" * 30)
7644
+
7645
+ if len(matching_lines) > 15:
7646
+ click.echo(f"\n... and {len(matching_lines) - 15} more matches")
7647
+
7648
+ # Offer to show full sections
7649
+ click.echo()
7650
+ click.secho("Full sections containing your search:", fg='cyan')
7651
+ click.echo("(Scroll or pipe to a file for full content)")
7652
+ click.echo()
7653
+
7654
+ for section in found_sections:
7655
+ click.echo(section)
7656
+ click.echo()
7657
+
7658
+ else:
7659
+ click.secho(f"No matches found for '{search}'", fg='yellow')
7660
+ click.echo()
7661
+ click.echo("Try searching for:")
7662
+ click.echo(" - Keywords: class, function, define, open, global")
7663
+ click.echo(" - Syntax: $, @, ::, this->, <<==, <==")
7664
+ click.echo(" - Types: string, int, stack, vector, map, json")
7665
+ click.echo()
7666
+ click.echo("Or use: includecpp cssl doc --list")
7667
+ else:
7668
+ # Full documentation mode
7669
+ click.echo_via_pager(content)
7563
7670
  else:
7564
7671
  click.secho("Documentation file not found.", fg='yellow')
7565
7672
  click.echo("Looking for: CSSL_DOCUMENTATION.md")
@@ -1,6 +1,6 @@
1
1
  # CSSL - C-Style Scripting Language
2
2
 
3
- > Version 3.7.0 | A modern scripting language with C++-style syntax and unique features like CodeInfusion and BruteInjection.
3
+ > Version 3.7.2 | A modern scripting language with C++-style syntax and unique features like CodeInfusion and BruteInjection.
4
4
 
5
5
  ---
6
6
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "IncludeCPP"
7
- version = "3.7.1"
7
+ version = "3.7.2"
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"
@@ -6,7 +6,7 @@ long_description = (this_directory / "README.md").read_text(encoding="utf-8")
6
6
 
7
7
  setup(
8
8
  name="IncludeCPP",
9
- version="3.7.1",
9
+ version="3.7.2",
10
10
  author="Lilias Hatterscheidt",
11
11
  author_email="lilias@includecpp.dev",
12
12
  description="Professional C++ Python bindings with type-generic templates and native threading",
File without changes
File without changes
File without changes
File without changes
File without changes