[L i(UddlmZddlmZmZmZmZmZmZm Z m Z ddl m Z ddl mZe rddlmZGddeZGdd eZGd d eZeej( ej*d <eej,ddej*d<eej(ddej*d<eej. ej*d<ed ej*d<eej( ej*d <eej. ej*d<ed ej*d<eegefZded<e eefZy)) annotations)CallableDictIterableOptionalSetTuple TYPE_CHECKINGUnion) TypeAlias)EntitySubstitution)_AttributeValueceZdZUdZdZded<dZded<eeddg Z d ed <d ed <ded<ded<ded<ded<ded< ddZ d ddZ ddZ d dZ d!dZy)" FormatteraDescribes a strategy to use when outputting a parse tree to a string. Some parts of this strategy come from the distinction between HTML4, HTML5, and XML. Others are configurable by the user. Formatters are passed in as the `formatter` argument to methods like `bs4.element.Tag.encode`. Most people won't need to think about formatters, and most people who need to think about them can pass in one of these predefined strings as `formatter` rather than making a new Formatter object: For HTML documents: * 'html' - HTML entity substitution for generic HTML documents. (default) * 'html5' - HTML entity substitution for HTML5 documents, as well as some optimizations in the way tags are rendered. * 'html5-4.12.0' - The version of the 'html5' formatter used prior to Beautiful Soup 4.13.0. * 'minimal' - Only make the substitutions necessary to guarantee valid HTML. * None - Do not perform any substitution. This will be faster but may result in invalid markup. For XML documents: * 'html' - Entity substitution for XHTML documents. * 'minimal' - Only make the substitutions necessary to guarantee valid XML. (default) * None - Do not perform any substitution. This will be faster but may result in invalid markup. htmlstrHTMLxmlXMLscriptstyle)cdata_containing_tagszDict[str, Set[str]] HTML_DEFAULTS Optional[str]language%Optional[_EntitySubstitutionFunction]entity_substitutionvoid_element_close_prefixSet[str]rindentboolempty_attributes_are_booleanscZ||S||jk(r tS|j|S)N)rsetr)selfrvaluekwargs S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/bs4/formatter.py_defaultzFormatter._defaultBs7  L txx 5L!!%((Nc2|xs |j|_||_||_|j |j|d|_||_|d}t|tr|dkrd}d|z}||_ yt|tr |}||_ yd}||_ y)aConstructor. :param language: This should be `Formatter.XML` if you are formatting XML markup and `Formatter.HTML` if you are formatting HTML markup. :param entity_substitution: A function to call to replace special characters with XML/HTML entities. For examples, see bs4.dammit.EntitySubstitution.substitute_html and substitute_xml. :param void_element_close_prefix: By default, void elements are represented as (XML rules) rather than (HTML rules). To get , pass in the empty string. :param cdata_containing_tags: The set of tags that are defined as containing CDATA in this dialect. For example, in HTML,