Mercurial > pytave
view package/pytave.py @ 0:4da14cce0890 pytave-branch
First launchpad.net check in.
author | David Grundberg <c04dgg@cs.umu.se> |
---|---|
date | Fri, 17 Oct 2008 12:05:46 +0200 |
parents | |
children | d95e9d46f538 |
line wrap: on
line source
# -*- coding:utf-8 -*- # # Copyright 2008 David Grundberg, HÃ¥kan Fors Nilsson # # This file is part of Pytave. # # Pytave is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # Pytave is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Pytave. If not, see <http://www.gnu.org/licenses/>. """Python to Octave bridge""" import _pytave _pytave.init() (OctaveError, ValueConvertError, ObjectConvertError) \ = _pytave.get_exceptions(); def feval(nargout, funcname, *arguments): """Executes an Octave function called funcname. The function is set to return nargout values. Returned values are stored in a tuple. If the nargout argument is less than or equal to 0, an empty tuple is returned. M-files are searched for in the Octave path. See also the Octave documentation for the builtin Octave function feval. Type conversions **************** The following type conversions are supported: Python to Octave ================ Objects: int (32-bit) int32 float (64-bit) double str string Numeric Array: UBYTE, SBYTE, matrix of correct type USHORT, SHORT, -''- UINT, SINT, -''- LONG, -''- DOUBLE -''- All other objects causes a pytave.ObjectConvertError to be raised. This exception inherits TypeError. Octave to Python ================ Scalar values to objects: bool bool real scalar float (64-bit) string, sq_string str str string Matrix values to Numeric arrays: int64 LONG int32, uint32 INT, UINT int16, uint16 SHORT, USHORT int8, unint8 SBYTE, UBYTE All other values causes a pytave.ValueConvertError to be raised. This exception inherits TypeError. Errors ****** Octave runtime errors are encapsulated into pytave.OctaveError exceptions, base class RuntimeError. """ return _pytave.feval(nargout, funcname, arguments) def addpath(*arguments): """See Octave documentation""" return _pytave.feval(1, "addpath", arguments)[0] def rmpath(*paths): """See Octave documentation""" return _pytave.feval(1, "rmpath", paths)[0] def path(*paths): """See Octave documentation""" return _pytave.feval(1, "path", paths)[0] # Emacs # Local Variables: # fill-column:70 # coding:utf-8 # indent-tabs-mode:t # tab-width:3 # End: # vim: set textwidth=70 noexpandtab tabstop=3 :