Mercurial > pytave
view @pyobject/display.m @ 216:3b2b7db7d709
Improve display
* @pyobject/display.m: custom display method
* @pyobject.m: disp method can return string
* @pyobject/dummy.m: update doctests
author | Colin Macdonald <cbm@m.fsf.org> |
---|---|
date | Fri, 27 May 2016 14:13:34 -0700 |
parents | |
children | 7feece80fbfa |
line wrap: on
line source
%% Copyright (C) 2016 Colin B. Macdonald %% %% This file is part of PyTave. %% %% OctSymPy 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 3 of the License, %% or (at your option) any later version. %% %% This software 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 this software; see the file COPYING. %% If not, see <http://www.gnu.org/licenses/>. %% -*- texinfo -*- %% @documentencoding UTF-8 %% @defmethod @@pyobject display (@var{x}) %% Custom display for pyobjects. %% %% Example: %% @example %% @group %% pyexec('import sys') %% sysmodule = pyeval('sys') %% @result{} sysmodule = [pyobject ...] %% %% <module 'sys' (built-in)> %% %% @end group %% @end example %% %% @seealso{@@pyobject/disp} %% @end defmethod function display (x) loose = eval('! __compactformat__ ()'); printf ('%s = [pyobject %s]\n', inputname (1), getid (x)); s = disp (x); s = make_indented (s); if (loose), printf('\n'); end disp(s) if (loose), printf('\n'); end end function s = make_indented(s, n) if (nargin == 1) n = 2; end pad = char (double (' ')*ones (1,n)); newl = sprintf('\n'); s = strrep (s, newl, [newl pad]); s = [pad s]; % first line end