From: Samuele P. <ped...@us...> - 2005-04-05 23:01:00
|
Update of /cvsroot/jython/sandbox/jt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7875 Modified Files: gexpose.py list.expose sequence.expose Log Message: support inclusion in gexpose too, list.expose now include sequence.expose, PySequence itself should be exposed, the base class of list should show up as object, that's what type_base_class achieves; sequence.expose contains expose directive using the new mechanism for explicitly choosing delegation prefix. We will put corresponding seq_ method in sequence so that they can be used from PyList (and other PySequence subclasses) typeSetup. PySequence itself OTOH remains a Jython internal impl detail. See next checking for the concrete changes to PyList, PySequence and PyObject. Index: gexpose.py =================================================================== RCS file: /cvsroot/jython/sandbox/jt/gexpose.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** gexpose.py 3 Apr 2005 21:39:40 -0000 1.6 --- gexpose.py 5 Apr 2005 23:00:51 -0000 1.7 *************** *** 23,26 **** --- 23,27 ---- 'type_as', 'type_name','type_class','type_base_class', + 'incl', 'expose_getset', 'expose_unary','expose_binary', *************** *** 123,126 **** --- 124,132 ---- self.type_base_class = JavaTemplate(parm.strip()) + def dire_incl(self,name,parm,body): + if body is not None: + self.invalid(name,'non-empty body') + directives.execute(directives.load(parm.strip()+'.expose'),self) + def dire_expose_getset(self,name,parm,body): if body is not None: *************** *** 258,261 **** --- 264,268 ---- if parm.find('>') != -1: prefix, parm = parm.split('>', 1) + parm = parm.strip() else: prefix = self.type_name_plain+'_' Index: list.expose =================================================================== RCS file: /cvsroot/jython/sandbox/jt/list.expose,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** list.expose 1 Mar 2005 04:08:04 -0000 1.3 --- list.expose 5 Apr 2005 23:00:51 -0000 1.4 *************** *** 2,5 **** --- 2,7 ---- type_name: list type_class: PyList + type_base_class: PyObject + incl: sequence # exposed methods expose_meth: :- append o *************** *** 12,21 **** expose_meth: :- reverse expose_meth: :- sort o? - expose_binary: __ne__ __eq__ - expose_meth: :b __contains__ o expose_meth: :i __len__ expose_meth: __add__ o expose_meth: __iadd__ o - expose_meth: __add__ o expose_meth: __imul__ o #expose_meth: __reduce__ --- 14,20 ---- *************** *** 30,34 **** `void; expose_new_mutable: - #expose_index_getitem: - #expose_meth: :b __nonzero__ --- 29,31 ---- Index: sequence.expose =================================================================== RCS file: /cvsroot/jython/sandbox/jt/sequence.expose,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sequence.expose 5 Apr 2005 01:54:49 -0000 1.1 --- sequence.expose 5 Apr 2005 23:00:51 -0000 1.2 *************** *** 1,22 **** ! # setup ! type_name: sequence ! type_class: PySequence # exposed methods ! expose_binary: __ne__ __eq__ ! expose_meth: :b __contains__ o ! expose_meth: :i __len__ ! expose_meth: __add__ o ! expose_meth: __mul__ o ! expose_meth: __rmul__ o ! expose_meth: :- __delitem__ o ! expose_meth: :- __setitem__ oo ! expose_key_getitem: ! expose_vanilla_cmp: ! expose_meth: :b __nonzero__ ! expose_meth: __repr__ ! `sdeleg`(toString); ! ! expose_meth: __getslice__ ooo ! expose_meth: :- __delslice__ ooo ! expose_meth: :- __setslice__ oooo --- 1,12 ---- ! # sequence itself is not python visible # exposed methods ! expose_binary: seq_> __ne__ __eq__ ! expose_meth: object_> :b __contains__ o ! expose_meth: seq_> :- __delitem__ o ! expose_meth: seq_> :- __setitem__ oo ! expose_index_getitem: seq_> ! expose_meth: seq_> :b __nonzero__ ! expose_meth: seq_> __getslice__ ooo ! expose_meth: seq_> :- __delslice__ ooo ! expose_meth: seq_> :- __setslice__ oooo |