Mon Apr 17 06:38:13 2023 UTC ()
py-beautifulsoup4: updated to 4.12.2

= 4.12.2 (20230407)

* Fixed an unhandled exception in BeautifulSoup.decode_contents
  and methods that call it. [bug=2015545]

= 4.12.1 (20230405)

NOTE: the following things are likely to be dropped in the next
feature release of Beautiful Soup:

 Official support for Python 3.6.
 Inclusion of unit tests and test data in the wheel file.
 Two scripts: demonstrate_parser_differences.py and test-all-versions.

Changes:

* This version of Beautiful Soup replaces setup.py and setup.cfg
  with pyproject.toml. Beautiful Soup now uses tox as its test backend
  and hatch to do builds.

* The main functional improvement in this version is a nonrecursive technique
  for regenerating a tree. This technique is used to avoid situations where,
  in previous versions, doing something to a very deeply nested tree
  would overflow the Python interpreter stack:

  1. Outputting a tree as a string, e.g. with
     BeautifulSoup.encode() [bug=1471755]

  2. Making copies of trees (copy.copy() and
     copy.deepcopy() from the Python standard library). [bug=1709837]

  3. Pickling a BeautifulSoup object. (Note that pickling a Tag
     object can still cause an overflow.)

* Making a copy of a BeautifulSoup object no longer parses the
  document again, which should improve performance significantly.

* When a BeautifulSoup object is unpickled, Beautiful Soup now
  tries to associate an appropriate TreeBuilder object with it.

* Tag.prettify() will now consistently end prettified markup with
  a newline.

* Added unit tests for fuzz test cases created by third
  parties. Some of these tests are skipped since they point
  to problems outside of Beautiful Soup, but this change
  puts them all in one convenient place.

* PageElement now implements the known_xml attribute. (This was technically
  a bug, but it shouldn't be an issue in normal use.) [bug=2007895]

* The demonstrate_parser_differences.py script was still written in
  Python 2. I've converted it to Python 3, but since no one has
  mentioned this over the years, it's a sign that no one uses this
  script and it's not serving its purpose.


(adam)
diff -r1.27 -r1.28 pkgsrc/www/py-beautifulsoup4/Makefile
diff -r1.10 -r1.11 pkgsrc/www/py-beautifulsoup4/PLIST
diff -r1.23 -r1.24 pkgsrc/www/py-beautifulsoup4/distinfo

cvs diff -r1.27 -r1.28 pkgsrc/www/py-beautifulsoup4/Makefile (expand / switch to unified diff)

--- pkgsrc/www/py-beautifulsoup4/Makefile 2023/04/02 12:41:02 1.27
+++ pkgsrc/www/py-beautifulsoup4/Makefile 2023/04/17 06:38:13 1.28
@@ -1,25 +1,26 @@ @@ -1,25 +1,26 @@
1# $NetBSD: Makefile,v 1.27 2023/04/02 12:41:02 adam Exp $ 1# $NetBSD: Makefile,v 1.28 2023/04/17 06:38:13 adam Exp $
2 2
3DISTNAME= beautifulsoup4-4.12.0 3DISTNAME= beautifulsoup4-4.12.2
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
5CATEGORIES= www python 5CATEGORIES= www python
6MASTER_SITES+= ${MASTER_SITE_PYPI:=b/beautifulsoup4/} 6MASTER_SITES+= ${MASTER_SITE_PYPI:=b/beautifulsoup4/}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://www.crummy.com/software/BeautifulSoup/ 9HOMEPAGE= https://www.crummy.com/software/BeautifulSoup/
10COMMENT= HTML/XML Parser for Python, version 4 10COMMENT= HTML/XML Parser for Python, version 4
11LICENSE= mit 11LICENSE= mit
12 12
 13TOOL_DEPENDS+= ${PYPKGPREFIX}-hatchling-[0-9]*:../../devel/py-hatchling
13DEPENDS+= ${PYPKGPREFIX}-lxml-[0-9]*:../../textproc/py-lxml 14DEPENDS+= ${PYPKGPREFIX}-lxml-[0-9]*:../../textproc/py-lxml
14DEPENDS+= ${PYPKGPREFIX}-soupsieve>=1.2:../../www/py-soupsieve 15DEPENDS+= ${PYPKGPREFIX}-soupsieve>=1.2:../../www/py-soupsieve
15TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test 16TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
16 17
17USE_LANGUAGES= # none 18USE_LANGUAGES= # none
18 19
19PYTHON_VERSIONS_INCOMPATIBLE= 27 20PYTHON_VERSIONS_INCOMPATIBLE= 27
20 21
21do-test: 22do-test:
22 cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} bs4 23 cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} bs4
23 24
24.include "../../lang/python/egg.mk" 25.include "../../lang/python/wheel.mk"
25.include "../../mk/bsd.pkg.mk" 26.include "../../mk/bsd.pkg.mk"

cvs diff -r1.10 -r1.11 pkgsrc/www/py-beautifulsoup4/PLIST (expand / switch to unified diff)

--- pkgsrc/www/py-beautifulsoup4/PLIST 2023/04/02 12:41:02 1.10
+++ pkgsrc/www/py-beautifulsoup4/PLIST 2023/04/17 06:38:13 1.11
@@ -1,84 +1,74 @@ @@ -1,84 +1,74 @@
1@comment $NetBSD: PLIST,v 1.10 2023/04/02 12:41:02 adam Exp $ 1@comment $NetBSD: PLIST,v 1.11 2023/04/17 06:38:13 adam Exp $
2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 2${PYSITELIB}/${WHEEL_INFODIR}/INSTALLER
3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 3${PYSITELIB}/${WHEEL_INFODIR}/METADATA
4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 4${PYSITELIB}/${WHEEL_INFODIR}/RECORD
5${PYSITELIB}/${EGG_INFODIR}/requires.txt 5${PYSITELIB}/${WHEEL_INFODIR}/REQUESTED
6${PYSITELIB}/${EGG_INFODIR}/top_level.txt 6${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
 7${PYSITELIB}/${WHEEL_INFODIR}/direct_url.json
 8${PYSITELIB}/${WHEEL_INFODIR}/licenses/AUTHORS
 9${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
7${PYSITELIB}/bs4/__init__.py 10${PYSITELIB}/bs4/__init__.py
8${PYSITELIB}/bs4/__init__.pyc 11${PYSITELIB}/bs4/__init__.pyc
9${PYSITELIB}/bs4/__init__.pyo 
10${PYSITELIB}/bs4/builder/__init__.py 12${PYSITELIB}/bs4/builder/__init__.py
11${PYSITELIB}/bs4/builder/__init__.pyc 13${PYSITELIB}/bs4/builder/__init__.pyc
12${PYSITELIB}/bs4/builder/__init__.pyo 
13${PYSITELIB}/bs4/builder/_html5lib.py 14${PYSITELIB}/bs4/builder/_html5lib.py
14${PYSITELIB}/bs4/builder/_html5lib.pyc 15${PYSITELIB}/bs4/builder/_html5lib.pyc
15${PYSITELIB}/bs4/builder/_html5lib.pyo 
16${PYSITELIB}/bs4/builder/_htmlparser.py 16${PYSITELIB}/bs4/builder/_htmlparser.py
17${PYSITELIB}/bs4/builder/_htmlparser.pyc 17${PYSITELIB}/bs4/builder/_htmlparser.pyc
18${PYSITELIB}/bs4/builder/_htmlparser.pyo 
19${PYSITELIB}/bs4/builder/_lxml.py 18${PYSITELIB}/bs4/builder/_lxml.py
20${PYSITELIB}/bs4/builder/_lxml.pyc 19${PYSITELIB}/bs4/builder/_lxml.pyc
21${PYSITELIB}/bs4/builder/_lxml.pyo 
22${PYSITELIB}/bs4/css.py 20${PYSITELIB}/bs4/css.py
23${PYSITELIB}/bs4/css.pyc 21${PYSITELIB}/bs4/css.pyc
24${PYSITELIB}/bs4/css.pyo 
25${PYSITELIB}/bs4/dammit.py 22${PYSITELIB}/bs4/dammit.py
26${PYSITELIB}/bs4/dammit.pyc 23${PYSITELIB}/bs4/dammit.pyc
27${PYSITELIB}/bs4/dammit.pyo 
28${PYSITELIB}/bs4/diagnose.py 24${PYSITELIB}/bs4/diagnose.py
29${PYSITELIB}/bs4/diagnose.pyc 25${PYSITELIB}/bs4/diagnose.pyc
30${PYSITELIB}/bs4/diagnose.pyo 
31${PYSITELIB}/bs4/element.py 26${PYSITELIB}/bs4/element.py
32${PYSITELIB}/bs4/element.pyc 27${PYSITELIB}/bs4/element.pyc
33${PYSITELIB}/bs4/element.pyo 
34${PYSITELIB}/bs4/formatter.py 28${PYSITELIB}/bs4/formatter.py
35${PYSITELIB}/bs4/formatter.pyc 29${PYSITELIB}/bs4/formatter.pyc
36${PYSITELIB}/bs4/formatter.pyo 
37${PYSITELIB}/bs4/tests/__init__.py 30${PYSITELIB}/bs4/tests/__init__.py
38${PYSITELIB}/bs4/tests/__init__.pyc 31${PYSITELIB}/bs4/tests/__init__.pyc
39${PYSITELIB}/bs4/tests/__init__.pyo 32${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4818336571064320.testcase
 33${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-4999465949331456.testcase
 34${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5167584867909632.testcase
 35${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5703933063462912.testcase
 36${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5843991618256896.testcase
 37${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-5984173902397440.testcase
 38${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6124268085182464.testcase
 39${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6241471367348224.testcase
 40${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6450958476902400.testcase
 41${PYSITELIB}/bs4/tests/fuzz/clusterfuzz-testcase-minimized-bs4_fuzzer-6600557255327744.testcase
 42${PYSITELIB}/bs4/tests/fuzz/crash-0d306a50c8ed8bcd0785b67000fcd5dea1d33f08.testcase
40${PYSITELIB}/bs4/tests/test_builder.py 43${PYSITELIB}/bs4/tests/test_builder.py
41${PYSITELIB}/bs4/tests/test_builder.pyc 44${PYSITELIB}/bs4/tests/test_builder.pyc
42${PYSITELIB}/bs4/tests/test_builder.pyo 
43${PYSITELIB}/bs4/tests/test_builder_registry.py 45${PYSITELIB}/bs4/tests/test_builder_registry.py
44${PYSITELIB}/bs4/tests/test_builder_registry.pyc 46${PYSITELIB}/bs4/tests/test_builder_registry.pyc
45${PYSITELIB}/bs4/tests/test_builder_registry.pyo 
46${PYSITELIB}/bs4/tests/test_css.py 47${PYSITELIB}/bs4/tests/test_css.py
47${PYSITELIB}/bs4/tests/test_css.pyc 48${PYSITELIB}/bs4/tests/test_css.pyc
48${PYSITELIB}/bs4/tests/test_css.pyo 
49${PYSITELIB}/bs4/tests/test_dammit.py 49${PYSITELIB}/bs4/tests/test_dammit.py
50${PYSITELIB}/bs4/tests/test_dammit.pyc 50${PYSITELIB}/bs4/tests/test_dammit.pyc
51${PYSITELIB}/bs4/tests/test_dammit.pyo 
52${PYSITELIB}/bs4/tests/test_docs.py 51${PYSITELIB}/bs4/tests/test_docs.py
53${PYSITELIB}/bs4/tests/test_docs.pyc 52${PYSITELIB}/bs4/tests/test_docs.pyc
54${PYSITELIB}/bs4/tests/test_docs.pyo 
55${PYSITELIB}/bs4/tests/test_element.py 53${PYSITELIB}/bs4/tests/test_element.py
56${PYSITELIB}/bs4/tests/test_element.pyc 54${PYSITELIB}/bs4/tests/test_element.pyc
57${PYSITELIB}/bs4/tests/test_element.pyo 
58${PYSITELIB}/bs4/tests/test_formatter.py 55${PYSITELIB}/bs4/tests/test_formatter.py
59${PYSITELIB}/bs4/tests/test_formatter.pyc 56${PYSITELIB}/bs4/tests/test_formatter.pyc
60${PYSITELIB}/bs4/tests/test_formatter.pyo 57${PYSITELIB}/bs4/tests/test_fuzz.py
 58${PYSITELIB}/bs4/tests/test_fuzz.pyc
61${PYSITELIB}/bs4/tests/test_html5lib.py 59${PYSITELIB}/bs4/tests/test_html5lib.py
62${PYSITELIB}/bs4/tests/test_html5lib.pyc 60${PYSITELIB}/bs4/tests/test_html5lib.pyc
63${PYSITELIB}/bs4/tests/test_html5lib.pyo 
64${PYSITELIB}/bs4/tests/test_htmlparser.py 61${PYSITELIB}/bs4/tests/test_htmlparser.py
65${PYSITELIB}/bs4/tests/test_htmlparser.pyc 62${PYSITELIB}/bs4/tests/test_htmlparser.pyc
66${PYSITELIB}/bs4/tests/test_htmlparser.pyo 
67${PYSITELIB}/bs4/tests/test_lxml.py 63${PYSITELIB}/bs4/tests/test_lxml.py
68${PYSITELIB}/bs4/tests/test_lxml.pyc 64${PYSITELIB}/bs4/tests/test_lxml.pyc
69${PYSITELIB}/bs4/tests/test_lxml.pyo 
70${PYSITELIB}/bs4/tests/test_navigablestring.py 65${PYSITELIB}/bs4/tests/test_navigablestring.py
71${PYSITELIB}/bs4/tests/test_navigablestring.pyc 66${PYSITELIB}/bs4/tests/test_navigablestring.pyc
72${PYSITELIB}/bs4/tests/test_navigablestring.pyo 
73${PYSITELIB}/bs4/tests/test_pageelement.py 67${PYSITELIB}/bs4/tests/test_pageelement.py
74${PYSITELIB}/bs4/tests/test_pageelement.pyc 68${PYSITELIB}/bs4/tests/test_pageelement.pyc
75${PYSITELIB}/bs4/tests/test_pageelement.pyo 
76${PYSITELIB}/bs4/tests/test_soup.py 69${PYSITELIB}/bs4/tests/test_soup.py
77${PYSITELIB}/bs4/tests/test_soup.pyc 70${PYSITELIB}/bs4/tests/test_soup.pyc
78${PYSITELIB}/bs4/tests/test_soup.pyo 
79${PYSITELIB}/bs4/tests/test_tag.py 71${PYSITELIB}/bs4/tests/test_tag.py
80${PYSITELIB}/bs4/tests/test_tag.pyc 72${PYSITELIB}/bs4/tests/test_tag.pyc
81${PYSITELIB}/bs4/tests/test_tag.pyo 
82${PYSITELIB}/bs4/tests/test_tree.py 73${PYSITELIB}/bs4/tests/test_tree.py
83${PYSITELIB}/bs4/tests/test_tree.pyc 74${PYSITELIB}/bs4/tests/test_tree.pyc
84${PYSITELIB}/bs4/tests/test_tree.pyo 

cvs diff -r1.23 -r1.24 pkgsrc/www/py-beautifulsoup4/distinfo (expand / switch to unified diff)

--- pkgsrc/www/py-beautifulsoup4/distinfo 2023/04/02 12:41:02 1.23
+++ pkgsrc/www/py-beautifulsoup4/distinfo 2023/04/17 06:38:13 1.24
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
1$NetBSD: distinfo,v 1.23 2023/04/02 12:41:02 adam Exp $ 1$NetBSD: distinfo,v 1.24 2023/04/17 06:38:13 adam Exp $
2 2
3BLAKE2s (beautifulsoup4-4.12.0.tar.gz) = a2ff08c13cace3e2760ae0d55eb43c8f60fc7d9aabf925a19672f8c2c71aadc9 3BLAKE2s (beautifulsoup4-4.12.2.tar.gz) = 5130ca9c9ad31fb39dd315d23283ed89bd9912de94bbf555ebc5252301b8c713
4SHA512 (beautifulsoup4-4.12.0.tar.gz) = 8f4dcaccdcd220f9641c7080d685c1eaa9c851daa579c187fda75a1d85dcf2fe4cc673c2d4b2143682003390ef1d954366ea0d2820e07f8c10418350d31bccd3 4SHA512 (beautifulsoup4-4.12.2.tar.gz) = 1dbb620f675bb319ef050ece0f343e80359bdc59cd8b8de19b1851aa5bca1081a7e953e3221ad97142198c17f67384c05b0406af24a123d71398f209fb89db97
5Size (beautifulsoup4-4.12.0.tar.gz) = 523942 bytes 5Size (beautifulsoup4-4.12.2.tar.gz) = 505113 bytes