Releases: facelessuser/soupsieve
Releases · facelessuser/soupsieve
2.0.1
2.0.1
- FIX: Remove unused code.
1.9.6
1.9.6
Note: Last version for Python 2.7
- FIX: Prune dead code.
- FIX: Corner case with splitting namespace and tag name that that have an escaped
|
.
2.0.0
2.0.0
- NEW:
SelectorSyntaxError
is derived fromException
notSyntaxError
. - NEW: Remove deprecated
comments
andicomments
from the API. - NEW: Drop support for EOL Python versions (Python 2 and Python < 3.5).
- FIX: Corner case with splitting namespace and tag name that have an escaped
|
.
1.9.5
1.9.5
- FIX:
:placeholder-shown
should not match if the element has content that overrides the placeholder.
1.9.4
1.9.4
- FIX:
:checked
rule was too strict withoption
elements. The specification for:checked
does not require an
option
element to be under aselect
element. - FIX: Fix level 4
:lang()
wildcard match handling with singletons. Implicit wildcard matching should not
match any singleton. Explicit wildcard matching (*
in the language range:*-US
) is allowed to match singletons.
1.9.3
1.9.3
- FIX:
[attr!=value]
pattern was mistakenly using:not([attr|=value])
logic instead of:not([attr=value])
. - FIX: Remove undocumented
_QUIRKS
mode flag. Beautiful Soup was meant to use it to help with transition to Soup Sieve, but never released with it. Help with transition at this point is no longer needed.
1.9.2
1.9.2
- FIX: Shortcut last descendant calculation if possible for performance.
- FIX: Fix issue where
Doctype
strings can be mistaken for a normal text node in some cases. - FIX: A top level tag is not a
:root
tag if it has sibling text nodes or tag nodes. This is an issue that mostly manifests when usinghtml.parser
as the parser will allow multiple root nodes.
1.9.1
1.9.1
- FIX:
:root
,:contains()
,:default
,:indeterminate
,:lang()
, and:dir()
will properly account for HTMLiframe
elements in their logic when selecting or matching an element. Their logic will be restricted to the document for which the element under consideration applies. - FIX: HTML pseudo-classes will check that all key elements checked are in the XHTML namespace (HTML parsers that do not provide namespaces will assume the XHTML namespace).
- FIX: Ensure that all pseudo-class names are case insensitive and allow CSS escapes.
1.9.0
1.9.0
- NEW: Allow
:contains()
to accept a list of text to search for. (#115) - NEW: Add new
escape
function for escaping CSS identifiers. (#125) - NEW: Deprecate
comments
andicomments
functions in the API to ensure Soup Sieve focuses only in CSS selectors.comments
andicomments
will most likely be removed in 2.0. (#130) - NEW: Add Python 3.8 support. (#133)
- FIX: Don't install test files when installing the
soupsieve
package. (#111) - FIX: Improve efficiency of
:contains()
comparison. - FIX: Null characters should translate to the Unicode REPLACEMENT CHARACTER (
U+FFFD
) according to the specification. This applies to CSS escaped NULL characters as well. (#124) - FIX: Escaped EOF should translate to
U+FFFD
outside of CSS strings. In a string, they should just be ignored, but as there is no case where we could resolve such a string and still have a valid selector, string handling remains the same. (#128)
1.8.0
1.8.0
- NEW: Add custom selector support. (#92)(#108)
- FIX: Small tweak to CSS identifier pattern to ensure it matches the CSS specification exactly. Specifically, you can't have an identifier of only
-
. (#107) - FIX: CSS string patterns should allow escaping newlines to span strings across multiple lines. (#107)
- FIX: Newline regular expression for CSS newlines should treat
\r\n
as a single character, especially in cases such as string escapes:\\\r\n
. (#107) - FIX: Allow
--
as a valid identifier or identifier start. (#107) - FIX: Bad CSS syntax now raises a
SelectorSyntaxError
, which is still currently derived fromSyntaxError
, but will most likely be derived fromException
in the future.