From: <fwi...@us...> - 2006-05-08 02:27:56
|
Revision: 2723 Author: fwierzbicki Date: 2006-05-07 19:27:47 -0700 (Sun, 07 May 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2723&view=rev Log Message: ----------- gexpose.py extended to facilitate in-place updates of the generated code. Began implementing __reduce__ for pickle support. Modified Paths: -------------- trunk/sandbox/jt/baseset.expose trunk/sandbox/jt/complex.expose trunk/sandbox/jt/gexpose.py trunk/sandbox/jt/int.expose trunk/sandbox/jt/set.expose Modified: trunk/sandbox/jt/baseset.expose =================================================================== --- trunk/sandbox/jt/baseset.expose 2006-05-04 22:09:51 UTC (rev 2722) +++ trunk/sandbox/jt/baseset.expose 2006-05-08 02:27:47 UTC (rev 2723) @@ -13,6 +13,7 @@ expose_meth: baseset_> :o issubset o expose_meth: baseset_> :o issuperset o expose_meth: baseset_> :i __len__ +expose_meth: baseset_> :o __reduce__ expose_meth: __hash__ `ideleg`(hashCode); expose_meth: baseset_> __repr__ Modified: trunk/sandbox/jt/complex.expose =================================================================== --- trunk/sandbox/jt/complex.expose 2006-05-04 22:09:51 UTC (rev 2722) +++ trunk/sandbox/jt/complex.expose 2006-05-08 02:27:47 UTC (rev 2723) @@ -16,6 +16,7 @@ expose_new_immutable: expose_meth: conjugate expose_meth: :b __nonzero__ +expose_meth: :o __reduce__ expose_meth: __repr__ return new PyString(self.complex_toString()); expose_meth: __str__ Modified: trunk/sandbox/jt/gexpose.py =================================================================== --- trunk/sandbox/jt/gexpose.py 2006-05-04 22:09:51 UTC (rev 2722) +++ trunk/sandbox/jt/gexpose.py 2006-05-08 02:27:47 UTC (rev 2723) @@ -501,21 +501,52 @@ return typeinfo.tnaked().texpand({'basic': basic.tbind(bindings), 'setup': setup},nindent=1) -def process(fn, outfile=sys.stdout): +def process(fn, mergefile=None): gen = Gen() directives.execute(directives.load(fn),gen) result = gen.generate() - print >> outfile, result + if mergefile is None: + print result + else: + result = merge(mergefile, result) #gen.debug() def usage(): - print "Usage: python %s infile [outfile]" % sys.argv[0] + print "Usage: python %s infile [mergefile]" % sys.argv[0] +def merge(filename, generated): + in_generated = False + start_found = False + end_found = False + start_pattern = ' //~ BEGIN GENERATED REGION -- DO NOT EDIT SEE gexpose.py' + end_pattern = ' //~ END GENERATED REGION -- DO NOT EDIT SEE gexpose.py' + output = [] + f = file(filename, 'r') + for line in f: + if line.startswith(start_pattern): + in_generated = True + start_found = True + elif line.startswith(end_pattern): + in_generated = False + end_found = True + output.append('%s\n%s\n%s\n' % (start_pattern, generated, end_pattern)) + elif in_generated: + continue + else: + output.append(line) + f.close() + if not start_found: + raise 'pattern [%s] not found in %s' % (start_pattern, filename) + if not end_found: + raise 'pattern [%s] not found in %s' % (end_pattern, filename) + f = file(filename, 'w') + f.write("".join(output)) + mergefile.close() + if __name__ == '__main__': if (len(sys.argv) < 2 or len(sys.argv) > 3): usage() elif (len(sys.argv) == 2): process(sys.argv[1]) elif (len(sys.argv) == 3): - process(sys.argv[1], file(sys.argv[2], 'w')) - + process(sys.argv[1], sys.argv[2]) Modified: trunk/sandbox/jt/int.expose =================================================================== --- trunk/sandbox/jt/int.expose 2006-05-04 22:09:51 UTC (rev 2722) +++ trunk/sandbox/jt/int.expose 2006-05-08 02:27:47 UTC (rev 2723) @@ -13,6 +13,7 @@ expose_vanilla_pow expose_new_immutable: expose_meth: :b __nonzero__ +expose_meth: :o __reduce__ expose_meth: __repr__ return new PyString(self.int_toString()); expose_meth: __str__ @@ -22,4 +23,4 @@ # TODO # (__coerce__, __doc__) # -# (( __rand__, __rdivmod__, __rlshift__, __ror__, __rrshift__, __rxor__, __rpow__ )) \ No newline at end of file +# (( __rand__, __rdivmod__, __rlshift__, __ror__, __rrshift__, __rxor__, __rpow__ )) Modified: trunk/sandbox/jt/set.expose =================================================================== --- trunk/sandbox/jt/set.expose 2006-05-04 22:09:51 UTC (rev 2722) +++ trunk/sandbox/jt/set.expose 2006-05-08 02:27:47 UTC (rev 2723) @@ -14,6 +14,7 @@ expose_meth: :- intersection_update o expose_meth: :- symmetric_difference_update o expose_meth: :- difference_update o +expose_meth: :o __reduce__ expose_wide_meth: __init__ -1 -1 `vdeleg`(init); `void; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |