Install the new interchangeable BLAS system created by Thomas Orgis,
currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and
Apple's Accelerate.framework. This system allows the user to select any
BLAS implementation without modifying packages or using package options, by
setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details.
This commit should not alter behavior of existing packages as the system
defaults to Netlib BLAS/LAPACK, which until now has been the only supported
implementation.
Details:
Add new mk/blas.buildlink3.mk for inclusion in dependent packages
Install compatible Netlib math/blas and math/lapack packages
Update math/blas and math/lapack MAINTAINER approved by adam@
OpenBLAS, cblas, and lapacke will follow in separate commits
Update direct dependents to use mk/blas.buildlink3.mk
Perform recursive revbump
pkglint --only "https instead of http" -r -F
With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.
This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
Release 2.9.1
Changes
-------
- Fixing issue 432 (see Section Bugs fixed below) involved removed the method
`__reduce__` previously provided for all rpy2 objects representing R objects.
Bugs fixed
----------
- An error when installing with an unsupported R version was fixed.
- The docstring for `rinterface.endr()` was improperly stating that the function was not taking
any argument.
- Target version of dplyr and tidyr are now 0.7.4 and 0.7.2 respectively.
- Fixed memory leak when pickling objects. Fixing the leak caused a
slight change in the API (see Section Changes above).
- Conversion to :mod:`pandas` now handling R ordered factor.
- :mod:`jinja2` was not listed as a dependency
Release 2.9.0:
New features
- New module :mod:`rpy2.situation` to extract and report informations
about the environment, such as where is the R HOME, what is the
version of R, what is the version of R rpy2 was built with, etc...
The module is also designed to be run directly and provide diagnostics:
`python -m rpy2.situation`.
- :meth:`Environment.values`, :meth:`Environment.pop`,
:meth:`Environment.popitems`, :meth:`Environment.clear`
to match :meth:`dict.values`,
:meth:`dict.pop`, :meth:`dict.popitems`, :meth:`dict.clear`.
- :class:`VectorOperationsDelegator` now has a method `__matmul__` to implement
Python's matrix multiplication operator (PEP-0645).
- A rule to convert R POSIXct vectors to pandas Timestamp vectors was added.
- method :meth:`_repr_html_` for R vectors to display HTML in jupyter.
Changes
- Starting several times the singleton :class:`EventProcessor` longer results
in a :class:`RuntimeError`.
- The target version for the R package `dplyr` mapped is now 0.7.1, and
:func:`rpy2.robjects.lib.dplyr.src_dt` and
:func:`rpy2.robjects.lib.dplyr.src_desc` are no longer present.
- :meth:`Environment.keys` is now a iterator to match :meth:`dict.keys`,
also an interator in Python 3.
- Target version of `ggplot2` library is 2.2.1.
- Option `stringsasfactors` in the constructor for the class `DataFrame`. If `False`, the
strings are no longer converted to factors. When converting from pandas data frames
the default is to no longer convert columns of strings to factors.
- The R "magic" for jupyter is now more consistently using the conversion system, and the
use of custom converters through the magic argument `-c` will work as expected.
- Docker-related files moved to directory docker/ (where variants image for rpy2 are available)
Bugs fixed
- :func:`numpy.float128` is not available on all platforms. The unit test
for it is now skipped on systems where it is not present
- R pairlist objects can now be sliced.
- Passing parameters names that are empty string to R function was
causing a segfault.
- Trying to build an atomic R vector from a Python object that has a length,
but it not a sequence nor an iterator was causing a segfault
Release 2.5.6
=============
Bugs fixed
----------
- Detection of the R version during setup on Win8 (issues #255 and #258)
- Segmentation fault when converting :mod:`pandas` :class:`Series` with
elements of type object (issue #264)
- The default converter from Python (non-rpy2) objects to rinterface-level
objects was producing robjects-level objects whenever the input was of
type :class:`list` (discovered while fixing issue #264)
- Implemented suggested fix for issue with unlinking files on Windows
(issue #191)
- Testing rpy2 in the absence of ipython no longer stops with an error
(issue #266)
Release 2.5.5
=============
Bugs fixed
----------
- Crash (segfault) when querying an R object in an R environment triggers an
error (symbol exists, but associated values resolves to an error - issue #251)
- Change in the signature of `rcall` was not updated in the documentation
(issue #259)
- Minor update to the documentation (issue #257)
Release 2.5.4
=============
Bugs fixed
----------
- Filter PNG files on size, preventing empty files causing trouble to be
ipython notebook rendering of graphics later on (slight modification of
the pull request #39)
- Fix installation left unresolved with rpy2-2.5.3 (issue #248)
- Possible segfault with Python 3.4 (issue #249)
Release 2.5.3
=============
Changes
-------
- `setup.py` has `install_requires` in addition to `requires` in the hope to
fix the missing dependency with Python 2 (:mod:`singledispatch` is required
but not installed).
Bugs fixed
----------
- Extracting configuration information from should now work when R is emitting a warning (issue #247)
- On OS X the library discovery step can yield nothing (see issue #246). A tentative fix is to issue
a warning and keep moving.
Release 2.5.2
=============
Bugs fixed
----------
- String representation of :class:`robjects.R` (issue #238)
- Check during `build_ext` if unsupported version of R (pull request #32)
- HTMl display of columns of factors in a DataFrame (issue #236)
- HTML display of factors (issue #242)
Release 2.5.1
=============
Bugs fixed
----------
- Require singledispatch if Python 3.3 (issue #232)
- Fixed bug when R spits out a warning when asked configuration information (issue #233)
- Restored printing of compilation information when running `setup.py`
- Fixed installation issue on some systems (issue #234)
- Workaround obscure failure message from unittest if Python < 3.4 and
:mod:`singledispatch` cannot be imported (issue #235)
Release 2.5.0
=============
New features
------------
- Experimental alternative way to preserve R objects from garbage collection.
This can be activated with `rinterface.initr(r_preservehash=True)` (default
is `False`.
- :class:`GGPlot` object getting a method :meth:`save`
mirroring R's `ggplot2::ggsave()`.
- The conversion system is now using generics/single dispatch.
- New module :mod:`rpy2.ipython.html` with HTML display for rpy2 objects
- [Experimental] New function :func:`robjects.methods.rs4instance_factory`
to type RS4 objects with more specificity.
Changes
-------
- The script `setup.py` was rewritten for clarity and ease of maintenance.
Now it only uses `setuptools`.
Release 2.4.4
=============
Bugs fixed
----------
- Use `input` rather than `raw_input` in the default console callback
with Python 3 (fixes issue #222)
- Issues with conversions, pandas, and rmagic (fixes issue #218 and more)
Release 2.4.3
=============
Bugs fixed
----------
- `geom_raster` was missing from `rpy2.robjects.lib.ggplot2` (pull request #30)
- Fixed issue with SVG rendering in ipython notebook (issue #217)
- Regression with `rx2()` introduced with new conversion (issue #219)
- Fixed documentation (missing `import`) (issue #213)
Release 2.4.2
=============
Bugs fixed
----------
- Assigning an R `DataFrame` into an environment was failing if
the conversion for Pandas was activated. (Issue #207)
Release 2.4.1
=============
Bugs fixed
----------
- :meth:`rpy2.ipython` fixed spurious output to notebook cells.
Release 2.4.0
=============
Changes
-------
- Conversion system slightly changed, with the optional
conversions for :mod:`numpy` and :mod:`pandas` modified
accordingly. The changes should only matter if using
third-party conversion functions.
- The Python 3 version is now a first class citizen. `2to3`
is no longer used, and the code base is made directly
compatible with Python. This lowers significantly the
installation time with Python 3
(which matters when developping rpy2).
- The default options to initialize R (`rpy2.rinterface.initoptions') are no longer
`('rpy2', '--quiet', '--vanilla', '--no-save')` but now
`('rpy2', '--quiet', '--no-save')`.
- :class:`robjects.vectors.ListVector` can be instanciated from
any objects with a method `items()` with the expectation that the method
returns an iterable of (name, value) tuples, or even be an iterable
of (name, value) tuples.
New features
------------
- For instances of :class:`rpy2.robjects.Function`,
the `__doc__` is now a property fetching information
about the parameters in the R signature.
- Convenience function :func:`rpy2.robjects.packages.data`
to extract the datasets in an R pacakges
- :mod:`ipython`'s `rmagic` is now part of :mod:`rpy`. To use, `%load_ext
rpy2.ipython` from within IPython.
- new method :meth:`rpy2.rinterface.SexpEnvironment.keys`, returnings
the names in the environment as a tuple of Python strings.
- convenience class :class:`robjects.packages.InstalledPackages`, with a companion function
:func:`robjects.packages.isinstalled`.
- new class :class:`rinterface.SexpSymbol` to represent R symbols
Bugs fixed
----------
- :meth:`rpy2.rinterface.Sexp.do_slot` was crashing when
the parameter was an empty string (PR #155)
Release 2.3.10
==============
Bugs fixed
----------
- `setup.py build` was broken when new R compiled with OpenMP (Issue #183)
Release 2.3.9
=============
- Changes in pandas 0.13.0 broke the rpy2 conversion layer (Issue #173)
Release 2.3.8
=============
Bugs fixed
----------
- Crash with R-3.0.2. Changes in R-3.0.2's C API coupled to a strange behaviour
with R promises caused the problem. (PR #150)
Release 2.3.7
=============
Bugs fixed
----------
- ggplot2's "guides" were missing
- ggplot2's "theme_classic" was missing (PR #143)
- ggplot2's "element_rect" was missing (PR #144)
- :func:`rpy2.interactive.packages` was broken (PR #142)
Release 2.3.6
=============
Bugs fixed
----------
- Several reports of segfault on OS X (since rpy2-2.3.1 - PR #109)
- More fixes in converting `DataFrames` with dates from `pandas`
Relase 2.3.5
============
Bugs fixed
----------
- Missing mapping to ggplot2's `scale_shape_discrete` function
- Better handling of dates in Pandas
- Constructor for POSIXct improved (and fixed)
Changes
-------
- The attribute :attr:`rclass` is no longer read-only and can be set
(since R allows it)
- Importing the module :mod:`rpy2.interactive` no longer activates
event processing by default (triggering concurrency errors
when used with ipython).
New features
------------
- New module :mod:`rpy2.interactive.ipython` (so far plotting
automatically a ggplot2 figure in the iPython's console)
- It is now possible to set the :attr:`rclass`.
Relase 2.3.4
============
Bugs fixed
----------
- Spurious error when running unit tests with Python 3 and numpy
installed
- Missing mapping to ggplot2's `geom_dotplot` function
- Warnings are not longer printed (see Changes below)
Changes
-------
- Bumped target version of ggplot2 to 0.9.3.1
- Warnings are not longer printed. The C-level function in R became
hidden in R-3.0, and the cost of an R-level check/print is relatively
high if the R code called is very short. This might evolve into
printing warnings only if interactive mode in Python (if this can
be checked reliably).
Release 2.3.3
=============
Bugs fixed
----------
- Some of the data.frames converted from :mod:`pandas` were triggering
a :class:`TypeError` when calling :func:`repr`
- In :mod:`rpy2.robjects.lib.ggplot2`, a mapping to `coord_fixed` was
missing (PR #120)
- Using the parameter `lib_loc` in a call to
:func:`rpy2.robjects.packages.importr` was resulting in an error (PR #119)
- Creating a `layer` through the `rpy2.robjects.lib.ggplot2` interface did
not accept parameters (PR #122)
- Testing the Python version was crashing of a number of unsupported Python
versions (<= 2.6) (PR #117)
New features
------------
- New module pandas2ri to convert from mod:`pandas` `DataFrame` objects
- New classes :class:`rpy2.robjects.lib.grid.Unit` and
:class:`rpy2.robjects.lib.grid.Gpar` to model their counterparts in
R's `grid` package as they were previously missing from rpy2.
Release 2.3.2
=============
Bug fixed
---------
- Building on Win64 (pull request #6)
- Fetching data from an R package through `importr` was masking
any R object called `data` in that package. The data are now
under the attribute name `__rdata__`. This is not completely
safe either, although much less likely, a warning will
be issued if still masking anything.
Changes
-------
- More informative error message when failing to build because `R CMD config`
does not return what is expected
Release 2.3.1
=============
Bugs fixed
----------
- default console print callback with Python (issue #112 linked to it)
- deprecation warnings with ggplot2 (issue #111 and contributed patch)
Release 2.3.0
=============
New Features
------------
:mod:`rpy2.rinterface`:
- C-level API, allowing other C-level modules to make use of utilities
without going through the Python level. The exact definition of
the API is not yet fixed. For now there is
PyRinteractive_IsInitialized() to assess whether R was initialized
(through :mod:`rpy2.rinterface` or not).
- C-module _rpy_device, allowing one to implement R graphical devices
in Python [(very) experimental]
- Tracking of R objects kept protected from garbage collection by rpy2
is now possible.
- New method :meth:`Sexp.rid` to return the identifier of the R object
represented by a Python/rpy2 object
:mod:`rpy2.rinteractive`:
- Dynamic build of Python docstrings out of the R manual pages
:mod:`rpy2.robjects.help`:
- Build dynamic help
:mod:`rpy2.robjects.packages:
- Build anonymous R packages from strings
- When using :func:`importr`, the datasets are added as an attribute
:attr:`data`, itself an instance of a new class :class:`PackageData`.
It no longer possible to access datasets are regular objects from
a code package (because of changes in R), and the new system is
more robust against quirks.
Changes
-------
:mod:`rpy2.rinterface`:
- :attr:`SexpClosure.env` to replace the method `closureenv`.
Release 2.2.6
=============
Bugs fixed
----------
- Newest R-2.15 and ggplot2 0.9 broke the ggplot2 interaface
in :mod:`rpy2.robjects.lib.ggplot2`
Release 2.2.5
=============
Bugs fixed
----------
- install process: Library location for some of the R installations
- should compile on win32 (thanks to a patch from Evgeny Cherkashin),
a work to a limited extend
Release 2.2.4
=============
Bugs fixed
----------
- Memory leak when creating R vectors from Python (issue #82)
Release 2.2.3
=============
Bugs fixed
----------
- Dynamic construction of S4 classes was looking for R help as 'class.<class>'
rather than '<class>-class'
- The cleanup of temporary directories created by R was not happening if
the Python process terminated without calline :func:`rpy2.rinterface.endr()`
(issue #68, and proof-of-principle fix by chrish42)
Release 2.2.2
=============
Bugs fixed
----------
- With the robjects layer, repr() on a list containing non-vector elements
was failing
Release 2.2.1
=============
Bugs fixed
----------
- MANIFEST.in was missing from MANIFEST.in, required with Python 3
Release 2.2.0
=============
New Features
------------
- Support for Python 3, and for some of its features ported to Python 2.7
:mod:`rpy2.robjects`:
- :meth:`Environment.keys` to list the keys
- classes :class:`robjects.vectors.POSIXlt` and
:class:`robjects.vectors.POSIXlt` to represent vectors of R
dates/time
- :func:`packages.get_packagepath` to get the path to an R package
- module :mod:`rpy2.robjects.help` to expose the R help system to Python
- Metaclass utilities in :mod:`rpy2.robjects.methods`, allowing to reflect
automatically R S4 classes as Python classes.
- :meth:`rpy2.robjects.vectors.FactorVector.iter_labels` to iterate over the labels
- :class:`rpy2.robjects.vectors.ListVector` to represent R lists.
- Constructor for :class:`rpy2.robjects.vectors.ListVector` and
:class:`rpy2.robjects.vectors.DataFrame` accept any iterable at the condition
that the elements iterated through also valid subscripts for it (e.g., given
an iterable v, the following is valid:
.. code-block:: python
x[k] for x in v
:mod:`rpy2.rinterface`:
- :data:`NA_Complex` and :class:`NAComplexType` for missing complex values.
- :class:`SexpExtPtr` to represent R objects of type EXTPTR (external pointers).
- :func:`rpy2.rinterface.parse` to parse a string a R code
- :func:`rpy2.rinterface.rternalise` to wrap Python function as :class:`SexpClosure` that can
be called by R just as it was a function of its own.
- :class:`rpy2.rinterface.RNULLType` for R's C-level NULL value and
:class:`rpy2.rinterface.UnboundValueType` for R's C-level R_UnboundValue
(both singletons).
- :meth:`rinterface.SexpVector.index`, of similar behaviour to :meth:`list.index`.
- :meth:`rpy2.rinterface.Sexp.list_attrs` to list the names of all R attributes
for a given object.
- :class:`rpy2.rinterface.ByteSexpVector` to represent R 'raw' vectors.
- constant `R_LEN_T_MAX` to store what is the maximum length for a vector in R.
- tuple `R_VERSION_BUILD` to store the version of R rpy2 was built against
- getter :attr:`Sexp.rclass` to return the R class associated with an object
:mod:`rpy2.rlike`:
- :class:`container.OrdDict` get proper methods :meth:`keys` and `get`
:mod:`rpy2.interactive`:
- A new sub-package to provide utilities for interactive work, either for
handling R interactive events or use Python for interactive programming
(as often done with the R console)
Changes
-------
:mod:`rpy2.robjects`:
- NA_bool, NA_real, NA_integer, NA_character and NA_complex are now
deprecated (and removed).
NA_Logical, NA_Real, NA_Integer, NA_Character, NA_Complex should be used.
- :class:`rpy2.robjects.packages.Package` now inherits from :class:`types.ModuleType`
- classes representing R vector also inherit their type-specific
rinterface-level counterpart.
- Importing the :class:`rpy2.robjects.numpy2ri` is no longer sufficient
to active the conversion. Explicit activation is now needed; the function
`activate` can do that.
:mod:`rpy2.rinterface`:
- :class:`IntSexpVector`, :class:`FloatSexpVector`,
:class:`StrSexpVector`, :class:`BoolSexpVector`, :class:`ComplexSexpVector`
are now defined at the C level, improving performances
and memory footprint whenever a lot of instances are created.
Bugs fixed
----------
- Better and more explicit detection system for needed libraries when
compiling rpy2 (ported to release 2.1.6)
- Long-standing issue with readline fixed (issue #10)
Release 2.1.9
=============
Bugs fixed
----------
- The R class in rpy2.robjects is now truly a singleton
- When using numpy 1.5 and Python >= 2.7, the exposed buffer for R numerical (double)
vectors or arrays was wrong.
Release 2.1.8
=============
Bugs fixed
----------
- Fixed issue with R arrays with more than 2 dimensions and numpy arrays
(issue #47 - backported from the branch 2.2.x).
Release 2.1.7
=============
Bugs fixed
----------
- More fixes for the automated detection of include and libraries at build time.
Release 2.1.6
=============
Bugs fixed
----------
- Further fixes in the automatic detection of includes and libraries
needed to compile rpy2 against R. The detection code has
been refactored (backport from the 2.2.x branch)
Release 2.1.5
=============
Bugs fixed
----------
- fixes the automatic detection of R_HOME/lib during building/compiling
when R_HOME/lib is not in lib/ (issue #54)
Release 2.1.4
=============
New features
------------
- :mod:`rpy2.robjects.lib.ggplot2` now has the functions :func:`limits`,
:func:`xlim`, :func:`ylim` exposed (patch contributed anonymously)
Bugs fixed
----------
- Install script when the BLAS library used by R is specified as a library
file (patch by Michael Kuhn)
From README:
RPy2 is subject to the Mozilla Public License Version 1.1 (the
"License"); you may not use RPy2 except in compliance with the
License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/ (or see the file MPL_LICENSE)
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and
limitations under the License.
The Original Code is the RPy2 python package, itself subdivived
into subpackages and modules.
All code is Copyright of the respective author(s).
See the file AUTHORS for further details regarding authorship.
Alternatively, RPy2 may be used under the terms of either the GNU
General Public License Version 2 or later (the "GPL", see the file
GPL_LICENSE), or the GNU Lesser General Public License Version 2.1
or later (the "LGPL", see the file LGPL_LICENSE), in which case the
provisions of the GPL or the LGPL are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow
others to use your version of this file under the terms of the MPL,
indicate your decision by deleting the provisions above and replace
them with the notice and other provisions required by the GPL or the
LGPL. If you do not delete the provisions above, a recipient may use
your version of this file under the terms of any one of the MPL, the
GPL or the LGPL.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
New features:
* Dramatically simplify the build process for Win32
* It is now possible to use setup.cfg to control various aspects of the
build process. 'config.in' contains a template containing all available
options and what they do.
Bug fixes
* RPy compiled with Numeric support will no longer crash when run with
Numeric available.
* Crash during import when R is missing from the registry
* Problem using R Wavelets library with RPy
* RPy does not build on OS X, easy fix
* Plotting with RPy crashes Python
Other
* The rpy.py now communicates RHOME, RVER, RVERSION, RUSER from python to
the _rpy module using environment variables. This avoids the need to
have duplicate C code to obtain these values, and makes things both more
maintainable and more robust.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
--------------------
Fixed bugs
o There was several memory leaks due to bad management of Python
refcounts.
o There was wrong synchronization of the thread running the R event
loop and the calls to the R interpreter.
o There was a bug with signal handling which caused segfault when
'Ctrl-C' were pressed.
o The R event loop shouldn't be run in non-interactive sessions.
o The i/o Python callbacks were wrong synchronized with the R event
loop thread.
New features
o Added a rpy_version symbol.
Inspired by FreeBSD "ports".
Fix the PLISTs accordingly.
Also, while at it, remove now obsolete compileall.py calls in post-install
targets and insure that extension.mk is in included before builinlinks of
other Python modules.
Discussed with/ok'ed by drochner@.