selectolax 0.3.25__cp313-cp313-musllinux_1_2_i686.whl → 0.3.26__cp313-cp313-musllinux_1_2_i686.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of selectolax might be problematic. Click here for more details.

selectolax/__init__.py CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  __author__ = """Artem Golubin"""
5
5
  __email__ = 'me@rushter.com'
6
- __version__ = '0.3.25'
6
+ __version__ = '0.3.26'
7
7
 
8
8
  from . import parser
9
9
  from . import lexbor
selectolax/lexbor.c CHANGED
@@ -30,209 +30,209 @@
30
30
  "name": "selectolax.lexbor",
31
31
  "sources": [
32
32
  "selectolax/lexbor.pyx",
33
- "lexbor/source/lexbor/unicode/unicode.c",
34
- "lexbor/source/lexbor/unicode/idna.c",
35
- "lexbor/source/lexbor/core/serialize.c",
36
- "lexbor/source/lexbor/core/dtoa.c",
37
- "lexbor/source/lexbor/core/avl.c",
38
- "lexbor/source/lexbor/core/array.c",
39
- "lexbor/source/lexbor/core/hash.c",
40
- "lexbor/source/lexbor/core/diyfp.c",
41
- "lexbor/source/lexbor/core/mem.c",
42
- "lexbor/source/lexbor/core/dobject.c",
43
- "lexbor/source/lexbor/core/utils.c",
44
- "lexbor/source/lexbor/core/array_obj.c",
45
- "lexbor/source/lexbor/core/bst.c",
46
- "lexbor/source/lexbor/core/mraw.c",
47
- "lexbor/source/lexbor/core/print.c",
48
- "lexbor/source/lexbor/core/conv.c",
49
- "lexbor/source/lexbor/core/plog.c",
50
- "lexbor/source/lexbor/core/shs.c",
51
- "lexbor/source/lexbor/core/str.c",
52
- "lexbor/source/lexbor/core/strtod.c",
53
- "lexbor/source/lexbor/core/in.c",
54
- "lexbor/source/lexbor/core/bst_map.c",
55
- "lexbor/source/lexbor/html/serialize.c",
56
- "lexbor/source/lexbor/html/tokenizer.c",
57
- "lexbor/source/lexbor/html/style.c",
33
+ "lexbor/source/lexbor/url/url.c",
34
+ "lexbor/source/lexbor/ns/ns.c",
35
+ "lexbor/source/lexbor/ports/posix/lexbor/core/perf.c",
36
+ "lexbor/source/lexbor/ports/posix/lexbor/core/fs.c",
37
+ "lexbor/source/lexbor/ports/posix/lexbor/core/memory.c",
38
+ "lexbor/source/lexbor/punycode/punycode.c",
39
+ "lexbor/source/lexbor/css/state.c",
40
+ "lexbor/source/lexbor/css/property.c",
41
+ "lexbor/source/lexbor/css/at_rule.c",
42
+ "lexbor/source/lexbor/css/rule.c",
43
+ "lexbor/source/lexbor/css/stylesheet.c",
44
+ "lexbor/source/lexbor/css/log.c",
45
+ "lexbor/source/lexbor/css/declaration.c",
46
+ "lexbor/source/lexbor/css/css.c",
47
+ "lexbor/source/lexbor/css/value.c",
48
+ "lexbor/source/lexbor/css/parser.c",
49
+ "lexbor/source/lexbor/css/unit.c",
50
+ "lexbor/source/lexbor/css/selectors/state.c",
51
+ "lexbor/source/lexbor/css/selectors/selectors.c",
52
+ "lexbor/source/lexbor/css/selectors/pseudo_state.c",
53
+ "lexbor/source/lexbor/css/selectors/pseudo.c",
54
+ "lexbor/source/lexbor/css/selectors/selector.c",
55
+ "lexbor/source/lexbor/css/property/state.c",
56
+ "lexbor/source/lexbor/css/syntax/state.c",
57
+ "lexbor/source/lexbor/css/syntax/token.c",
58
+ "lexbor/source/lexbor/css/syntax/syntax.c",
59
+ "lexbor/source/lexbor/css/syntax/anb.c",
60
+ "lexbor/source/lexbor/css/syntax/tokenizer.c",
61
+ "lexbor/source/lexbor/css/syntax/parser.c",
62
+ "lexbor/source/lexbor/css/syntax/tokenizer/error.c",
63
+ "lexbor/source/lexbor/css/at_rule/state.c",
64
+ "lexbor/source/lexbor/tag/tag.c",
58
65
  "lexbor/source/lexbor/html/tree.c",
59
- "lexbor/source/lexbor/html/interface.c",
60
- "lexbor/source/lexbor/html/token.c",
61
66
  "lexbor/source/lexbor/html/node.c",
67
+ "lexbor/source/lexbor/html/token.c",
68
+ "lexbor/source/lexbor/html/style.c",
62
69
  "lexbor/source/lexbor/html/encoding.c",
63
- "lexbor/source/lexbor/html/token_attr.c",
70
+ "lexbor/source/lexbor/html/tokenizer.c",
71
+ "lexbor/source/lexbor/html/serialize.c",
64
72
  "lexbor/source/lexbor/html/parser.c",
65
- "lexbor/source/lexbor/html/tokenizer/state_doctype.c",
66
- "lexbor/source/lexbor/html/tokenizer/state_rawtext.c",
67
- "lexbor/source/lexbor/html/tokenizer/state.c",
68
- "lexbor/source/lexbor/html/tokenizer/state_script.c",
69
- "lexbor/source/lexbor/html/tokenizer/state_rcdata.c",
70
- "lexbor/source/lexbor/html/tokenizer/error.c",
71
- "lexbor/source/lexbor/html/tokenizer/state_comment.c",
72
- "lexbor/source/lexbor/html/tree/active_formatting.c",
73
- "lexbor/source/lexbor/html/tree/open_elements.c",
74
- "lexbor/source/lexbor/html/tree/template_insertion.c",
75
- "lexbor/source/lexbor/html/tree/error.c",
76
- "lexbor/source/lexbor/html/tree/insertion_mode/initial.c",
77
- "lexbor/source/lexbor/html/tree/insertion_mode/before_head.c",
78
- "lexbor/source/lexbor/html/tree/insertion_mode/before_html.c",
79
- "lexbor/source/lexbor/html/tree/insertion_mode/after_head.c",
80
- "lexbor/source/lexbor/html/tree/insertion_mode/in_frameset.c",
81
- "lexbor/source/lexbor/html/tree/insertion_mode/in_head_noscript.c",
82
- "lexbor/source/lexbor/html/tree/insertion_mode/in_column_group.c",
83
- "lexbor/source/lexbor/html/tree/insertion_mode/after_after_body.c",
84
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table_text.c",
85
- "lexbor/source/lexbor/html/tree/insertion_mode/after_body.c",
86
- "lexbor/source/lexbor/html/tree/insertion_mode/text.c",
87
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table_body.c",
88
- "lexbor/source/lexbor/html/tree/insertion_mode/in_body.c",
89
- "lexbor/source/lexbor/html/tree/insertion_mode/in_select_in_table.c",
90
- "lexbor/source/lexbor/html/tree/insertion_mode/in_row.c",
91
- "lexbor/source/lexbor/html/tree/insertion_mode/in_head.c",
92
- "lexbor/source/lexbor/html/tree/insertion_mode/foreign_content.c",
93
- "lexbor/source/lexbor/html/tree/insertion_mode/in_cell.c",
94
- "lexbor/source/lexbor/html/tree/insertion_mode/in_select.c",
95
- "lexbor/source/lexbor/html/tree/insertion_mode/after_after_frameset.c",
96
- "lexbor/source/lexbor/html/tree/insertion_mode/after_frameset.c",
97
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table.c",
98
- "lexbor/source/lexbor/html/tree/insertion_mode/in_template.c",
99
- "lexbor/source/lexbor/html/tree/insertion_mode/in_caption.c",
100
- "lexbor/source/lexbor/html/interfaces/html_element.c",
101
- "lexbor/source/lexbor/html/interfaces/form_element.c",
73
+ "lexbor/source/lexbor/html/interface.c",
74
+ "lexbor/source/lexbor/html/token_attr.c",
75
+ "lexbor/source/lexbor/html/interfaces/meter_element.c",
76
+ "lexbor/source/lexbor/html/interfaces/canvas_element.c",
77
+ "lexbor/source/lexbor/html/interfaces/embed_element.c",
78
+ "lexbor/source/lexbor/html/interfaces/audio_element.c",
79
+ "lexbor/source/lexbor/html/interfaces/script_element.c",
80
+ "lexbor/source/lexbor/html/interfaces/directory_element.c",
81
+ "lexbor/source/lexbor/html/interfaces/opt_group_element.c",
82
+ "lexbor/source/lexbor/html/interfaces/table_cell_element.c",
83
+ "lexbor/source/lexbor/html/interfaces/body_element.c",
84
+ "lexbor/source/lexbor/html/interfaces/template_element.c",
85
+ "lexbor/source/lexbor/html/interfaces/hr_element.c",
86
+ "lexbor/source/lexbor/html/interfaces/document.c",
102
87
  "lexbor/source/lexbor/html/interfaces/quote_element.c",
88
+ "lexbor/source/lexbor/html/interfaces/details_element.c",
103
89
  "lexbor/source/lexbor/html/interfaces/base_element.c",
104
- "lexbor/source/lexbor/html/interfaces/script_element.c",
105
- "lexbor/source/lexbor/html/interfaces/paragraph_element.c",
106
- "lexbor/source/lexbor/html/interfaces/output_element.c",
107
- "lexbor/source/lexbor/html/interfaces/li_element.c",
108
- "lexbor/source/lexbor/html/interfaces/button_element.c",
109
- "lexbor/source/lexbor/html/interfaces/window.c",
110
- "lexbor/source/lexbor/html/interfaces/audio_element.c",
111
- "lexbor/source/lexbor/html/interfaces/link_element.c",
112
- "lexbor/source/lexbor/html/interfaces/object_element.c",
113
- "lexbor/source/lexbor/html/interfaces/select_element.c",
90
+ "lexbor/source/lexbor/html/interfaces/time_element.c",
114
91
  "lexbor/source/lexbor/html/interfaces/frame_set_element.c",
115
- "lexbor/source/lexbor/html/interfaces/title_element.c",
116
- "lexbor/source/lexbor/html/interfaces/menu_element.c",
117
- "lexbor/source/lexbor/html/interfaces/dialog_element.c",
118
- "lexbor/source/lexbor/html/interfaces/option_element.c",
119
- "lexbor/source/lexbor/html/interfaces/o_list_element.c",
120
- "lexbor/source/lexbor/html/interfaces/table_cell_element.c",
92
+ "lexbor/source/lexbor/html/interfaces/element.c",
93
+ "lexbor/source/lexbor/html/interfaces/map_element.c",
121
94
  "lexbor/source/lexbor/html/interfaces/text_area_element.c",
122
- "lexbor/source/lexbor/html/interfaces/picture_element.c",
123
- "lexbor/source/lexbor/html/interfaces/meta_element.c",
124
- "lexbor/source/lexbor/html/interfaces/video_element.c",
125
- "lexbor/source/lexbor/html/interfaces/track_element.c",
126
- "lexbor/source/lexbor/html/interfaces/data_list_element.c",
127
- "lexbor/source/lexbor/html/interfaces/directory_element.c",
128
- "lexbor/source/lexbor/html/interfaces/table_element.c",
129
- "lexbor/source/lexbor/html/interfaces/table_row_element.c",
130
- "lexbor/source/lexbor/html/interfaces/field_set_element.c",
131
- "lexbor/source/lexbor/html/interfaces/media_element.c",
132
- "lexbor/source/lexbor/html/interfaces/area_element.c",
95
+ "lexbor/source/lexbor/html/interfaces/o_list_element.c",
96
+ "lexbor/source/lexbor/html/interfaces/window.c",
97
+ "lexbor/source/lexbor/html/interfaces/li_element.c",
133
98
  "lexbor/source/lexbor/html/interfaces/font_element.c",
134
- "lexbor/source/lexbor/html/interfaces/table_caption_element.c",
135
- "lexbor/source/lexbor/html/interfaces/document.c",
136
- "lexbor/source/lexbor/html/interfaces/source_element.c",
137
- "lexbor/source/lexbor/html/interfaces/style_element.c",
99
+ "lexbor/source/lexbor/html/interfaces/option_element.c",
100
+ "lexbor/source/lexbor/html/interfaces/span_element.c",
138
101
  "lexbor/source/lexbor/html/interfaces/frame_element.c",
139
- "lexbor/source/lexbor/html/interfaces/d_list_element.c",
140
- "lexbor/source/lexbor/html/interfaces/progress_element.c",
141
- "lexbor/source/lexbor/html/interfaces/time_element.c",
142
- "lexbor/source/lexbor/html/interfaces/map_element.c",
143
- "lexbor/source/lexbor/html/interfaces/mod_element.c",
144
- "lexbor/source/lexbor/html/interfaces/pre_element.c",
145
- "lexbor/source/lexbor/html/interfaces/unknown_element.c",
146
- "lexbor/source/lexbor/html/interfaces/table_col_element.c",
147
- "lexbor/source/lexbor/html/interfaces/input_element.c",
148
102
  "lexbor/source/lexbor/html/interfaces/head_element.c",
149
- "lexbor/source/lexbor/html/interfaces/slot_element.c",
150
- "lexbor/source/lexbor/html/interfaces/image_element.c",
103
+ "lexbor/source/lexbor/html/interfaces/dialog_element.c",
151
104
  "lexbor/source/lexbor/html/interfaces/u_list_element.c",
152
- "lexbor/source/lexbor/html/interfaces/template_element.c",
153
- "lexbor/source/lexbor/html/interfaces/meter_element.c",
105
+ "lexbor/source/lexbor/html/interfaces/video_element.c",
106
+ "lexbor/source/lexbor/html/interfaces/br_element.c",
107
+ "lexbor/source/lexbor/html/interfaces/meta_element.c",
108
+ "lexbor/source/lexbor/html/interfaces/slot_element.c",
109
+ "lexbor/source/lexbor/html/interfaces/pre_element.c",
110
+ "lexbor/source/lexbor/html/interfaces/object_element.c",
111
+ "lexbor/source/lexbor/html/interfaces/mod_element.c",
112
+ "lexbor/source/lexbor/html/interfaces/area_element.c",
113
+ "lexbor/source/lexbor/html/interfaces/data_list_element.c",
154
114
  "lexbor/source/lexbor/html/interfaces/param_element.c",
115
+ "lexbor/source/lexbor/html/interfaces/title_element.c",
116
+ "lexbor/source/lexbor/html/interfaces/marquee_element.c",
117
+ "lexbor/source/lexbor/html/interfaces/form_element.c",
118
+ "lexbor/source/lexbor/html/interfaces/table_col_element.c",
119
+ "lexbor/source/lexbor/html/interfaces/source_element.c",
120
+ "lexbor/source/lexbor/html/interfaces/image_element.c",
121
+ "lexbor/source/lexbor/html/interfaces/table_element.c",
122
+ "lexbor/source/lexbor/html/interfaces/field_set_element.c",
123
+ "lexbor/source/lexbor/html/interfaces/link_element.c",
124
+ "lexbor/source/lexbor/html/interfaces/button_element.c",
125
+ "lexbor/source/lexbor/html/interfaces/iframe_element.c",
126
+ "lexbor/source/lexbor/html/interfaces/data_element.c",
155
127
  "lexbor/source/lexbor/html/interfaces/anchor_element.c",
156
- "lexbor/source/lexbor/html/interfaces/canvas_element.c",
157
- "lexbor/source/lexbor/html/interfaces/opt_group_element.c",
158
- "lexbor/source/lexbor/html/interfaces/label_element.c",
159
- "lexbor/source/lexbor/html/interfaces/details_element.c",
160
- "lexbor/source/lexbor/html/interfaces/span_element.c",
161
- "lexbor/source/lexbor/html/interfaces/legend_element.c",
162
- "lexbor/source/lexbor/html/interfaces/embed_element.c",
163
- "lexbor/source/lexbor/html/interfaces/heading_element.c",
164
- "lexbor/source/lexbor/html/interfaces/hr_element.c",
165
- "lexbor/source/lexbor/html/interfaces/element.c",
166
128
  "lexbor/source/lexbor/html/interfaces/div_element.c",
167
- "lexbor/source/lexbor/html/interfaces/data_element.c",
168
- "lexbor/source/lexbor/html/interfaces/br_element.c",
169
- "lexbor/source/lexbor/html/interfaces/body_element.c",
170
- "lexbor/source/lexbor/html/interfaces/marquee_element.c",
129
+ "lexbor/source/lexbor/html/interfaces/html_element.c",
171
130
  "lexbor/source/lexbor/html/interfaces/table_section_element.c",
172
- "lexbor/source/lexbor/html/interfaces/iframe_element.c",
173
- "lexbor/source/lexbor/ns/ns.c",
174
- "lexbor/source/lexbor/url/url.c",
175
- "lexbor/source/lexbor/punycode/punycode.c",
131
+ "lexbor/source/lexbor/html/interfaces/label_element.c",
132
+ "lexbor/source/lexbor/html/interfaces/heading_element.c",
133
+ "lexbor/source/lexbor/html/interfaces/track_element.c",
134
+ "lexbor/source/lexbor/html/interfaces/output_element.c",
135
+ "lexbor/source/lexbor/html/interfaces/select_element.c",
136
+ "lexbor/source/lexbor/html/interfaces/table_caption_element.c",
137
+ "lexbor/source/lexbor/html/interfaces/style_element.c",
138
+ "lexbor/source/lexbor/html/interfaces/media_element.c",
139
+ "lexbor/source/lexbor/html/interfaces/menu_element.c",
140
+ "lexbor/source/lexbor/html/interfaces/picture_element.c",
141
+ "lexbor/source/lexbor/html/interfaces/input_element.c",
142
+ "lexbor/source/lexbor/html/interfaces/d_list_element.c",
143
+ "lexbor/source/lexbor/html/interfaces/legend_element.c",
144
+ "lexbor/source/lexbor/html/interfaces/unknown_element.c",
145
+ "lexbor/source/lexbor/html/interfaces/table_row_element.c",
146
+ "lexbor/source/lexbor/html/interfaces/progress_element.c",
147
+ "lexbor/source/lexbor/html/interfaces/paragraph_element.c",
148
+ "lexbor/source/lexbor/html/tokenizer/error.c",
149
+ "lexbor/source/lexbor/html/tokenizer/state.c",
150
+ "lexbor/source/lexbor/html/tokenizer/state_comment.c",
151
+ "lexbor/source/lexbor/html/tokenizer/state_doctype.c",
152
+ "lexbor/source/lexbor/html/tokenizer/state_script.c",
153
+ "lexbor/source/lexbor/html/tokenizer/state_rawtext.c",
154
+ "lexbor/source/lexbor/html/tokenizer/state_rcdata.c",
155
+ "lexbor/source/lexbor/html/tree/template_insertion.c",
156
+ "lexbor/source/lexbor/html/tree/error.c",
157
+ "lexbor/source/lexbor/html/tree/open_elements.c",
158
+ "lexbor/source/lexbor/html/tree/active_formatting.c",
159
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table.c",
160
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table_body.c",
161
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_template.c",
162
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_column_group.c",
163
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_frameset.c",
164
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_cell.c",
165
+ "lexbor/source/lexbor/html/tree/insertion_mode/foreign_content.c",
166
+ "lexbor/source/lexbor/html/tree/insertion_mode/text.c",
167
+ "lexbor/source/lexbor/html/tree/insertion_mode/before_html.c",
168
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_row.c",
169
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_after_frameset.c",
170
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_select_in_table.c",
171
+ "lexbor/source/lexbor/html/tree/insertion_mode/before_head.c",
172
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_frameset.c",
173
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_head_noscript.c",
174
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_body.c",
175
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_select.c",
176
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_after_body.c",
177
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_head.c",
178
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_head.c",
179
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_caption.c",
180
+ "lexbor/source/lexbor/html/tree/insertion_mode/initial.c",
181
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_body.c",
182
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table_text.c",
183
+ "lexbor/source/lexbor/core/plog.c",
184
+ "lexbor/source/lexbor/core/print.c",
185
+ "lexbor/source/lexbor/core/diyfp.c",
186
+ "lexbor/source/lexbor/core/mem.c",
187
+ "lexbor/source/lexbor/core/bst_map.c",
188
+ "lexbor/source/lexbor/core/shs.c",
189
+ "lexbor/source/lexbor/core/bst.c",
190
+ "lexbor/source/lexbor/core/mraw.c",
191
+ "lexbor/source/lexbor/core/array.c",
192
+ "lexbor/source/lexbor/core/in.c",
193
+ "lexbor/source/lexbor/core/dtoa.c",
194
+ "lexbor/source/lexbor/core/serialize.c",
195
+ "lexbor/source/lexbor/core/avl.c",
196
+ "lexbor/source/lexbor/core/dobject.c",
197
+ "lexbor/source/lexbor/core/utils.c",
198
+ "lexbor/source/lexbor/core/array_obj.c",
199
+ "lexbor/source/lexbor/core/str.c",
200
+ "lexbor/source/lexbor/core/strtod.c",
201
+ "lexbor/source/lexbor/core/hash.c",
202
+ "lexbor/source/lexbor/core/conv.c",
203
+ "lexbor/source/lexbor/unicode/idna.c",
204
+ "lexbor/source/lexbor/unicode/unicode.c",
176
205
  "lexbor/source/lexbor/selectors/selectors.c",
177
- "lexbor/source/lexbor/ports/posix/lexbor/core/fs.c",
178
- "lexbor/source/lexbor/ports/posix/lexbor/core/memory.c",
179
- "lexbor/source/lexbor/ports/posix/lexbor/core/perf.c",
180
- "lexbor/source/lexbor/dom/exception.c",
206
+ "lexbor/source/lexbor/utils/http.c",
207
+ "lexbor/source/lexbor/utils/warc.c",
208
+ "lexbor/source/lexbor/encoding/decode.c",
209
+ "lexbor/source/lexbor/encoding/encode.c",
210
+ "lexbor/source/lexbor/encoding/iso_2022_jp_katakana.c",
211
+ "lexbor/source/lexbor/encoding/single.c",
212
+ "lexbor/source/lexbor/encoding/res.c",
213
+ "lexbor/source/lexbor/encoding/jis0212.c",
214
+ "lexbor/source/lexbor/encoding/gb18030.c",
215
+ "lexbor/source/lexbor/encoding/jis0208.c",
216
+ "lexbor/source/lexbor/encoding/encoding.c",
217
+ "lexbor/source/lexbor/encoding/big5.c",
218
+ "lexbor/source/lexbor/encoding/euc_kr.c",
219
+ "lexbor/source/lexbor/encoding/range.c",
181
220
  "lexbor/source/lexbor/dom/collection.c",
221
+ "lexbor/source/lexbor/dom/exception.c",
182
222
  "lexbor/source/lexbor/dom/interface.c",
183
223
  "lexbor/source/lexbor/dom/interfaces/comment.c",
184
224
  "lexbor/source/lexbor/dom/interfaces/document_type.c",
225
+ "lexbor/source/lexbor/dom/interfaces/node.c",
226
+ "lexbor/source/lexbor/dom/interfaces/document.c",
185
227
  "lexbor/source/lexbor/dom/interfaces/character_data.c",
186
- "lexbor/source/lexbor/dom/interfaces/event_target.c",
187
- "lexbor/source/lexbor/dom/interfaces/attr.c",
228
+ "lexbor/source/lexbor/dom/interfaces/element.c",
188
229
  "lexbor/source/lexbor/dom/interfaces/text.c",
189
- "lexbor/source/lexbor/dom/interfaces/document.c",
190
230
  "lexbor/source/lexbor/dom/interfaces/shadow_root.c",
191
- "lexbor/source/lexbor/dom/interfaces/processing_instruction.c",
192
- "lexbor/source/lexbor/dom/interfaces/node.c",
193
- "lexbor/source/lexbor/dom/interfaces/cdata_section.c",
194
- "lexbor/source/lexbor/dom/interfaces/element.c",
231
+ "lexbor/source/lexbor/dom/interfaces/attr.c",
232
+ "lexbor/source/lexbor/dom/interfaces/event_target.c",
195
233
  "lexbor/source/lexbor/dom/interfaces/document_fragment.c",
196
- "lexbor/source/lexbor/css/rule.c",
197
- "lexbor/source/lexbor/css/property.c",
198
- "lexbor/source/lexbor/css/stylesheet.c",
199
- "lexbor/source/lexbor/css/state.c",
200
- "lexbor/source/lexbor/css/at_rule.c",
201
- "lexbor/source/lexbor/css/value.c",
202
- "lexbor/source/lexbor/css/declaration.c",
203
- "lexbor/source/lexbor/css/unit.c",
204
- "lexbor/source/lexbor/css/parser.c",
205
- "lexbor/source/lexbor/css/css.c",
206
- "lexbor/source/lexbor/css/log.c",
207
- "lexbor/source/lexbor/css/at_rule/state.c",
208
- "lexbor/source/lexbor/css/property/state.c",
209
- "lexbor/source/lexbor/css/selectors/selectors.c",
210
- "lexbor/source/lexbor/css/selectors/pseudo_state.c",
211
- "lexbor/source/lexbor/css/selectors/pseudo.c",
212
- "lexbor/source/lexbor/css/selectors/state.c",
213
- "lexbor/source/lexbor/css/selectors/selector.c",
214
- "lexbor/source/lexbor/css/syntax/syntax.c",
215
- "lexbor/source/lexbor/css/syntax/tokenizer.c",
216
- "lexbor/source/lexbor/css/syntax/token.c",
217
- "lexbor/source/lexbor/css/syntax/state.c",
218
- "lexbor/source/lexbor/css/syntax/anb.c",
219
- "lexbor/source/lexbor/css/syntax/parser.c",
220
- "lexbor/source/lexbor/css/syntax/tokenizer/error.c",
221
- "lexbor/source/lexbor/encoding/res.c",
222
- "lexbor/source/lexbor/encoding/euc_kr.c",
223
- "lexbor/source/lexbor/encoding/range.c",
224
- "lexbor/source/lexbor/encoding/jis0208.c",
225
- "lexbor/source/lexbor/encoding/iso_2022_jp_katakana.c",
226
- "lexbor/source/lexbor/encoding/big5.c",
227
- "lexbor/source/lexbor/encoding/decode.c",
228
- "lexbor/source/lexbor/encoding/encode.c",
229
- "lexbor/source/lexbor/encoding/single.c",
230
- "lexbor/source/lexbor/encoding/jis0212.c",
231
- "lexbor/source/lexbor/encoding/gb18030.c",
232
- "lexbor/source/lexbor/encoding/encoding.c",
233
- "lexbor/source/lexbor/tag/tag.c",
234
- "lexbor/source/lexbor/utils/warc.c",
235
- "lexbor/source/lexbor/utils/http.c"
234
+ "lexbor/source/lexbor/dom/interfaces/cdata_section.c",
235
+ "lexbor/source/lexbor/dom/interfaces/processing_instruction.c"
236
236
  ]
237
237
  },
238
238
  "module_name": "selectolax.lexbor"
selectolax/lexbor.pyi CHANGED
@@ -1,14 +1,27 @@
1
- from typing import Iterator, TypeVar, NoReturn
1
+ from typing import Any, Iterator, Literal, TypeVar, NoReturn, overload
2
2
 
3
3
  DefaultT = TypeVar("DefaultT")
4
4
 
5
5
  class LexborAttributes:
6
6
  @staticmethod
7
- def create(node: "LexborAttributes") -> "LexborAttributes": ...
7
+ def create(node: LexborAttributes) -> LexborAttributes: ...
8
8
  def keys(self) -> Iterator[str]: ...
9
- def items(self) -> Iterator[tuple[str, str]]: ...
10
- def values(self) -> Iterator[str]: ...
11
- def get(self, key: str, default: DefaultT | None = None) -> str | DefaultT | None: ...
9
+ def items(self) -> Iterator[tuple[str, str | None]]: ...
10
+ def values(self) -> Iterator[str | None]: ...
11
+ def __iter__(self) -> Iterator[str]: ...
12
+ def __len__(self) -> int: ...
13
+ def __getitem__(self, key: str) -> str | None: ...
14
+ def __setitem__(self, key: str, value: str) -> None: ...
15
+ def __delitem__(self, key: str) -> None: ...
16
+ def __contains__(self, key: str) -> bool: ...
17
+ def __repr__(self) -> str: ...
18
+ @overload
19
+ def get(self, key: str, default: DefaultT) -> DefaultT | str | None: ...
20
+ @overload
21
+ def get(self, key: str, default: None = ...) -> str | None: ...
22
+ @overload
23
+ def sget(self, key: str, default: str | DefaultT) -> str | DefaultT: ...
24
+ @overload
12
25
  def sget(self, key: str, default: str = "") -> str: ...
13
26
 
14
27
  class LexborSelector:
@@ -20,38 +33,38 @@ class LexborSelector:
20
33
  def any_matches(self) -> bool: ...
21
34
  def text_contains(
22
35
  self, text: str, deep: bool = True, separator: str = "", strip: bool = False
23
- ) -> "LexborSelector": ...
36
+ ) -> LexborSelector: ...
24
37
  def any_text_contains(
25
38
  self, text: str, deep: bool = True, separator: str = "", strip: bool = False
26
39
  ) -> bool: ...
27
40
  def attribute_longer_than(
28
41
  self, attribute: str, length: int, start: str | None = None
29
- ) -> "LexborSelector": ...
42
+ ) -> LexborSelector: ...
30
43
  def any_attribute_longer_than(
31
44
  self, attribute: str, length: int, start: str | None = None
32
45
  ) -> bool: ...
33
46
 
34
47
  class LexborCSSSelector:
35
48
  def __init__(self): ...
36
- def find(self, query: str, node: "LexborNode") -> list["LexborNode"]: ...
37
- def any_matches(self, query: str, node: "LexborNode") -> bool: ...
49
+ def find(self, query: str, node: LexborNode) -> list[LexborNode]: ...
50
+ def any_matches(self, query: str, node: LexborNode) -> bool: ...
38
51
 
39
52
  class LexborNode:
40
- parser: "LexborHTMLParser"
53
+ parser: LexborHTMLParser
41
54
  @property
42
55
  def mem_id(self) -> int: ...
43
56
  @property
44
- def child(self) -> None | "LexborNode": ...
57
+ def child(self) -> LexborNode | None: ...
45
58
  @property
46
- def first_child(self) -> None | "LexborNode": ...
59
+ def first_child(self) -> LexborNode | None: ...
47
60
  @property
48
- def parent(self) -> None | "LexborNode": ...
61
+ def parent(self) -> LexborNode | None: ...
49
62
  @property
50
- def next(self) -> None | "LexborNode": ...
63
+ def next(self) -> LexborNode | None: ...
51
64
  @property
52
- def prev(self) -> None | "LexborNode": ...
65
+ def prev(self) -> LexborNode | None: ...
53
66
  @property
54
- def last_child(self) -> None | "LexborNode": ...
67
+ def last_child(self) -> LexborNode | None: ...
55
68
  @property
56
69
  def html(self) -> str | None: ...
57
70
  def __hash__(self) -> int: ...
@@ -59,10 +72,19 @@ class LexborNode:
59
72
  def text(
60
73
  self, deep: bool = True, separator: str = "", strip: bool = False
61
74
  ) -> str: ...
62
- def css(self, query: str) -> list["LexborNode"]: ...
75
+ def css(self, query: str) -> list[LexborNode]: ...
76
+ @overload
63
77
  def css_first(
64
- self, query: str, default: DefaultT | None = None, strict: bool = False
65
- ) -> "LexborNode" | DefaultT | None: ...
78
+ self, query: str, default: Any = ..., strict: Literal[True] = ...
79
+ ) -> LexborNode: ...
80
+ @overload
81
+ def css_first(
82
+ self, query: str, default: DefaultT, strict: bool = False
83
+ ) -> LexborNode | DefaultT: ...
84
+ @overload
85
+ def css_first(
86
+ self, query: str, default: None = ..., strict: bool = False
87
+ ) -> LexborNode | None: ...
66
88
  def any_css_matches(self, selectors: tuple[str]) -> bool: ...
67
89
  def css_matches(self, selector: str) -> bool: ...
68
90
  @property
@@ -74,23 +96,23 @@ class LexborNode:
74
96
  @property
75
97
  def attributes(self) -> dict[str, str | None]: ...
76
98
  @property
77
- def attrs(self) -> "LexborAttributes": ...
99
+ def attrs(self) -> LexborAttributes: ...
78
100
  @property
79
- def id(self) -> None | str: ...
80
- def iter(self, include_text: bool = False) -> Iterator["LexborNode"]: ...
101
+ def id(self) -> str | None: ...
102
+ def iter(self, include_text: bool = False) -> Iterator[LexborNode]: ...
81
103
  def unwrap(self) -> None: ...
82
104
  def unwrap_tags(self, tags: list[str]) -> None: ...
83
- def traverse(self, include_text: bool = False) -> Iterator["LexborNode"]: ...
84
- def replace_with(self, value: bytes | str | "LexborNode") -> None: ...
85
- def insert_before(self, value: bytes | str | "LexborNode") -> None: ...
86
- def insert_after(self, value: bytes | str | "LexborNode") -> None: ...
87
- def insert_child(self, value: bytes | str | "LexborNode") -> None: ...
105
+ def traverse(self, include_text: bool = False) -> Iterator[LexborNode]: ...
106
+ def replace_with(self, value: bytes | str | LexborNode) -> None: ...
107
+ def insert_before(self, value: bytes | str | LexborNode) -> None: ...
108
+ def insert_after(self, value: bytes | str | LexborNode) -> None: ...
109
+ def insert_child(self, value: bytes | str | LexborNode) -> None: ...
88
110
  @property
89
111
  def raw_value(self) -> NoReturn: ...
90
112
  def scripts_contain(self, query: str) -> bool: ...
91
113
  def scripts_srcs_contain(self, queries: tuple[str]) -> bool: ...
92
114
  def remove(self, recursive: bool = True) -> None: ...
93
- def select(self, query: str | None = None) -> "LexborSelector": ...
115
+ def select(self, query: str | None = None) -> LexborSelector: ...
94
116
  @property
95
117
  def text_content(self) -> str | None: ...
96
118
 
@@ -99,38 +121,47 @@ class LexborHTMLParser:
99
121
  @property
100
122
  def selector(self) -> "LexborCSSSelector": ...
101
123
  @property
102
- def root(self) -> "LexborNode" | None: ...
124
+ def root(self) -> LexborNode | None: ...
103
125
  @property
104
- def body(self) -> "LexborNode" | None: ...
126
+ def body(self) -> LexborNode | None: ...
105
127
  @property
106
- def head(self) -> None | "LexborNode": ...
107
- def tags(self, name: str) -> list["LexborNode"]: ...
128
+ def head(self) -> LexborNode | None: ...
129
+ def tags(self, name: str) -> list[LexborNode]: ...
108
130
  def text(
109
131
  self, deep: bool = True, separator: str = "", strip: bool = False
110
132
  ) -> str: ...
111
133
  @property
112
- def html(self) -> None | str: ...
113
- def css(self, query: str) -> list["LexborNode"]: ...
134
+ def html(self) -> str | None: ...
135
+ def css(self, query: str) -> list[LexborNode]: ...
136
+ @overload
137
+ def css_first(
138
+ self, query: str, default: Any = ..., strict: Literal[True] = ...
139
+ ) -> LexborNode: ...
140
+ @overload
141
+ def css_first(
142
+ self, query: str, default: DefaultT, strict: bool = False
143
+ ) -> LexborNode | DefaultT: ...
144
+ @overload
114
145
  def css_first(
115
- self, query: str, default: DefaultT | None = None, strict: bool = False
116
- ) -> "LexborNode" | DefaultT | None : ...
146
+ self, query: str, default: None = ..., strict: bool = False
147
+ ) -> LexborNode | None: ...
117
148
  def strip_tags(self, tags: list[str], recursive: bool = False) -> None: ...
118
- def select(self, query: str | None = None) -> "LexborSelector" | None: ...
149
+ def select(self, query: str | None = None) -> LexborSelector | None: ...
119
150
  def any_css_matches(self, selectors: tuple[str]) -> bool: ...
120
151
  def scripts_contain(self, query: str) -> bool: ...
121
152
  def scripts_srcs_contain(self, queries: tuple[str]) -> bool: ...
122
153
  def css_matches(self, selector: str) -> bool: ...
123
- def clone(self) -> "LexborHTMLParser": ...
154
+ def clone(self) -> LexborHTMLParser: ...
124
155
  def unwrap_tags(self, tags: list[str]) -> None: ...
125
156
 
126
- def create_tag(tag: str) -> "LexborNode":
157
+ def create_tag(tag: str) -> LexborNode:
127
158
  """
128
159
  Given an HTML tag name, e.g. `"div"`, create a single empty node for that tag,
129
160
  e.g. `"<div></div>"`.
130
161
  """
131
162
  ...
132
163
 
133
- def parse_fragment(html: str) -> list["LexborNode"]:
164
+ def parse_fragment(html: str) -> list[LexborNode]:
134
165
  """
135
166
  Given HTML, parse it into a list of Nodes, such that the nodes
136
167
  correspond to the given HTML.
selectolax/parser.c CHANGED
@@ -31,143 +31,143 @@
31
31
  "name": "selectolax.parser",
32
32
  "sources": [
33
33
  "selectolax/parser.pyx",
34
- "modest/source/mycore/incoming.c",
35
- "modest/source/mycore/utils.c",
36
34
  "modest/source/mycore/thread_queue.c",
37
- "modest/source/mycore/mythread.c",
38
- "modest/source/mycore/mystring.c",
39
35
  "modest/source/mycore/myosi.c",
36
+ "modest/source/mycore/utils.c",
37
+ "modest/source/mycore/mystring.c",
38
+ "modest/source/mycore/mythread.c",
39
+ "modest/source/mycore/incoming.c",
40
+ "modest/source/mycore/utils/mcobject.c",
41
+ "modest/source/mycore/utils/mcobject_async.c",
40
42
  "modest/source/mycore/utils/mctree.c",
41
43
  "modest/source/mycore/utils/avl_tree.c",
42
- "modest/source/mycore/utils/mcobject.c",
43
44
  "modest/source/mycore/utils/mchar_async.c",
44
- "modest/source/mycore/utils/mcobject_async.c",
45
- "modest/source/mycore/utils/mhash.c",
46
- "modest/source/mycore/utils/mcsimple.c",
47
45
  "modest/source/mycore/utils/mcsync.c",
48
- "modest/source/myfont/os_2.c",
49
- "modest/source/myfont/pclt.c",
50
- "modest/source/myfont/hhea.c",
51
- "modest/source/myfont/hmtx.c",
46
+ "modest/source/mycore/utils/mcsimple.c",
47
+ "modest/source/mycore/utils/mhash.c",
52
48
  "modest/source/myfont/name.c",
53
- "modest/source/myfont/vmtx.c",
54
- "modest/source/myfont/loca.c",
55
- "modest/source/myfont/myfont.c",
49
+ "modest/source/myfont/hmtx.c",
56
50
  "modest/source/myfont/glyf.c",
57
- "modest/source/myfont/maxp.c",
51
+ "modest/source/myfont/pclt.c",
52
+ "modest/source/myfont/loca.c",
58
53
  "modest/source/myfont/myosi.c",
59
- "modest/source/myfont/vhea.c",
60
54
  "modest/source/myfont/head.c",
55
+ "modest/source/myfont/myfont.c",
56
+ "modest/source/myfont/vmtx.c",
61
57
  "modest/source/myfont/cmap.c",
62
- "modest/source/myport/posix/mycore/io.c",
63
- "modest/source/myport/posix/mycore/thread.c",
64
- "modest/source/myport/posix/mycore/memory.c",
65
- "modest/source/myport/posix/mycore/perf.c",
66
- "modest/source/myport/posix/mycore/utils/mcsync.c",
67
- "modest/source/myurl/parser_end.c",
68
- "modest/source/myurl/utils.c",
69
- "modest/source/myurl/punycode.c",
70
- "modest/source/myurl/path.c",
71
- "modest/source/myurl/host.c",
72
- "modest/source/myurl/scheme.c",
73
- "modest/source/myurl/myosi.c",
74
- "modest/source/myurl/serialization.c",
75
- "modest/source/myurl/parser.c",
76
- "modest/source/myurl/url.c",
58
+ "modest/source/myfont/os_2.c",
59
+ "modest/source/myfont/maxp.c",
60
+ "modest/source/myfont/hhea.c",
61
+ "modest/source/myfont/vhea.c",
77
62
  "modest/source/myunicode/myosi.c",
63
+ "modest/source/myencoding/detect.c",
64
+ "modest/source/myencoding/encoding.c",
65
+ "modest/source/myencoding/mystring.c",
66
+ "modest/source/modest/declaration.c",
78
67
  "modest/source/modest/modest.c",
79
68
  "modest/source/modest/glue.c",
80
- "modest/source/modest/declaration.c",
81
- "modest/source/modest/node/raw_property.c",
82
- "modest/source/modest/node/property.c",
69
+ "modest/source/modest/finder/type.c",
70
+ "modest/source/modest/finder/finder.c",
71
+ "modest/source/modest/finder/match.c",
72
+ "modest/source/modest/finder/thread.c",
73
+ "modest/source/modest/finder/pseudo_class.c",
83
74
  "modest/source/modest/node/node.c",
75
+ "modest/source/modest/node/property.c",
76
+ "modest/source/modest/node/raw_property.c",
84
77
  "modest/source/modest/node/serialization.c",
85
- "modest/source/modest/layer/layer.c",
86
- "modest/source/modest/render/tree_node.c",
87
- "modest/source/modest/render/binding.c",
88
- "modest/source/modest/render/begin.c",
89
- "modest/source/modest/render/tree.c",
90
- "modest/source/modest/style/map.c",
91
78
  "modest/source/modest/style/type.c",
92
- "modest/source/modest/style/default.c",
79
+ "modest/source/modest/style/map.c",
93
80
  "modest/source/modest/style/sheet.c",
81
+ "modest/source/modest/style/default.c",
94
82
  "modest/source/modest/style/raw.c",
95
- "modest/source/modest/finder/type.c",
96
- "modest/source/modest/finder/pseudo_class.c",
97
- "modest/source/modest/finder/thread.c",
98
- "modest/source/modest/finder/finder.c",
99
- "modest/source/modest/finder/match.c",
100
- "modest/source/myhtml/charef.c",
101
- "modest/source/myhtml/tokenizer_script.c",
102
- "modest/source/myhtml/tokenizer_doctype.c",
103
- "modest/source/myhtml/tokenizer.c",
104
- "modest/source/myhtml/callback.c",
105
- "modest/source/myhtml/tree.c",
106
- "modest/source/myhtml/rules.c",
107
- "modest/source/myhtml/tag_init.c",
108
- "modest/source/myhtml/myhtml.c",
109
- "modest/source/myhtml/stream.c",
110
- "modest/source/myhtml/tokenizer_end.c",
111
- "modest/source/myhtml/token.c",
112
- "modest/source/myhtml/data_process.c",
113
- "modest/source/myhtml/mystring.c",
114
- "modest/source/myhtml/tag.c",
115
- "modest/source/myhtml/serialization.c",
116
- "modest/source/myhtml/parser.c",
117
- "modest/source/myhtml/mynamespace.c",
118
- "modest/source/myencoding/mystring.c",
119
- "modest/source/myencoding/encoding.c",
120
- "modest/source/myencoding/detect.c",
83
+ "modest/source/modest/render/tree.c",
84
+ "modest/source/modest/render/tree_node.c",
85
+ "modest/source/modest/render/binding.c",
86
+ "modest/source/modest/render/begin.c",
87
+ "modest/source/modest/layer/layer.c",
121
88
  "modest/source/mycss/mycss.c",
89
+ "modest/source/mycss/tokenizer_end.c",
122
90
  "modest/source/mycss/stack.c",
91
+ "modest/source/mycss/check.c",
92
+ "modest/source/mycss/convert.c",
93
+ "modest/source/mycss/stylesheet.c",
123
94
  "modest/source/mycss/tokenizer.c",
95
+ "modest/source/mycss/parser.c",
124
96
  "modest/source/mycss/an_plus_b.c",
125
- "modest/source/mycss/check.c",
126
97
  "modest/source/mycss/entry.c",
127
- "modest/source/mycss/tokenizer_global.c",
128
- "modest/source/mycss/tokenizer_end.c",
129
- "modest/source/mycss/stylesheet.c",
130
98
  "modest/source/mycss/mystring.c",
131
- "modest/source/mycss/convert.c",
132
- "modest/source/mycss/parser.c",
133
- "modest/source/mycss/declaration/default.c",
134
- "modest/source/mycss/declaration/entry.c",
135
- "modest/source/mycss/declaration/state.c",
136
- "modest/source/mycss/declaration/entry_destroy.c",
137
- "modest/source/mycss/declaration/serialization.c",
138
- "modest/source/mycss/declaration/init.c",
139
- "modest/source/mycss/declaration/parser.c",
140
- "modest/source/mycss/property/parser_url.c",
141
- "modest/source/mycss/property/parser_background.c",
142
- "modest/source/mycss/property/shared.c",
99
+ "modest/source/mycss/tokenizer_global.c",
100
+ "modest/source/mycss/values/values.c",
101
+ "modest/source/mycss/values/serialization.c",
102
+ "modest/source/mycss/values/consume.c",
103
+ "modest/source/mycss/values/units.c",
104
+ "modest/source/mycss/values/image.c",
105
+ "modest/source/mycss/values/color.c",
106
+ "modest/source/mycss/values/destroy.c",
107
+ "modest/source/mycss/values/color_parser.c",
108
+ "modest/source/mycss/media/state.c",
109
+ "modest/source/mycss/media/init.c",
110
+ "modest/source/mycss/selectors/state.c",
111
+ "modest/source/mycss/selectors/function.c",
112
+ "modest/source/mycss/selectors/serialization.c",
113
+ "modest/source/mycss/selectors/pseudo.c",
114
+ "modest/source/mycss/selectors/init.c",
115
+ "modest/source/mycss/selectors/function_parser.c",
116
+ "modest/source/mycss/selectors/value.c",
117
+ "modest/source/mycss/selectors/parser.c",
118
+ "modest/source/mycss/selectors/list.c",
143
119
  "modest/source/mycss/property/parser_image.c",
120
+ "modest/source/mycss/property/shared.c",
144
121
  "modest/source/mycss/property/parser_text_decoration.c",
145
122
  "modest/source/mycss/property/serialization.c",
146
123
  "modest/source/mycss/property/init.c",
124
+ "modest/source/mycss/property/parser_url.c",
147
125
  "modest/source/mycss/property/parser.c",
126
+ "modest/source/mycss/property/parser_background.c",
148
127
  "modest/source/mycss/namespace/state.c",
149
128
  "modest/source/mycss/namespace/serialization.c",
150
129
  "modest/source/mycss/namespace/init.c",
151
130
  "modest/source/mycss/namespace/parser.c",
152
- "modest/source/mycss/media/state.c",
153
- "modest/source/mycss/media/init.c",
154
- "modest/source/mycss/values/destroy.c",
155
- "modest/source/mycss/values/units.c",
156
- "modest/source/mycss/values/color.c",
157
- "modest/source/mycss/values/consume.c",
158
- "modest/source/mycss/values/color_parser.c",
159
- "modest/source/mycss/values/image.c",
160
- "modest/source/mycss/values/serialization.c",
161
- "modest/source/mycss/values/values.c",
162
- "modest/source/mycss/selectors/function.c",
163
- "modest/source/mycss/selectors/pseudo.c",
164
- "modest/source/mycss/selectors/list.c",
165
- "modest/source/mycss/selectors/state.c",
166
- "modest/source/mycss/selectors/value.c",
167
- "modest/source/mycss/selectors/serialization.c",
168
- "modest/source/mycss/selectors/function_parser.c",
169
- "modest/source/mycss/selectors/init.c",
170
- "modest/source/mycss/selectors/parser.c"
131
+ "modest/source/mycss/declaration/state.c",
132
+ "modest/source/mycss/declaration/serialization.c",
133
+ "modest/source/mycss/declaration/init.c",
134
+ "modest/source/mycss/declaration/default.c",
135
+ "modest/source/mycss/declaration/entry_destroy.c",
136
+ "modest/source/mycss/declaration/parser.c",
137
+ "modest/source/mycss/declaration/entry.c",
138
+ "modest/source/myurl/serialization.c",
139
+ "modest/source/myurl/parser_end.c",
140
+ "modest/source/myurl/path.c",
141
+ "modest/source/myurl/myosi.c",
142
+ "modest/source/myurl/host.c",
143
+ "modest/source/myurl/parser.c",
144
+ "modest/source/myurl/utils.c",
145
+ "modest/source/myurl/url.c",
146
+ "modest/source/myurl/punycode.c",
147
+ "modest/source/myurl/scheme.c",
148
+ "modest/source/myport/posix/mycore/io.c",
149
+ "modest/source/myport/posix/mycore/thread.c",
150
+ "modest/source/myport/posix/mycore/perf.c",
151
+ "modest/source/myport/posix/mycore/memory.c",
152
+ "modest/source/myport/posix/mycore/utils/mcsync.c",
153
+ "modest/source/myhtml/rules.c",
154
+ "modest/source/myhtml/tree.c",
155
+ "modest/source/myhtml/tokenizer_script.c",
156
+ "modest/source/myhtml/tokenizer_end.c",
157
+ "modest/source/myhtml/tag.c",
158
+ "modest/source/myhtml/serialization.c",
159
+ "modest/source/myhtml/data_process.c",
160
+ "modest/source/myhtml/token.c",
161
+ "modest/source/myhtml/charef.c",
162
+ "modest/source/myhtml/mynamespace.c",
163
+ "modest/source/myhtml/tokenizer.c",
164
+ "modest/source/myhtml/stream.c",
165
+ "modest/source/myhtml/parser.c",
166
+ "modest/source/myhtml/myhtml.c",
167
+ "modest/source/myhtml/mystring.c",
168
+ "modest/source/myhtml/tokenizer_doctype.c",
169
+ "modest/source/myhtml/tag_init.c",
170
+ "modest/source/myhtml/callback.c"
171
171
  ]
172
172
  },
173
173
  "module_name": "selectolax.parser"
selectolax/parser.pyi CHANGED
@@ -1,15 +1,28 @@
1
- from typing import Iterator, TypeVar, Literal
1
+ from typing import Any, Iterator, TypeVar, Literal, overload
2
2
 
3
3
  DefaultT = TypeVar("DefaultT")
4
4
 
5
5
  class _Attributes:
6
6
  @staticmethod
7
- def create(node: "Node", decode_errors: str) -> "_Attributes": ...
7
+ def create(node: Node, decode_errors: str) -> _Attributes: ...
8
8
  def keys(self) -> Iterator[str]: ...
9
- def items(self) -> Iterator[tuple[str, str]]: ...
10
- def values(self) -> Iterator[str]: ...
11
- def get(self, key, default: DefaultT | None = None) -> str | DefaultT: ...
12
- def sget(self, key, default: str = "") -> str | DefaultT: ...
9
+ def items(self) -> Iterator[tuple[str, str | None]]: ...
10
+ def values(self) -> Iterator[str | None]: ...
11
+ def __iter__(self) -> Iterator[str]: ...
12
+ def __len__(self) -> int: ...
13
+ def __getitem__(self, key: str) -> str | None: ...
14
+ def __setitem__(self, key: str, value: str) -> None: ...
15
+ def __delitem__(self, key: str) -> None: ...
16
+ def __contains__(self, key: str) -> bool: ...
17
+ def __repr__(self) -> str: ...
18
+ @overload
19
+ def get(self, key: str, default: DefaultT) -> DefaultT | str | None: ...
20
+ @overload
21
+ def get(self, key: str, default: None = ...) -> str | None: ...
22
+ @overload
23
+ def sget(self, key: str, default: str | DefaultT) -> str | DefaultT: ...
24
+ @overload
25
+ def sget(self, key: str, default: str = "") -> str: ...
13
26
 
14
27
  class Selector:
15
28
  """An advanced CSS selector that supports additional operations.
@@ -18,12 +31,12 @@ class Selector:
18
31
 
19
32
  Please note, this is an experimental feature that can change in the future."""
20
33
 
21
- def __init__(self, node: "Node", query: str): ...
22
- def css(self, query: str) -> "Node":
34
+ def __init__(self, node: Node, query: str): ...
35
+ def css(self, query: str) -> Node:
23
36
  """Evaluate CSS selector against current scope."""
24
37
  ...
25
38
  @property
26
- def matches(self) -> list["Node"]:
39
+ def matches(self) -> list[Node]:
27
40
  """Returns all possible selector matches"""
28
41
  ...
29
42
  @property
@@ -32,7 +45,7 @@ class Selector:
32
45
  ...
33
46
  def text_contains(
34
47
  self, text: str, deep: bool = True, separator: str = "", strip: bool = False
35
- ) -> "Selector":
48
+ ) -> Selector:
36
49
  """Filter all current matches given text."""
37
50
  ...
38
51
  def any_text_contains(
@@ -42,7 +55,7 @@ class Selector:
42
55
  ...
43
56
  def attribute_long_than(
44
57
  self, text: str, length: int, start: str | None = None
45
- ) -> "Selector":
58
+ ) -> Selector:
46
59
  """Filter all current matches by attribute length.
47
60
 
48
61
  Similar to string-length in XPath."""
@@ -56,15 +69,15 @@ class Selector:
56
69
  ...
57
70
 
58
71
  class Node:
59
- parser: "HTMLParser"
72
+ parser: HTMLParser
60
73
  @property
61
- def attributes(self) -> dict[str, None | str]:
74
+ def attributes(self) -> dict[str, str | None]:
62
75
  """Get all attributes that belong to the current node.
63
76
 
64
77
  The value of empty attributes is None."""
65
78
  ...
66
79
  @property
67
- def attrs(self) -> "_Attributes":
80
+ def attrs(self) -> _Attributes:
68
81
  """A dict-like object that is similar to the attributes property, but operates directly on the Node data."""
69
82
  ...
70
83
  @property
@@ -88,10 +101,10 @@ class Node:
88
101
  def text(self, deep: bool = True, separator: str = "", strip: bool = False) -> str:
89
102
  """Returns the text of the node including text of all its child nodes."""
90
103
  ...
91
- def iter(self, include_text: bool = False) -> Iterator["Node"]:
104
+ def iter(self, include_text: bool = False) -> Iterator[Node]:
92
105
  """Iterate over nodes on the current level."""
93
106
  ...
94
- def traverse(self, include_text: bool = False) -> Iterator["Node"]:
107
+ def traverse(self, include_text: bool = False) -> Iterator[Node]:
95
108
  """Iterate over all child and next nodes starting from the current level."""
96
109
  ...
97
110
  @property
@@ -99,30 +112,30 @@ class Node:
99
112
  """Return the name of the current tag (e.g. div, p, img)."""
100
113
  ...
101
114
  @property
102
- def child(self) -> None | "Node":
115
+ def child(self) -> Node | None:
103
116
  """Return the child node."""
104
117
  ...
105
118
  @property
106
- def parent(self) -> None | "Node":
119
+ def parent(self) -> Node | None:
107
120
  """Return the parent node."""
108
121
  ...
109
122
  @property
110
- def next(self) -> None | "Node":
123
+ def next(self) -> Node | None:
111
124
  """Return next node."""
112
125
  ...
113
126
  @property
114
- def prev(self) -> None | "Node":
127
+ def prev(self) -> Node | None:
115
128
  """Return previous node."""
116
129
  ...
117
130
  @property
118
- def last_child(self) -> None | "Node":
131
+ def last_child(self) -> Node | None:
119
132
  """Return last child node."""
120
133
  ...
121
134
  @property
122
- def html(self) -> None | str:
135
+ def html(self) -> str | None:
123
136
  """Return HTML representation of the current node including all its child nodes."""
124
137
  ...
125
- def css(self, query: str) -> list["Node"]:
138
+ def css(self, query: str) -> list[Node]:
126
139
  """Evaluate CSS selector against current node and its child nodes."""
127
140
  ...
128
141
  def any_css_matches(self, selectors: tuple[str]) -> bool:
@@ -131,9 +144,18 @@ class Node:
131
144
  def css_matches(self, selector: str) -> bool:
132
145
  """Returns True if CSS selector matches a node."""
133
146
  ...
147
+ @overload
134
148
  def css_first(
135
- self, query: str, default: DefaultT | None = None, strict: bool = False
136
- ) -> "Node" | DefaultT:
149
+ self, query: str, default: Any = ..., strict: Literal[True] = ...
150
+ ) -> Node: ...
151
+ @overload
152
+ def css_first(
153
+ self, query: str, default: DefaultT, strict: bool = False
154
+ ) -> Node | DefaultT: ...
155
+ @overload
156
+ def css_first(
157
+ self, query: str, default: None = ..., strict: bool = False
158
+ ) -> Node | None:
137
159
  """Evaluate CSS selector against current node and its child nodes."""
138
160
  ...
139
161
  def decompose(self, recursive: bool = True) -> None:
@@ -171,7 +193,7 @@ class Node:
171
193
 
172
194
  Currently, works on text nodes only."""
173
195
  ...
174
- def select(self, query: str | None = None) -> "Selector":
196
+ def select(self, query: str | None = None) -> Selector:
175
197
  """Select nodes given a CSS selector.
176
198
 
177
199
  Works similarly to the css method, but supports chained filtering and extra features.
@@ -208,14 +230,23 @@ class HTMLParser:
208
230
  use_meta_tags: bool = True,
209
231
  decode_errors: Literal["strict", "ignore", "replace"] = "ignore",
210
232
  ): ...
211
- def css(self, query: str) -> list["Node"]:
233
+ def css(self, query: str) -> list[Node]:
212
234
  """A CSS selector.
213
235
 
214
236
  Matches pattern query against HTML tree."""
215
237
  ...
238
+ @overload
239
+ def css_first(
240
+ self, query: str, default: Any = ..., strict: Literal[True] = ...
241
+ ) -> Node: ...
242
+ @overload
243
+ def css_first(
244
+ self, query: str, default: DefaultT, strict: bool = False
245
+ ) -> Node | DefaultT: ...
246
+ @overload
216
247
  def css_first(
217
- self, query: str, default: DefaultT | None = None, strict: bool = False
218
- ) -> DefaultT | "Node":
248
+ self, query: str, default: None = ..., strict: bool = False
249
+ ) -> Node | None:
219
250
  """Same as css but returns only the first match."""
220
251
  ...
221
252
  @property
@@ -225,18 +256,18 @@ class HTMLParser:
225
256
  Returns unknown in case the encoding is not determined."""
226
257
  ...
227
258
  @property
228
- def root(self) -> "Node" | None:
259
+ def root(self) -> Node | None:
229
260
  """Returns root node."""
230
261
  ...
231
262
  @property
232
- def head(self) -> "Node" | None:
263
+ def head(self) -> Node | None:
233
264
  """Returns head node."""
234
265
  ...
235
266
  @property
236
- def body(self) -> "Node" | None:
267
+ def body(self) -> Node | None:
237
268
  """Returns document body."""
238
269
  ...
239
- def tags(self, name: str) -> list["Node"]:
270
+ def tags(self, name: str) -> list[Node]:
240
271
  """Returns a list of tags that match specified name."""
241
272
  ...
242
273
  def text(self, deep: bool = True, separator: str = "", strip: bool = False) -> str:
@@ -249,10 +280,10 @@ class HTMLParser:
249
280
  Works the same as th unwrap method, but applied to a list of tags."""
250
281
  ...
251
282
  @property
252
- def html(self) -> None | str:
283
+ def html(self) -> str | None:
253
284
  """Return HTML representation of the page."""
254
285
  ...
255
- def select(self, query: str | None = None) -> "Selector" | None:
286
+ def select(self, query: str | None = None) -> Selector | None:
256
287
  """Select nodes given a CSS selector.
257
288
 
258
289
  Works similarly to the css method, but supports chained filtering and extra features.
@@ -272,7 +303,7 @@ class HTMLParser:
272
303
  Caches values on the first call to improve performance."""
273
304
  ...
274
305
  def css_matches(self, selector: str) -> bool: ...
275
- def clone(self) -> "HTMLParser":
306
+ def clone(self) -> HTMLParser:
276
307
  """Clone the current tree."""
277
308
  ...
278
309
  def merge_text_nodes(self):
@@ -281,14 +312,14 @@ class HTMLParser:
281
312
  This is useful for text extraction."""
282
313
  ...
283
314
 
284
- def create_tag(tag: str) -> "Node":
315
+ def create_tag(tag: str) -> Node:
285
316
  """
286
317
  Given an HTML tag name, e.g. `"div"`, create a single empty node for that tag,
287
318
  e.g. `"<div></div>"`.
288
319
  """
289
320
  ...
290
321
 
291
- def parse_fragment(html: str) -> list["Node"]:
322
+ def parse_fragment(html: str) -> list[Node]:
292
323
  """
293
324
  Given HTML, parse it into a list of Nodes, such that the nodes
294
325
  correspond to the given HTML.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: selectolax
3
- Version: 0.3.25
3
+ Version: 0.3.26
4
4
  Summary: Fast HTML5 parser with CSS selectors.
5
5
  Home-page: https://github.com/rushter/selectolax
6
6
  Author: Artem Golubin
@@ -1,26 +1,26 @@
1
- selectolax/lexbor.pxd,sha256=PwygBdb1blWAQcxXubZS5uffhgcXaqgySNMPFMT02-c,20958
2
- selectolax/lexbor.cpython-313-i386-linux-musl.so,sha256=vZtFYD9bbv8asm-lbYXwvdfnNw1Ni56dhVa8Du4uq4s,16821848
3
- selectolax/parser.pyi,sha256=gDTx5Qde0rKrWDMSpZZDS5XJbPlERnwSQCN8bg5U4AA,10558
1
+ selectolax/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ selectolax/parser.cpython-313-i386-linux-musl.so,sha256=DlLaSvKnY9ULkwwOKxY_NCARfJ9stVay-2ItbkFI47Y,6160872
3
+ selectolax/parser.pyi,sha256=kbR5eWvkJEy-9Hx3L_4JmGy3caIl0ki4SiagWz-fnhw,11557
4
4
  selectolax/parser.pxd,sha256=zZlg1vHUg6o4MXaiwKAo5S5hO_DqBGc4_E10qJ2EcM4,24564
5
+ selectolax/lexbor.pxd,sha256=PwygBdb1blWAQcxXubZS5uffhgcXaqgySNMPFMT02-c,20958
5
6
  selectolax/base.pxi,sha256=eiPKlY9gG3l49qJoRQVLl1Ljza6z1k0A-met6sDPcqE,89
6
- selectolax/parser.pyx,sha256=o1HkYE_nQr3TS7EPlldJx2-ygU9B5FI2uWYFzdF-VaI,12953
7
- selectolax/parser.cpython-313-i386-linux-musl.so,sha256=DlLaSvKnY9ULkwwOKxY_NCARfJ9stVay-2ItbkFI47Y,6160872
8
- selectolax/__init__.py,sha256=oWCGdiVLnaTCmGs0dtRQpNGri89OdU7AwSRoqhmbajI,175
9
- selectolax/lexbor.c,sha256=7rs-9d175hT0mRx49Lwnzbw2Hbd9kqpo6TYhn9oI3UU,2353590
7
+ selectolax/lexbor.pyi,sha256=X2PMQR2XLd2rOPliKSpeFZ_VEf6mOQFTcFm0ChQbzsQ,6544
8
+ selectolax/lexbor.cpython-313-i386-linux-musl.so,sha256=vZtFYD9bbv8asm-lbYXwvdfnNw1Ni56dhVa8Du4uq4s,16821848
9
+ selectolax/lexbor.c,sha256=Bqxtf923DtupnW7ZPAu3f0M1PjMJJSaofiSvOYrP69c,2353590
10
10
  selectolax/lexbor.pyx,sha256=ffEzBnZjGTsI-H5qck7bfjVRE9vteOhQnDp6RjVD7G0,10750
11
- selectolax/lexbor.pyi,sha256=FFVEZfXI8BwvUI0AtNQRUaTTzf66sXq2PWXiggaglug,5543
11
+ selectolax/parser.pyx,sha256=o1HkYE_nQr3TS7EPlldJx2-ygU9B5FI2uWYFzdF-VaI,12953
12
12
  selectolax/utils.pxi,sha256=rPNMFqS0PRLkQPugwPfj-pnHCzkQzQ2cjIRMPZdR6R8,3453
13
- selectolax/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- selectolax/parser.c,sha256=7APT8EQr5vuogGiSwCRNUi_S32l0YAVV8f1CYtVSkNM,2214750
13
+ selectolax/parser.c,sha256=0jrrlXvB2Vu9s8REpwt4l6lu641e4FXVmMYXsaQN2XQ,2214750
14
+ selectolax/__init__.py,sha256=r8TrGaSWTYcCt8yNkcf_pH1I7c7IPOMagr3wd9tCgy8,175
15
+ selectolax/modest/util.pxi,sha256=aX9UnRNTITImHVBTlIs9efOd3EyugLq_Lwuo0zVTiuQ,551
16
+ selectolax/modest/node.pxi,sha256=NrMzJnQJDCmgTHpUxpMHDyAfQ_AS_n_Cr_2ryEKjyL0,32550
17
+ selectolax/modest/selection.pxi,sha256=S55MMxEW2B1oPExB_DRwPM46WoWZU73J3rFRZU1URuQ,6393
15
18
  selectolax/lexbor/util.pxi,sha256=Zq7S-zlyU3wOo49wGHQHnmmhpbkrcJm59ZCTPENcZQA,563
16
19
  selectolax/lexbor/node.pxi,sha256=1XNzUwCbTYXy4D6rZtHxMpoJ9M-xoprB9wjdsiaWhr0,29346
17
20
  selectolax/lexbor/selection.pxi,sha256=PqjvpL6H9uFcmcQWVGfML8FDsTO7tGoZujpA00g9pWk,6444
18
21
  selectolax/lexbor/attrs.pxi,sha256=-518D5v70GgMJhtsxWrWcgIMnXg8afECpUubzq8kqqs,3102
19
- selectolax/modest/util.pxi,sha256=aX9UnRNTITImHVBTlIs9efOd3EyugLq_Lwuo0zVTiuQ,551
20
- selectolax/modest/node.pxi,sha256=NrMzJnQJDCmgTHpUxpMHDyAfQ_AS_n_Cr_2ryEKjyL0,32550
21
- selectolax/modest/selection.pxi,sha256=S55MMxEW2B1oPExB_DRwPM46WoWZU73J3rFRZU1URuQ,6393
22
- selectolax-0.3.25.dist-info/top_level.txt,sha256=e5MuEM2PrQzoDlWetkFli9uXSlxa_ktW5jJEihhaI1c,11
23
- selectolax-0.3.25.dist-info/METADATA,sha256=XbR_TA9gBumRbVEUX7o7IlMBJgDVyAFF0sgmFxCP-v8,5928
24
- selectolax-0.3.25.dist-info/WHEEL,sha256=ooRZ3hBy9oqCIoQgYQzifBpC_7Q3Br7R6leXYtd15OU,110
25
- selectolax-0.3.25.dist-info/RECORD,,
26
- selectolax-0.3.25.dist-info/LICENSE,sha256=kYggm2ZJzBgL79x1gCsYsx8rFIYP2IE-BdXRV3Rm0NU,1077
22
+ selectolax-0.3.26.dist-info/LICENSE,sha256=kYggm2ZJzBgL79x1gCsYsx8rFIYP2IE-BdXRV3Rm0NU,1077
23
+ selectolax-0.3.26.dist-info/METADATA,sha256=HqNPkDK0NqFA-N4HsTn3QtHYktNEwobUdCj7kw-e4VU,5928
24
+ selectolax-0.3.26.dist-info/top_level.txt,sha256=e5MuEM2PrQzoDlWetkFli9uXSlxa_ktW5jJEihhaI1c,11
25
+ selectolax-0.3.26.dist-info/WHEEL,sha256=XsyfJLQjGBcBJG-FTjoahY-ECYkPoGcESY9FGgZ1ILg,110
26
+ selectolax-0.3.26.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-musllinux_1_2_i686
5
5