You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NEW: Soup Sieve is now thread safe, and this is now tested, including on free-threaded Python. This is assuming
read only operations on a document. Check out our documentation for more details.
FIX: Fix a race where compiling selectors in multiple threads at the same time could fail with a bogus
syntax error or silently parse a selector incorrectly.
FIX: Fix issue where trailing whitespace and comments can sometimes fail to be consumed properly.
FIX: Fix a selector that starts with a comment followed by whitespace, such as /* comment */ div, failing
with a syntax error.
FIX: Custom selector names should be checked with ASCII only lowercase.
FIX: Fix [attr=value], [attr$=value], [attr|=value], and [attr!=value] ignoring a trailing newline in
the attribute value, so [type=hidden] no longer matches type="hidden ".
FIX: Cache the language, the contenteditable state, the select of an option, and the tree that an element
is in, as found from its ancestors, when matching :lang(), :read-write, :read-only, :checked, :default,
and :indeterminate to avoid quadratic time on deeply nested documents.
FIX: Fix :lang('') not matching every element without any language information, which per the HTML spec has
an empty language tag. It missed the first such element checked, or all of them when there was no head.
FIX: :lang() no longer matches an element whose language tag is not well-formed BCP 47 syntax, such as -, en-, en_US, or a subtag longer than 8 characters, and a language range that is not well-formed matches
nothing. Previously, lang="-" matched :lang(''), and ill-formed tags matched :lang('*').
FIX: Fix :lang() ranges that end in a wildcard, such as en-* or *-*, never matching. As RFC 4647 extended
filtering specifies, wildcards after the first subtag are ignored, so en-* matches the same as en.
FIX: Fix [attr*=value] and [attr$=value] taking time quadratic in the length of the value when it nearly
matches a long attribute value, including when matching case insensitive.