# Release History

<!-- <START NEW CHANGELOG ENTRY> -->

## 6.0.0rc1

([Full Changelog](https://github.com/blink1073/oct2py/compare/v6.0.0rc0...35671a534a6ea374e18d3305543ec9c7929b8032))

### Maintenance and upkeep improvements

- Bump minimum dependency versions and fix tornado CVE [#401](https://github.com/blink1073/oct2py/pull/401) ([@blink1073](https://github.com/blink1073))
- Add validate-pyproject pre-commit hook [#400](https://github.com/blink1073/oct2py/pull/400) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2026-03-17&to=2026-03-17&type=c))

@blink1073 ([activity](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2026-03-17..2026-03-17&type=Issues)) | @claude ([activity](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Aclaude+updated%3A2026-03-17..2026-03-17&type=Issues))

<!-- <END NEW CHANGELOG ENTRY> -->

## 6.0.0rc0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.8.0...720aa6b912ca24ce979b3ae19995edb75296237f))

### Enhancements made

- Add opt-in macOS RAM disk and reuse writer.mat file handle [#398](https://github.com/blink1073/oct2py/pull/398) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add check() diagnostic utility, debugging docs, and issue templates [#396](https://github.com/blink1073/oct2py/pull/396) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add pydantic-settings support with Oct2PySettings and configure() [#395](https://github.com/blink1073/oct2py/pull/395) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add backend='disable' to suppress all figure rendering [#390](https://github.com/blink1073/oct2py/pull/390) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add workspace proxy for MATLAB-style variable access [#375](https://github.com/blink1073/oct2py/pull/375) ([@blink1073](https://github.com/blink1073))
- Add Oct2Py.run() to execute scripts in the base workspace [#374](https://github.com/blink1073/oct2py/pull/374) ([@blink1073](https://github.com/blink1073))
- Fix per-call overhead in Octave 7+ by passing --no-line-editing [#363](https://github.com/blink1073/oct2py/pull/363) ([@blink1073](https://github.com/blink1073))
- Add binder support and JupyterHub Qt docs [#356](https://github.com/blink1073/oct2py/pull/356) ([@blink1073](https://github.com/blink1073))
- Add executable trait to OctaveMagics and bump octave-kernel to 0.39 [#355](https://github.com/blink1073/oct2py/pull/355) ([@blink1073](https://github.com/blink1073))
- Simplify snap/flatpak temp dir support via engine.tmp_dir [#352](https://github.com/blink1073/oct2py/pull/352) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add support for ubuntu snap [#351](https://github.com/blink1073/oct2py/pull/351) ([@blink1073](https://github.com/blink1073))

### Bugs fixed

- Fix logging/warning hygiene: remove NullHandler, add Oct2PyWarning [#397](https://github.com/blink1073/oct2py/pull/397) ([@blink1073](https://github.com/blink1073))
- Support Octave package namespace access (closes #286) [#393](https://github.com/blink1073/oct2py/pull/393) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Fix system() failures on Windows — augment PATH with Octave's MinGW/MSYS tool dirs [#392](https://github.com/blink1073/oct2py/pull/392) ([@blink1073](https://github.com/blink1073))
- Fix Octave startup crash when opencv-python is imported on Linux [#391](https://github.com/blink1073/oct2py/pull/391) ([@blink1073](https://github.com/blink1073))
- Fix Python bool → Octave logical conversion (closes #153) [#389](https://github.com/blink1073/oct2py/pull/389) ([@blink1073](https://github.com/blink1073))
- Fix logging configuration to follow Python library best practices [#386](https://github.com/blink1073/oct2py/pull/386) ([@blink1073](https://github.com/blink1073))
- Add auto_show and show() for PyCharm/IDE inline plot display (closes #164) [#385](https://github.com/blink1073/oct2py/pull/385) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Fix TypeError when returning old-style Octave objects like ss (closes #166) [#384](https://github.com/blink1073/oct2py/pull/384) ([@blink1073](https://github.com/blink1073))
- Add expr=True support to get_pointer (closes #169) [#383](https://github.com/blink1073/oct2py/pull/383) ([@blink1073](https://github.com/blink1073))
- Preserve SIGINT handler across engine startup (closes #168) [#381](https://github.com/blink1073/oct2py/pull/381) ([@blink1073](https://github.com/blink1073))
- Fix classdef return for classes with required-argument constructors [#380](https://github.com/blink1073/oct2py/pull/380) ([@blink1073](https://github.com/blink1073))
- Fix interactive figure display and exit TypeError [#379](https://github.com/blink1073/oct2py/pull/379) ([@blink1073](https://github.com/blink1073))
- Convert scipy TypeError to Oct2PyError for char encoding issues [#378](https://github.com/blink1073/oct2py/pull/378) ([@blink1073](https://github.com/blink1073))
- Add quiet parameter to eval/feval to suppress output capture [#372](https://github.com/blink1073/oct2py/pull/372) ([@blink1073](https://github.com/blink1073))
- Fix save_safe_struct: function handles, integer types, top-level objects (closes #215) [#370](https://github.com/blink1073/oct2py/pull/370) ([@blink1073](https://github.com/blink1073))
- Fix multiprocessing.Pool fork safety (issue #283) [#366](https://github.com/blink1073/oct2py/pull/366) ([@blink1073](https://github.com/blink1073))
- Fix deep recursion crashing Octave session [#365](https://github.com/blink1073/oct2py/pull/365) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Fix Octave subprocess leak in ThreadPoolExecutor [#364](https://github.com/blink1073/oct2py/pull/364) ([@blink1073](https://github.com/blink1073))
- Fix calling .m scripts (not functions) via feval [#361](https://github.com/blink1073/oct2py/pull/361) ([@blink1073](https://github.com/blink1073))
- Drop legacy scipy compatibility shims and bump minimum versions [#354](https://github.com/blink1073/oct2py/pull/354) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))

### Maintenance and upkeep improvements

- Restructure CI: split cover job, add test-opencv job, configure Codecov notify [#394](https://github.com/blink1073/oct2py/pull/394) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Document pandas DataFrame and Series support (closes #157) [#388](https://github.com/blink1073/oct2py/pull/388) ([@blink1073](https://github.com/blink1073))
- Add regression tests for eval() plot capture and interactive display (closes #158) [#387](https://github.com/blink1073/oct2py/pull/387) ([@blink1073](https://github.com/blink1073))
- Document plot-rendering limitation for .m files and add regression test [#382](https://github.com/blink1073/oct2py/pull/382) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Fix coverage upload [#377](https://github.com/blink1073/oct2py/pull/377) ([@blink1073](https://github.com/blink1073))
- Add pull request template [#373](https://github.com/blink1073/oct2py/pull/373) ([@blink1073](https://github.com/blink1073))
- Increase branch coverage: pragma nocover, fork-reset tests, docstring fix [#371](https://github.com/blink1073/oct2py/pull/371) ([@blink1073](https://github.com/blink1073))
- Fix codecov.yml structure to use canonical notify.after_n_builds [#369](https://github.com/blink1073/oct2py/pull/369) ([@blink1073](https://github.com/blink1073))
- Improve Codecov configuration with coverage targets and PR comments [#368](https://github.com/blink1073/oct2py/pull/368) ([@blink1073](https://github.com/blink1073))
- Add ASV benchmark suite and CI job [#367](https://github.com/blink1073/oct2py/pull/367) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add branch coverage tests for Oct2Py core methods [#360](https://github.com/blink1073/oct2py/pull/360) ([@blink1073](https://github.com/blink1073))
- Bump octave_kernel action to v0.39.0 [#359](https://github.com/blink1073/oct2py/pull/359) ([@blink1073](https://github.com/blink1073))
- Add justfile targets for running the example notebook [#357](https://github.com/blink1073/oct2py/pull/357) ([@blink1073](https://github.com/blink1073))
- Pin GitHub Actions to commit SHAs and add zizmor security scanning [#350](https://github.com/blink1073/oct2py/pull/350) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Expand test environments [#349](https://github.com/blink1073/oct2py/pull/349) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Add macOS CI job for test_usage.py [#348](https://github.com/blink1073/oct2py/pull/348) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Update dependabot config [#347](https://github.com/blink1073/oct2py/pull/347) ([@blink1073](https://github.com/blink1073))
- Add CodeQL analysis workflow configuration [#345](https://github.com/blink1073/oct2py/pull/345) ([@blink1073](https://github.com/blink1073))
- Add pytest-xdist for parallel test execution [#344](https://github.com/blink1073/oct2py/pull/344) ([@blink1073](https://github.com/blink1073))
- Switch to coverage run and upload results to Codecov [#343](https://github.com/blink1073/oct2py/pull/343) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Update linters and pre-commit checks [#342](https://github.com/blink1073/oct2py/pull/342) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))
- Convert top-level RST files to Markdown [#341](https://github.com/blink1073/oct2py/pull/341) ([@blink1073](https://github.com/blink1073))
- Switch from hatch to uv + just for project management [#340](https://github.com/blink1073/oct2py/pull/340) ([@blink1073](https://github.com/blink1073))
- Update supported Pythons and fix octave install in ci [#338](https://github.com/blink1073/oct2py/pull/338) ([@blink1073](https://github.com/blink1073))

### Documentation improvements

- Switch documentation from Sphinx to MkDocs [#358](https://github.com/blink1073/oct2py/pull/358) ([@blink1073](https://github.com/blink1073))
- docs: document qt backend requirements and OCTAVE_EXECUTABLE [#353](https://github.com/blink1073/oct2py/pull/353) ([@blink1073](https://github.com/blink1073), [@claude](https://github.com/claude))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2024-12-11&to=2026-03-17&type=c))

@blink1073 ([activity](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2024-12-11..2026-03-17&type=Issues)) | @claude ([activity](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Aclaude+updated%3A2024-12-11..2026-03-17&type=Issues))

## 5.8.0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.7.2...e4b82b9c77e7730b56f2f0a0af0f695da7707635))

### Enhancements made

- add keep_matlab_shapes to oct2py [#334](https://github.com/blink1073/oct2py/pull/334) ([@tylerbjackson](https://github.com/tylerbjackson))

### Maintenance and upkeep improvements

- add citation [#330](https://github.com/blink1073/oct2py/pull/330) ([@yasirroni](https://github.com/yasirroni))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2024-08-19&to=2024-12-11&type=c))

[@tylerbjackson](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Atylerbjackson+updated%3A2024-08-19..2024-12-11&type=Issues) | [@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2024-08-19..2024-12-11&type=Issues)

## 5.7.2

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.7.1...7b9400f72a7cf61a31ce0296ca73bec6a523996d))

### Bugs fixed

- add id warning on save_safe_struct [#327](https://github.com/blink1073/oct2py/pull/327) ([@yasirroni](https://github.com/yasirroni))

### Maintenance and upkeep improvements

- Fix CI failures [#329](https://github.com/blink1073/oct2py/pull/329) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2024-08-12&to=2024-08-19&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2024-08-12..2024-08-19&type=Issues) | [@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2024-08-12..2024-08-19&type=Issues)

## 5.7.1

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.7.0))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2024-06-11&to=2024-08-12&type=c))

## 5.7.0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.6.1...e27d7cc8f58034874a1222d5792afb63706efbdb))

### Enhancements made

- Skip unsavable [#321](https://github.com/blink1073/oct2py/pull/321) ([@yasirroni](https://github.com/yasirroni))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2024-03-12&to=2024-06-11&type=c))

[@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2024-03-12..2024-06-11&type=Issues)

## 5.6.1

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.6.0...e1573c7f699f5dee9c0bbd3bbf0a8c94cd8f47d3))

### Maintenance and upkeep improvements

- Add Release Scripts [#318](https://github.com/blink1073/oct2py/pull/318) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#313](https://github.com/blink1073/oct2py/pull/313) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Handle pandas deprecation [#312](https://github.com/blink1073/oct2py/pull/312) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#311](https://github.com/blink1073/oct2py/pull/311) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- chore: update pre-commit hooks [#309](https://github.com/blink1073/oct2py/pull/309) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Update ruff config [#307](https://github.com/blink1073/oct2py/pull/307) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#306](https://github.com/blink1073/oct2py/pull/306) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Clean up lint handling and mypy config [#305](https://github.com/blink1073/oct2py/pull/305) ([@blink1073](https://github.com/blink1073))
- Adopt ruff format [#304](https://github.com/blink1073/oct2py/pull/304) ([@blink1073](https://github.com/blink1073))
- Update typings for mypy 1.6.0 [#302](https://github.com/blink1073/oct2py/pull/302) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#301](https://github.com/blink1073/oct2py/pull/301) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Adopt sp-repo-review [#299](https://github.com/blink1073/oct2py/pull/299) ([@blink1073](https://github.com/blink1073))
- Bump actions/checkout from 3 to 4 [#297](https://github.com/blink1073/oct2py/pull/297) ([@dependabot](https://github.com/dependabot))
- Fix numpy warnings [#293](https://github.com/blink1073/oct2py/pull/293) ([@blink1073](https://github.com/blink1073))
- Fix typings [#288](https://github.com/blink1073/oct2py/pull/288) ([@blink1073](https://github.com/blink1073))
- Add more lint checks [#282](https://github.com/blink1073/oct2py/pull/282) ([@blink1073](https://github.com/blink1073))
- Add spelling and docstring enforcement [#280](https://github.com/blink1073/oct2py/pull/280) ([@blink1073](https://github.com/blink1073))
- Adopt ruff and typing [#279](https://github.com/blink1073/oct2py/pull/279) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-12-06&to=2024-03-12&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2022-12-06..2024-03-12&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Adependabot+updated%3A2022-12-06..2024-03-12&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Apre-commit-ci+updated%3A2022-12-06..2024-03-12&type=Issues)

## 5.6.0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.5.1...6debc3e927329d4b540258f83b7a5d49225eb43a))

### Maintenance and upkeep improvements

- Bump actions/checkout from 2 to 3 [#273](https://github.com/blink1073/oct2py/pull/273) ([@dependabot](https://github.com/dependabot))
- Bump codecov/codecov-action from 1 to 3 [#272](https://github.com/blink1073/oct2py/pull/272) ([@dependabot](https://github.com/dependabot))
- Add dependabot [#271](https://github.com/blink1073/oct2py/pull/271) ([@blink1073](https://github.com/blink1073))
- Bump to Python 3.8+ [#270](https://github.com/blink1073/oct2py/pull/270) ([@blink1073](https://github.com/blink1073))
- Maintenance cleanup [#267](https://github.com/blink1073/oct2py/pull/267) ([@blink1073](https://github.com/blink1073))
- Clean up precommit [#265](https://github.com/blink1073/oct2py/pull/265) ([@blink1073](https://github.com/blink1073))
- Maintenance cleanup [#263](https://github.com/blink1073/oct2py/pull/263) ([@blink1073](https://github.com/blink1073))
- Clean up pyproject and ci [#261](https://github.com/blink1073/oct2py/pull/261) ([@blink1073](https://github.com/blink1073))
- Clean up handling of flake8 [#258](https://github.com/blink1073/oct2py/pull/258) ([@blink1073](https://github.com/blink1073))
- Switch to flit backend [#234](https://github.com/blink1073/oct2py/pull/234) ([@blink1073](https://github.com/blink1073))
- Add flake8 and remove py2 compat [#233](https://github.com/blink1073/oct2py/pull/233) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-03-30&to=2022-12-06&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2022-03-30..2022-12-06&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Adependabot+updated%3A2022-03-30..2022-12-06&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Apre-commit-ci+updated%3A2022-03-30..2022-12-06&type=Issues)

## 5.5.1

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.5.0...d1a6e0e27bcb999668f4bb2da44358e36688fd04))

### Bugs fixed

- Properly Close Octave Sessions [#230](https://github.com/blink1073/oct2py/pull/230) ([@yasirroni](https://github.com/yasirroni))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-03-30&to=2022-03-30&type=c))

[@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2022-03-30..2022-03-30&type=Issues)

## 5.5.0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.4.3...bf2d0ea55b24005781d6d6a15e7b956e37f8456d))

### Bugs fixed

- Fix column vector [#225](https://github.com/blink1073/oct2py/pull/225) ([@yasirroni](https://github.com/yasirroni))

### Maintenance and upkeep improvements

- Handle warnings [#226](https://github.com/blink1073/oct2py/pull/226) ([@blink1073](https://github.com/blink1073))
- Test with warning and fix resourcewarning [#224](https://github.com/blink1073/oct2py/pull/224) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-01-24&to=2022-03-30&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2022-01-24..2022-03-30&type=Issues) | [@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2022-01-24..2022-03-30&type=Issues)

## 5.4.3

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.4.2...793fb0f3ad49f25e70ed7d6ab95d7e1f29941403))

### Bugs fixed

- Clean up plot dir handling [#216](https://github.com/blink1073/oct2py/pull/216) ([@blink1073](https://github.com/blink1073))

### Maintenance and upkeep improvements

- Clean up CI [#213](https://github.com/blink1073/oct2py/pull/213) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-01-10&to=2022-01-24&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2022-01-10..2022-01-24&type=Issues)

## 5.4.2

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.4.1...09d3ee077bd62c2d0d279b311a8f74bedf97429d))

### Enhancements made

- Add \_print_doc convenience function [#209](https://github.com/blink1073/oct2py/pull/209) ([@yasirroni](https://github.com/yasirroni))

### Bugs fixed

- Clean up handling of nout in feval [#208](https://github.com/blink1073/oct2py/pull/208) ([@yasirroni](https://github.com/yasirroni))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-01-04&to=2022-01-10&type=c))

[@yasirroni](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ayasirroni+updated%3A2022-01-04..2022-01-10&type=Issues)

## 5.4.1

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.4.0...9246b150c0682e1a89abbd99f8e811294a901877))

### Bugs fixed

- Fix setup fields [#205](https://github.com/blink1073/oct2py/pull/205) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2022-01-04&to=2022-01-04&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2022-01-04..2022-01-04&type=Issues)

## 5.4.0

([Full Changelog](https://github.com/blink1073/oct2py/compare/v5.3.0...e71a6fa46f17ab80f8e52be75d86d90317f14ee4))

### Enhancements made

- Update for latest octave_kernel [#202](https://github.com/blink1073/oct2py/pull/202) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/blink1073/oct2py/graphs/contributors?from=2021-11-15&to=2022-01-04&type=c))

[@blink1073](https://github.com/search?q=repo%3Ablink1073%2Foct2py+involves%3Ablink1073+updated%3A2021-11-15..2022-01-04&type=Issues)

## 5.3.0 (2021-11-15)

- Update README.rst by @pooyaEst in
  \[#181\[(https://github.com/blink1073/oct2py/pull/181)
- Added the option to specify temp_dir by @adityaapte in
  [#192](https://github.com/blink1073/oct2py/pull/192)
- Update CI by @blink1073 in
  [#193](https://github.com/blink1073/oct2py/pull/193)
- Update docs to fix build by @blink1073 in
  [#194](https://github.com/blink1073/oct2py/pull/194)

## 5.2.0 (2020-08-05)

- Add \_get_max_nout and alternative nout mode using 'max_nout'
  (#170)

## 5.1.0 (2020-04-25)

- FIX: no-OUT-args check was destroying original error location and
  was hiding similar user-errors (#161)

## 5.0.0 (2019-05-03)

\- Removed the `executable` argument to `Oct2Py` in favor of using
environment variables because we need to instantiate the `octave`
convenience instance at startup.

## 4.3.0 (2019-05-02)

- Add a plot_backend kwarg for eval and clean up default backend
  selection.

## 4.2.0 (2019-04-28)

- Add support for Pandas DataFrames and Series (#125)
- Remove unwanted octave-workspace files at exit (#133)

## 4.1.0 (2019-04-23)

- Add a backend property to specify the graphics toolkit

## 4.0.5 (2017-04-08)

- Fixed a thread safety bug when writing matlab files.

## 4.0.0 (2017-03-07)

### Features

- Added an `feval` method, which can be used to call Octave functions
  without creating a dynamic function. The function also supports
  calling a function by path.
- The new `feval` method and the dynamic functions both now support a
  `store_as` argument, which saves the result of the call to the
  Octave workspace rather than returning it.
- Added `get_pointer` method that can be used to retrieve a pointer to
  a value in the Octave namespace, including Octave functions.
  Pointers can be passed to `feval` or dynamic functions as function
  arguments. A pointer passed as a nested value will be passed by
  value instead.
- Added an Oct2Py `Cell` ndarray subclass used for Octave cell arrays.
- Added an Oct2PY `StructArray` numpy `recarray` subclass used for
  Octave structure arrays.
- Added a `stream_handler` argument to `eval` and the new `feval`
  method that can be used to capture streaming output using a simple
  callback.

### Breaking Changes

- Removed inferred `nout` for Octave function calls; it must be
  explicitly given if not `1`. The old behavior was too surprising and
  relied on internal logic of the CPython interpreter.
- Any code that received Cell or Struct Array values will need to be
  updated.
- Numpy booleans are now equivalent to Octave literals. They were
  previously handled as uint8 when sending to Octave.
- Deprecated the use of keyword arguments to Octave function calls,
  use standard Octave calling conventions.
- Deprecated the `log` and [return_both]{.title-ref} keyword arguments
  to `eval()`. See docs on `Oct2Py.eval()` for more information.
- Oct2Py will no longer create dynamic functions for values that are
  not Octave functions - use [get_pointer]{.title-ref} or `pull`
  instead.

## 3.9.0 (2017-01-28)

- Added support for Python 3.6 and Octave [input()]{.title-ref}
  functions.

## 3.8.0 (2016-12-25)

- Added support for Octave class objects and clean up repr() and
  help() for dynamic Octave methods, (PR #104)

## 3.7.0 (2016-12-24)

- Fixed error that caused the session to crash on Windows when Octave
  encountered a syntax error.
- Added separate width and height specifiers to the
  [%%octave]{.title-ref} magic so the image can be constrained in one
  dimension while maintaining its aspect ratio.
- Added an [extract_figures]{.title-ref} method to the
  [Oct2Py]{.title-ref} class which gives back a list of IPython Image
  or SVG objects for the created figures.
- Completely rewrote the internal communication to Octave on top of
  the [octave_kernel]{.title-ref}, which enabled the Windows crash
  fix.
- Removed the internal [\_make_figs.m]{.title-ref} file, since that
  functionality is now in [octave_kernel]{.title-ref}.

## 3.6.1 (2016-11-20)

- More plot creation cleanup - fault tolerance for svg files.

## 3.6.0 (2016-11-20)

- Cleanup of plot creation - separate \_make_figs.m file

## 3.5.0 (2016-01-23)

- Disable --braindead Octave argument.

## 3.4.0 (2016-01-09)

- Improved handling of Octave executable

## 3.3.0 (2015-07-16)

- Support for Octave 4.0
- Fixes for corner cases on structs

## 3.2.0 (2015-06-18)

- Better handling of returned empty values
- Allow OCTAVE environment variable

## 3.1.0 (2015-02-13)

- Fix handling of temporary files for multiprocessing
- Clean up handling of plot settings

## 3.0.0 (2015-01-10)

- Add [convert_to_float]{.title-ref} property that is True by default.
- Suppress output in dynamic function calls (using ';')

## 2.4.2 (2014-12-19)

- Add support for Octave 3.8 on Windows

## 2.4.1 (2014-10-22)

- Prevent zombie octave processes.

## 2.4.0 (2014-09-27)

- Make [eval]{.title-ref} output match Octave session output. If
  verbose=True, print all Octave output. Return the last "ans" from
  Octave, if available. If you need the response, use
  [return_both]{.title-ref} to get the [(resp, ans)]{.title-ref} pair
  back
- As a result of the previous, Syntax Errors in Octave code will now
  result in a closed session on Windows.
- Fix sizing of plots when in inline mode.
- Numerous corner case bug fixes.

## 2.3.0 (2014-09-14)

- Allow library to install without meeting explicit dependencies
- Fix handling of cell magic with inline comments.

## 2.2.0 (2014-09-14)

- Fix IPython notebook support in Ubuntu 14.04
- Fix toggling of inline plotting

## 2.1.0 (2014-08-23)

- Allow keyword arguments in functions: \[octave.plot([1,2,3],
  linewidth=2))\]{.title-ref} These are translated to ("prop", value)
  arguments to the function.
- Add option to show plotting gui with [-g]{.title-ref} flag in
  OctaveMagic.
- Add ability to specify the Octave executable as a keyword argument
  to the Oct2Py object.
  - Add specifications for plot saving instead of displaying plots
    to [eval]{.title-ref} and dynamic functions.

## 2.0.0 (2014-08-14)

\- **Breaking changes**

: -- Removed methods: [run]{.title-ref}, [call]{.title-ref},
[lookfor]{.title-ref} -- Renamed methods: [\_eval]{.title-ref} ->
[eval]{.title-ref}, [get]{.title-ref} -> [pull]{.title-ref},
[put]{.title-ref} -> [push]{.title-ref}, [close]{.title-ref} ->
[exit]{.title-ref} -- Removed run and call in favor of using eval
dynamic functions. -- Renamed methods to avoid overshadowing Octave
builtins and for clarity. -- When a command results in "ans", the
value of "ans" is returned instead of the printed string.

- Syntax Errors on Windows no longer crash the session.
- Added ability to interrupt commands with CTRL+C.
- Fixed Octavemagic not following current working directory.

## 1.6.0 (2014-07-26)

- Added 'temp_dir' argument to Oct2Py constructor (#50)
- Added 'kill_octave' convenience method to kill zombies (#46)
- Improved Octave shutdown handling (#45, #46)
- Added 'oned_as' argument to Oct2Py constructor (#49)

## 1.5.0 (2014-07-01)

- Removed optional pexpect dependency
- Brought back support for Python 2.6

## 1.4.0 (2014-06-28)

- Added support for Python 3.4 and Octave 3.8
- Support long_field names
- Dropped support for Python 3.2

## 1.3.0 (2014-01-20)

- Added support for Octave keyboard function (requires pexpect on
  Linux).
- Improved error messages when things go wrong in the Octave session
- (Linux) When pexpect is installed, Octave no longer closes session
  when a Syntax Error is encountered.
- Fixed: M-files with no docstrings are now supported.

## 1.2.0 (2013-12-14)

- OctaveMagic is now part of Oct2Py: `%load_ext oct2py.ipython`
- Enhanced Struct behavior - supports REPL completion and pickling
- Fixed: Oct2Py will install on Python3 when using setup.py

## 1.1.1 (2013-11-14)

- Added support for wheels.
- Fixed: Put docs back in the manifest.
- Fixed: Oct2py will install when there is no Octave available.

## 1.1.0 (2013-10-27)

- Full support for plotting with no changes to user code
- Support for Nargout = 0
- Overhaul of front end documentation
- Improved test coverage and added badge.
- Supports Python 2 and 3 from a single code base.
- Fixed: Allow help(Oct2Py()) and tab completion on REPL
- Fixed: Allow tab completion for Oct2Py().\<TAB> in REPL

## 1.0.0 (2013-10-4)

- Support for Python 3.3
- Added logging to Oct2Py class with optional logger keyword
- Added context manager
- Added support for unicode characters
- Improved support for cell array and sparse matrices
- Fixed: Changes to user .m files are now refreshed during a session
- Fixed: Remove popup console window on Windows

## 0.4.0 (2013-01-05)

- Singleton elements within a cell array treated as a singleton list
- Added testing on 64 bit architecture
- Fixed: Incorrect Octave commands give a more sensible error message

## 0.3.6 (2012-10-08)

- Default Octave working directory set to same as OS working dir
- Fixed: Plot rending on older Octave versions

## 0.3.4 (2012-08-17)

- Improved speed for larger matrices, better handling of singleton
  dimensions

## 0.3.0 (2012-06-16)

- Added Python 3 support
- Added support for numpy object type

## 0.2.1 (2011-11-25)

- Added Sphinx documentation

## 0.1.4 (2011-11-15)

- Added support for pip

## 0.1.0 (2011-11-11)

- Initial Release
