pypi soupsieve 4.1.1

26 minutes ago

4.1.1

  • FIX: Improve performance of tag name matching, which runs for every element and selector.
  • FIX: Fix nth selectors taking polynomial time when nested inside the of S of other nth selectors, such
    as :nth-last-child(n of :nth-last-child(n of li)), as each level of nesting multiplied the work by the number
    of siblings. nth selectors inside :has() with a subsequent-sibling combinator, such as
    :has(~ :nth-child(n of li)), were also quadratic. Each sibling is now evaluated against an nth selector at most
    once per parent.
  • FIX: A range input's value is clamped to its minimum and maximum, 0 and 100 by default, so it now matches
    :out-of-range only when its maximum is less than its minimum, and :in-range otherwise, including without min
    or max. A range input that is disabled, readonly or in a datalist matches neither.
  • FIX: :in-range and :out-of-range no longer match an input of any type that is disabled, readonly or in a
    datalist, as it is barred from constraint validation.
  • FIX: :in-range and :out-of-range treat a date, month, week or datetime-local value after
    275760-09-13T00:00:00Z as invalid, as browsers do.
  • FIX: :placeholder-shown sanitizes an input's value before checking it, as browsers do, so it matches when the
    value is only line breaks, only whitespace for url and email, or, for number, not a valid floating-point
    number or one that overflows a double, such as 1e9999.
  • FIX: Fix :placeholder-shown taking time quadratic in the depth of the document, as it got the text of every
    element before checking that it is a textarea.

Don't miss a new soupsieve release

NewReleases is sending notifications on new releases.