Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Python] Remove no longer used serialize/deserialize PyArrow C++ code #43587

Open
1 task done
jorisvandenbossche opened this issue Aug 6, 2024 · 3 comments
Open
1 task done

Comments

@jorisvandenbossche
Copy link
Member

jorisvandenbossche commented Aug 6, 2024

We deprecated and removed the pyarrow.serialization functionality (#29705 / #34926). But that PR only removed the cython bindings, but not the underlying C++ code in python/pyarrow/src/arrow/python/(de)serialize.h/cc.

Those C++ APIs were exposed using ARROW_PYTHON_EXPORT, so should they also first be deprecated before we remove them?

https://github.com/apache/arrow/blob/dea09ec9c0dd0d6f68b67101dc520ac737eac277/python/pyarrow/src/arrow/python/serialize.h
https://github.com/apache/arrow/blob/dea09ec9c0dd0d6f68b67101dc520ac737eac277/python/pyarrow/src/arrow/python/deserialize.h

@pitrou
Copy link
Member

pitrou commented Aug 6, 2024

Perhaps a Github search would allow finding out whether those APIs are being used by third-party projects? ARROW_PYTHON_EXPORT mostly means the given symbols are exposed in libarrow_python.dll which allows using them from Cython.

@jorisvandenbossche
Copy link
Member Author

The problem for a GitHub search is that a name like SerializeObject is quite generic. Although when limiting the search to cython, I think I only see occurrences that are copies from the pyarrow source code. And the same for the other exported names.

So based on that limited github search, those APIs are seemingly not used (publicly).

It's not that the code gives any maintenance overhead (since it is not tested anymore, and if we leave it alone like in PRs that triggered this issue), so I am also fine with just keeping it a few months longer with a ARROW_DEPRECATED decoration for at least one release. But directly removing is also fine with me.

@pitrou
Copy link
Member

pitrou commented Aug 7, 2024

We can definitely annotate those functions with ARROW_DEPRECATED and remove them in one or two versions.

@jorisvandenbossche jorisvandenbossche added this to the 18.0.0 milestone Aug 14, 2024
@jorisvandenbossche jorisvandenbossche modified the milestones: 18.0.0, 20.0.0 Sep 11, 2024
jorisvandenbossche added a commit that referenced this issue Sep 12, 2024
… Pyarrow C++ functions (#44064)

### Rationale for this change

We want to remove this part of the code (since we no longer use it ourselves, see #43587), and before doing that first deprecating them for two releases.

* GitHub Issue: #44063

Authored-by: Joris Van den Bossche <[email protected]>
Signed-off-by: Joris Van den Bossche <[email protected]>
khwilson pushed a commit to khwilson/arrow that referenced this issue Sep 14, 2024
…ialize Pyarrow C++ functions (apache#44064)

### Rationale for this change

We want to remove this part of the code (since we no longer use it ourselves, see apache#43587), and before doing that first deprecating them for two releases.

* GitHub Issue: apache#44063

Authored-by: Joris Van den Bossche <[email protected]>
Signed-off-by: Joris Van den Bossche <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants