-
Notifications
You must be signed in to change notification settings - Fork 345
Closed
Description
With reticulate 1.36.0, py_to_r.pandas.core.frame.DataFrame
seems to no longer listen to its conversion scope.
This becomes an issue when using the anndata
R package, which defines a py_to_r.pandas.core.indexes.base.Index
function. As such, a round trip conversion from data.frame to a pandas DataFrame no longer works with reticulate 1.36, whereas this did use to work with reticulate 1.35.
Minimum reproducible example
# check out reticulate origin/main
devtools::load_all(".")
df <- data.frame(
row.names = c("s1", "s2"),
group = c("a", "b")
)
py_to_r(r_to_py(df))
# group
# s1 a
# s2 b
library(anndata)
py_to_r(r_to_py(df))
# Error: Expected a python object, received a character
Error does not occur with Reticulate v1.35
# check out reticulate v1.35.0
devtools::load_all(".")
df <- data.frame(
row.names = c("s1", "s2"),
group = c("a", "b")
)
py_to_r(r_to_py(df))
# group
# s1 a
# s2 b
library(anndata)
py_to_r(r_to_py(df)) # works as intended
# group
# s1 a
# s2 b
Proposed solution
This issue is related to dynverse/anndata#28. I could implement a fix in anndata
by removing the anndata::py_to_r.pandas.core.indexes.base.Index
function. However, I feel like reticulate::py_to_r.pandas.core.frame.DataFrame
should not be affected by the existence of the anndata py_to_r function, or am I mistaken?
Thanks for your input!
Kind regards,
Robrecht
Metadata
Metadata
Assignees
Labels
No labels