1
- from _typeshed import Incomplete , ReadableBuffer , SupportsRead
1
+ from _typeshed import ReadableBuffer , SupportsRead
2
2
from typing import Any , NoReturn
3
- from xml .dom .minidom import Document , DOMImplementation , Node , TypeInfo
3
+ from typing_extensions import TypeAlias
4
+ from xml .dom .minidom import Document , DocumentFragment , DOMImplementation , Element , Node , TypeInfo
4
5
from xml .dom .xmlbuilder import DOMBuilderFilter , Options
6
+ from xml .parsers .expat import XMLParserType
7
+
8
+ _Model : TypeAlias = tuple [int , int , str | None , tuple [Any , ...]] # same as in pyexpat
5
9
6
10
TEXT_NODE = Node .TEXT_NODE
7
11
CDATA_SECTION_NODE = Node .CDATA_SECTION_NODE
@@ -10,45 +14,56 @@ FILTER_ACCEPT = DOMBuilderFilter.FILTER_ACCEPT
10
14
FILTER_REJECT = DOMBuilderFilter .FILTER_REJECT
11
15
FILTER_SKIP = DOMBuilderFilter .FILTER_SKIP
12
16
FILTER_INTERRUPT = DOMBuilderFilter .FILTER_INTERRUPT
13
- theDOMImplementation : DOMImplementation | None
17
+ theDOMImplementation : DOMImplementation
14
18
15
19
class ElementInfo :
16
- tagName : Incomplete
17
- def __init__ (self , tagName , model : Incomplete | None = None ) -> None : ...
18
- def getAttributeType (self , aname ) -> TypeInfo : ...
19
- def getAttributeTypeNS (self , namespaceURI , localName ) -> TypeInfo : ...
20
+ tagName : str
21
+ def __init__ (self , tagName : str , model : _Model | None = None ) -> None : ...
22
+ def getAttributeType (self , aname : str ) -> TypeInfo : ...
23
+ def getAttributeTypeNS (self , namespaceURI : str | None , localName : str ) -> TypeInfo : ...
20
24
def isElementContent (self ) -> bool : ...
21
25
def isEmpty (self ) -> bool : ...
22
- def isId (self , aname ) -> bool : ...
23
- def isIdNS (self , euri , ename , auri , aname ) -> bool : ...
26
+ def isId (self , aname : str ) -> bool : ...
27
+ def isIdNS (self , euri : str , ename : str , auri : str , aname : str ) -> bool : ...
24
28
25
29
class ExpatBuilder :
26
30
document : Document # Created in self.reset()
27
- curNode : Incomplete # Created in self.reset()
31
+ curNode : DocumentFragment | Element | Document # Created in self.reset()
28
32
def __init__ (self , options : Options | None = None ) -> None : ...
29
- def createParser (self ): ...
30
- def getParser (self ): ...
33
+ def createParser (self ) -> XMLParserType : ...
34
+ def getParser (self ) -> XMLParserType : ...
31
35
def reset (self ) -> None : ...
32
- def install (self , parser ) -> None : ...
36
+ def install (self , parser : XMLParserType ) -> None : ...
33
37
def parseFile (self , file : SupportsRead [ReadableBuffer | str ]) -> Document : ...
34
38
def parseString (self , string : str | ReadableBuffer ) -> Document : ...
35
- def start_doctype_decl_handler (self , doctypeName , systemId , publicId , has_internal_subset ) -> None : ...
39
+ def start_doctype_decl_handler (
40
+ self , doctypeName : str , systemId : str | None , publicId : str | None , has_internal_subset : bool
41
+ ) -> None : ...
36
42
def end_doctype_decl_handler (self ) -> None : ...
37
- def pi_handler (self , target , data ) -> None : ...
38
- def character_data_handler_cdata (self , data ) -> None : ...
39
- def character_data_handler (self , data ) -> None : ...
43
+ def pi_handler (self , target : str , data : str ) -> None : ...
44
+ def character_data_handler_cdata (self , data : str ) -> None : ...
45
+ def character_data_handler (self , data : str ) -> None : ...
40
46
def start_cdata_section_handler (self ) -> None : ...
41
47
def end_cdata_section_handler (self ) -> None : ...
42
- def entity_decl_handler (self , entityName , is_parameter_entity , value , base , systemId , publicId , notationName ) -> None : ...
43
- def notation_decl_handler (self , notationName , base , systemId , publicId ) -> None : ...
44
- def comment_handler (self , data ) -> None : ...
45
- def external_entity_ref_handler (self , context , base , systemId , publicId ) -> int : ...
46
- def first_element_handler (self , name , attributes ) -> None : ...
47
- def start_element_handler (self , name , attributes ) -> None : ...
48
- def end_element_handler (self , name ) -> None : ...
49
- def element_decl_handler (self , name , model ) -> None : ...
50
- def attlist_decl_handler (self , elem , name , type , default , required ) -> None : ...
51
- def xml_decl_handler (self , version , encoding , standalone ) -> None : ...
48
+ def entity_decl_handler (
49
+ self ,
50
+ entityName : str ,
51
+ is_parameter_entity : bool ,
52
+ value : str | None ,
53
+ base : str | None ,
54
+ systemId : str ,
55
+ publicId : str | None ,
56
+ notationName : str | None ,
57
+ ) -> None : ...
58
+ def notation_decl_handler (self , notationName : str , base : str | None , systemId : str , publicId : str | None ) -> None : ...
59
+ def comment_handler (self , data : str ) -> None : ...
60
+ def external_entity_ref_handler (self , context : str , base : str | None , systemId : str | None , publicId : str | None ) -> int : ...
61
+ def first_element_handler (self , name : str , attributes : list [str ]) -> None : ...
62
+ def start_element_handler (self , name : str , attributes : list [str ]) -> None : ...
63
+ def end_element_handler (self , name : str ) -> None : ...
64
+ def element_decl_handler (self , name : str , model : _Model ) -> None : ...
65
+ def attlist_decl_handler (self , elem : str , name : str , type : str , default : str | None , required : bool ) -> None : ...
66
+ def xml_decl_handler (self , version : str , encoding : str | None , standalone : int ) -> None : ...
52
67
53
68
class FilterVisibilityController :
54
69
filter : DOMBuilderFilter
@@ -57,7 +72,7 @@ class FilterVisibilityController:
57
72
def acceptNode (self , node : Node ) -> int : ...
58
73
59
74
class FilterCrutch :
60
- def __init__ (self , builder ) -> None : ...
75
+ def __init__ (self , builder : ExpatBuilder ) -> None : ...
61
76
62
77
class Rejecter (FilterCrutch ):
63
78
def start_element_handler (self , * args : Any ) -> None : ...
@@ -68,33 +83,39 @@ class Skipper(FilterCrutch):
68
83
def end_element_handler (self , * args : Any ) -> None : ...
69
84
70
85
class FragmentBuilder (ExpatBuilder ):
71
- fragment : Incomplete | None
72
- originalDocument : Incomplete
73
- context : Incomplete
74
- def __init__ (self , context , options : Options | None = None ) -> None : ...
86
+ fragment : DocumentFragment | None
87
+ originalDocument : Document
88
+ context : Node
89
+ def __init__ (self , context : Node , options : Options | None = None ) -> None : ...
90
+ def reset (self ) -> None : ...
91
+ def parseFile (self , file : SupportsRead [ReadableBuffer | str ]) -> DocumentFragment : ... # type: ignore[override]
92
+ def parseString (self , string : ReadableBuffer | str ) -> DocumentFragment : ... # type: ignore[override]
93
+ def external_entity_ref_handler (self , context : str , base : str | None , systemId : str | None , publicId : str | None ) -> int : ...
75
94
76
95
class Namespaces :
77
- def createParser (self ): ...
78
- def install (self , parser ) -> None : ...
79
- def start_namespace_decl_handler (self , prefix , uri ) -> None : ...
80
- def start_element_handler (self , name , attributes ) -> None : ...
81
- def end_element_handler (self , name ) -> None : ...
96
+ def createParser (self ) -> XMLParserType : ...
97
+ def install (self , parser : XMLParserType ) -> None : ...
98
+ def start_namespace_decl_handler (self , prefix : str | None , uri : str ) -> None : ...
99
+ def start_element_handler (self , name : str , attributes : list [ str ] ) -> None : ...
100
+ def end_element_handler (self , name : str ) -> None : ... # only exists if __debug__
82
101
83
102
class ExpatBuilderNS (Namespaces , ExpatBuilder ): ...
84
103
class FragmentBuilderNS (Namespaces , FragmentBuilder ): ...
85
104
class ParseEscape (Exception ): ...
86
105
87
106
class InternalSubsetExtractor (ExpatBuilder ):
88
- subset : Any | None
89
- def getSubset (self ) -> Any | None : ...
107
+ subset : str | list [ str ] | None = None
108
+ def getSubset (self ) -> str : ...
90
109
def parseFile (self , file : SupportsRead [ReadableBuffer | str ]) -> None : ... # type: ignore[override]
91
110
def parseString (self , string : str | ReadableBuffer ) -> None : ... # type: ignore[override]
92
- def start_doctype_decl_handler (self , name , publicId , systemId , has_internal_subset ) -> None : ... # type: ignore[override]
111
+ def start_doctype_decl_handler ( # type: ignore[override]
112
+ self , name : str , publicId : str | None , systemId : str | None , has_internal_subset : bool
113
+ ) -> None : ...
93
114
def end_doctype_decl_handler (self ) -> NoReturn : ...
94
- def start_element_handler (self , name , attrs ) -> NoReturn : ...
115
+ def start_element_handler (self , name : str , attrs : list [ str ] ) -> NoReturn : ...
95
116
96
- def parse (file : str | SupportsRead [ReadableBuffer | str ], namespaces : bool = True ): ...
97
- def parseString (string : str | ReadableBuffer , namespaces : bool = True ): ...
98
- def parseFragment (file , context , namespaces : bool = True ): ...
99
- def parseFragmentString (string : str , context , namespaces : bool = True ): ...
117
+ def parse (file : str | SupportsRead [ReadableBuffer | str ], namespaces : bool = True ) -> Document : ...
118
+ def parseString (string : str | ReadableBuffer , namespaces : bool = True ) -> Document : ...
119
+ def parseFragment (file : str | SupportsRead [ ReadableBuffer | str ] , context : Node , namespaces : bool = True ) -> DocumentFragment : ...
120
+ def parseFragmentString (string : str | ReadableBuffer , context : Node , namespaces : bool = True ) -> DocumentFragment : ...
100
121
def makeBuilder (options : Options ) -> ExpatBuilderNS | ExpatBuilder : ...
0 commit comments