- 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 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 or
pull
instead.
- Added support for Python 3.6 and Octave input() 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 magic so the image can be constrained in one dimension while maintaining its aspect ratio.
- Added an extract_figures method to the Oct2Py 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, which enabled the Windows crash fix.
- Removed the internal _make_figs.m file, since that functionality is now in octave_kernel.
- 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 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 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 to get the (resp, ans) 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)) These are translated to ("prop", value) arguments to the function.
- Add option to show plotting gui with -g 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 and dynamic functions.
- - Breaking changes
-- Removed methods: run, call, lookfor -- Renamed methods: _eval -> eval, get -> pull, put -> push, close -> exit -- 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