9,j(pUddlmZddlmZmZmZmZmZmZm Z m Z ddl m Z ddl mZe rddlmZGddeZGdd eZGd d eZeej ejd <eejddejd<eejddejd<eej ejd<ed ejd<eej ejd <eej ejd<ed ejd<eegefZded<e eefZdS)) annotations)CallableDictIterableOptionalSetTuple TYPE_CHECKINGUnion) TypeAlias)EntitySubstitution)_AttributeValueceZdZUdZdZded<dZded<eeddg Z d ed <d ed <ded<ded<ded<ded<ded<d(dZ d)d*d Z d+d"Z d,d#Z d-d'ZdS). 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_booleansvalueOptional[Set[str]]kwargreturncV||S||jkrtS|j|S)N)rsetr)selfrr#r%s =C:\PYTHON\GemmaClient\venv\Lib\site-packages\bs4/formatter.py_defaultzFormatter._defaultBs7  L tx  55L!%((N/FUnion[int, str]c|p|j|_||_||_||j|d|_||_|d}t|tr|dkrd}d|z}nt|tr|}nd}||_ dS)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,