Revision: 535
          http://rpy.svn.sourceforge.net/rpy/?rev=535&view=rev
Author:   lgautier
Date:     2008-05-27 21:38:57 -0700 (Tue, 27 May 2008)

Log Message:
-----------
Dropped the one python-C module per R version approach
(dynamic linking... it should just not matter).

Modified Paths:
--------------
    branches/rpy_nextgen/rpy/rinterface/__init__.py
    branches/rpy_nextgen/setup.py

Modified: branches/rpy_nextgen/rpy/rinterface/__init__.py
===================================================================
--- branches/rpy_nextgen/rpy/rinterface/__init__.py     2008-05-26 18:23:07 UTC 
(rev 534)
+++ branches/rpy_nextgen/rpy/rinterface/__init__.py     2008-05-28 04:38:57 UTC 
(rev 535)
@@ -1,25 +1,5 @@
-import os, sys, re
+import os, sys
 
-def get_rversion(R_HOME):
-    r_exec = os.path.join(R_HOME, 'bin', 'R')
-    # Twist if Win32
-    if sys.platform == "win32":
-        rp = os.popen3('"'+r_exec+'" --version')[2]
-    else:
-        rp = os.popen('"'+r_exec+'" --version')
-    rversion = rp.readline()
-    #Twist if 'R RHOME' spits out a warning
-    if rversion.startswith("WARNING"):
-        rversion = rp.readline()
-    m = re.match('^R version ([^ ]+) .+$', rversion)
-    if m is None:
-        raise Exception("Error running 'R --version':\n" + rversion)
-    rversion = m.groups()[0]
-    rversion = rversion.split('.')
-    rversion[0] = int(rversion[0])
-    rversion[1] = int(rversion[1])
-    return rversion
-
 try:
     R_HOME = os.environ["R_HOME"]
 except KeyError:
@@ -31,16 +11,10 @@
         R_HOME = R_HOME[1]
     else:
         R_HOME = R_HOME[0]
+    R_HOME = R_HOME.strip()
+    os.environ['R_HOME'] = R_HOME
 
-rversion = get_rversion(R_HOME)
-r_packversion = '%i%02i%s' %(rversion[0], rversion[1], rversion[2])
-rinterface_package = 'rpy2.rinterface.rinterface_' + r_packversion
-
-
-
 # Win32-specific code copied from RPy-1.x
-# FIXME: isnt't it possible to have conditional code
-# at build time ?
 if sys.platform == 'win32':
     import win32api
     os.environ['PATH'] += ';' + os.path.join(R_HOME, 'bin')
@@ -59,16 +33,7 @@
 
     win32api.LoadLibrary( Rlib )
 
-#sys.path.insert(0, os.path.join(os.path.dirname(__file__),
-#                                'rinterface_' + r_packversion))
-#print(sys.path[0])
-
-del(re)
-del(os)
 del(sys)
 
-del(rversion)
-del(r_packversion)
+from rpy2.rinterface.rinterface import *
 
-rinterface = __import__(rinterface_package)
-

Modified: branches/rpy_nextgen/setup.py
===================================================================
--- branches/rpy_nextgen/setup.py       2008-05-26 18:23:07 UTC (rev 534)
+++ branches/rpy_nextgen/setup.py       2008-05-28 04:38:57 UTC (rev 535)
@@ -47,7 +47,6 @@
     rversion[1] = int(rversion[1])
     return rversion
 
-# FIXME: not neeeded anymore ?
 def cmp_version(x, y):
     if (x[0] < y[0]):
         return -1
@@ -67,14 +66,18 @@
     if rconfig.startswith("WARNING"):
         rconfig = rp.readline()
     rconfig = rconfig.strip()
-    rconfig = re.match('^(-L.+) (-l.+)$', rconfig).groups()
-    return rconfig
+    rconfig_m = re.match('^(-L.+) (-l.+)$', rconfig)
+    if rconfig_m is None:
+        raise Exception(cmd + '\nreturned\n' + rconfig)
+    return rconfig_m.groups()
 
 rnewest = [0, 0, 0]
 rversions = []
 for RHOME in RHOMES:
     RHOME = RHOME.strip()
     rversion = get_rversion(RHOME)
+    if cmp_version(rversion[:2], [2, 7]) == -1:
+        raise Exception("R >= 2.7 required.")
     rversions.append(rversion)
 
 def getRinterface_ext(RHOME, r_packversion):
@@ -94,14 +97,14 @@
     #f_out.close()
 
     rinterface_ext = Extension(
-            pack_name + ".rinterface.rinterface_" + r_packversion,
+            pack_name + '.rinterface.rinterface',
             [os.path.join('rpy', 'rinterface', 'array.c'), 
              os.path.join('rpy', 'rinterface', 'rinterface.c')],
             include_dirs = [ os.path.join(RHOME, 'include'), 
                             os.path.join('rpy', 'rinterface')],
             libraries = ['R', 'Rlapack', 'Rblas'],
             library_dirs = r_libs,
-            define_macros = [('RPY_RINTERFACE_INIT', 'initrinterface_' + 
r_packversion), ],
+            #define_macros = [('RPY_RINTERFACE_INIT', 'initrinterface_' + 
r_packversion), ],
             runtime_library_dirs = r_libs,
             extra_link_args = get_rconfig(RHOME, '--ldflags') +\
                               get_rconfig(RHOME, 'LAPACK_LIBS') +\
@@ -123,13 +126,15 @@
     rinterface_exts.append(ri_ext)
     rinterface_rversions.append(r_packversion)
 
+pack_dir = {pack_name: 'rpy'}
+
 setup(name = "rpython",
       version = pack_version,
       description = "Python interface to the R language",
       url = "http://rpy.sourceforge.net";,
       license = "(L)GPL",
       ext_modules = rinterface_exts,
-      package_dir = {pack_name: 'rpy'},
+      package_dir = pack_dir,
       packages = [pack_name,
                   pack_name+'.robjects',
                   pack_name+'.robjects.tests'] + \


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
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to