- add id warning on save_safe_struct #327 (@yasirroni)
- Fix CI failures #329 (@blink1073)
(GitHub contributors page for this release)
(GitHub contributors page for this release)
- Skip unsavable #321 (@yasirroni)
(GitHub contributors page for this release)
- Add Release Scripts #318 (@blink1073)
- chore: update pre-commit hooks #313 (@pre-commit-ci)
- Handle pandas deprecation #312 (@blink1073)
- chore: update pre-commit hooks #311 (@pre-commit-ci)
- chore: update pre-commit hooks #309 (@pre-commit-ci)
- Update ruff config #307 (@blink1073)
- chore: update pre-commit hooks #306 (@pre-commit-ci)
- Clean up lint handling and mypy config #305 (@blink1073)
- Adopt ruff format #304 (@blink1073)
- Update typings for mypy 1.6.0 #302 (@blink1073)
- chore: update pre-commit hooks #301 (@pre-commit-ci)
- Adopt sp-repo-review #299 (@blink1073)
- Bump actions/checkout from 3 to 4 #297 (@dependabot)
- Fix numpy warnings #293 (@blink1073)
- Fix typings #288 (@blink1073)
- Add more lint checks #282 (@blink1073)
- Add spelling and docstring enforcement #280 (@blink1073)
- Adopt ruff and typing #279 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @dependabot | @pre-commit-ci
- Bump actions/checkout from 2 to 3 #273 (@dependabot)
- Bump codecov/codecov-action from 1 to 3 #272 (@dependabot)
- Add dependabot #271 (@blink1073)
- Bump to Python 3.8+ #270 (@blink1073)
- Maintenance cleanup #267 (@blink1073)
- Clean up precommit #265 (@blink1073)
- Maintenance cleanup #263 (@blink1073)
- Clean up pyproject and ci #261 (@blink1073)
- Clean up handling of flake8 #258 (@blink1073)
- Switch to flit backend #234 (@blink1073)
- Add flake8 and remove py2 compat #233 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @dependabot | @pre-commit-ci
- Properly Close Octave Sessions #230 (@yasirroni)
(GitHub contributors page for this release)
- Fix column vector #225 (@yasirroni)
- Handle warnings #226 (@blink1073)
- Test with warning and fix resourcewarning #224 (@blink1073)
(GitHub contributors page for this release)
- Clean up plot dir handling #216 (@blink1073)
- Clean up CI #213 (@blink1073)
(GitHub contributors page for this release)
- Add _print_doc convenience function #209 (@yasirroni)
- Clean up handling of nout in feval #208 (@yasirroni)
(GitHub contributors page for this release)
- Fix setup fields #205 (@blink1073)
(GitHub contributors page for this release)
- Update for latest octave_kernel #202 (@blink1073)
(GitHub contributors page for this release)
- Update README.rst by @pooyaEst in [#181[(#181)
- Added the option to specify temp_dir by @adityaapte in #192
- Update CI by @blink1073 in #193
- Update docs to fix build by @blink1073 in #194
- Add _get_max_nout and alternative nout mode using 'max_nout' (#170)
- FIX: no-OUT-args check was destroying original error location and was hiding similar user-errors (#161)
- Removed the executable
argument to Oct2Py
in favor of using
environment variables because we need to instantiate the octave
convenience instance at startup.
- Add a plot_backend kwarg for eval and clean up default backend selection.
- Add support for Pandas DataFrames and Series (#125)
- Remove unwanted octave-workspace files at exit (#133)
- Add a backend property to specify the graphics toolkit
- Fixed a thread safety bug when writing matlab files.
- 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 astore_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 tofeval
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
numpyrecarray
subclass used for Octave structure arrays. - Added a
stream_handler
argument toeval
and the newfeval
method that can be used to capture streaming output using a simple callback.
- Removed inferred
nout
for Octave function calls; it must be explicitly given if not1
. 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 toeval()
. See docs onOct2Py.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.
- Added support for Python 3.6 and Octave [input()]{.title-ref} functions.
- Added support for Octave class objects and clean up repr() and help() for dynamic Octave methods, (PR #104)
- 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}.
- More plot creation cleanup - fault tolerance for svg files.
- Cleanup of plot creation - separate _make_figs.m file
- Disable --braindead Octave argument.
- Improved handling of Octave executable
- Support for Octave 4.0
- Fixes for corner cases on structs
- Better handling of returned empty values
- Allow OCTAVE environment variable
- Fix handling of temporary files for multiprocessing
- Clean up handling of plot settings
- Add [convert_to_float]{.title-ref} property that is True by default.
- Suppress output in dynamic function calls (using ';')
- Add support for Octave 3.8 on Windows
- Prevent zombie octave processes.
- 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.
- Allow library to install without meeting explicit dependencies
- Fix handling of cell magic with inline comments.
- Fix IPython notebook support in Ubuntu 14.04
- Fix toggling of inline plotting
- 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.
- 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.
- 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)
- Removed optional pexpect dependency
- Brought back support for Python 2.6
- Added support for Python 3.4 and Octave 3.8
- Support long_field names
- Dropped support for Python 3.2
- 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.
- 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
- Added support for wheels.
- Fixed: Put docs back in the manifest.
- Fixed: Oct2py will install when there is no Octave available.
- 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
- 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
- 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
- Default Octave working directory set to same as OS working dir
- Fixed: Plot rending on older Octave versions
- Improved speed for larger matrices, better handling of singleton dimensions
- Added Python 3 support
- Added support for numpy object type
- Added Sphinx documentation
- Added support for pip
- Initial Release