Releases: luk036/py2cpp
Combine py::enumerate and py::const_enumerate
Full Changelog: 1.5...1.5.1
py2cpp v1.5.1 Release Notes 🎉🚀
Released on November 28, 2025
We're excited to ship py2cpp 1.5.1 – a feature-packed release focused on Python fidelity, modern C++ compatibility, and smoother development experience!
New Features & Enhancements ✨
-
Full support for
enumerate()on const containers
You can now safely writefor i, v in py::const_enumerate(container)– perfect for range-based for loops without copying!
Also addedpy::enumerate()wrapper for non-const cases. -
New
const_enumerate()utility (with detailed docs)
Clean, safe, and zero-overhead enumeration over const iterables and ranges. -
Improved
dictandlistmethodsdict::contains(key)now properlynoexceptand const-correct- Added modern
items()→ returns view of(key, value)pairs len()now works naturally on py2cpp containers
-
Better range support
Full C++20-compatible range semantics with properbegin()/end()and const iterators. -
Added GEMINI CLI command 🌟
Newpy2cpp geminisubcommand for AI-assisted code conversion (experimental but awesome!)
Bug Fixes & Build Improvements 🛠️
- Fixed macOS build by adding
-DCMAKE_POLICY_VERSION_MINIMUM=3.5(Who-dev) - Fixed sign-conversion warnings on Oct 1 → cleaner builds on modern compilers
- Updated CMake workflows to latest standards
- Bumped project version to 1.5.1 and updated CMakeLists.txt accordingly
Under the Hood 🔧
- Merged
enumerate()andconst_enumerate()implementations for consistency - Lots of
noexceptadditions and const-correctness fixes across containers - Improved template deduction guides
- Better iterator traits and SFINAE handling
CI/CD
- Added proper doctest and boost.ut test packages
- Modernized xmake.lua config
- Cleaner GitHub Actions workflows
Big thanks to @luk036 for driving this release at warp speed! ⚡
Upgrade now and enjoy more Pythonic C++ than ever before! 🐍➡️ C++
→ https://github.com/luk036/py2cpp/releases/tag/1.5.1
Happy coding! 💻❤️
1.5
Full Changelog: 1.4.11...1.5
Release Notes: py2cpp v1.5
Overview
This release introduces several enhancements to the py2cpp library, a header-only C++ library designed to bring Python-like features to modern C++. Key improvements include expanded unit test coverage, code optimizations, and updates to build configurations.
🚀 New Features & Improvements
1. Enhanced Unit Test Coverage
- Added comprehensive unit tests for Boost Graph adaptors (
test_nx2bg1.cpp):GrAdaptorfor graph operationsVertexViewandEdgeViewfor graph traversalAtlasViewfor neighbor iteration
- Added tests for Python-like data structures:
py::dictmethods includingcontains,get,items,copy, andlenpy::enumerateandpy::const_enumeratefor iterable indexing
- Extended tests for
Fractionclass infractions.hpp:- Arithmetic operations (
+,-,*,/) - Comparison operators (
<,<=,>,>=,==,!=) - In-place operations (
+=,-=,*=,/=)
- Arithmetic operations (
2. Code Optimizations
- Performed code optimizations via Gemini CLI
- Applied
fix-formatto ensure consistent code style
3. Build System Updates
- Upgraded C++ standard from C++14 to C++17
- Added Boost support in XMake configuration:
- Included
boostpackage dependency - Added Boost-specific test files to the build
- Included
- Improved compiler flag handling for Linux and Windows platforms
🛠️ Development Workflow Improvements
- Updated
CMakeLists.txtto use C++17 standard - Enhanced XMake configuration for better cross-platform compatibility
- Added
[[maybe_unused]]attribute to silence compiler warnings in range-based loops
✅ Testing
- All new tests pass successfully using the
doctestframework - CI pipeline now includes Boost-based tests via XMake
📦 Dependencies
- Added explicit dependency on Boost library for graph-related features
- Maintained compatibility with
fmtanddoctest
🔧 Known Issues
- None reported in this release
📄 Documentation
- Documentation can still be generated via Doxygen using the provided CMake targets
Contributors
- luk036 (all commits)
Full Commit Summary
b81445c: feat: Add more unit tests for boost5c26186: add more unit testsdfbf36f: fix xmake compilation issueffb69b9: perform code optimization by Gemini CLI; apply fix-format
1.4.11
Release Notes: py2cpp v1.4.11
Overview
This release focuses on cleanup and maintenance, removing deprecated features and updating the project version.
Changes
- Version Update: Bumped project version from
1.4.10to1.4.11inCMakeLists.txt. - Removed Standalone Workflow: Renamed
.github/workflows/standalone.ymlto.github/workflows/standalone.bak, indicating deprecation. - Removed Greeter Module: Deleted the
greeterfeature, including:include/py2cpp/greeter.hsource/greeter.cpptest/source/greeter.old
- CI Badge Cleanup: Removed the outdated "Style" workflow badge from
README.md. - Build System Tweaks: Commented out standalone directory inclusion in
all/CMakeLists.txt.
Contributors
- luk036: Authored all commits in this release.
Full Details
For a complete diff, see the GitHub comparison.
Note: This release reduces codebase complexity by removing unused components.
new documentation build
1.4.10 new documentation
Update the third part libraries
1.4.9 set version 1.4.9
code cleanup for documentation
Full Changelog: 1.4.7...1.4.8
use latest ModernCppStarter as template
Full Changelog: 1.4.6...1.4.7
add at() and make it work
1.4.6 add at() method
add at() for compatability with standard
1.4.5 add at() for compatability
add Lict (Dict-like data structure by std::vector)
1.4.4 apply fix-format