GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

GH-36730: [Python] Add support for Cython 3.0.0 - #37097

Merged
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30
Sep 21, 2023
Merged

GH-36730: [Python] Add support for Cython 3.0.0#37097
AlenkaF merged 41 commits into
apache:mainfrom
danepitkin:danepitkin/cython30

Conversation

@danepitkin

@danepitkindanepitkin commented Aug 9, 2023

Copy link
Copy Markdown
Member

Rationale for this change

Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. Cython 3 is not enabled in this diff.

What changes are included in this PR?

Note:

Are these changes tested?

Yes.

Are there any user-facing changes?

Yes.

@github-actions

Copy link
Copy Markdown

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

@danepitkindanepitkin changed the title WIP: [Python] Add support for Cython 3.0.0Work In Progress: [Python] Add support for Cython 3.0.0Aug 9, 2023
Comment threadpython/pyarrow/tests/parquet/test_dataset.py Outdated
@github-actionsgithub-actionsBot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Aug 11, 2023
@danepitkin

danepitkin commented Aug 11, 2023

Copy link
Copy Markdown
MemberAuthor

Potentially related cloudpickle issue? cloudpipe/cloudpickle#506

Edit: Nope. Cython 3.0.0 changed the default compiler directive "binding" from False to True. Setting back to false fixes the cloudpickle test.

@koukou changed the title Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0Aug 11, 2023
@kou

kou commented Aug 11, 2023

Copy link
Copy Markdown
Member

I've copied #36745 PR description.
We should update the PR description before we merge this PR.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown

Revision: c8e6a19063768c7e6a08a2e7b878b1bb4f28a9cc

Submitted crossbow builds: ursacomputing/crossbow @ actions-ba5c455e80

TaskStatus
example-python-minimal-build-fedora-condaGithub Actions
example-python-minimal-build-ubuntu-venvGithub Actions
python-sdistGithub Actions
test-conda-python-3.10Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions
verify-rc-source-python-linux-almalinux-8-amd64Github Actions
verify-rc-source-python-linux-conda-latest-amd64Github Actions
verify-rc-source-python-linux-ubuntu-20.04-amd64Github Actions
verify-rc-source-python-linux-ubuntu-22.04-amd64Github Actions
verify-rc-source-python-macos-amd64Github Actions
verify-rc-source-python-macos-arm64Github Actions
verify-rc-source-python-macos-conda-amd64Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

test-cuda-python and test-ubuntu-20.04-python-3 are failing due to this cython issue cython/cython#5552

@danepitkindanepitkin changed the title GH-36730: Work In Progress: [Python] Add support for Cython 3.0.0GH-36730: [Python] Add support for Cython 3.0.0Aug 15, 2023
@github-actions

Copy link
Copy Markdown

Revision: 6f32fcf

Submitted crossbow builds: ursacomputing/crossbow @ actions-165015566a

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@danepitkin

Copy link
Copy Markdown
MemberAuthor

I've separated out the enablement of Cython 3 into a separate diff: #37743

Now, we can merge Cython 3 support and then enable Cython 3 once Cython 3.0.3 is released.

@danepitkin

Copy link
Copy Markdown
MemberAuthor

IMO this can be merged now!

Comment threadpython/pyarrow/_dataset.pyx Outdated
"""A Dataset created from a list of paths on a particular filesystem.
@staticmethod
def from_paths(paths, schema=None, format=None, filesystem=None,
partitions=None, root_partition=None):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... classmethod doesn't work correctly on Cython 3 anymore? Is it a known issue? Or is this change actually not needed?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classmethod does work, I can change it back. I tried switching to staticmethod when numpydocs were failing, but it turns out it was the comment that was causing numpydoc parsing errors. I thought staticmethod was a slight improvement since cls wasn't actually used in the classmethod.

@AlenkaFAlenkaF left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this Dane!! Great work 👍

@danepitkindanepitkin added the Priority: Blocker Marks a blocker for the release label Sep 19, 2023
@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259391389

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit python

@github-actions

Copy link
Copy Markdown
parse() missing 1 required positional argument: 'config'
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/6259489413

@kou

kou commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

@AlenkaF

AlenkaF commented Sep 21, 2023

Copy link
Copy Markdown
Member

We need to fix #37803 to use @github-actions crossbow submit .... :<

Thanks! Got it now =)

@AlenkaF

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g python

@github-actions

Copy link
Copy Markdown

Revision: 3c4f581

Submitted crossbow builds: ursacomputing/crossbow @ actions-d63bfc88b3

TaskStatus
test-conda-python-3.10Github Actions
test-conda-python-3.10-cython2Github Actions
test-conda-python-3.10-hdfs-2.9.2Github Actions
test-conda-python-3.10-hdfs-3.2.1Github Actions
test-conda-python-3.10-pandas-latestGithub Actions
test-conda-python-3.10-pandas-nightlyGithub Actions
test-conda-python-3.10-spark-v3.4.1Github Actions
test-conda-python-3.10-substraitGithub Actions
test-conda-python-3.11Github Actions
test-conda-python-3.11-dask-latestGithub Actions
test-conda-python-3.11-dask-upstream_develGithub Actions
test-conda-python-3.11-hypothesisGithub Actions
test-conda-python-3.11-pandas-upstream_develGithub Actions
test-conda-python-3.11-spark-masterGithub Actions
test-conda-python-3.8Github Actions
test-conda-python-3.8-pandas-1.0Github Actions
test-conda-python-3.8-spark-v3.4.1Github Actions
test-conda-python-3.9Github Actions
test-conda-python-3.9-pandas-latestGithub Actions
test-cuda-pythonGithub Actions
test-debian-11-python-3Azure
test-fedora-35-python-3Azure
test-ubuntu-20.04-python-3Azure
test-ubuntu-22.04-python-3Github Actions

@AlenkaF

Copy link
Copy Markdown
Member

None of the failures look related, wil merge. Thanks again Dane!

@AlenkaF
AlenkaF merged commit e83c23b into apache:mainSep 21, 2023
@AlenkaFAlenkaF removed the awaiting change review Awaiting change review label Sep 21, 2023
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e83c23b.

There was 1 benchmark result indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
The Cython 3.0.0 upgrade apache#37097 is triggering numpydoc errors for these missing docstrings.
### What changes are included in this PR?
* Docstrings added to Cython functions that omitted them
### Are these changes tested?
Yes, locally.
### Are there any user-facing changes?
User-facing documentation is added.
* Closes: apache#37217
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change
Cython 3.0.0 is the latest release. PyArrow should work with Cython 3.0.0. **Cython 3 is not enabled in this diff.**
### What changes are included in this PR?
* Don't use `vector[XXX]&&`
* Add a declaration for `postincrement`
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#c-postincrement-postdecrement-operator
* Ignore `C4551` warning (function call missing argument list) with MSVC
* See also: cython/cython#4445
* Add missing `const` to `CLocation`'s static methods.
* Don't use `StopIteration` to stop generator
* See also: https://cython.readthedocs.io/en/latest/src/userguide/migrating_to_cy30.html#python-3-syntax-semantics
* non-extern `cdef` functions will now propagate python exceptions automatically unless explicitly labeled `noexcept`
* Function binding in cython is now enabled by default. Class methods that are used as wrappers for pickling should be converted to staticmethods.
* Numpydocs now validates more Cython 3 objects than Cython <3
* Enum types are now being validated, and some unhelpful validation checks on Enums are now ignored
* Added a cython <3 nightly CI job
Note:
* Cython 3.0.0, 3.0.1, 3.0.2 has an issue when compiling with debug mode cython/cython#5552
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: apache#36730
Lead-authored-by: Dane Pitkin <dane@voltrondata.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Co-authored-by: Dane Pitkin <48041712+danepitkin@users.noreply.github.com>
Signed-off-by: AlenkaF <frim.alenka@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Python] Cython 3.0 seems to make our build of pyarrow fail

5 participants

@danepitkin@kou@jorisvandenbossche@AlenkaF@pitrou