annotate @pyobject/pyobject.m @ 245:72a2f508f2d8

maint: Use Octave keywords for ending code blocks * @pyobject/dummy.m: Use "endfunction" instead of "end". * @pyobject/pyobject.m: Use "endproperties" instead of "end". * @pyobject/subsref.m: Use "endif" instead of "end".
author Mike Miller <mtmiller@octave.org>
date Wed, 27 Jul 2016 17:01:28 -0700
parents 9da4ca336dda
children 4acc64f89d67
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
1 ## Copyright (C) 2016 Colin B. Macdonald
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
2 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
3 ## This file is part of PyTave.
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
4 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
5 ## OctSymPy is free software; you can redistribute it and/or modify
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
6 ## it under the terms of the GNU General Public License as published
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
7 ## by the Free Software Foundation; either version 3 of the License,
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
8 ## or (at your option) any later version.
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
9 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
10 ## This software is distributed in the hope that it will be useful,
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
12 ## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
13 ## the GNU General Public License for more details.
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
14 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
15 ## You should have received a copy of the GNU General Public
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
16 ## License along with this software; see the file COPYING.
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
17 ## If not, see <http://www.gnu.org/licenses/>.
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
18
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
19 ## -*- texinfo -*-
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
20 ## @documentencoding UTF-8
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
21 ## @defun pyobject (@var{s})
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
22 ## Wrap a Python object.
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
23 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
24 ## TODO: where/how to document classdef classes?
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
25 ##
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
26 ## @seealso{pyexec, pyeval}
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
27 ## @end defun
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
28
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
29
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
30 classdef pyobject < handle
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
31 properties
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
32 id
245
72a2f508f2d8 maint: Use Octave keywords for ending code blocks
Mike Miller <mtmiller@octave.org>
parents: 236
diff changeset
33 endproperties
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
34
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
35 methods (Static)
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
36 function x = fromPythonVarName (pyvarname)
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
37 # Warning: just for testing, may be removed without notice!
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
38 # If @var{pyvarname} is a string, its assumed to be a variable
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
39 # name, e.g., previously created with pyexec. This must exist
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
40 # at the time of construction but it can disappear later (we
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
41 # will keep track of the reference).
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
42 if (! ischar (pyvarname))
227
c56b85f405ba maint: apply Octave whitespace rules
Mike Miller <mtmiller@octave.org>
parents: 224
diff changeset
43 error ("pyobject: currently we only take variable names as input")
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
44 endif
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
45 cmd = sprintf ([ ...
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
46 'if not ("__InOct__" in vars() or "__InOct__" in globals()):\n' ...
217
69abda471c67 Attempt at moving pyobject from octave to python
Colin Macdonald <cbm@m.fsf.org>
parents: 216
diff changeset
47 ' __InOct__ = dict()\n' ...
69abda471c67 Attempt at moving pyobject from octave to python
Colin Macdonald <cbm@m.fsf.org>
parents: 216
diff changeset
48 ' # FIXME: make it accessible elsewhere?\n' ...
69abda471c67 Attempt at moving pyobject from octave to python
Colin Macdonald <cbm@m.fsf.org>
parents: 216
diff changeset
49 ' import __main__\n' ...
69abda471c67 Attempt at moving pyobject from octave to python
Colin Macdonald <cbm@m.fsf.org>
parents: 216
diff changeset
50 ' __main__.__InOct__ = __InOct__\n' ...
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
51 '__InOct__[hex(id(%s))] = %s' ], ...
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
52 pyvarname, pyvarname);
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
53 pyexec (cmd);
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
54 id = pyeval (["hex(id(" pyvarname "))"]);
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
55 x = pyobject (id);
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
56 endfunction
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
57 endmethods
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
58
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
59
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
60 methods
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
61 function x = pyobject (id)
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
62 % warning: not intended for casual use: you must also insert
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
63 % the object into the Python `__InOct__` dict with key `id`.
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
64 x.id = id;
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
65 endfunction
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
66
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
67 function delete (x)
223
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
68 # Called on clear of the last reference---for subclasses of
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
69 # handle; not called at all for "value classes".
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
70 #
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
71 # FIXME: #46497 this is never called!
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
72 # Workaround: call @code{delete(x)} right before @code{clear x}. But
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
73 # be careful, @code{x} needs to be the last reference: don't do this:
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
74 # @example
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
75 # d = pyobject (...);
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
76 # d2 = d;
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
77 # delete (d)
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
78 # clear d
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
79 # d2
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
80 # @print{} ... KeyError ...
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
81 # @end example
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
82
223
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
83 #disp ("delete")
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
84
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
85 # throws KeyError if it wasn't in there for some reason
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
86 cmd = sprintf ("__InOct__.pop('%s')", x.id);
06835a3e3384 pyobject: remove unnecessary forcedelete method
Colin Macdonald <cbm@m.fsf.org>
parents: 222
diff changeset
87 pyexec (cmd)
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
88 endfunction
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
89
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
90 # methods defined in external files
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
91 dummy (x)
216
3b2b7db7d709 Improve display
Colin Macdonald <cbm@m.fsf.org>
parents: 213
diff changeset
92 display (x)
221
a76d75683455 pyobject: split subsref to its own file, reformat
Colin Macdonald <cbm@m.fsf.org>
parents: 220
diff changeset
93 subsref (x, idx)
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
94
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
95 function r = getid (x)
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
96 r = x.id;
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
97 endfunction
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
98
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
99 function varargout = disp (x)
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
100 s = pyeval (sprintf ("str(__InOct__['%s'])", x.id));
216
3b2b7db7d709 Improve display
Colin Macdonald <cbm@m.fsf.org>
parents: 213
diff changeset
101 if (nargout == 0)
3b2b7db7d709 Improve display
Colin Macdonald <cbm@m.fsf.org>
parents: 213
diff changeset
102 disp (s)
3b2b7db7d709 Improve display
Colin Macdonald <cbm@m.fsf.org>
parents: 213
diff changeset
103 else
3b2b7db7d709 Improve display
Colin Macdonald <cbm@m.fsf.org>
parents: 213
diff changeset
104 varargout = {s};
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
105 endif
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
106 endfunction
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
107
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
108 function s = whatclass (x)
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
109 s = pyeval (sprintf ("str(__InOct__['%s'].__class__)", x.id));
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
110 endfunction
209
57807b5fa7bf Change name of pyobj to pyobject
genuinelucifer
parents:
diff changeset
111
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
112 function vargout = help (x)
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
113 idx = struct ("type", ".", "subs", "__doc__");
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
114 s = subsref (x, idx);
213
a54ab59c491d merge genuinelucifer/cbm_pytave to macdonald/cbm_pytave
Colin Macdonald <cbm@m.fsf.org>
parents: 209
diff changeset
115 if (nargout == 0)
218
02da92723889 Change style, close to Octave conventions
Colin Macdonald <cbm@m.fsf.org>
parents: 217
diff changeset
116 disp (s)
213
a54ab59c491d merge genuinelucifer/cbm_pytave to macdonald/cbm_pytave
Colin Macdonald <cbm@m.fsf.org>
parents: 209
diff changeset
117 else
a54ab59c491d merge genuinelucifer/cbm_pytave to macdonald/cbm_pytave
Colin Macdonald <cbm@m.fsf.org>
parents: 209
diff changeset
118 vargout = {s};
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
119 endif
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
120 endfunction
236
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
121
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
122 function len = length (x)
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
123 try
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
124 len = pycall ("len", x);
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
125 catch
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
126 len = 1;
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
127 end_try_catch
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
128 endfunction
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
129 endmethods
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
130 endclassdef
213
a54ab59c491d merge genuinelucifer/cbm_pytave to macdonald/cbm_pytave
Colin Macdonald <cbm@m.fsf.org>
parents: 209
diff changeset
131
224
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
132
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
133 %!test
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
134 %! pyexec ("import sys")
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
135 %! A = pyeval ("sys");
7feece80fbfa pyobject: Octave-style formatting, minor edits
Colin Macdonald <cbm@m.fsf.org>
parents: 223
diff changeset
136 %! assert (isa (A, "pyobject"))
236
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
137
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
138 %!test
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
139 %! pyobj = pyeval ("{1:2, 2:3, 3:4}");
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
140 %! assert (isa (pyobj, "pyobject"))
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
141 %! assert (length (pyobj), 3)
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
142
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
143 %!test
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
144 %! pyexec ("import sys");
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
145 %! pyobj = pyeval ("sys");
9da4ca336dda Add 'length' property to @pyobject (fixes issue #9)
Abhinav Tripathi <genuinelucifer@gmail.com>
parents: 227
diff changeset
146 %! assert (length (pyobj), 1)