Revision: 465
http://rpy.svn.sourceforge.net/rpy/?rev=465&view=rev
Author: lgautier
Date: 2008-03-24 09:32:01 -0700 (Mon, 24 Mar 2008)
Log Message:
-----------
- R is now callable, and will evaluate the string passed as an argument
(just like RPy is currently doing it)
- Renvironment is now iter-able
- Unknown R objects are now mapped to Robject (so it feels more coherent with
the rest)
Modified Paths:
--------------
branches/rpy_nextgen/rpy/robjects/__init__.py
Modified: branches/rpy_nextgen/rpy/robjects/__init__.py
===================================================================
--- branches/rpy_nextgen/rpy/robjects/__init__.py 2008-03-24 09:04:24 UTC
(rev 464)
+++ branches/rpy_nextgen/rpy/robjects/__init__.py 2008-03-24 16:32:01 UTC
(rev 465)
@@ -23,7 +23,7 @@
elif isinstance(o, rinterface.SexpS4):
res = RS4(o)
else:
- res = o
+ res = Robject(o)
return res
#FIXME: clean and nice mechanism to allow user-specifier mapping function
@@ -67,6 +67,9 @@
class Robject(object):
name = None
+ def __init__(self, o):
+ self._sexp = o
+
def __str__(self):
tmp = r.fifo("")
r.sink(tmp)
@@ -188,6 +191,9 @@
robj = mapperPy2R(value)
self._sexp[item] = robj._sexp
+ def __iter__(self):
+ return iter(self._sexp)
+
class RS4(Robject):
def __init__(self, o):
if (isinstance(o, rinterface.SexpS4)):
@@ -229,6 +235,10 @@
s += str(self["version"])
return s
+ def __call__(self, string):
+ p = self.parse(text=string)
+ res = self.eval(p)
+ return res
r = R(["--no-save", "--quiet"])
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list