6.0.0
·
27 commits
to main
since this release
oct2py 6.0 is a major release with substantial new features, a large number of
bug fixes accumulated since 5.8, and a raised minimum of Python 3.11 and
octave-kernel 1.0.
Highlights include a new Oct2PySettings / configure()
API for pydantic-based configuration, a check() diagnostic utility, an
Oct2Py.run() method for executing .m scripts, inline plot display for IDEs,
an opt-in macOS RAM disk for faster I/O,
and support for Octave snap/flatpak installs.
Numerous long-standing bugs around type conversion, session safety, and platform compatibility are also
fixed.
Enhancements
- Add
Oct2PySettingsandconfigure()for pydantic-settings-based configuration #395 - Add
check()diagnostic utility for verifying the Octave installation #396 - Add
Oct2Py.run()to execute.mscripts in the base workspace #374 - Add workspace proxy for MATLAB-style variable access (
oc.workspace.x) #375 - Add
auto_showandshow()for inline plot display in PyCharm/IDEs #385 - Add
backend='disable'to suppress all figure rendering #390 - Add
quietparameter toeval()/feval()to suppress output capture #372 - Add
expr=Truesupport toget_pointer()#383 - Add opt-in macOS RAM disk via
ramdisk_size_mbfor faster MAT file I/O #398 - Fix per-call overhead in Octave 7+ by passing
--no-line-editing#363 - Add snap and flatpak Octave install support via
engine.tmp_dir#351 #352
Bugs Fixed
- Fix Python
bool→ Octavelogicalconversion #389 - Fix
TypeErrorwhen returning old-style Octave objects (e.g.ss) #384 - Fix
classdefreturn for classes with required-argument constructors #380 - Fix calling
.mscripts (not functions) viafeval#361 - Fix deep recursion crashing Octave session #365
- Fix Octave subprocess leak in
ThreadPoolExecutor#364 - Fix
multiprocessing.Poolfork safety #366 - Fix
save_safe_structfor function handles, integer types, and top-level objects #370 - Fix
SIGINThandler preservation across engine startup #381 - Fix interactive figure display and exit
TypeError#379 - Fix
scipy.ioTypeErrorfor char encoding issues #378 - Fix Octave startup crash when
opencv-pythonis imported on Linux #391 - Fix
system()failures on Windows by augmentingPATHwith MinGW/MSYS dirs #392 - Fix logging hygiene: remove
NullHandler, addOct2PyWarning#397 - Support Octave package namespace access (e.g.
signal.butter) #393
Backwards-Incompatible Changes
- Requires Python ≥ 3.11 (follows SPEC 0)
- Requires
octave-kernel≥ 1.0
Maintenance
- Switch from hatch/uv to Poetry for dependency management
- Switch documentation from Sphinx to MkDocs
- Migrate CI from
jupyterlab/maintainer-toolstocalysto/maintainer_tools - Add ASV benchmark suite and CI job
- Add
check()diagnostic and issue templates