Changes in rpy2

Release 2.0.1

New features

rpy2.robjects:

  • Property names for the RVector methods getnames() and setnames() (this was likely forgotten for Release 2.0.0).
  • Property rclass for RObjectMixin

Changes

rpy2.robjects:

  • rclass() becomes getrclass()

Bugs fixed

  • Having the environment variable R_HOME specified resulted in an error when importing rpy2.rinterface # root of the problem spotted by Peter
  • Setup.py has no longer a (possibly outdated) static hardcoded version number for rpy2
  • Testing no longer stops with an error in the absence of the third-party module numpy
  • rpy2.rlike.container.TaggedList.pop() is now returning the element matching the given index

Release 2.0.0

New features

  • New module rpy2.robjects.conversion.
  • New module rpy2.robjects.numpy2ri to convert numpy objects into rpy2 objects. # adapted from a patch contributed by Nathaniel Smith

Changes

  • RObject.__repr__() moved to RObject.r_repr()

Bugs fixed

  • Informative message returned as RuntimeError when failing to find R’s HOME
  • Use the registry to find the R’s HOME on win32 # snatched from Peter’s earlier contribution to rpy-1.x

Release 2.0.0rc1

rpy2.rpy_classic:

  • rpy_classic.RObj.getSexp() moved to a property rpy_classic.Robj.sexp.

rpy2.robjects:

  • RObject.__repr__() moved to RObject.r_repr()
  • ri2py(), ro2py(), and py2ri() moved to the new module conversion. Adding the prefix conversion. to calls to those functions will be enough to update existing code

Bugs fixed

  • Informative message returned as RuntimeError when failing to find R’s HOME
  • Use the registry to find the R’s HOME on win32 # snatched from Peter’s earlier contribution to rpy-1.x

Release 2.0.0rc1

New features

  • added __version__ to rpy2/__init__.py

rpy2.robjects:

  • added classes StrVector, IntVector, FloatVector, BoolVector

rpy2.rinterface:

  • added missing class BoolSexpVector.

Changes

rpy2.robjects:

  • does not alias rinterface.StrSexpVector, rinterface.IntSexpVector, rinterface.FloatSexpVector anymore
  • Constructor for rpy2.robjects.RDataFrame checks that R lists are data.frames (not all lists are data.frame)
  • Formerly new attribute _dotter for R is now gone. The documentaion now points to rpy2.rpy_classic for this sort of things.

Bugs fixed

  • conditional typedef in rinterface.c to compile under win32 # reported and initial proposed fix from Paul Harrington
  • __pow__ was missing from the delegator object for robjects.RVector (while the documentation was claiming it was there) # bug report by Robert Nuske
  • Earlier change from Sexp.typeof() to getter Sexp.typeof was not reflected in rpy2.rpy_classic # bug report by Robert Denham

Release 2.0.0b1

New features

rpy2.robjects:

  • added setenvironment() for RFormula, and defined environment as a property
  • defined names as a property for RVector

rpy2.rinterface:

  • added functions get_initoptions() and set_initoptions().
  • new attribute _dotter for R singleton. Setting it to True will translate ‘_’ into ‘.’ if the attribute is not found

Changes

rpy2.robjects:

  • constructor for RDataFrame now now accepts either rlike.container.TaggedList or rinterface.SexpVector

rpy2.rinterface:

  • sexpTypeEmbeddedR() is now called str_typeint().
  • initOptions is now called initoptions. Changes of options can only be done through set_initoptions().

Bugs fixed

  • crash of Sexp.enclos() when R not yet initialized (bug report #2078176)
  • potential crash of Sexp.frame() when R not yet initialized
  • proper reference counting when handling, and deleting, Sexp.__sexp__ generated CObjects
  • setup.py: get properly the include directories (no matter where they are) #bug report and fix adapted from Robert Nuske
  • setup.py: link to external lapack or blas library when relevant
  • added a MANIFEST.in ensuring that headers get included in the source distribution #missing headers reported by Nicholas Lewin-Koh
  • rinterface.str_typeint() was causing segfault when called with 99
  • fixed subsetting for LANGSXP objects

Release 2.0.0a3

New features

rpy2.rinterface:

  • setReadConsole(): specify Python callback for console input
  • R string vectors can now be built from Python unicode objects
  • getter __sexp__ to return an opaque C pointer to the underlying R object
  • method rsame() to test if the underlying R objects for two Sexp are the same.
  • added emptyEnv (R’s C-level R_EmptyEnv)
  • added method Sexp.do_slot_assign()

rpy2.robjects:

  • R string vectors can now be built from Python unicode objects

rpy2.rlike:

  • module functional with the functions tapply(), listify(), iterify().
  • module indexing with the function order()
  • method TaggedList.sort() now implemented

Changes

rpy2.rinterface:

  • initEmbeddedR() is only initializing if R is not started (no effect otherwise, and no exception thrown anymore)
  • the method Sexp.typeof() was replaced by a Python getter typeof.
  • the method Sexp.named() was replaced by a Python getter named.
  • R objects of type LANGSXP are now one kind of vector (... but this may change again)
  • R objects of type EXPRSXP are now handled as vectors (... but this may change again)
  • initEmbeddedR() renamed to initr()
  • endEmbeddedR() renamed to endr()

rpy2.robjects:

  • R remains a singleton, but does not throw an exception when multiple instances are requested

Bugs fixed

  • unable to compile on Python2.4 (definition of aliases to Python2.5-specific were not where they should be).
  • overflow issues on Python 2.4/64 bits when indexing R vector with very large integers.
  • handling of negative indexes for SexpVector‘s __getitem__() and __setitem__() was missing
  • trying to create an instance of SexpVector before initializing R raises a RuntimeException (used to segfault)
  • experimental method enclos() was not properly exported
  • setup.py was exiting prematurely when R was compiled against an existing BLAS library
  • complex vectors should now be handled properly by rpy2.rinterface.robjects.
  • methods rownames() and colnames() for RDataFrame were incorrect.

Release 2.0.0a2

New features

rpy2.rlike:

rpy2.rinterface:

  • method named(), corresponding to R’s C-level NAMED
  • experimental methods frame() and enclos() for SexpEnvironment corresponding to R’s C-level FRAME and ENCLOS
  • method rcall() for ClosureSexp
  • new experimental class SexpLang for R language objects.

Bugs fixed

  • R stack checking is disabled (no longer crashes when multithreading)
  • fixed missing R_PreserveObject for vectors (causing R part of the object to sometimes vanish during garbage collection)
  • prevents calling an R function when R has been ended (raise RuntimeException).

Release 2.0.0a1

New features

rpy2.robjects:

  • method getnames() for RVector
  • experimental methods __setitem__() and setnames() for RVector
  • method ‘getnames’ for RArray
  • new class RFormula
  • new helper class RVectorDelegator (see below)
  • indexing RVector the “R way” with subset is now possible through a delegating attribute (e.g., myvec.r[True] rather than myvec.subset(True)). #suggested by Michael Sorich
  • new class RDataFrame. The constructor __init__() is still experimental (need for an ordered dictionnary, that will be in before the beta
  • filled documentation about mapping between objects

Changes

  • many fixes and additions to the documentation
  • improved GTK console in the demos
  • changed the major version number to 2 in order to avoid confusion with rpy 1.x # Suggested by Peter and Gregory Warnes
  • moved test.py to demos/example01.py

rpy2.robjects:

  • changed method name getNames to getnames where available (all lower-case names for methods seems to be the accepted norm in Python).

Bugs fixed

rpy2.robjects:

  • fixed string representation of R object on Microsoft Windows (using fifo, not available on win32)
  • __getattr__() for RS4 is now using ri2py()

rpy2.rinterface:

  • fixed context of evaluation for R functions (now R_GlobalEnv)

Release 1.0a0

  • first public release

Table Of Contents

Previous topic

rlike

This Page