Skip to content

Fixing the ruff linting#39699

Merged
vbraun merged 1 commit intosagemath:developfrom
fchapoton:fixing_the_ruff_linting
Mar 22, 2025
Merged

Fixing the ruff linting#39699
vbraun merged 1 commit intosagemath:developfrom
fchapoton:fixing_the_ruff_linting

Conversation

@fchapoton
Copy link
Contributor

probably due to a change in the ruff version somewhere

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.

@fchapoton fchapoton force-pushed the fixing_the_ruff_linting branch from efc4fb8 to 826ae92 Compare March 14, 2025 07:01
@fchapoton fchapoton added the p: CI fix merged before running CI tests label Mar 14, 2025
Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

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

LGTM.

@tscrim
Copy link
Collaborator

tscrim commented Mar 14, 2025

Once tests pass, you can set a positive review.

@github-actions
Copy link

Documentation preview for this PR (built with commit 826ae92; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@tobiasdiez tobiasdiez mentioned this pull request Mar 14, 2025
5 tasks
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 19, 2025
sagemathgh-39699: Fixing the ruff linting
    
probably due to a change in the ruff version somewhere

### 📝 Checklist

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
    
URL: sagemath#39699
Reported by: Frédéric Chapoton
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 22, 2025
sagemathgh-39701: Use uv for linter workflow
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Currently, the linter workflow always uses the latest release of all
dependencies. Thus, updates to these linters may result in broken CI
(just happened yesterday see sagemath#39699).

Here, we use `uv` to lock the dependency of all tools used in the linter
workflow. The lock file will be automatically updated using renovate.

Also remove `pycodestyle` as by now it can be replaced by ruff.

(The lock file also contains all sage dependencies and thus may be used
to replace the manual updates of python deps in sage-the-distro
@dimpase)

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39701
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik
@vbraun vbraun merged commit 11faf8a into sagemath:develop Mar 22, 2025
25 checks passed
@fchapoton fchapoton deleted the fixing_the_ruff_linting branch March 22, 2025 12:45
vbraun pushed a commit to vbraun/sage that referenced this pull request May 11, 2025
sagemathgh-39709: Implement preimage computation for Homomorphism from Quotient Ring to Finite Field of the same characteristic
    
## Technical Details

This PR introduces a new function into the file
`src/sage/rings/morphism.pyx`, named `_preimage_from_linear_dependence`.
More specifically, it computes the preimage of an element for a
homomorphism $f$ from a univariate polynomial quotient ring to a finite
extension field extension. When the codomain's field degree is the same
as the domain's base ring degree, and the domain is constructed from an
irreducible polynomial, $f$ is guaranteed to have a preimage for any
element and `_preimage_from_linear_dependence` returns this preimage.

Fixes sagemath#39690.

The way this function is currently used, it fixes the
`NotImplementedError` raised by:

- `f.inverse`
- `f.inverse_image` and
- `f._inverse_image_element`

## How it was fixed?

Internally, `_inverse_image_element` calls `_graph_ideal` which is the
cause of the NotImplementedError due to the check `A.base_ring() !=
B.base_ring()`. Now, before calling `_graph_ideal`, the new method
`_preimage_from_linear_dependence` is conditionally called and returns
early, thereby avoiding the error.

I have not included any documentation because it's supposed to be used
as an internal function. Let me know if it is needed.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#39699 : Probably due to a recent version change in the ruff linter,
the ruff linting check failed. This PR fixes these errors so I cherry-
picked the author's commit.
    
URL: sagemath#39709
Reported by: rasti37
Reviewer(s): grhkm21, rasti37
vbraun pushed a commit to vbraun/sage that referenced this pull request May 17, 2025
sagemathgh-39709: Implement preimage computation for Homomorphism from Quotient Ring to Finite Field of the same characteristic
    
## Technical Details

This PR introduces a new function into the file
`src/sage/rings/morphism.pyx`, named `_preimage_from_linear_dependence`.
More specifically, it computes the preimage of an element for a
homomorphism $f$ from a univariate polynomial quotient ring to a finite
extension field extension. When the codomain's field degree is the same
as the domain's base ring degree, and the domain is constructed from an
irreducible polynomial, $f$ is guaranteed to have a preimage for any
element and `_preimage_from_linear_dependence` returns this preimage.

Fixes sagemath#39690.

The way this function is currently used, it fixes the
`NotImplementedError` raised by:

- `f.inverse`
- `f.inverse_image` and
- `f._inverse_image_element`

## How it was fixed?

Internally, `_inverse_image_element` calls `_graph_ideal` which is the
cause of the NotImplementedError due to the check `A.base_ring() !=
B.base_ring()`. Now, before calling `_graph_ideal`, the new method
`_preimage_from_linear_dependence` is conditionally called and returns
early, thereby avoiding the error.

I have not included any documentation because it's supposed to be used
as an internal function. Let me know if it is needed.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#39699 : Probably due to a recent version change in the ruff linter,
the ruff linting check failed. This PR fixes these errors so I cherry-
picked the author's commit.
    
URL: sagemath#39709
Reported by: rasti37
Reviewer(s): grhkm21, rasti37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

p: CI fix merged before running CI tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants