Revision: 569
          http://rpy.svn.sourceforge.net/rpy/?rev=569&view=rev
Author:   lgautier
Date:     2008-07-02 08:07:59 -0700 (Wed, 02 Jul 2008)

Log Message:
-----------
- Reflect changes in the code
- Added more doc
- Fixed doc
- getting ready for v.2.0a1

Modified Paths:
--------------
    branches/rpy_nextgen/doc/source/conf.py
    branches/rpy_nextgen/doc/source/index.rst
    branches/rpy_nextgen/doc/source/overview.rst
    branches/rpy_nextgen/doc/source/rinterface.rst
    branches/rpy_nextgen/doc/source/robjects.rst
    branches/rpy_nextgen/doc/source/rpy_classic.rst

Added Paths:
-----------
    branches/rpy_nextgen/doc/source/changes.rst

Added: branches/rpy_nextgen/doc/source/changes.rst
===================================================================
--- branches/rpy_nextgen/doc/source/changes.rst                         (rev 0)
+++ branches/rpy_nextgen/doc/source/changes.rst 2008-07-02 15:07:59 UTC (rev 
569)
@@ -0,0 +1,8 @@
+:tocdepth: 2
+
+.. _changes:
+
+Changes in rpy2
+***************
+
+.. include:: ../../NEWS

Modified: branches/rpy_nextgen/doc/source/conf.py
===================================================================
--- branches/rpy_nextgen/doc/source/conf.py     2008-07-02 15:04:22 UTC (rev 
568)
+++ branches/rpy_nextgen/doc/source/conf.py     2008-07-02 15:07:59 UTC (rev 
569)
@@ -23,8 +23,9 @@
 
 # Add any Sphinx extension module names here, as strings. They can be 
extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['doctest', ]
 
+extensions = ['sphinx.ext.doctest', ]
+
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
 
@@ -42,9 +43,9 @@
 # other places throughout the built documents.
 #
 # The short X.Y version.
-version = '1.0'
+version = '2.0'
 # The full version, including alpha/beta/rc tags.
-release = '1.0a1'
+release = '2.0a1'
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
@@ -90,6 +91,10 @@
 # the sidebar.
 html_logo = 'rpy_logo_header.png'
 
+
+
+html_favicon = 'rpy.ico'
+
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
@@ -132,7 +137,7 @@
 # ------------------------
 
 # The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
+latex_paper_size = 'a4'
 
 # The font size ('10pt', '11pt' or '12pt').
 #latex_font_size = '10pt'

Modified: branches/rpy_nextgen/doc/source/index.rst
===================================================================
--- branches/rpy_nextgen/doc/source/index.rst   2008-07-02 15:04:22 UTC (rev 
568)
+++ branches/rpy_nextgen/doc/source/index.rst   2008-07-02 15:07:59 UTC (rev 
569)
@@ -2,8 +2,8 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Welcome to rpy2's documentation!
-================================
+Documentation for rpy2
+======================
 
 Contents:
 
@@ -12,10 +12,13 @@
 
    preface
    overview
-   rpy_classic
    robjects
    rinterface
+   rpy_classic
 
+   changes
+
+
 Indices and tables
 ==================
 

Modified: branches/rpy_nextgen/doc/source/overview.rst
===================================================================
--- branches/rpy_nextgen/doc/source/overview.rst        2008-07-02 15:04:22 UTC 
(rev 568)
+++ branches/rpy_nextgen/doc/source/overview.rst        2008-07-02 15:07:59 UTC 
(rev 569)
@@ -31,6 +31,46 @@
 Naturally RPy2 is inspired by RPy, but also by A. Belopolskys's contributions
 that were waiting to be included into RPy.
 
+Installation
+------------
+
+Requirements
+^^^^^^^^^^^^
+
+Python version 2.4 or higher, and R-2.7.0 or higher are required.
+
+
+
+Download
+^^^^^^^^
+
+Source Python packages, as well as pre-compiled binaries for Microsoft's 
Windows are available
+on the Sourceforge page.
+
+
+.. note::
+  MacOSX binaries may appear in the future (contributions to build them are 
welcome)
+
+
+Microsoft's Windows precompiled binaries
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The executable can be ran; they will install the package in the default Python 
installation
+on the system.
+
+
+Install from source
+^^^^^^^^^^^^^^^^^^^
+
+To install from a source package `<rpy_package>` do in a shell:
+
+.. code-block:: bash
+
+  tar -xzf <rpy_package>.tar.gz
+  cd <rpy_package>
+  python setup.py install
+
+
 Contents
 --------
 

Modified: branches/rpy_nextgen/doc/source/rinterface.rst
===================================================================
--- branches/rpy_nextgen/doc/source/rinterface.rst      2008-07-02 15:04:22 UTC 
(rev 568)
+++ branches/rpy_nextgen/doc/source/rinterface.rst      2008-07-02 15:07:59 UTC 
(rev 569)
@@ -1,18 +1,16 @@
-.. index::
-   module: rpy2.rinterface
-
 **********
 rinterface
 **********
 
 .. module:: rpy2.rinterface
+   :platform: Unix, Windows
    :synopsis: Low-level interface with R
 
 
 Overview
 ========
 
-A lower-level interface is provided for cases where
+A lower-level interface is provided for situations where
 the use-cases addressed by :mod:`robjects` are not covered,
 and for the cases where the layer in :mod:`robjects`
 has an excessive cost in term of performances.
@@ -46,9 +44,9 @@
 
 .. note::
    If calling :func:`initEmbeddedR` returns an error stating that
-   `R_HOME` is not defined, you should either have the R executable in
-   your path (`$PATH` on unix-alikes, `%Path%` on Microsoft Windows) or
-   have the environment variable `R_HOME` defined. 
+   :envvar:`R_HOME` is not defined, you should either have the :program:`R` 
executable in
+   your path (:envvar:`PATH` on unix-alikes, or :envvar:`Path` on Microsoft 
Windows) or
+   have the environment variable :envvar:`R_HOME` defined. 
 
 R space and Python space
 ------------------------
@@ -94,6 +92,26 @@
 .. index::
    single: Sexp
 
+Ouput from the R console
+------------------------
+
+The function :meth:`setWriteConsole` let one specify what do with
+output from the R console with a callback function.
+
+An example should make it obvious::
+
+   buf = []
+   def f(x):
+       # function that append its argument to the list 'buf'
+       buf.append(x)
+
+   # output from the R console will now be appended to the list 'buf'
+   rinterface.setWriteConsole(f)
+
+
+
+
+
 :class:`Sexp`
 =============
 
@@ -257,6 +275,7 @@
 :class:`SexpEnvironment`
 ========================
 
+
 :meth:`get`
 -----------
 
@@ -270,9 +289,7 @@
 The constant pi is defined in the package base, that
 is by default in the search path.
 
-FIXME: get functions only
 
-
 :meth:`__getitem__` / :meth:`__setitem__`
 -----------------------------------------
 
@@ -293,8 +310,14 @@
 >>> x = rinterface.Sexp_Vector([123, ], rinterface.INTSXP)
 >>> rinterface.globalEnv["x"] = x
 
-note: a copy of the R object is made in the R space.
 
+.. note::
+   Not all R environment are hash tables, and this may
+   influence performances when doing repeated lookups
+
+.. note::
+  a copy of the R object is made in the R space.
+
 :meth:`__iter__`
 ----------------
 
@@ -307,10 +330,13 @@
 >>> basetypes = [x.typeof() for x in base]
 
 
-Note that in the current implementation the content of the environment
-is evaluated only once, when the iterator is created, and that adding 
-or removing elements to the environment after will not have any effect.
+.. warning::
 
+   In the current implementation the content of the environment
+   is evaluated only once, when the iterator is created. Adding 
+   or removing elements to the environment will not update the iterator
+   (this is a problem, that will be solved in the near future).
+
 .. index::
    single: closure
    single: SexpClosure

Modified: branches/rpy_nextgen/doc/source/robjects.rst
===================================================================
--- branches/rpy_nextgen/doc/source/robjects.rst        2008-07-02 15:04:22 UTC 
(rev 568)
+++ branches/rpy_nextgen/doc/source/robjects.rst        2008-07-02 15:07:59 UTC 
(rev 569)
@@ -1,14 +1,14 @@
-. index::
-   module: rpy2.robjects
 
-
 *************
 rpy2.robjects
 *************
 
 .. module:: rpy2.robjects
+   :platform: Unix, Windows
    :synopsis: High-level interface with R
 
+.. testsetup:: robjects
+   import rpy2.robjects as robjects
 
 Overview
 ========
@@ -30,6 +30,7 @@
 
 - no CONVERSION mode in :mod:`rpy2`, the design has made this unnecessary
 
+- easy to modify or rewrite with an all-Python implementation
 
 
 
@@ -40,6 +41,7 @@
 its one representation instanciated when the
 module is loaded:
 
+
 >>> robjects.r
 >>> print(robjects.r)
 
@@ -84,7 +86,7 @@
 be plugged into code by their string representation:
 
 >>> x = robjects.r.rnorm(100)
->>> robjects.r('hist(%s, xlab="x", main="hist(x)")' %x.__repr__())
+>>> robjects.r('hist(%s, xlab="x", main="hist(x)")' %repr(x))
 
 
 
@@ -120,29 +122,7 @@
 The class inherits from the class
 :class:`rpy2.rinterface.VectorSexp`.
 
-Operators
----------
 
-Mathematical operations on two vectors: the following operations
-are performed element-wise, recycling the shortest vector if, and
-as much as, necessary.
-
-+--------+---------+
-| ``+``  | Add     |
-+--------+---------+
-| ``-``  | Subtract|
-+--------+---------+
-| ``*``  | Multiply|
-+--------+---------+
-| ``/``  | Divide  |
-+--------+---------+
-| ``**`` | Power   |
-+--------+---------+
-| ``or`` | Or      |
-+--------+---------+
-| ``and``| And     |
-+--------+---------+
-
 .. index::
    pair: RVector;indexing
 
@@ -166,18 +146,59 @@
 >>> x.subset(1)
 1L
 
+Rather than calling :meth:`subset`, and to still have the conveniently
+short `[` operator available, a syntactic sugar is available in
+the form of delegating-like attribute :attr:`r`.
+
+>>> x.r[0]
+integer(0)
+>>> x.r[1]
+1L
+
 The two next examples demonstrate features of `R` regarding indexing,
 respectively element exclusion and recycling rule:
->>> x.subset(-1)
+
+>>> x.r[-1]
 2:10
->>> x.subset(True)
+>>> x.r[True]
 1:10
 
 This class is using the class :class:`rinterface.SexpVector`, 
 and its documentation can be referred to for details of what is happenening
 at the low-level.
 
+Operators
+---------
 
+Mathematical operations on two vectors: the following operations
+are performed element-wise in R, recycling the shortest vector if, and
+as much as, necessary.
+
+The delegating attribute mention in the Indexing section can also
+be used with the following operators:
+
++----------+---------+
+| operator | R (.r)  |
++----------+---------+
+| ``+``    | Add     |
++----------+---------+
+| ``-``    | Subtract|
++----------+---------+
+| ``*``    | Multiply|
++----------+---------+
+| ``/``    | Divide  |
++----------+---------+
+| ``**``   | Power   |
++----------+---------+
+| ``or``   | Or      |
++----------+---------+
+| ``and``  | And     |
++----------+---------+
+
+>>> x = robjects.r.seq(1, 10)
+>>> x.r + 1
+2:11
+
 .. index::
    pair: RVector; numpy
 
@@ -323,15 +344,32 @@
 
 .. code-block:: python
 
-  fit = robjects.r('lm(%s)' %fmla.__repr__())
+  fit = robjects.r('lm(%s)' %repr(fmla))
 
 
 Mapping between rpy2 objects and other python objects
 =====================================================
 
-The mapping between low-level objects is performed on
-the fly by functions XXX
+The conversion, as often needed with RPy-1.x, is no longer
+necessary as the R objects can be either passed on to R functions
+or used in Python. T
 
+There is a low-level mapping between `R` and `Python` objects
+performed behind the (Python-level) scene.
+
+The mapping between low-level objects and higher-level objects
+is performed by the functions.
+
+:meth:`ri2py`
+   :mod:`rpy2.rinterface` to Python
+
+:meth:`py2ri`
+   Python to :mod:`rpy2.rinterface`
+
+:meth:`py2ro`
+   Python to :mod:`rpy2.robjects`. That one function
+   is merely a call to py2ri followed by a call to ri2py.
+
 Those functions can be modifyied to satisfy all requirements.
 
 
@@ -343,8 +381,8 @@
 will hopefully be used as a cookbook.
 
 
-Example::
-
+.. testcode:: robjects
+  import rpy2.robjects as robjects
   import array
 
   r = robjects.r
@@ -380,6 +418,11 @@
 
 .. code-block:: python
 
+   import rpy2.robjects as robjects
+   import array
+
+   r = robjects.r
+
    ctl = array.array('f', [4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14])
    trt = array.array('f', [4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69])
    group = r.gl(2, 10, 20, labels = ["Ctl","Trt"])
@@ -409,8 +452,12 @@
 
 The :mod:`rpy2.robjects` code is
 
-.. code-block:: python
+.. testcode::
 
+  import rpy2.robjects as robjects
+
+  r = robjects.r
+
   m = r.matrix(r.rnorm(100), ncol=5)
   pca = r.princomp(m)
   r.plot(pca, main="Eigen values")
@@ -421,11 +468,16 @@
 S4 classes
 ----------
 
-
 .. code-block:: python
 
-  if not r.require("GO")[0]:
-      raise(Exception("Bioconductor Package GO missing"))
+   import rpy2.robjects as robjects
+   import array
 
-  goItem = r.GOTERM["GO:0000001"]
+   r = robjects.r
 
+   r.setClass("Track",
+              r.representation(x="numeric", y="numeric"))
+
+   a = r.new("Track", x=0, y=1)
+
+   a.x
\ No newline at end of file

Modified: branches/rpy_nextgen/doc/source/rpy_classic.rst
===================================================================
--- branches/rpy_nextgen/doc/source/rpy_classic.rst     2008-07-02 15:04:22 UTC 
(rev 568)
+++ branches/rpy_nextgen/doc/source/rpy_classic.rst     2008-07-02 15:07:59 UTC 
(rev 569)
@@ -1,14 +1,10 @@
-.. index::
-   module: rpy2.rpy_classic
 
-
 ***********
 rpy_classic
 ***********
 
-.. module:: rpy2.rpy_classic
-   :synopsis: Provide compatibility with rpy
 
+
 This module provides an API similar to the one 
 in RPy-1.x (*rpy*).
 
@@ -22,7 +18,7 @@
    single: rpy_classic; conversion
 
 Conversion
-----------
+==========
 
 Although the proposed high-level interface in :mod:`rpy2.robjects`
 does not need explicit conversion settings, the conversion system 
@@ -33,7 +29,7 @@
 >>> set_default_mode(BASIC_CONVERSION)
 
 R instance
-----------
+==========
 
 The ``r`` instance of class :class:`R` behaves like before:
 
@@ -61,10 +57,10 @@
   type(r.seq)
 
 .. index::
-   pair: rpy_classic; function
+   pair: rpy_classic;function
 
 Functions
----------
+=========
 
 As in RPy-1.x, all R objects are callable:
 
@@ -84,13 +80,13 @@
 >>> r.seq(1, 3)
 >>> r.seq(1, 3, by=0.5)
 >>> r['options'](show_coef_Pvalues=0)
+>>>
 
 
-
   
 
 
 >>> m = r.matrix(r.rnorm(100), 20, 5)
 >>> pca = r.princomp(m)
 >>> r.plot(pca, main = "PCA")
-
+>>>


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to