IncludeCPP 3.2.3__tar.gz → 3.2.4__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 (37) hide show
  1. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/PKG-INFO +5 -2
  2. {includecpp-3.2.3 → includecpp-3.2.4}/PKG-INFO +5 -2
  3. {includecpp-3.2.3 → includecpp-3.2.4}/README.md +4 -1
  4. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/__init__.py +1 -1
  5. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/cli/commands.py +14 -2
  6. {includecpp-3.2.3 → includecpp-3.2.4}/pyproject.toml +1 -1
  7. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/SOURCES.txt +0 -0
  8. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  9. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/entry_points.txt +0 -0
  10. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/requires.txt +0 -0
  11. {includecpp-3.2.3 → includecpp-3.2.4}/IncludeCPP.egg-info/top_level.txt +0 -0
  12. {includecpp-3.2.3 → includecpp-3.2.4}/LICENSE +0 -0
  13. {includecpp-3.2.3 → includecpp-3.2.4}/MANIFEST.in +0 -0
  14. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/__init__.pyi +0 -0
  15. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/__main__.py +0 -0
  16. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/cli/__init__.py +0 -0
  17. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/cli/config_parser.py +0 -0
  18. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/__init__.py +0 -0
  19. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/ai_integration.py +0 -0
  20. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/build_manager.py +0 -0
  21. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/cpp_api.py +0 -0
  22. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/cpp_api.pyi +0 -0
  23. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/error_catalog.py +0 -0
  24. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/error_formatter.py +0 -0
  25. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/exceptions.py +0 -0
  26. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/path_discovery.py +0 -0
  27. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/core/settings_ui.py +0 -0
  28. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/generator/__init__.py +0 -0
  29. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/generator/parser.cpp +0 -0
  30. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/generator/parser.h +0 -0
  31. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/generator/type_resolver.cpp +0 -0
  32. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/generator/type_resolver.h +0 -0
  33. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/py.typed +0 -0
  34. {includecpp-3.2.3 → includecpp-3.2.4}/includecpp/templates/cpp.proj.template +0 -0
  35. {includecpp-3.2.3 → includecpp-3.2.4}/requirements.txt +0 -0
  36. {includecpp-3.2.3 → includecpp-3.2.4}/setup.cfg +0 -0
  37. {includecpp-3.2.3 → includecpp-3.2.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.2.3
3
+ Version: 3.2.4
4
4
  Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
5
5
  Home-page: https://github.com/includecpp/includecpp
6
6
  Author: IncludeCPP Team
@@ -472,6 +472,9 @@ Options:
472
472
 
473
473
  # Changelog
474
474
 
475
+ ## v3.2.4
476
+ - Fixed UTF-16/BOM encoding error in plugin command (source file reading)
477
+
475
478
  ## v3.2.3
476
479
  - Fixed FIELD() syntax: now outputs `FIELD(name)` not `FIELD(type, name)`
477
480
  - Fixed documentation: PUBLIC() not PUBLIC:
@@ -523,4 +526,4 @@ Options:
523
526
 
524
527
  ---
525
528
 
526
- MIT License | v3.2.3 | [GitHub](https://github.com/liliassg/IncludeCPP)
529
+ MIT License | v3.2.4 | [GitHub](https://github.com/liliassg/IncludeCPP)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.2.3
3
+ Version: 3.2.4
4
4
  Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
5
5
  Home-page: https://github.com/includecpp/includecpp
6
6
  Author: IncludeCPP Team
@@ -472,6 +472,9 @@ Options:
472
472
 
473
473
  # Changelog
474
474
 
475
+ ## v3.2.4
476
+ - Fixed UTF-16/BOM encoding error in plugin command (source file reading)
477
+
475
478
  ## v3.2.3
476
479
  - Fixed FIELD() syntax: now outputs `FIELD(name)` not `FIELD(type, name)`
477
480
  - Fixed documentation: PUBLIC() not PUBLIC:
@@ -523,4 +526,4 @@ Options:
523
526
 
524
527
  ---
525
528
 
526
- MIT License | v3.2.3 | [GitHub](https://github.com/liliassg/IncludeCPP)
529
+ MIT License | v3.2.4 | [GitHub](https://github.com/liliassg/IncludeCPP)
@@ -435,6 +435,9 @@ Options:
435
435
 
436
436
  # Changelog
437
437
 
438
+ ## v3.2.4
439
+ - Fixed UTF-16/BOM encoding error in plugin command (source file reading)
440
+
438
441
  ## v3.2.3
439
442
  - Fixed FIELD() syntax: now outputs `FIELD(name)` not `FIELD(type, name)`
440
443
  - Fixed documentation: PUBLIC() not PUBLIC:
@@ -486,4 +489,4 @@ Options:
486
489
 
487
490
  ---
488
491
 
489
- MIT License | v3.2.3 | [GitHub](https://github.com/liliassg/IncludeCPP)
492
+ MIT License | v3.2.4 | [GitHub](https://github.com/liliassg/IncludeCPP)
@@ -1,7 +1,7 @@
1
1
  from .core.cpp_api import CppApi
2
2
  import warnings
3
3
 
4
- __version__ = "3.2.3"
4
+ __version__ = "3.2.4"
5
5
  __all__ = ["CppApi"]
6
6
 
7
7
  # Module-level cache for C++ modules
@@ -2627,9 +2627,21 @@ def plugin(plugin_name, files, private):
2627
2627
 
2628
2628
  all_files = cpp_files + h_files
2629
2629
 
2630
+ def read_source_file(filepath):
2631
+ """Read source file with encoding detection (UTF-8, UTF-16, Latin-1)."""
2632
+ encodings = ['utf-8', 'utf-16', 'utf-8-sig', 'latin-1']
2633
+ for enc in encodings:
2634
+ try:
2635
+ with open(filepath, 'r', encoding=enc) as f:
2636
+ return f.read()
2637
+ except (UnicodeDecodeError, UnicodeError):
2638
+ continue
2639
+ # Last resort: read as binary and decode with errors replaced
2640
+ with open(filepath, 'rb') as f:
2641
+ return f.read().decode('utf-8', errors='replace')
2642
+
2630
2643
  for file in all_files:
2631
- with open(file, 'r', encoding='utf-8') as f:
2632
- content = f.read()
2644
+ content = read_source_file(file)
2633
2645
 
2634
2646
  # Extract namespaces
2635
2647
  namespace_matches = re.findall(r'\bnamespace\s+(\w+)', content)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "IncludeCPP"
7
- version = "3.2.3"
7
+ version = "3.2.4"
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.8"
File without changes
File without changes
File without changes
File without changes
File without changes