Beautiful Soup 4.5.0

159 views
Skip to first unread message

leonardr

unread,
Jul 20, 2016, 6:51:05 AM7/20/16
to beautifulsoup
I just released Beautiful Soup 4.5.0. I rushed to get it out because a recent release of html5lib broke compatibility with Beautiful Soup, but there are a number of other bug fixes and improvements as well.

Here's the full changelog:

= 4.5.0 (20160719) =

* Beautiful Soup is no longer compatible with Python 2.6. This
  actually happened a few releases ago, but it's now official.

* Beautiful Soup will now work with versions of html5lib greater than
  0.99999999. [bug=1603299]

* If a search against each individual value of a multi-valued
  attribute fails, the search will be run one final time against the
  complete attribute value considered as a single string. That is, if
  a tag has class="foo bar" and neither "foo" nor "bar" matches, but
  "foo bar" does, the tag is now considered a match.

  This happened in previous versions, but only when the value being
  searched for was a string. Now it also works when that value is
  a regular expression, a list of strings, etc. [bug=1476868]

* Fixed a bug that deranged the tree when a whitespace element was
  reparented into a tag that contained an identical whitespace
  element. [bug=1505351]

* Added support for CSS selector values that contain quoted spaces,
  such as tag[style="display: foo"]. [bug=1540588]

* Corrected handling of XML processing instructions. [bug=1504393]

* Corrected an encoding error that happened when a BeautifulSoup
  object was copied. [bug=1554439]

* The contents of <textarea> tags will no longer be modified when the
  tree is prettified. [bug=1555829]

* When a BeautifulSoup object is pickled but its tree builder cannot
  be pickled, its .builder attribute is set to None instead of being
  destroyed. This avoids a performance problem once the object is
  unpickled. [bug=1523629]

* Specify the file and line number when warning about a
  BeautifulSoup object being instantiated without a parser being
  specified. [bug=1574647]

* The `limit` argument to `select()` now works correctly, though it's
  not implemented very efficiently. [bug=1520530]

* Fixed a Python 3 ByteWarning when a URL was passed in as though it
  were markup. Thanks to James Salter for a patch and
  test. [bug=1533762]

* We don't run the check for a filename passed in as markup if the
  'filename' contains a less-than character; the less-than character
  indicates it's most likely a very small document. [bug=1577864]

Reply all
Reply to author
Forward
0 new messages