summaryrefslogtreecommitdiff
path: root/math/py-rpy/Makefile
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2021-12-17 10:15:20 +0000
committerwiz <wiz@pkgsrc.org>2021-12-17 10:15:20 +0000
commita5bcb8b4101f1065334c7def4531916cc1ac6790 (patch)
treef50e1d33e7641bfd0d31da9c3a2f410a354ea587 /math/py-rpy/Makefile
parent0ab7fd352673608e84a8194e890615041f07e3cf (diff)
downloadpkgsrc-a5bcb8b4101f1065334c7def4531916cc1ac6790.tar.gz
py-rpy: update to 3.4.5.
Release 3.4.5 ============= Changes ------- - The deprecation warning when using :func:`rpy2.robjects.lib.grid.activate` was missing (indirectly revealed through issue #804). - The named argument `LINPACK` in :meth:`rpy2.robjects.vectors.Matrix.svd` is no longer present in R. Bugs fixed ---------- - SIGPIPE sent to a process running Python+rpy2 could result in a segfault. This was caused by an incorrect setting of R signal handlers (issue #809). Release 3.4.4 ============== Changes ------- - `RRuntimeError` exceptions raised while evaluating R code an R magic (ipython/jupyter) are now propagated (issue #792). Release 3.4.3 ============= New features ------------ - :mod:`rpy2.robjects.lib.ggplot2` maps more functions in the R package (issue #767) - Utility function :func:`rpy2.robjects.lib.ggplot2.dict2rvec` to convert a Python `Dict[str, str]` into an R named vector of strings. Bugs fixed ---------- - Calling mod:`rpy2.situation` to report on the environment no longer stops with an uncaught exception when no R home can be determined (issue #774) - Converting pandas series with the older numpy types could result in an error (issue #781) - Numpy converter was not properly turing R integer or float arrays into their numpy equivalent (issue #785) - The HTML representation of R list without named element was incorrect (issue #787) Release 3.4.2 ============= Bugs fixed ---------- - Multithreading during the initialization of the embedded R no longer triggers a fatal error (issue #729) Changes ------- - :mod:`pytest` is now an optional package. Optional sets of packages are `numpy`, `pandas`, `test`, and `all` (all optional packages). They can be specified during the installation. For example `pip install rpy2[test]`. (issue #670) Release 3.4.1 ============= Bugs fixed ---------- - The file `requirements.txt` was missing from the source distribution on pypi (issue #764). Release 3.4.0 ============= New Features ------------ - The mapping of the R C API now includes `Rf_isSymbol()`. - Singleton class :class:`rpy2.rinterface_lib.sexp.RVersion` to report the R version for the embedded R. - :func:`rpy2.rinterface.local_context` to create a context manager to evaluate R code within a local environment. - The `staticmethod` :meth:`rpy2.robjects.vectors.DateVector.isrinstance` will tell whether an R objects is an R `Date` array. Changes ------- - The dynamic generation of docstrings for R man pages is now using R's `Rd2txt`. - The :func:`rpy2.rinterface_lib._rinterface_capi._findVarInFrame` is replaced by the function :func:`rpy2.rinterface_lib._rinterface_capi._findvar_in_frame` (see fix to issue #710). - The functions :func:`rpy2.robjects.numpy.activate()` and :func:`rpy2.robjects.pandas.activate()` are deprecated and will be removed in rpy2-3.5.0. - :func:`rpy2.rinterface_lib.embedded.setinitialized` was renamed to :func:`rpy2.rinterface_lib.embedded._setinitialized` to indicate that one should not use it. - :meth:`rpy2.robjects.lib.ggplot2.vars` to map the R function `ggplot2::vars` (issue #742). - Report correctly the class of R matrix objects with R>=4.0: it is now `('matrix', 'array')`. With R<4.0 `('matrix')` is still reported. - The conversion of R/rpy2 objects to python objects using R class name mapping is extended to more classes. The documentation about conversion covers the topic. - If `R_NilValue` is not null when the initialization of the embedded R is attempted, it is now assumed that R was initialized through other means (e.g., an other C library in the same process) and the C-level initialization is be skipped. - The conversion `rpy2py` is now working with any Python object inheriting from `_rinterface_capi.SupportsSEXP`. Bugs fixed ---------- - The C function `Rf_findVarInFrame()` in the R API can trigger in an R-level error, and while this is rare, when it does when embedded in Python it creates a segfault. Calls are now wrapped in `R_ToplevelExec()` to limit the propagation of R exceptions. This solved issue #710. - More complete and correct mapping of R class names in :func:`rpy2.rinterface_lib.sexp.rclass_get`. - Initializing the embedded R caused the loss of ability to use Ctrl-C to send SIGINT to a Python process (issue #723) - :mod:`rpy2.sitation` is now working when the environment variable `R_HOME` is set even though R is not in the `PATH` or in the Windows registry (issue #744). - Handling an R language objects could result in a segfault when its R class was queried (issue #749). - The conversion of R string arrays to `numpy` arrays was leaving R's `NA` value as R NA objects. NAs in this type of arrays are now turned to `None` in the resulting `numpy` array (issue #751). - `rpy2.situation.get_rlib_path()` was returning an environment variable with an invalid separator on Windows (mentioned in issue #754). - R strings encoded with something else than 'utf-8' could result in errors when trying to convert to Python strings (issue #754). - Extracting documentation pages for R objects in packages could generate spurious warnings when several "section" tags are present. - R `Date` arrays/vectors were not wrapped into :class:`rpy2.robjects.vectors.DateVector` objects but left as R arrays of floats (which they are at the C level). - The HTML representation of short R lists without names could fail with an error. - The :meth:`__repr__` of `robjects`-level objects was not displaying the rpy2 class the R object is mapped to. Release 3.3.6 ============= Bugs fixed ---------- - The unit tests for importing R packages with `lib_loc` were broken (issue #720). - Trying to create a memoryview for an R array with complex values was failing with an attribute error. - Fix the constructor of metaclass :class:`rpy2.robjects.methods.RS4Auto_Type`. - Fix call to end the embedded R in :class:`rpy2.robjects.R.__cleanup__` (issue #734). Release 3.3.5 ============= Bugs fixed ---------- - The callback handler to read input to R returned an invalid result, leading to R asking for input without ever acknowledging it received it. Release 3.3.4 ============= Bugs fixed ---------- - Creating an R vector object from a Python object implementing the buffer protocol could give incorrect results as C-level incompatibilities could be missed (issue #702). - :func:`rpy2.robjects.packages.importr` could fail when `lib_loc` was specified (issue #705). Release 3.3.3 ============= Bugs fixed ---------- - Fallback for when `str2lang` is missing (R < 3.6) - Fix segfault with :meth:`PairListSexpVector.__getitem__` when elements of the R pairlist have a `NILSXP` name (issue #700) Release 3.3.2 ============= Bugs fixed ---------- - Initial fixes to have rpy2 running in ABI mode on Windows. Few tests are not passing (many in callbacks for R's C API). - System detection is now checking for FreeBSD. Release 3.3.1 ============= Bugs fixed ----------- - :meth:`rpy2.robjects.conversion.NameClassMap.update` can update the mapping (:class:`dict`) or the default class. Changes ------- - Adding local converters was overwriting the base `NameClassMap`. Release 3.3.0 ============= New features ------------ - Trying to import an R package that is not installed will now raise an exception :class:`rpy2.robjects.packages.PackageNotInstalledError`. - The R C API functions `void SET_FRAME(SEXP x, SEXP v)`, `void SET_ENCLOS(SEXP x, SEXP v)` and `void SET_HASHTAB(SEXP x, SEXP v)` are now accessible through rpy2. - The module :mod:`rpy2.situation` can now return `LD_LIBRARY_PATH` information about R. For example with `python -m rpy2.situation LD_LIBRARY_PATH` - :meth:`rpy2.robjects.methods.RS4.extends` lists the class names in the inheritance line. - The conversion of R objects to Python allows much more flexibility and better allow the use of independent code converting different classes. This is currently limited to R objects that are lists, environments, or S4 objects. The Sphinx documentation contains an example. While this is still work in progress this should already address concerns at the origin of issue #539 about S4 classes. - :class:`rpy2.robjects.language.LangVector` to map R language objects at the `robjects` level. - :class:`rpy2.robjects.vectors.PairlistVector` to map R pairlist objects at the `robjects` level. - An alternative function to display the output of R cells can be specified using `-d` or `--display` in the magic arguments (in :mod:`rpy2.ipython.rmagic`). - Python classes representing underlying R objects no longer have to exclusively rely on inheritance from :mod:`rpy2.rinterface` objects`. An abstract class :class:`rpy2.rinterface_lib.sexp.SupportsSEXP` is added to identify objects supporting a `__sexp__` protocol, and that abstract class can also be used with type hints. - :func:`rpy2.robjects.functions.wrap_r_functions` can create Python functions with matching signature from R functions - :func:`rpy2.robjects.functions.wrap_r_functions` can create Python functions with matching signature from R functions. - New class :class:`rpy2.rinterface_lib._rinterface_capi.UninitializedRCapsule` to allow the instanciation of "placeholder" rpy2 objects before the embedded R is initialized. This facilitate the use of static typing checks such as mypy, mocking for tests that do not involve the execution of R code, and allow cleaner implementations of module-level globals that are R objects. - New class :class:`rpy2.robjects.vectors.DateVector` to represent R dates. - :class:`pandas.Series` containing date objects can now be converted to R `Date` vectors. Changes ------- - When calling R C-API's `R_ParseVector` and a error occurs, the exception message now contains the parsing status. - :mod:`rpy2.rinterface_lib.embedded` has a module-level "constant" `DEFAULT_C_STACK_LIMIT` used when initializing the embedded R. - When creating a :mod:`rpy2.robjects.vectors.DataFrame` from (name, vector) pairs, the names are no longer transformed to syntactically valid R symbols (issue #660). - The value `nan` in :mod:`pandas` Series with strings is now converted to R NA (issue #668). - Initial support for :const:`pandas.NA` (still experimental in pandas at the time of writing, and rpy2 support is limited to arrays of strings). - :mod:`pandas` series of dtype :class:`pandas.StringDType`, experimental in pandas 1.0, are now supported by the converted (in the pandas-to-R direction) (issue #669) - Version checking for the mapping of R packages in :mod:`rpy2.robjects.lib` is now more permissive (check that version prefixes are matching). Bugs fixed ----------- - Building ABI only mode could require an API build environment (and fail with an error when not present). - SVG output for the R magic were incorrectly bytes objects. - :meth:`rpy2.rinterface_lib.sexp.StrSexpVector.__getitem__` was returning the string `'NA'` when an R NA value. Not it returns `rpy2.rinterface_lib.na_values.NA_Character`. Release 3.2.7 ============= Bugs fixed ---------- - An f-string in `_rinterface_cffi_build.py` prevented installation on Python 3.5 (issue #654). Release 3.2.6 ============= Bugs fixed ---------- - The conversion of date/time object with specified timezones was wrong when different than the local time zone (issue #634) - Iterating over :mod:`rpy2.situation.iter_info()` could result in a error because of a typo in the code. Changes ------- - :mod:`pandas` 1.0.0 breaks the conversion layer. A warning is now emitted whenever trying to use `pandas` >= 1.0. Release 3.2.5 ============= Bugs fixed ---------- - Latest release for R package `rlang` broke import through `importr()`. A workaround for :mod:`rpy2.robjects.lib.ggplot2` is to rename the offending R object (issue #631). Changes ------- - f-string requiring Python >= 3.6 removed. Release 3.2.4 ============= Bugs fixed ---------- - An incomplete backport of the bug fixed in 3.2.3 broke the ABI mode. Release 3.2.3 ============= Bugs fixed ----------- - Error when parsing strings as R codes could result in a segfault. Release 3.2.2 ============= Bugs fixed ---------- - Python format error when trying to report that the system is not reported on Windows (issue #597). - The setup script would error on build if R is not installed. It is now printing an error message. Release 3.2.1 ============= Bugs fixed ---------- - The wrapper for the R package `dbplyr` could not import the underlying package (refactoring elsewhere was not propagated there). - Creating R objects called `names` `globalenv` caused the method :meth:`Sexp.names` to fail (issue #587). - Whenever the pandas conversion was activated :class:`FloatSexpVector` instances with the R class `POSIXct` attached where not corrected mapped back to pandas datetime arrays. (issue #594). - Fix installation when an installation when a prefix without write access is used (issue #588). Release 3.2.0 ============= New features ------------ - rpy2 can built and used with :mod:`cffi`'s ABI or API modes (releases 3.0.x and 3.1.x were using the ABI mode exclusively). At the time of writing the default is still the ABI mode but the choice can be controlled through the environment variable `RPY2_CFFI_MODE`. If set, possible values are `ABI` (default if the environment variable is not set), `API`, or `BOTH`. When the latter, both `API` and `ABI` modes are built, and the choice of which one to use can be made at run time. Changes ------- - The "consoleread" callback (reading input to the R console) is now assuming UTF-8 (was previously assuming ASCII) and is no longer trying to add a "new line" character at the end of the input. - Querying an R environment with an invalid key will generate a :class:`TypeError` or a :class:`ValueError` depending on the issue (rather than always :class:`ValueError` before. Bugs fixed ---------- - `setup.py` is now again compatible with Python2 (issue #580). - Unit tests were failing if numpy is not installed. - :mod:`rpy2.situation` is no longer breaking when R is not the in path and there is no environment variable `R_HOME`. - Build script for the cffi interface is now using the environment variable `R_HOME` whenever defined (rather that always infer it from the R in the PATH). - Converting R strings back to Python was incorrectly using `Latin1` while `UTF-8` was intended (issue #537). Release 3.1.0 ============= New features ------------ - Python matrix multiplication (`__matmul__` / `@`) added to R :class:`Matrix` objects. - An :class:`threading.RLock` is added to :mod:`rpy2.rinterface_lib.openrlib` and is used by the context manager :func:`rpy2.rinterface_lib.memorymanagement.rmemory` to ensure that protect/unprotect cycles cannot be broken by thread switching, at least as long as the context manager is used to handle such cycles (see issue #571). - The documentation covers the use of notebooks (mainly Jupyter/Jupyterlab). - The PNG output in Jupyter notebooks R cells can now specify an argument `--type` (passed as the named argument `type` in the R function `png`). For example on some Linux systems and R installations, the type `cairo` can fix issues when alpha transparency is used. Changes ------- - Added callbacks for `ptr_R_Busy()` and `ptr_R_ProcessEvents()`. - `rstart` now an objects in :mod:`rpy2.rinterface_lib.embedded` (set to `None` until R is initialized). - Unit tests are included in a subpackage :mod:`rpy2.tests` as was the case before release 3.0.0 (issue #528). - Experimental initialization for Microsoft Windows. - :mod:`rpy2.situation` is now also reporting the rpy2 version. - :func:`rpy2.robjecs.package_utils.default_symbol_check_after` was renamed :func:`rpy2.robjecs.package_utils.default_symbol_resolve`. The named parameters `default_symbol_check_after` present in few methods in :mod:`rpy2.robjects.packages` and :mod:`rpy2.robjects.functions` were modified to keep a consistent naming. - Trying to instantiate an :class:`rpy2.rlike.container.OrdDict` with a a :class:`dict` will result in a :class:`TypeError` rather than a :class:`ValueError`. - Methods of :class:`rpy2.rlike.container.OrdDict` now raises a :class:`NotImplementedError` when not implemented. - The creation of R vectors from Python sequences is now relying on a method :meth:`_populate_r_vector` that allows vectorized implementation to to improve speed. - Continuous integration tests run against Python 3.6, 3.7, and 3.8. It is no longer checked against Python 3.5. Bugs fixed ---------- - `aes` in :mod:`rpy2.robjects.lib.ggplot2` had stopped working with the R package ggplot2 reaching version 3.2.0. (issue #562). - Better handling of recent :mod:`pandas` arrays with missing values (related to issue #544). - The mapping of the R operator `%in%` reachable through the attribute `ro` of R vectors was always returning `True`. It is now working properly. - R POSIXct vectors with `NA` dates were triggering an error when converted in a data frame converted to :mod:`pandas` (issue #561). Release 3.0.5 ============= Bugs fixed ---------- - No longer allow installation if Python 3 but < 3.5. - Fixed error `undefined symbol: DATAPTR` if R < 3.5 (issue #565). Release 3.0.4 ============= Bugs fixed ---------- - Fixed conversion of `pandas` :class:`Series` of dtype `pandas.Int32Dtype`, or `pandas.Int64Dtype` (issue #544). Release 3.0.3 ============= Bugs fixed ---------- - Fixed the evaluation of R code using the "R magic" was delaying all output to the end of the execution of that code, independently of whether the attribute `cache_display_data` was `True` or `False` (issue #543). - Fixed conversion of :class:`pandas.Series` of `dtype` "object" when all items are either all of the same type or are :obj:`None` (issue #540). Release 3.0.2 ============= Bugs fixed ---------- - Failing to import `pandas` or `numpy` when loading the "R magic" extension for jupyter/ipython was hiding the cause of the error in the `ImportError` exception. - Fallback when an R `POSIXct` vector does not had an attribute `"tzone"` (issue #533). - Callback for console reset was not set during R initialization. - Fixed rternalized function returning rpy2 objects (issue #538). - `--vanilla` is no longer among the default options used to initialize R (issue #534). Release 3.0.1 ============= Bugs fixed ---------- - Script to install R packages for docker image never made it to version control. - Conversion of R arrays/matrices into numpy object trigged a segfault during garbage collection (issue #524). Release 3.0.0 ============= New features ------------ - rpy2 can be installed without a development environment. - Unit tests are now relying on the Python module `pytest`. - :attr:`rpy2.rinterface.NA_Integer` is now only defined when the embedded R is initialized. Changes ------- - complete rewrite of :mod:`rpy2.rinterface`. :mod:`cffi` is now used to interface with the R compiled shared library. This allows ABI calls and removes the need to compile binaries. However, if compilation is available (when installing or preparing pre-compiled binaries) faster implementations of performance bottlenecks will be available. - calling :func:`rpy2.rinterface.endr` multiple times is now only ending R the first time it is called (note: an ended R cannot successfully be re-initialized). - The conversion system in the mod:`rpy2.robjects.conversion` now has only two conversions `py2rpy` and rpy2py`. `py2rpy` tries to convert any Python object into an object rpy2 can use with R and `rpy2py` tries to convert any rpy2 object into a either a non-rpy2 Python object or a mod:`rpy2.robjects` level object. - The method `get` for R environments is now called `find()` to avoid confusion with the method of the same name in Python (:meth:`dict.get`). - :class:`rpy2.robjects.vectors.Vector`, :class:`rpy2.robjects.vectors.Matrix`, and :class:`rpy2.robjects.vectors.Array` can no longer be used to create R arrays of unspecified type. New type-specific classes (for example for vectors :class:`rpy2.robjects.vectors.IntVector`, :class:`rpy2.robjects.vectors.BoolVector`, :class:`rpy2.robjects.vectors.FloatVector`, :class:`rpy2.robjects.vectors.ComplexVector`, or :class:`rpy2.robjects.vectors.StrVector`) should be used instead. - mod:`rpy2.rpy_classic`, an implementation of the `rpy` interface using :mod:`rpy2.rinterface` is no longer available. - :class:`rpy2.robjects.ParsedCode` and :class:`rpy2.robjects.SourceCode` are moved to :class:`rpy2.robjects.packages.ParsedCode` and :class:`rpy2.robjects.packages.SourceCode`. Bugs fixed ---------- - Row names in R data frames were lost when converting to pandas data frames (issue #484). Known issues ------------ - Mismatch between R's POSIXlt `wday` and Python time struct_time's `tm_wday` (issue #523). Release 2.9.6 ============= Bugs fixed ---------- - Latest release of :mod:`pandas` deprecated :meth:`DataFrame.from_items`. (issue #514). - Latest release of :mod:`pandas` requires categories to be a list (not an other sequence). Known issues ------------ - The numpy buffer implemented by R arrays is broken for complex numbers Release 2.9.5 ============= Bugs fixed ---------- - Missing values in pandas :class:`Category` series were creating invalid R factors when converted (issue #493). Release 2.9.4 ============= Bugs fixed ---------- - Fallback for failure to import numpy or pandas is now dissociated from failure to import :mod:`numpy2ri` or :mod:`pandas2ri` (issue #463). - :func:`repr` for R POSIX date/time vectors is now showing a string representation of the date/time rather than the timestamp as a float (issue #467). - The HTML representation of R data frame (the default representation in the Jupyter notebook) was displaying an inconsistent number of rows (found while workin on issue #466). - Handle time zones in timezones in Pandas when converting to R data frames (issue #454). - When exiting the Python process, the R cleanup is now explicitly request to happen before Python's exit. This is preventing possible segfaults the process is terminating (issue #471). - dplyr method `ungroup()` was missing from :class:`rpy2.robjects.lib.dplyr.DataFrame` (issue #473). Release 2.9.3 ============= Bugs fixed ---------- - Delegate finding where is local time zone file to either a user-specified module-level variable `default_timezone` or to the third-party module :mod:`tzlocal` (issue #448). Release 2.9.2 ============= Changes ------- - The pandas converter is converting :class:`pandas.Series` of `dtype` `"O"` to :class:`rpy2.robjects.vectors.StrVector` objects, issueing a warning about it (See issue #421). - The conversion of pandas data frame is now working with columns rather than rows (introduce in bug fix for issue #442 below) and this is expected to result in more efficient conversions. Bugs fixed ---------- - Allow floats in figure sizes for R magic (Pull request #63) - Fixed pickling unpickling of robjects-level instances, regression introduced in fix for issue #432 with release 2.9.1 (issue #443). - Fixed broken unit test for columns of `dtype` `"O"` in `pandas` data frames. - Fixed incorrect conversion of R factors in data frames to columns of integers in pandas data frame (issue #442).
Diffstat (limited to 'math/py-rpy/Makefile')
-rw-r--r--math/py-rpy/Makefile19
1 files changed, 14 insertions, 5 deletions
diff --git a/math/py-rpy/Makefile b/math/py-rpy/Makefile
index 3f4960e69e7..f7e96b2db7a 100644
--- a/math/py-rpy/Makefile
+++ b/math/py-rpy/Makefile
@@ -1,19 +1,28 @@
-# $NetBSD: Makefile,v 1.48 2021/06/29 08:42:01 nia Exp $
+# $NetBSD: Makefile,v 1.49 2021/12/17 10:15:20 wiz Exp $
-DISTNAME= rpy2-2.9.1
-PKGREVISION= 2
+DISTNAME= rpy2-3.4.5
PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/rpy2/rpy/}
CATEGORIES= math python
MASTER_SITES= ${MASTER_SITE_PYPI:=r/rpy2/}
MAINTAINER= pkgsrc-users@NetBSD.org
-HOMEPAGE= https://rpy.sourceforge.io/
+HOMEPAGE= https://rpy2.github.io/
COMMENT= R interface for Python
LICENSE= mpl-1.1 OR gnu-gpl-v2 OR gnu-lgpl-v2.1
DEPENDS+= ${PYPKGPREFIX}-jinja2-[0-9]*:../../textproc/py-jinja2
-DEPENDS+= ${PYPKGPREFIX}-six-[0-9]*:../../lang/py-six
+DEPENDS+= ${PYPKGPREFIX}-tzlocal-[0-9]*:../../time/py-tzlocal
+DEPENDS+= ${PYPKGPREFIX}-pytz-[0-9]*:../../time/py-pytz
+DEPENDS+= ${PYPKGPREFIX}-cffi-[0-9]*:../../devel/py-cffi
DEPENDS+= ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3
+DEPENDS+= R-dbplyr-[0-9]*:../../databases/R-dbplyr
+DEPENDS+= R-ggplot2-[0-9]*:../../graphics/R-ggplot2
+DEPENDS+= R-lazyeval-[0-9]*:../../devel/R-lazyeval
+DEPENDS+= R-rlang-[0-9]*:../../devel/R-rlang
+DEPENDS+= R-tidyr-[0-9]*:../../math/R-tidyr
+TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
+TEST_DEPENDS+= ${PYPKGPREFIX}-ipython-[0-9]*:../../devel/py-ipython
+TEST_DEPENDS+= ${PYPKGPREFIX}-pandas-[0-9]*:../../math/py-pandas
USE_LANGUAGES+= c fortran77