What's New in v0.11.1
Added
- Multi-phase module initialization (PEP 489) - PyOZ now uses
PyModuleDef_Init+Py_mod_execslot instead of the legacyPyModule_Createsingle-phase init. This is required for sub-interpreter support (PEP 554) and is the modern standard for Python extension modules. Simple modules (return Module.init()) work unchanged. Modules that need post-init work (e.g., adding submodules) should use the new.module_initcallback in the module config instead of doing work afterinit()inPyInit_*.
Fixed
get_X/set_Xcomputed properties no longer exposed as methods - When a class definesget_user_data()andset_user_data(), PyOZ correctly creates auser_dataproperty but previously also exposedget_user_data()andset_user_data()as callable methods, cluttering the API. Now computed property accessors are filtered from the method table (methods.zig) and stub generation (stubs.zig), so only theXproperty appears in Python. The filter correctly handles:get_Xas computed property getter,set_Xwith matchingget_Xas computed property setter, andset_Xas field setter override. Standaloneset_Xwithout a matching getter or field is still exposed as a method.
Installation
Download the binary for your platform and add it to your PATH:
| Platform | Binary |
|---|---|
| Linux x86_64 | pyoz-x86_64-linux
|
| Linux ARM64 | pyoz-aarch64-linux
|
| macOS x86_64 | pyoz-x86_64-macos
|
| macOS ARM64 (Apple Silicon) | pyoz-aarch64-macos
|
| Windows x86_64 | pyoz-x86_64-windows.exe
|
| Windows ARM64 | pyoz-aarch64-windows.exe
|
Source
Download PyOZ-0.11.1.tar.gz for the source code.
Quick Start
pyoz init mymodule
cd mymodule
pyoz build
pip install dist/*.whl