Browse Source

Update Beautiful Soup 4.8.1 (r540) → 4.8.2 (r556).

pull/1289/head
JackDandy 5 years ago
parent
commit
b9e3fae8f6
  1. 3
      CHANGES.md
  2. 16
      lib/bs4/__init__.pyi
  3. 62
      lib/bs4/builder/__init__.pyi
  4. 65
      lib/bs4/builder/_html5lib.pyi
  5. 31
      lib/bs4/builder/_htmlparser.pyi
  6. 46
      lib/bs4/builder/_lxml.pyi
  7. 1
      lib/bs4/check_block.pyi
  8. 3
      lib/bs4/diagnose.pyi
  9. 16
      lib/bs4/element.pyi
  10. 2
      lib/bs4/formatter.pyi
  11. 14
      lib/bs4_py2/element.py
  12. 14
      lib/bs4_py3/element.py

3
CHANGES.md

@ -8,7 +8,7 @@
* Change backport rarfile_py2; Fixes for multivolume RAR3 with encrypted headers
* Update Apprise 0.8.0 (6aa52c3) to 0.8.4 (1ce7cbb)
* Update attr 19.2.0.dev0 (daf2bc8) to 20.1.0.dev0 (4bd6827)
* Update Beautiful Soup 4.8.1 (r540) to 4.8.2 (r554)
* Update Beautiful Soup 4.8.1 (r540) to 4.8.2 (r556)
* Update Certifi 2019.06.16 (84dc766) to 2019.11.28 (21abb9b)
* Update dateutil 2.8.1 (fc9b162) to 2.8.1 (110a09b)
* Update DiskCache library 4.0.0 (2c79bb9) to 4.1.0 (b0451e0)
@ -38,6 +38,7 @@
* Change remove deprecated `buildNameCache`
* Update Apprise 0.8.0 (6aa52c3) to 0.8.3 (4aee9de)
* Update attr 19.2.0.dev0 (daf2bc8) to 20.1.0.dev0 (9b5e988)
* Update Beautiful Soup 4.8.1 (r540) to 4.8.2 (r554)
* Update Requests library 2.22.0 (3d968ff) to 2.22.0 (d2f65af)
* Update Tornado_py3 Web Server 6.0.3 (ff985fe) to 6.1.dev1 (18b653c)
* Update urllib3 release 1.25.6 (4a6c288) to 1.25.7 (37ba61a)

16
lib/bs4/__init__.pyi

@ -57,7 +57,7 @@ class FeatureNotFound(ValueError): ...
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from .formatter import Formatter, HTMLFormatter, XMLFormatter
from .formatter import Formatter as Formatter, HTMLFormatter as HTMLFormatter, XMLFormatter as XMLFormatter
from typing import Any, Optional
__license__: str
@ -101,7 +101,7 @@ class PageElement:
replace_with_children: Any = ...
replaceWithChildren: Any = ...
def wrap(self, wrap_inside: Any): ...
def extract(self): ...
def extract(self, _self_index: Optional[Any] = ...): ...
def _last_descendant(self, is_initialized: bool = ..., accept_self: bool = ...): ...
_lastRecursiveChild: Any = ...
def insert(self, position: Any, new_child: Any) -> None: ...
@ -149,6 +149,8 @@ class PageElement:
def previous_siblings(self) -> None: ...
@property
def parents(self) -> None: ...
@property
def decomposed(self): ...
def nextGenerator(self): ...
def nextSiblingGenerator(self): ...
def previousGenerator(self): ...
@ -170,6 +172,8 @@ class NavigableString(str, PageElement):
def name(self, name: Any) -> None: ...
class PreformattedString(NavigableString):
PREFIX: str = ...
SUFFIX: str = ...
def output_ready(self, formatter: Optional[Any] = ...): ...
class CData(PreformattedString):
@ -236,9 +240,9 @@ class Tag(PageElement):
def get(self, key: Any, default: Optional[Any] = ...): ...
def get_attribute_list(self, key: Any, default: Optional[Any] = ...): ...
def has_attr(self, key: Any): ...
def __hash__(self): ...
def __hash__(self) -> Any: ...
def __getitem__(self, key: Any): ...
def __iter__(self): ...
def __iter__(self) -> Any: ...
def __len__(self): ...
def __contains__(self, x: Any): ...
def __bool__(self): ...
@ -246,8 +250,8 @@ class Tag(PageElement):
def __delitem__(self, key: Any) -> None: ...
def __call__(self, *args: Any, **kwargs: Any): ...
def __getattr__(self, tag: Any): ...
def __eq__(self, other: Any): ...
def __ne__(self, other: Any): ...
def __eq__(self, other: Any) -> Any: ...
def __ne__(self, other: Any) -> Any: ...
def __repr__(self, encoding: str = ...): ...
def __unicode__(self): ...
def __str__(self): ...

62
lib/bs4/builder/__init__.pyi

@ -0,0 +1,62 @@
from typing import Any, Optional
class TreeBuilderRegistry:
builders_for_feature: Any = ...
builders: Any = ...
def __init__(self) -> None: ...
def register(self, treebuilder_class: Any) -> None: ...
def lookup(self, *features: Any): ...
class TreeBuilder:
NAME: str = ...
ALTERNATE_NAMES: Any = ...
features: Any = ...
is_xml: bool = ...
picklable: bool = ...
empty_element_tags: Any = ...
DEFAULT_CDATA_LIST_ATTRIBUTES: Any = ...
DEFAULT_PRESERVE_WHITESPACE_TAGS: Any = ...
USE_DEFAULT: Any = ...
TRACKS_LINE_NUMBERS: bool = ...
soup: Any = ...
cdata_list_attributes: Any = ...
preserve_whitespace_tags: Any = ...
store_line_numbers: Any = ...
def __init__(self, multi_valued_attributes: Any = ..., preserve_whitespace_tags: Any = ..., store_line_numbers: Any = ...) -> None: ...
def initialize_soup(self, soup: Any) -> None: ...
def reset(self) -> None: ...
def can_be_empty_element(self, tag_name: Any): ...
def feed(self, markup: Any) -> None: ...
def prepare_markup(self, markup: Any, user_specified_encoding: Optional[Any] = ..., document_declared_encoding: Optional[Any] = ..., exclude_encodings: Optional[Any] = ...) -> None: ...
def test_fragment_to_document(self, fragment: Any): ...
def set_up_substitutions(self, tag: Any): ...
def _replace_cdata_list_attribute_values(self, tag_name: Any, attrs: Any): ...
class SAXTreeBuilder(TreeBuilder):
def feed(self, markup: Any) -> None: ...
def close(self) -> None: ...
def startElement(self, name: Any, attrs: Any) -> None: ...
def endElement(self, name: Any) -> None: ...
def startElementNS(self, nsTuple: Any, nodeName: Any, attrs: Any) -> None: ...
def endElementNS(self, nsTuple: Any, nodeName: Any) -> None: ...
def startPrefixMapping(self, prefix: Any, nodeValue: Any) -> None: ...
def endPrefixMapping(self, prefix: Any) -> None: ...
def characters(self, content: Any) -> None: ...
def startDocument(self) -> None: ...
def endDocument(self) -> None: ...
class HTMLTreeBuilder(TreeBuilder):
empty_element_tags: Any = ...
block_elements: Any = ...
DEFAULT_CDATA_LIST_ATTRIBUTES: Any = ...
DEFAULT_PRESERVE_WHITESPACE_TAGS: Any = ...
def set_up_substitutions(self, tag: Any): ...
class ParserRejectedMarkup(Exception):
def __init__(self, message_or_exception: Any) -> None: ...
# Names in __all__ with no definition:
# HTML5TreeBuilder
# HTMLParserTreeBuilder
# LXMLTreeBuilder
# LXMLTreeBuilderForXML

65
lib/bs4/builder/_html5lib.pyi

@ -0,0 +1,65 @@
from ..builder import HTMLTreeBuilder
from html5lib.treebuilders import base as treebuilder_base
from typing import Any, Optional
class HTML5TreeBuilder(HTMLTreeBuilder):
NAME: str = ...
features: Any = ...
TRACKS_LINE_NUMBERS: bool = ...
user_specified_encoding: Any = ...
def prepare_markup(self, markup: Any, user_specified_encoding: Any, document_declared_encoding: Optional[Any] = ..., exclude_encodings: Optional[Any] = ...) -> None: ...
def feed(self, markup: Any) -> None: ...
underlying_builder: Any = ...
def create_treebuilder(self, namespaceHTMLElements: Any): ...
def test_fragment_to_document(self, fragment: Any): ...
class TreeBuilderForHtml5lib(treebuilder_base.TreeBuilder):
soup: Any = ...
parser: Any = ...
store_line_numbers: Any = ...
def __init__(self, namespaceHTMLElements: Any, soup: Optional[Any] = ..., store_line_numbers: bool = ..., **kwargs: Any) -> None: ...
def documentClass(self): ...
def insertDoctype(self, token: Any) -> None: ...
def elementClass(self, name: Any, namespace: Any): ...
def commentClass(self, data: Any): ...
def fragmentClass(self): ...
def appendChild(self, node: Any) -> None: ...
def getDocument(self): ...
def getFragment(self): ...
def testSerializer(self, element: Any): ...
class AttrList:
element: Any = ...
attrs: Any = ...
def __init__(self, element: Any) -> None: ...
def __iter__(self) -> Any: ...
def __setitem__(self, name: Any, value: Any) -> None: ...
def items(self): ...
def keys(self): ...
def __len__(self): ...
def __getitem__(self, name: Any): ...
def __contains__(self, name: Any): ...
class Element(treebuilder_base.Node):
element: Any = ...
soup: Any = ...
namespace: Any = ...
def __init__(self, element: Any, soup: Any, namespace: Any) -> None: ...
def appendChild(self, node: Any) -> None: ...
def getAttributes(self): ...
def setAttributes(self, attributes: Any) -> None: ...
attributes: Any = ...
def insertText(self, data: Any, insertBefore: Optional[Any] = ...) -> None: ...
def insertBefore(self, node: Any, refNode: Any) -> None: ...
def removeChild(self, node: Any) -> None: ...
def reparentChildren(self, new_parent: Any) -> None: ...
def cloneNode(self): ...
def hasContent(self): ...
def getNameTuple(self): ...
nameTuple: Any = ...
class TextNode(Element):
element: Any = ...
soup: Any = ...
def __init__(self, element: Any, soup: Any) -> None: ...
def cloneNode(self) -> None: ...

31
lib/bs4/builder/_htmlparser.pyi

@ -0,0 +1,31 @@
from ..builder import HTMLTreeBuilder
from html.parser import HTMLParser
from typing import Any, Optional
class HTMLParseError(Exception): ...
class BeautifulSoupHTMLParser(HTMLParser):
already_closed_empty_element: Any = ...
def __init__(self, *args: Any, **kwargs: Any) -> None: ...
def error(self, msg: Any) -> None: ...
def handle_startendtag(self, name: Any, attrs: Any) -> None: ...
def handle_starttag(self, name: Any, attrs: Any, handle_empty_element: bool = ...) -> None: ...
def handle_endtag(self, name: Any, check_already_closed: bool = ...) -> None: ...
def handle_data(self, data: Any) -> None: ...
def handle_charref(self, name: Any) -> None: ...
def handle_entityref(self, name: Any) -> None: ...
def handle_comment(self, data: Any) -> None: ...
def handle_decl(self, data: Any) -> None: ...
def unknown_decl(self, data: Any) -> None: ...
def handle_pi(self, data: Any) -> None: ...
class HTMLParserTreeBuilder(HTMLTreeBuilder):
is_xml: bool = ...
picklable: bool = ...
NAME: Any = ...
features: Any = ...
TRACKS_LINE_NUMBERS: bool = ...
parser_args: Any = ...
def __init__(self, parser_args: Optional[Any] = ..., parser_kwargs: Optional[Any] = ..., **kwargs: Any) -> None: ...
def prepare_markup(self, markup: Any, user_specified_encoding: Optional[Any] = ..., document_declared_encoding: Optional[Any] = ..., exclude_encodings: Optional[Any] = ...) -> None: ...
def feed(self, markup: Any) -> None: ...

46
lib/bs4/builder/_lxml.pyi

@ -0,0 +1,46 @@
from ..builder import HTMLTreeBuilder, TreeBuilder
from typing import Any, Optional
class LXMLTreeBuilderForXML(TreeBuilder):
DEFAULT_PARSER_CLASS: Any = ...
is_xml: bool = ...
processing_instruction_class: Any = ...
NAME: str = ...
ALTERNATE_NAMES: Any = ...
features: Any = ...
CHUNK_SIZE: int = ...
DEFAULT_NSMAPS: Any = ...
DEFAULT_NSMAPS_INVERTED: Any = ...
def initialize_soup(self, soup: Any) -> None: ...
def _register_namespaces(self, mapping: Any) -> None: ...
def default_parser(self, encoding: Any): ...
def parser_for(self, encoding: Any): ...
_default_parser: Any = ...
empty_element_tags: Any = ...
soup: Any = ...
nsmaps: Any = ...
def __init__(self, parser: Optional[Any] = ..., empty_element_tags: Optional[Any] = ..., **kwargs: Any) -> None: ...
def _getNsTag(self, tag: Any): ...
def prepare_markup(self, markup: Any, user_specified_encoding: Optional[Any] = ..., exclude_encodings: Optional[Any] = ..., document_declared_encoding: Optional[Any] = ...) -> None: ...
parser: Any = ...
def feed(self, markup: Any) -> None: ...
def close(self) -> None: ...
def start(self, name: Any, attrs: Any, nsmap: Any = ...) -> None: ...
def _prefix_for_namespace(self, namespace: Any): ...
def end(self, name: Any) -> None: ...
def pi(self, target: Any, data: Any) -> None: ...
def data(self, content: Any) -> None: ...
def doctype(self, name: Any, pubid: Any, system: Any) -> None: ...
def comment(self, content: Any) -> None: ...
def test_fragment_to_document(self, fragment: Any): ...
class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
NAME: Any = ...
ALTERNATE_NAMES: Any = ...
features: Any = ...
is_xml: bool = ...
processing_instruction_class: Any = ...
def default_parser(self, encoding: Any): ...
parser: Any = ...
def feed(self, markup: Any) -> None: ...
def test_fragment_to_document(self, fragment: Any): ...

1
lib/bs4/check_block.pyi

@ -2,6 +2,7 @@
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from . import _s as _s
from typing import Any
data: Any

3
lib/bs4/diagnose.pyi

@ -2,7 +2,8 @@
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from .builder import builder_registry
from . import BeautifulSoup as BeautifulSoup, __version__ as __version__
from .builder import builder_registry as builder_registry
from html.parser import HTMLParser
from typing import Any

16
lib/bs4/element.pyi

@ -2,7 +2,7 @@
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from .formatter import Formatter, HTMLFormatter, XMLFormatter
from .formatter import Formatter as Formatter, HTMLFormatter as HTMLFormatter, XMLFormatter as XMLFormatter
from typing import Any, Optional
__license__: str
@ -46,7 +46,7 @@ class PageElement:
replace_with_children: Any = ...
replaceWithChildren: Any = ...
def wrap(self, wrap_inside: Any): ...
def extract(self): ...
def extract(self, _self_index: Optional[Any] = ...): ...
def _last_descendant(self, is_initialized: bool = ..., accept_self: bool = ...): ...
_lastRecursiveChild: Any = ...
def insert(self, position: Any, new_child: Any) -> None: ...
@ -94,6 +94,8 @@ class PageElement:
def previous_siblings(self) -> None: ...
@property
def parents(self) -> None: ...
@property
def decomposed(self): ...
def nextGenerator(self): ...
def nextSiblingGenerator(self): ...
def previousGenerator(self): ...
@ -115,6 +117,8 @@ class NavigableString(str, PageElement):
def name(self, name: Any) -> None: ...
class PreformattedString(NavigableString):
PREFIX: str = ...
SUFFIX: str = ...
def output_ready(self, formatter: Optional[Any] = ...): ...
class CData(PreformattedString):
@ -181,9 +185,9 @@ class Tag(PageElement):
def get(self, key: Any, default: Optional[Any] = ...): ...
def get_attribute_list(self, key: Any, default: Optional[Any] = ...): ...
def has_attr(self, key: Any): ...
def __hash__(self): ...
def __hash__(self) -> Any: ...
def __getitem__(self, key: Any): ...
def __iter__(self): ...
def __iter__(self) -> Any: ...
def __len__(self): ...
def __contains__(self, x: Any): ...
def __bool__(self): ...
@ -191,8 +195,8 @@ class Tag(PageElement):
def __delitem__(self, key: Any) -> None: ...
def __call__(self, *args: Any, **kwargs: Any): ...
def __getattr__(self, tag: Any): ...
def __eq__(self, other: Any): ...
def __ne__(self, other: Any): ...
def __eq__(self, other: Any) -> Any: ...
def __ne__(self, other: Any) -> Any: ...
def __repr__(self, encoding: str = ...): ...
def __unicode__(self): ...
def __str__(self): ...

2
lib/bs4/formatter.pyi

@ -2,7 +2,7 @@
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from .dammit import EntitySubstitution
from .dammit import EntitySubstitution as EntitySubstitution
from typing import Any, Optional
class Formatter(EntitySubstitution):

14
lib/bs4_py2/element.py

@ -239,7 +239,7 @@ class PageElement(object):
raise ValueError("Cannot replace a Tag with its parent.")
old_parent = self.parent
my_index = self.parent.index(self)
self.extract()
self.extract(_self_index=my_index)
old_parent.insert(my_index, replace_with)
return self
replaceWith = replace_with # BS3
@ -255,7 +255,7 @@ class PageElement(object):
"Cannot replace an element with its contents when that"
"element is not part of a tree.")
my_index = self.parent.index(self)
self.extract()
self.extract(_self_index=my_index)
for child in reversed(self.contents[:]):
my_parent.insert(my_index, child)
return self
@ -273,13 +273,19 @@ class PageElement(object):
wrap_inside.append(me)
return wrap_inside
def extract(self):
def extract(self, _self_index=None):
"""Destructively rips this element out of the tree.
:param _self_index: The location of this element in its parent's
.contents, if known. Passing this in allows for a performance
optimization.
:return: `self`, no longer part of the tree.
"""
if self.parent is not None:
del self.parent.contents[self.parent.index(self)]
if _self_index is None:
_self_index = self.parent.index(self)
del self.parent.contents[_self_index]
#Find the two elements that would be next to each other if
#this element (and any children) hadn't been parsed. Connect

14
lib/bs4_py3/element.py

@ -239,7 +239,7 @@ class PageElement(object):
raise ValueError("Cannot replace a Tag with its parent.")
old_parent = self.parent
my_index = self.parent.index(self)
self.extract()
self.extract(_self_index=my_index)
old_parent.insert(my_index, replace_with)
return self
replaceWith = replace_with # BS3
@ -255,7 +255,7 @@ class PageElement(object):
"Cannot replace an element with its contents when that"
"element is not part of a tree.")
my_index = self.parent.index(self)
self.extract()
self.extract(_self_index=my_index)
for child in reversed(self.contents[:]):
my_parent.insert(my_index, child)
return self
@ -273,13 +273,19 @@ class PageElement(object):
wrap_inside.append(me)
return wrap_inside
def extract(self):
def extract(self, _self_index=None):
"""Destructively rips this element out of the tree.
:param _self_index: The location of this element in its parent's
.contents, if known. Passing this in allows for a performance
optimization.
:return: `self`, no longer part of the tree.
"""
if self.parent is not None:
del self.parent.contents[self.parent.index(self)]
if _self_index is None:
_self_index = self.parent.index(self)
del self.parent.contents[_self_index]
#Find the two elements that would be next to each other if
#this element (and any children) hadn't been parsed. Connect

Loading…
Cancel
Save