Repository navigation
Fix CI - #131
Merged
Merged
Fix CI#131
Conversation
Newer mypy, pyright, basedpyright, pyrefly and ty all reject @disjoint_base on a Protocol class. _XPathEvaluatorBase is a concrete Cython base class at runtime, so @disjoint_base is accurate; the Protocol base was only used to make the abstract __call__ method enforceable. ABCMeta keeps that behavior (instantiating it, or a subclass that doesn't implement __call__, is still an error), the same way XSLTExtension does it. stubtest now compares __init__ against the runtime signature, which the stub doesn't declare, so allowlist it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ement pyright 1.1.414 and pyrefly 1.3.1 now report that _Element and int/float are incompatible disjoint bases, as mypy and ty already did. These classes only pretend to subclass int/float, so add the corresponding ignore comments. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- invalid-method-override on classes that combine HtmlElement with another base: HtmlElement overrides the Self-typed _Element methods with HtmlElement-typed ones. HtmlProcessingInstruction, HtmlComment and HtmlEntity already suppress the same conflict for mypy and pyright. - invalid-generic-class on _ElementTree.findall() and ElementMaker._typemap, which use the covariant _ET_co in invariant positions. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- mypy 1.20 no longer needs type: ignore[var-annotated] when assigning the result of the deliberately invalid make_links_absolute() and rewrite_links() calls, and reports the ignores as unused. Call them without assigning the result, which works with old and new mypy. - pyright 1.1.414 narrows an Any-typed variable to Any | None after an "is None" check, even inside a conditional expression. Ignore the resulting error where test_receive_arg_bad_1 deliberately passes an arbitrary value. - pyrefly 1.3.1 reports the functools.partial() call in _get_compressed_fp_from() under a new error code. Instead of ignoring it, replace the dynamic keyword argument lookup with typed opener functions, which also lets the helper drop its overloads and Any return type. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
mypy 2.x no longer supports python_version = 3.9, and the JSON output of mypy >= 1.20 includes end_line and end_column keys that ci-annotation-converter rejects. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
andersk
force-pushed
the
fix-ci-checkers
branch
from
September 25, 2026 12:01
8a08d4a to
8977a2c
Compare
Owner
|
Let me fast track this PR first. Even if there are other remaining issues to be handled, they can be dealt with in new PRs later. |
abelcheung
approved these changes
Sep 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I know you told me the failing CI isn’t my problem. Still, working in a repo with passing CI is more pleasant for everyone, so here’s my try at fixing it.