Hello community,

here is the log from the commit of package python3-beautifulsoup4 for 
openSUSE:Factory checked in at 2016-08-09 22:14:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-beautifulsoup4 (Old)
 and      /work/SRC/openSUSE:Factory/.python3-beautifulsoup4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-beautifulsoup4"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python3-beautifulsoup4/python3-beautifulsoup4-doc.changes
        2016-07-28 23:46:33.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python3-beautifulsoup4.new/python3-beautifulsoup4-doc.changes
   2016-08-09 22:14:52.000000000 +0200
@@ -1,0 +2,8 @@
+Sat Aug  6 02:44:55 UTC 2016 - [email protected]
+
+- update to version 4.5.1:
+  * Fixed a crash when passing Unicode markup that contained a
+    processing instruction into the lxml HTML parser on Python
+    3. [bug=1608048]
+
+-------------------------------------------------------------------
python3-beautifulsoup4.changes: same change

Old:
----
  beautifulsoup4-4.5.0.tar.gz

New:
----
  beautifulsoup4-4.5.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-beautifulsoup4-doc.spec ++++++
--- /var/tmp/diff_new_pack.ssDqRo/_old  2016-08-09 22:14:53.000000000 +0200
+++ /var/tmp/diff_new_pack.ssDqRo/_new  2016-08-09 22:14:53.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python3-beautifulsoup4-doc
-Version:        4.5.0
+Version:        4.5.1
 Release:        0
 Summary:        Documentation for python3-beautifulsoup4
 License:        MIT

python3-beautifulsoup4.spec: same change
++++++ beautifulsoup4-4.5.0.tar.gz -> beautifulsoup4-4.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/AUTHORS.txt 
new/beautifulsoup4-4.5.1/AUTHORS.txt
--- old/beautifulsoup4-4.5.0/AUTHORS.txt        2012-03-01 16:37:51.000000000 
+0100
+++ new/beautifulsoup4-4.5.1/AUTHORS.txt        2016-07-27 03:22:19.000000000 
+0200
@@ -16,7 +16,7 @@
 
 Sam Ruby helped with a lot of edge cases.
 
-Jonathan Ellis was awarded the prestigous Beau Potage D'Or for his
+Jonathan Ellis was awarded the prestigious Beau Potage D'Or for his
 work in solving the nestable tags conundrum.
 
 An incomplete list of people have contributed patches to Beautiful
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/NEWS.txt 
new/beautifulsoup4-4.5.1/NEWS.txt
--- old/beautifulsoup4-4.5.0/NEWS.txt   2016-07-20 02:35:09.000000000 +0200
+++ new/beautifulsoup4-4.5.1/NEWS.txt   2016-08-03 04:39:17.000000000 +0200
@@ -1,3 +1,9 @@
+= 4.5.1 (20160802) =
+
+* Fixed a crash when passing Unicode markup that contained a
+  processing instruction into the lxml HTML parser on Python
+  3. [bug=1608048]
+
 = 4.5.0 (20160719) =
 
 * Beautiful Soup is no longer compatible with Python 2.6. This
@@ -508,7 +514,7 @@
 * Renamed Tag.nsprefix to Tag.prefix, for consistency with
   NamespacedAttribute.
 
-* Fixed a test failure that occured on Python 3.x when chardet was
+* Fixed a test failure that occurred on Python 3.x when chardet was
   installed.
 
 * Made prettify() return Unicode by default, so it will look nice on
@@ -542,7 +548,7 @@
 
 * Restored compatibility with Python 2.6.
 
-* The install process no longer installs docs or auxillary text files.
+* The install process no longer installs docs or auxiliary text files.
 
 * It's now possible to deepcopy a BeautifulSoup object created with
   Python's built-in HTML parser.
@@ -781,7 +787,7 @@
 Fixed a UnicodeDecodeError when unpickling documents that contain
 non-ASCII characters.
 
-Fixed a TypeError that occured in some circumstances when a tag
+Fixed a TypeError that occurred in some circumstances when a tag
 contained no text.
 
 Jump through hoops to avoid the use of chardet, which can be extremely
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/PKG-INFO 
new/beautifulsoup4-4.5.1/PKG-INFO
--- old/beautifulsoup4-4.5.0/PKG-INFO   2016-07-20 12:38:04.000000000 +0200
+++ new/beautifulsoup4-4.5.1/PKG-INFO   2016-08-03 04:43:18.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: beautifulsoup4
-Version: 4.5.0
+Version: 4.5.1
 Summary: Screen-scraping library
 Home-page: http://www.crummy.com/software/BeautifulSoup/bs4/
 Author: Leonard Richardson
@@ -13,7 +13,7 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Text Processing :: Markup :: HTML
 Classifier: Topic :: Text Processing :: Markup :: XML
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/beautifulsoup4-4.5.0/beautifulsoup4.egg-info/PKG-INFO 
new/beautifulsoup4-4.5.1/beautifulsoup4.egg-info/PKG-INFO
--- old/beautifulsoup4-4.5.0/beautifulsoup4.egg-info/PKG-INFO   2016-07-20 
12:38:04.000000000 +0200
+++ new/beautifulsoup4-4.5.1/beautifulsoup4.egg-info/PKG-INFO   2016-08-03 
04:43:18.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: beautifulsoup4
-Version: 4.5.0
+Version: 4.5.1
 Summary: Screen-scraping library
 Home-page: http://www.crummy.com/software/BeautifulSoup/bs4/
 Author: Leonard Richardson
@@ -13,7 +13,7 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Text Processing :: Markup :: HTML
 Classifier: Topic :: Text Processing :: Markup :: XML
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/__init__.py 
new/beautifulsoup4-4.5.1/bs4/__init__.py
--- old/beautifulsoup4-4.5.0/bs4/__init__.py    2016-07-20 02:28:09.000000000 
+0200
+++ new/beautifulsoup4-4.5.1/bs4/__init__.py    2016-08-03 04:40:04.000000000 
+0200
@@ -8,7 +8,7 @@
 provides methods and Pythonic idioms that make it easy to navigate,
 search, and modify the parse tree.
 
-Beautiful Soup works with Python 2.6 and up. It works better if lxml
+Beautiful Soup works with Python 2.7 and up. It works better if lxml
 and/or html5lib is installed.
 
 For more than you ever wanted to know about Beautiful Soup, see the
@@ -21,7 +21,7 @@
 # found in the LICENSE file.
 
 __author__ = "Leonard Richardson ([email protected])"
-__version__ = "4.5.0"
+__version__ = "4.5.1"
 __copyright__ = "Copyright (c) 2004-2016 Leonard Richardson"
 __license__ = "MIT"
 
@@ -448,7 +448,7 @@
         """Push a start tag on to the stack.
 
         If this method returns None, the tag was rejected by the
-        SoupStrainer. You should proceed as if the tag had not occured
+        SoupStrainer. You should proceed as if the tag had not occurred
         in the document. For instance, if this was a self-closing tag,
         don't call handle_endtag.
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/builder/_lxml.py 
new/beautifulsoup4-4.5.1/bs4/builder/_lxml.py
--- old/beautifulsoup4-4.5.0/bs4/builder/_lxml.py       2016-07-17 
00:35:57.000000000 +0200
+++ new/beautifulsoup4-4.5.1/bs4/builder/_lxml.py       2016-07-30 
13:49:07.000000000 +0200
@@ -32,6 +32,7 @@
     DEFAULT_PARSER_CLASS = etree.XMLParser
 
     is_xml = True
+    processing_instruction_class = XMLProcessingInstruction
 
     NAME = "lxml-xml"
     ALTERNATE_NAMES = ["xml"]
@@ -90,6 +91,16 @@
 
         Each 4-tuple represents a strategy for parsing the document.
         """
+        # Instead of using UnicodeDammit to convert the bytestring to
+        # Unicode using different encodings, use EncodingDetector to
+        # iterate over the encodings, and tell lxml to try to parse
+        # the document as each one in turn.
+        is_html = not self.is_xml
+        if is_html:
+            self.processing_instruction_class = ProcessingInstruction
+        else:
+            self.processing_instruction_class = XMLProcessingInstruction
+
         if isinstance(markup, unicode):
             # We were given Unicode. Maybe lxml can parse Unicode on
             # this system?
@@ -101,15 +112,6 @@
             yield (markup.encode("utf8"), "utf8",
                    document_declared_encoding, False)
 
-        # Instead of using UnicodeDammit to convert the bytestring to
-        # Unicode using different encodings, use EncodingDetector to
-        # iterate over the encodings, and tell lxml to try to parse
-        # the document as each one in turn.
-        is_html = not self.is_xml
-        if is_html:
-            self.processing_instruction_class = ProcessingInstruction
-        else:
-            self.processing_instruction_class = XMLProcessingInstruction
         try_encodings = [user_specified_encoding, document_declared_encoding]
         detector = EncodingDetector(
             markup, try_encodings, is_html, exclude_encodings)
@@ -236,6 +238,7 @@
 
     features = ALTERNATE_NAMES + [NAME, HTML, FAST, PERMISSIVE]
     is_xml = False
+    processing_instruction_class = ProcessingInstruction
 
     def default_parser(self, encoding):
         return etree.HTMLParser
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/diagnose.py 
new/beautifulsoup4-4.5.1/bs4/diagnose.py
--- old/beautifulsoup4-4.5.0/bs4/diagnose.py    2016-07-16 17:27:02.000000000 
+0200
+++ new/beautifulsoup4-4.5.1/bs4/diagnose.py    2016-07-27 03:25:45.000000000 
+0200
@@ -58,7 +58,8 @@
         data = data.read()
     elif os.path.exists(data):
         print '"%s" looks like a filename. Reading data from the file.' % data
-        data = open(data).read()
+        with open(data) as fp:
+            data = fp.read()
     elif data.startswith("http:") or data.startswith("https:"):
         print '"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % 
data
         print "You need to use some other library to get the document behind 
the URL, and feed that document to Beautiful Soup."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/element.py 
new/beautifulsoup4-4.5.1/bs4/element.py
--- old/beautifulsoup4-4.5.0/bs4/element.py     2016-07-20 02:28:09.000000000 
+0200
+++ new/beautifulsoup4-4.5.1/bs4/element.py     2016-07-27 03:22:19.000000000 
+0200
@@ -649,7 +649,7 @@
             return lambda el: el._attr_value_as_string(
                 attribute, '').startswith(value)
         elif operator == '$':
-            # string represenation of `attribute` ends with `value`
+            # string representation of `attribute` ends with `value`
             return lambda el: el._attr_value_as_string(
                 attribute, '').endswith(value)
         elif operator == '*':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/testing.py 
new/beautifulsoup4-4.5.1/bs4/testing.py
--- old/beautifulsoup4-4.5.0/bs4/testing.py     2016-07-17 04:18:57.000000000 
+0200
+++ new/beautifulsoup4-4.5.1/bs4/testing.py     2016-07-30 13:54:51.000000000 
+0200
@@ -139,6 +139,14 @@
             markup.replace(b"\n", b""))
 
     def test_processing_instruction(self):
+        # We test both Unicode and bytestring to verify that
+        # process_markup correctly sets processing_instruction_class
+        # even when the markup is already Unicode and there is no
+        # need to process anything.
+        markup = u"""<?PITarget PIContent?>"""
+        soup = self.soup(markup)
+        self.assertEqual(markup, soup.decode())
+
         markup = b"""<?PITarget PIContent?>"""
         soup = self.soup(markup)
         self.assertEqual(markup, soup.encode("utf8"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/tests/test_soup.py 
new/beautifulsoup4-4.5.1/bs4/tests/test_soup.py
--- old/beautifulsoup4-4.5.0/bs4/tests/test_soup.py     2016-07-16 
17:55:30.000000000 +0200
+++ new/beautifulsoup4-4.5.1/bs4/tests/test_soup.py     2016-07-27 
03:27:42.000000000 +0200
@@ -35,7 +35,6 @@
 except ImportError, e:
     LXML_PRESENT = False
 
-PYTHON_2_PRE_2_7 = (sys.version_info < (2,7))
 PYTHON_3_PRE_3_2 = (sys.version_info[0] == 3 and sys.version_info < (3,2))
 
 class TestConstructor(SoupTest):
@@ -77,7 +76,7 @@
     def test_no_warning_if_explicit_parser_specified(self):
         with warnings.catch_warnings(record=True) as w:
             soup = self.soup("<a><b></b></a>", "html.parser")
-        self.assertEquals([], w)
+        self.assertEqual([], w)
 
     def test_parseOnlyThese_renamed_to_parse_only(self):
         with warnings.catch_warnings(record=True) as w:
@@ -279,7 +278,7 @@
         self.assertEqual(soup_from_unicode.encode('utf-8'), self.utf8_data)
 
     @skipIf(
-        PYTHON_2_PRE_2_7 or PYTHON_3_PRE_3_2,
+        PYTHON_3_PRE_3_2,
         "Bad HTMLParser detected; skipping test of non-ASCII characters in 
attribute name.")
     def test_attribute_name_containing_unicode_characters(self):
         markup = u'<div><a \N{SNOWMAN}="snowman"></a></div>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/bs4/tests/test_tree.py 
new/beautifulsoup4-4.5.1/bs4/tests/test_tree.py
--- old/beautifulsoup4-4.5.0/bs4/tests/test_tree.py     2016-07-20 
02:51:35.000000000 +0200
+++ new/beautifulsoup4-4.5.1/bs4/tests/test_tree.py     2016-07-27 
03:22:19.000000000 +0200
@@ -346,7 +346,7 @@
         strainer = SoupStrainer(attrs={'id' : 'first'})
         self.assertSelects(tree.find_all(strainer), ['Match.'])
 
-    def test_find_all_with_missing_atribute(self):
+    def test_find_all_with_missing_attribute(self):
         # You can pass in None as the value of an attribute to find_all.
         # This will match tags that do not have that attribute set.
         tree = self.soup("""<a id="1">ID present.</a>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/doc/source/index.rst 
new/beautifulsoup4-4.5.1/doc/source/index.rst
--- old/beautifulsoup4-4.5.0/doc/source/index.rst       2015-11-24 
13:36:12.000000000 +0100
+++ new/beautifulsoup4-4.5.1/doc/source/index.rst       2016-07-27 
03:31:45.000000000 +0200
@@ -166,12 +166,16 @@
 If you're using a recent version of Debian or Ubuntu Linux, you can
 install Beautiful Soup with the system package manager:
 
-:kbd:`$ apt-get install python-bs4`
+:kbd:`$ apt-get install python-bs4` (for Python 2)
+
+:kbd:`$ apt-get install python3-bs4` (for Python 3)
 
 Beautiful Soup 4 is published through PyPi, so if you can't install it
 with the system packager, you can install it with ``easy_install`` or
 ``pip``. The package name is ``beautifulsoup4``, and the same package
-works on Python 2 and Python 3.
+works on Python 2 and Python 3. Make sure you use the right version of
+``pip`` or ``easy_install`` for your Python version (these may be named
+``pip3`` and ``easy_install3`` respectively if you're using Python 3).
 
 :kbd:`$ easy_install beautifulsoup4`
 
@@ -298,7 +302,8 @@
 
  from bs4 import BeautifulSoup
 
- soup = BeautifulSoup(open("index.html"))
+ with open("index.html") as fp:
+     soup = BeautifulSoup(fp)
 
  soup = BeautifulSoup("<html>data</html>")
 
@@ -2776,7 +2781,8 @@
 missing a parser that Beautiful Soup could be using::
 
  from bs4.diagnose import diagnose
- data = open("bad.html").read()
+ with open("bad.html") as fp:
+     data = fp.read()
  diagnose(data)
 
  # Diagnostic running on Beautiful Soup 4.2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/beautifulsoup4-4.5.0/setup.py 
new/beautifulsoup4-4.5.1/setup.py
--- old/beautifulsoup4-4.5.0/setup.py   2016-07-20 12:37:28.000000000 +0200
+++ new/beautifulsoup4-4.5.1/setup.py   2016-08-03 04:39:03.000000000 +0200
@@ -5,7 +5,7 @@
 
 setup(
     name="beautifulsoup4",
-    version = "4.5.0",
+    version = "4.5.1",
     author="Leonard Richardson",
     author_email='[email protected]',
     url="http://www.crummy.com/software/BeautifulSoup/bs4/";,
@@ -23,7 +23,7 @@
                  "Intended Audience :: Developers",
                  "License :: OSI Approved :: MIT License",
                  "Programming Language :: Python",
-                 "Programming Language :: Python :: 2",
+                 "Programming Language :: Python :: 2.7",
                  'Programming Language :: Python :: 3',
                  "Topic :: Text Processing :: Markup :: HTML",
                  "Topic :: Text Processing :: Markup :: XML",


Reply via email to