Skip to content

chore(deps): Bump selectolax from 0.4.13 to 1.0.0 in the python-deps group across 1 directory - #139

Merged
CryptoJones merged 2 commits into
mainfrom
dependabot/uv/python-deps-d88a8bd496
Oct 7, 2026
Merged

CryptoJones merged 2 commits into
mainfrom
dependabot/uv/python-deps-d88a8bd496

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 7, 2026

Copy link
Copy Markdown
Contributor

Bumps the python-deps group with 1 update in the / directory: selectolax.

Updates selectolax from 0.4.13 to 1.0.0

Release notes

Sourced from selectolax's releases.

v1.0.0

This release contains breaking changes. It focuses on speed improvements and corner cases.

The main change is that the Modest backend is no longer available. It is outdated and unmaintained since 2021, contains bugs, and does not follow modern HTML5 standards. We have supported the Lexbor backend since 2021, and we have recommended it for more than 3 years. It gets updated every month and follows all the modern HTML5 standards while being faster on a lot of tasks.

The second is that parse_fragment() is gone. It re-implemented fragment parsing by guessing whether the input was a document or a fragment; LexborHTMLParser(html, is_fragment=True) already does this properly, so the guessing layer has been removed.

The rest of the changes fix corner cases where the bugs were happening rarely, usually when heavily modifying the tree.

  • Breaking: Remove the Modest backend. selectolax.parser is now a stub that raises ImportError on import. Use the lexbor backend (from selectolax.lexbor import LexborHTMLParser) instead.
  • Breaking: Remove parse_fragment().
  • Breaking: Fix css_matches and any_css_matches missing matches outside the first top-level node of an HTML fragment. They now search the same scope as css.
  • Breaking: Fix tags and strip_tags doing nothing on an HTML fragment. tags returned an empty list and strip_tags removed nothing, because the fragment was not reachable from the document node.
  • Breaking: Fix the internal <html> wrapper of an HTML fragment being reported as a match.
  • Breaking: Fix scripts_contain and script_srcs_contain missing matches outside the first top-level node of an HTML fragment. They now search the same scope as css.
  • Breaking: Fix scripts_contain and script_srcs_contain answering from another scope's cached result. The cache is keyed by the node the search is rooted at rather than the node it was called on.
  • Breaking: Fix select() missing matches outside the first top-level node of an HTML fragment. It now searches the same scope as css.
  • Breaking: Fix traverse() covering only the first top-level node of an HTML fragment, and yielding nothing when the fragment starts with a text node.
  • Breaking: Fix attribute_longer_than and any_attribute_longer_than returning inconsistent results
  • Breaking: attributes and attrs now report an attribute's qualified name instead of its local name. An element carrying both href and xlink:href used to collapse them into a single href key.
  • Breaking: Fix iter() skipping the remaining children when a node is removed during iteration
  • Breaking: Fix an HTML fragment whose first node is text dropping the rest of the fragment. LexborHTMLParser('a<span>s</span>', is_fragment=True).text() returned 'a' instead of 'as'.
  • Fix text() silently returning truncated text instead of raising when a fragment fails to be collected.
  • Fix scripts_contain and script_srcs_contain sometimes returning wrong results due to HTML mutations.
  • Fix a single undecodable byte in an untrusted document making html, inner_html, html_pretty, attributes, attrs, id, tag, text_lexbor and text_content raise UnicodeDecodeError. Bytes Lexbor passes through verbatim are now substituted with U+FFFD, the way text() already did.
  • Fix text_lexbor sometimes holding temporary memory longer than needed
  • Improve memory consumption, potential stack overflow and slow extraction in merge_text_nodes(). It is now up to 10 times faster.
  • Improve speed of __eq__
  • Improve speed of attrs.items() and attrs.values().
  • Fix the inner_html setter attaching element children to non-element nodes
  • Fix head and body dangling after setting inner_html on the <html> element
  • Fix the inner_html setter freeing the replaced children
  • Fix root going stale on an HTML fragment.

... (truncated)

Changelog

Sourced from selectolax's changelog.

Version 1.0.0

This release contains breaking changes.

The main change is that the Modest backend is no longer available. It is outdated and unmaintained, contains bugs, and does not follow modern HTML5 standards.

The second is that parse_fragment() is gone. It re-implemented fragment parsing by guessing whether the input was a document or a fragment; LexborHTMLParser(html, is_fragment=True) already does this properly, so the guessing layer has been removed.

The rest of the changes fix corner cases where the bugs were happening rarely, usually when heavily modifying the tree.

  • Breaking: Remove the Modest backend. selectolax.parser is now a stub that raises ImportError on import. Use the lexbor backend (from selectolax.lexbor import LexborHTMLParser) instead.
  • Breaking: Remove parse_fragment().
  • Breaking: Fix css_matches and any_css_matches missing matches outside the first top-level node of an HTML fragment. They now search the same scope as css.
  • Breaking: Fix tags and strip_tags doing nothing on an HTML fragment. tags returned an empty list and strip_tags removed nothing, because the fragment was not reachable from the document node.
  • Breaking: Fix the internal <html> wrapper of an HTML fragment being reported as a match.
  • Breaking: Fix scripts_contain and script_srcs_contain missing matches outside the first top-level node of an HTML fragment. They now search the same scope as css.
  • Breaking: Fix scripts_contain and script_srcs_contain answering from another scope's cached result. The cache is keyed by the node the search is rooted at rather than the node it was called on.
  • Breaking: Fix select() missing matches outside the first top-level node of an HTML fragment. It now searches the same scope as css.
  • Breaking: Fix traverse() covering only the first top-level node of an HTML fragment, and yielding nothing when the fragment starts with a text node.
  • Breaking: Fix attribute_longer_than and any_attribute_longer_than returning inconsistent results
  • Breaking: attributes and attrs now report an attribute's qualified name instead of its local name. An element carrying both href and xlink:href used to collapse them into a single href key.
  • Breaking: Fix iter() skipping the remaining children when a node is removed during iteration
  • Breaking: Fix an HTML fragment whose first node is text dropping the rest of the fragment. LexborHTMLParser('a<span>s</span>', is_fragment=True).text() returned 'a' instead of 'as'.
  • Fix text() silently returning truncated text instead of raising when a fragment fails to be collected.
  • Fix scripts_contain and script_srcs_contain sometimes returning wrong results due to HTML mutations.
  • Fix a single undecodable byte in an untrusted document making html, inner_html, html_pretty, attributes, attrs, id, tag, text_lexbor and text_content raise UnicodeDecodeError. Bytes Lexbor passes through verbatim are now substituted with U+FFFD, the way text() already did.
  • Fix text_lexbor sometimes holding temporary memory longer than needed
  • Improve memory consumption, potential stack overflow and slow extraction in merge_text_nodes(). It is now up to 10 times faster.
  • Improve speed of __eq__
  • Improve speed of attrs.items() and attrs.values().
  • Fix the inner_html setter attaching element children to non-element nodes
  • Fix head and body dangling after setting inner_html on the <html> element
  • Fix the inner_html setter freeing the replaced children
  • Fix root going stale on an HTML fragment.
  • Fix a segfault when walking the tree from the root of an HTML fragment that had been detached from the

... (truncated)

Commits
  • a735f5d Bump version: 0.4.13 → 1.0.0
  • 5231d54 Update changelog
  • ca143f3 Fix evaluation order
  • fb54845 Revert "Improve compilation flags and fix accidentially changed -O"
  • ba61fad Add docstring about thread-safety
  • 2a3e3e1 Fix undecodable bytes raising UnicodeDecodeError instead of substituting U+FFFD
  • ed2ecfe Fix the inner_html setter freeing the replaced children
  • 2595f8a Improve speed of attrs.items() and attrs.values()
  • 73b8c0f Fix error propagation for text()
  • fa8035d Fix fragment parsing
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the python-deps group with 1 update in the / directory: [selectolax](https://github.com/rushter/selectolax).


Updates `selectolax` from 0.4.13 to 1.0.0
- [Release notes](https://github.com/rushter/selectolax/releases)
- [Changelog](https://github.com/rushter/selectolax/blob/master/CHANGES.md)
- [Commits](rushter/selectolax@v0.4.13...v1.0.0)

---
updated-dependencies:
- dependency-name: selectolax
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 7, 2026
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ab4d4222-0a70-445f-948a-800ec4245a7d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@CryptoJones
CryptoJones merged commit 08b88d2 into main Oct 7, 2026
31 checks passed
@CryptoJones
CryptoJones deleted the dependabot/uv/python-deps-d88a8bd496 branch October 7, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant