Skip to content

Commit 37f7f5d

Browse files
author
Release Manager
committed
gh-36552: `src/sage/misc/cython.py`: Fix the workaround for setuptools_scm <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> The part of #36400 that was intended to fix the runtime use of cython did not actually fix it because `finalize_distribution` is called already by `Distribution.__init__`. This shows up when invoked from a directory with `pyproject.toml` or a similar config file. As the Build & Test workflow invokes the doctester from `SAGE_ROOT/src`, these errors show up in all tests. Marking it as a blocker so it is [applied automatically in CI workflows](https://github.com/sagemath/sage/wiki/Sage-10.2-Release- Tour#open-blocker-prs-are-applied-automatically-in-ci-workflows) <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> Fixes #36400 (comment) <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #36552 Reported by: Matthias Köppe Reviewer(s): Tobias Diez
2 parents ccb0934 + 8272fe5 commit 37f7f5d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/sage/misc/cython.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,15 +421,20 @@ def cython(filename, verbose=0, compile_message=False,
421421
os.curdir)
422422

423423
# This emulates running "setup.py build" with the correct options
424-
dist = Distribution()
424+
#
425425
# setuptools plugins considered harmful:
426426
# If build isolation is not in use and setuptools_scm is installed,
427427
# then its file_finders entry point is invoked, which we don't need.
428428
# And with setuptools_scm 8, we get more trouble:
429429
# LookupError: pyproject.toml does not contain a tool.setuptools_scm section
430430
# LookupError: setuptools-scm was unable to detect version ...
431431
# We just remove all handling of "setuptools.finalize_distribution_options" entry points.
432-
dist._removed = staticmethod(lambda ep: True)
432+
class Distribution_no_finalize_distribution_options(Distribution):
433+
@staticmethod
434+
def _removed(ep):
435+
return True
436+
437+
dist = Distribution_no_finalize_distribution_options()
433438
dist.ext_modules = [ext]
434439
dist.include_dirs = includes
435440
buildcmd = dist.get_command_obj("build")

0 commit comments

Comments
 (0)