selectolax 0.3.17__cp312-cp312-musllinux_1_1_aarch64.whl → 0.3.18__cp312-cp312-musllinux_1_1_aarch64.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/lexbor.c CHANGED
@@ -31,208 +31,208 @@
31
31
  "sources": [
32
32
  "selectolax/lexbor.pyx",
33
33
  "lexbor/source/lexbor/core/in.c",
34
- "lexbor/source/lexbor/core/mraw.c",
34
+ "lexbor/source/lexbor/core/bst_map.c",
35
+ "lexbor/source/lexbor/core/array.c",
36
+ "lexbor/source/lexbor/core/strtod.c",
37
+ "lexbor/source/lexbor/core/print.c",
35
38
  "lexbor/source/lexbor/core/avl.c",
36
- "lexbor/source/lexbor/core/shs.c",
37
- "lexbor/source/lexbor/core/str.c",
38
- "lexbor/source/lexbor/core/mem.c",
39
- "lexbor/source/lexbor/core/dobject.c",
40
39
  "lexbor/source/lexbor/core/conv.c",
41
- "lexbor/source/lexbor/core/hash.c",
42
- "lexbor/source/lexbor/core/array.c",
40
+ "lexbor/source/lexbor/core/mraw.c",
41
+ "lexbor/source/lexbor/core/mem.c",
43
42
  "lexbor/source/lexbor/core/dtoa.c",
44
- "lexbor/source/lexbor/core/array_obj.c",
45
- "lexbor/source/lexbor/core/bst_map.c",
46
- "lexbor/source/lexbor/core/bst.c",
47
- "lexbor/source/lexbor/core/strtod.c",
48
- "lexbor/source/lexbor/core/utils.c",
49
43
  "lexbor/source/lexbor/core/plog.c",
44
+ "lexbor/source/lexbor/core/hash.c",
45
+ "lexbor/source/lexbor/core/utils.c",
46
+ "lexbor/source/lexbor/core/shs.c",
47
+ "lexbor/source/lexbor/core/bst.c",
48
+ "lexbor/source/lexbor/core/array_obj.c",
49
+ "lexbor/source/lexbor/core/dobject.c",
50
+ "lexbor/source/lexbor/core/str.c",
50
51
  "lexbor/source/lexbor/core/diyfp.c",
51
- "lexbor/source/lexbor/core/print.c",
52
52
  "lexbor/source/lexbor/core/serialize.c",
53
- "lexbor/source/lexbor/css/stylesheet.c",
54
- "lexbor/source/lexbor/css/at_rule.c",
55
- "lexbor/source/lexbor/css/declaration.c",
56
- "lexbor/source/lexbor/css/parser.c",
57
- "lexbor/source/lexbor/css/css.c",
58
- "lexbor/source/lexbor/css/property.c",
59
- "lexbor/source/lexbor/css/rule.c",
60
- "lexbor/source/lexbor/css/value.c",
61
- "lexbor/source/lexbor/css/state.c",
62
- "lexbor/source/lexbor/css/log.c",
63
- "lexbor/source/lexbor/css/unit.c",
64
- "lexbor/source/lexbor/css/selectors/pseudo.c",
65
- "lexbor/source/lexbor/css/selectors/pseudo_state.c",
66
- "lexbor/source/lexbor/css/selectors/selector.c",
67
- "lexbor/source/lexbor/css/selectors/state.c",
68
- "lexbor/source/lexbor/css/selectors/selectors.c",
69
- "lexbor/source/lexbor/css/property/state.c",
70
- "lexbor/source/lexbor/css/at_rule/state.c",
71
- "lexbor/source/lexbor/css/syntax/token.c",
72
- "lexbor/source/lexbor/css/syntax/parser.c",
73
- "lexbor/source/lexbor/css/syntax/state.c",
74
- "lexbor/source/lexbor/css/syntax/syntax.c",
75
- "lexbor/source/lexbor/css/syntax/anb.c",
76
- "lexbor/source/lexbor/css/syntax/tokenizer.c",
77
- "lexbor/source/lexbor/css/syntax/tokenizer/error.c",
78
- "lexbor/source/lexbor/encoding/range.c",
79
- "lexbor/source/lexbor/encoding/jis0212.c",
80
- "lexbor/source/lexbor/encoding/encode.c",
81
- "lexbor/source/lexbor/encoding/jis0208.c",
82
- "lexbor/source/lexbor/encoding/gb18030.c",
83
- "lexbor/source/lexbor/encoding/euc_kr.c",
84
- "lexbor/source/lexbor/encoding/iso_2022_jp_katakana.c",
85
- "lexbor/source/lexbor/encoding/single.c",
86
- "lexbor/source/lexbor/encoding/decode.c",
87
- "lexbor/source/lexbor/encoding/big5.c",
88
- "lexbor/source/lexbor/encoding/res.c",
89
- "lexbor/source/lexbor/encoding/encoding.c",
90
- "lexbor/source/lexbor/ports/posix/lexbor/core/memory.c",
91
- "lexbor/source/lexbor/ports/posix/lexbor/core/fs.c",
92
- "lexbor/source/lexbor/ports/posix/lexbor/core/perf.c",
53
+ "lexbor/source/lexbor/utils/http.c",
54
+ "lexbor/source/lexbor/utils/warc.c",
55
+ "lexbor/source/lexbor/punycode/punycode.c",
56
+ "lexbor/source/lexbor/html/tree.c",
57
+ "lexbor/source/lexbor/html/token_attr.c",
58
+ "lexbor/source/lexbor/html/parser.c",
93
59
  "lexbor/source/lexbor/html/token.c",
60
+ "lexbor/source/lexbor/html/style.c",
94
61
  "lexbor/source/lexbor/html/node.c",
95
- "lexbor/source/lexbor/html/parser.c",
96
62
  "lexbor/source/lexbor/html/interface.c",
97
- "lexbor/source/lexbor/html/tree.c",
98
- "lexbor/source/lexbor/html/style.c",
99
- "lexbor/source/lexbor/html/token_attr.c",
100
63
  "lexbor/source/lexbor/html/tokenizer.c",
101
- "lexbor/source/lexbor/html/serialize.c",
102
64
  "lexbor/source/lexbor/html/encoding.c",
65
+ "lexbor/source/lexbor/html/serialize.c",
66
+ "lexbor/source/lexbor/html/tree/error.c",
67
+ "lexbor/source/lexbor/html/tree/open_elements.c",
68
+ "lexbor/source/lexbor/html/tree/template_insertion.c",
69
+ "lexbor/source/lexbor/html/tree/active_formatting.c",
70
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table.c",
71
+ "lexbor/source/lexbor/html/tree/insertion_mode/before_head.c",
72
+ "lexbor/source/lexbor/html/tree/insertion_mode/foreign_content.c",
73
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_body.c",
74
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_select.c",
75
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_body.c",
76
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_head_noscript.c",
77
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_cell.c",
78
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_column_group.c",
79
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_head.c",
80
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_after_body.c",
81
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table_body.c",
82
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_row.c",
83
+ "lexbor/source/lexbor/html/tree/insertion_mode/before_html.c",
84
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_frameset.c",
85
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_after_frameset.c",
86
+ "lexbor/source/lexbor/html/tree/insertion_mode/text.c",
87
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_table_text.c",
88
+ "lexbor/source/lexbor/html/tree/insertion_mode/initial.c",
89
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_template.c",
90
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_caption.c",
91
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_select_in_table.c",
92
+ "lexbor/source/lexbor/html/tree/insertion_mode/in_head.c",
93
+ "lexbor/source/lexbor/html/tree/insertion_mode/after_frameset.c",
94
+ "lexbor/source/lexbor/html/interfaces/style_element.c",
95
+ "lexbor/source/lexbor/html/interfaces/video_element.c",
96
+ "lexbor/source/lexbor/html/interfaces/br_element.c",
103
97
  "lexbor/source/lexbor/html/interfaces/canvas_element.c",
104
- "lexbor/source/lexbor/html/interfaces/text_area_element.c",
105
- "lexbor/source/lexbor/html/interfaces/audio_element.c",
98
+ "lexbor/source/lexbor/html/interfaces/mod_element.c",
99
+ "lexbor/source/lexbor/html/interfaces/div_element.c",
100
+ "lexbor/source/lexbor/html/interfaces/table_row_element.c",
106
101
  "lexbor/source/lexbor/html/interfaces/input_element.c",
102
+ "lexbor/source/lexbor/html/interfaces/head_element.c",
103
+ "lexbor/source/lexbor/html/interfaces/data_element.c",
104
+ "lexbor/source/lexbor/html/interfaces/base_element.c",
105
+ "lexbor/source/lexbor/html/interfaces/html_element.c",
106
+ "lexbor/source/lexbor/html/interfaces/field_set_element.c",
107
+ "lexbor/source/lexbor/html/interfaces/map_element.c",
108
+ "lexbor/source/lexbor/html/interfaces/embed_element.c",
109
+ "lexbor/source/lexbor/html/interfaces/hr_element.c",
110
+ "lexbor/source/lexbor/html/interfaces/u_list_element.c",
111
+ "lexbor/source/lexbor/html/interfaces/document.c",
112
+ "lexbor/source/lexbor/html/interfaces/frame_set_element.c",
113
+ "lexbor/source/lexbor/html/interfaces/param_element.c",
114
+ "lexbor/source/lexbor/html/interfaces/span_element.c",
115
+ "lexbor/source/lexbor/html/interfaces/quote_element.c",
107
116
  "lexbor/source/lexbor/html/interfaces/legend_element.c",
108
- "lexbor/source/lexbor/html/interfaces/select_element.c",
109
- "lexbor/source/lexbor/html/interfaces/output_element.c",
110
- "lexbor/source/lexbor/html/interfaces/opt_group_element.c",
117
+ "lexbor/source/lexbor/html/interfaces/link_element.c",
118
+ "lexbor/source/lexbor/html/interfaces/d_list_element.c",
119
+ "lexbor/source/lexbor/html/interfaces/table_element.c",
120
+ "lexbor/source/lexbor/html/interfaces/text_area_element.c",
111
121
  "lexbor/source/lexbor/html/interfaces/font_element.c",
112
- "lexbor/source/lexbor/html/interfaces/label_element.c",
113
- "lexbor/source/lexbor/html/interfaces/form_element.c",
114
- "lexbor/source/lexbor/html/interfaces/data_list_element.c",
122
+ "lexbor/source/lexbor/html/interfaces/meta_element.c",
123
+ "lexbor/source/lexbor/html/interfaces/element.c",
115
124
  "lexbor/source/lexbor/html/interfaces/table_caption_element.c",
116
- "lexbor/source/lexbor/html/interfaces/body_element.c",
117
- "lexbor/source/lexbor/html/interfaces/br_element.c",
118
- "lexbor/source/lexbor/html/interfaces/base_element.c",
119
- "lexbor/source/lexbor/html/interfaces/track_element.c",
120
- "lexbor/source/lexbor/html/interfaces/title_element.c",
121
- "lexbor/source/lexbor/html/interfaces/div_element.c",
122
- "lexbor/source/lexbor/html/interfaces/mod_element.c",
123
- "lexbor/source/lexbor/html/interfaces/time_element.c",
124
- "lexbor/source/lexbor/html/interfaces/li_element.c",
125
+ "lexbor/source/lexbor/html/interfaces/details_element.c",
126
+ "lexbor/source/lexbor/html/interfaces/output_element.c",
127
+ "lexbor/source/lexbor/html/interfaces/script_element.c",
125
128
  "lexbor/source/lexbor/html/interfaces/menu_element.c",
126
- "lexbor/source/lexbor/html/interfaces/progress_element.c",
127
- "lexbor/source/lexbor/html/interfaces/html_element.c",
128
- "lexbor/source/lexbor/html/interfaces/data_element.c",
129
- "lexbor/source/lexbor/html/interfaces/template_element.c",
130
- "lexbor/source/lexbor/html/interfaces/quote_element.c",
129
+ "lexbor/source/lexbor/html/interfaces/unknown_element.c",
131
130
  "lexbor/source/lexbor/html/interfaces/frame_element.c",
132
- "lexbor/source/lexbor/html/interfaces/document.c",
131
+ "lexbor/source/lexbor/html/interfaces/heading_element.c",
133
132
  "lexbor/source/lexbor/html/interfaces/image_element.c",
134
- "lexbor/source/lexbor/html/interfaces/anchor_element.c",
135
- "lexbor/source/lexbor/html/interfaces/area_element.c",
136
- "lexbor/source/lexbor/html/interfaces/unknown_element.c",
137
- "lexbor/source/lexbor/html/interfaces/field_set_element.c",
133
+ "lexbor/source/lexbor/html/interfaces/template_element.c",
138
134
  "lexbor/source/lexbor/html/interfaces/iframe_element.c",
139
- "lexbor/source/lexbor/html/interfaces/source_element.c",
140
- "lexbor/source/lexbor/html/interfaces/meta_element.c",
141
- "lexbor/source/lexbor/html/interfaces/head_element.c",
142
- "lexbor/source/lexbor/html/interfaces/video_element.c",
143
- "lexbor/source/lexbor/html/interfaces/span_element.c",
144
- "lexbor/source/lexbor/html/interfaces/script_element.c",
145
- "lexbor/source/lexbor/html/interfaces/o_list_element.c",
146
- "lexbor/source/lexbor/html/interfaces/object_element.c",
147
- "lexbor/source/lexbor/html/interfaces/marquee_element.c",
148
- "lexbor/source/lexbor/html/interfaces/button_element.c",
149
- "lexbor/source/lexbor/html/interfaces/window.c",
150
- "lexbor/source/lexbor/html/interfaces/table_row_element.c",
151
- "lexbor/source/lexbor/html/interfaces/option_element.c",
152
- "lexbor/source/lexbor/html/interfaces/media_element.c",
153
- "lexbor/source/lexbor/html/interfaces/element.c",
154
- "lexbor/source/lexbor/html/interfaces/table_section_element.c",
155
- "lexbor/source/lexbor/html/interfaces/dialog_element.c",
156
- "lexbor/source/lexbor/html/interfaces/table_cell_element.c",
157
- "lexbor/source/lexbor/html/interfaces/details_element.c",
158
- "lexbor/source/lexbor/html/interfaces/link_element.c",
159
- "lexbor/source/lexbor/html/interfaces/map_element.c",
160
- "lexbor/source/lexbor/html/interfaces/param_element.c",
161
- "lexbor/source/lexbor/html/interfaces/u_list_element.c",
162
- "lexbor/source/lexbor/html/interfaces/d_list_element.c",
163
- "lexbor/source/lexbor/html/interfaces/hr_element.c",
164
- "lexbor/source/lexbor/html/interfaces/embed_element.c",
165
135
  "lexbor/source/lexbor/html/interfaces/paragraph_element.c",
166
- "lexbor/source/lexbor/html/interfaces/directory_element.c",
167
- "lexbor/source/lexbor/html/interfaces/picture_element.c",
136
+ "lexbor/source/lexbor/html/interfaces/dialog_element.c",
137
+ "lexbor/source/lexbor/html/interfaces/table_section_element.c",
138
+ "lexbor/source/lexbor/html/interfaces/option_element.c",
139
+ "lexbor/source/lexbor/html/interfaces/button_element.c",
140
+ "lexbor/source/lexbor/html/interfaces/label_element.c",
141
+ "lexbor/source/lexbor/html/interfaces/time_element.c",
142
+ "lexbor/source/lexbor/html/interfaces/li_element.c",
168
143
  "lexbor/source/lexbor/html/interfaces/slot_element.c",
169
- "lexbor/source/lexbor/html/interfaces/table_element.c",
144
+ "lexbor/source/lexbor/html/interfaces/form_element.c",
170
145
  "lexbor/source/lexbor/html/interfaces/table_col_element.c",
171
- "lexbor/source/lexbor/html/interfaces/meter_element.c",
172
- "lexbor/source/lexbor/html/interfaces/style_element.c",
173
- "lexbor/source/lexbor/html/interfaces/heading_element.c",
146
+ "lexbor/source/lexbor/html/interfaces/object_element.c",
147
+ "lexbor/source/lexbor/html/interfaces/picture_element.c",
148
+ "lexbor/source/lexbor/html/interfaces/source_element.c",
149
+ "lexbor/source/lexbor/html/interfaces/area_element.c",
174
150
  "lexbor/source/lexbor/html/interfaces/pre_element.c",
175
- "lexbor/source/lexbor/html/interfaces/frame_set_element.c",
176
- "lexbor/source/lexbor/html/tokenizer/error.c",
177
- "lexbor/source/lexbor/html/tokenizer/state_doctype.c",
178
- "lexbor/source/lexbor/html/tokenizer/state_rcdata.c",
151
+ "lexbor/source/lexbor/html/interfaces/window.c",
152
+ "lexbor/source/lexbor/html/interfaces/select_element.c",
153
+ "lexbor/source/lexbor/html/interfaces/data_list_element.c",
154
+ "lexbor/source/lexbor/html/interfaces/directory_element.c",
155
+ "lexbor/source/lexbor/html/interfaces/table_cell_element.c",
156
+ "lexbor/source/lexbor/html/interfaces/anchor_element.c",
157
+ "lexbor/source/lexbor/html/interfaces/media_element.c",
158
+ "lexbor/source/lexbor/html/interfaces/o_list_element.c",
159
+ "lexbor/source/lexbor/html/interfaces/body_element.c",
160
+ "lexbor/source/lexbor/html/interfaces/title_element.c",
161
+ "lexbor/source/lexbor/html/interfaces/track_element.c",
162
+ "lexbor/source/lexbor/html/interfaces/audio_element.c",
163
+ "lexbor/source/lexbor/html/interfaces/opt_group_element.c",
164
+ "lexbor/source/lexbor/html/interfaces/meter_element.c",
165
+ "lexbor/source/lexbor/html/interfaces/marquee_element.c",
166
+ "lexbor/source/lexbor/html/interfaces/progress_element.c",
179
167
  "lexbor/source/lexbor/html/tokenizer/state_rawtext.c",
180
- "lexbor/source/lexbor/html/tokenizer/state_script.c",
181
168
  "lexbor/source/lexbor/html/tokenizer/state.c",
182
169
  "lexbor/source/lexbor/html/tokenizer/state_comment.c",
183
- "lexbor/source/lexbor/html/tree/error.c",
184
- "lexbor/source/lexbor/html/tree/active_formatting.c",
185
- "lexbor/source/lexbor/html/tree/open_elements.c",
186
- "lexbor/source/lexbor/html/tree/template_insertion.c",
187
- "lexbor/source/lexbor/html/tree/insertion_mode/in_select_in_table.c",
188
- "lexbor/source/lexbor/html/tree/insertion_mode/in_caption.c",
189
- "lexbor/source/lexbor/html/tree/insertion_mode/text.c",
190
- "lexbor/source/lexbor/html/tree/insertion_mode/in_head.c",
191
- "lexbor/source/lexbor/html/tree/insertion_mode/in_head_noscript.c",
192
- "lexbor/source/lexbor/html/tree/insertion_mode/after_frameset.c",
193
- "lexbor/source/lexbor/html/tree/insertion_mode/in_row.c",
194
- "lexbor/source/lexbor/html/tree/insertion_mode/in_frameset.c",
195
- "lexbor/source/lexbor/html/tree/insertion_mode/after_body.c",
196
- "lexbor/source/lexbor/html/tree/insertion_mode/after_head.c",
197
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table.c",
198
- "lexbor/source/lexbor/html/tree/insertion_mode/in_body.c",
199
- "lexbor/source/lexbor/html/tree/insertion_mode/before_html.c",
200
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table_text.c",
201
- "lexbor/source/lexbor/html/tree/insertion_mode/before_head.c",
202
- "lexbor/source/lexbor/html/tree/insertion_mode/in_column_group.c",
203
- "lexbor/source/lexbor/html/tree/insertion_mode/in_cell.c",
204
- "lexbor/source/lexbor/html/tree/insertion_mode/in_select.c",
205
- "lexbor/source/lexbor/html/tree/insertion_mode/after_after_frameset.c",
206
- "lexbor/source/lexbor/html/tree/insertion_mode/after_after_body.c",
207
- "lexbor/source/lexbor/html/tree/insertion_mode/initial.c",
208
- "lexbor/source/lexbor/html/tree/insertion_mode/in_table_body.c",
209
- "lexbor/source/lexbor/html/tree/insertion_mode/foreign_content.c",
210
- "lexbor/source/lexbor/html/tree/insertion_mode/in_template.c",
211
- "lexbor/source/lexbor/selectors/selectors.c",
170
+ "lexbor/source/lexbor/html/tokenizer/error.c",
171
+ "lexbor/source/lexbor/html/tokenizer/state_script.c",
172
+ "lexbor/source/lexbor/html/tokenizer/state_doctype.c",
173
+ "lexbor/source/lexbor/html/tokenizer/state_rcdata.c",
212
174
  "lexbor/source/lexbor/ns/ns.c",
213
- "lexbor/source/lexbor/punycode/punycode.c",
214
- "lexbor/source/lexbor/url/url.c",
215
- "lexbor/source/lexbor/utils/warc.c",
216
- "lexbor/source/lexbor/utils/http.c",
217
- "lexbor/source/lexbor/unicode/idna.c",
218
- "lexbor/source/lexbor/unicode/unicode.c",
219
175
  "lexbor/source/lexbor/dom/exception.c",
220
176
  "lexbor/source/lexbor/dom/interface.c",
221
177
  "lexbor/source/lexbor/dom/collection.c",
222
- "lexbor/source/lexbor/dom/interfaces/processing_instruction.c",
223
- "lexbor/source/lexbor/dom/interfaces/text.c",
224
- "lexbor/source/lexbor/dom/interfaces/comment.c",
225
- "lexbor/source/lexbor/dom/interfaces/node.c",
226
- "lexbor/source/lexbor/dom/interfaces/shadow_root.c",
227
- "lexbor/source/lexbor/dom/interfaces/document.c",
228
178
  "lexbor/source/lexbor/dom/interfaces/document_fragment.c",
229
- "lexbor/source/lexbor/dom/interfaces/cdata_section.c",
230
- "lexbor/source/lexbor/dom/interfaces/element.c",
231
- "lexbor/source/lexbor/dom/interfaces/document_type.c",
232
179
  "lexbor/source/lexbor/dom/interfaces/event_target.c",
180
+ "lexbor/source/lexbor/dom/interfaces/document.c",
181
+ "lexbor/source/lexbor/dom/interfaces/element.c",
233
182
  "lexbor/source/lexbor/dom/interfaces/character_data.c",
183
+ "lexbor/source/lexbor/dom/interfaces/node.c",
184
+ "lexbor/source/lexbor/dom/interfaces/text.c",
185
+ "lexbor/source/lexbor/dom/interfaces/cdata_section.c",
186
+ "lexbor/source/lexbor/dom/interfaces/comment.c",
234
187
  "lexbor/source/lexbor/dom/interfaces/attr.c",
235
- "lexbor/source/lexbor/tag/tag.c"
188
+ "lexbor/source/lexbor/dom/interfaces/document_type.c",
189
+ "lexbor/source/lexbor/dom/interfaces/shadow_root.c",
190
+ "lexbor/source/lexbor/dom/interfaces/processing_instruction.c",
191
+ "lexbor/source/lexbor/url/url.c",
192
+ "lexbor/source/lexbor/css/log.c",
193
+ "lexbor/source/lexbor/css/state.c",
194
+ "lexbor/source/lexbor/css/parser.c",
195
+ "lexbor/source/lexbor/css/at_rule.c",
196
+ "lexbor/source/lexbor/css/rule.c",
197
+ "lexbor/source/lexbor/css/unit.c",
198
+ "lexbor/source/lexbor/css/value.c",
199
+ "lexbor/source/lexbor/css/property.c",
200
+ "lexbor/source/lexbor/css/css.c",
201
+ "lexbor/source/lexbor/css/declaration.c",
202
+ "lexbor/source/lexbor/css/stylesheet.c",
203
+ "lexbor/source/lexbor/css/syntax/state.c",
204
+ "lexbor/source/lexbor/css/syntax/parser.c",
205
+ "lexbor/source/lexbor/css/syntax/syntax.c",
206
+ "lexbor/source/lexbor/css/syntax/anb.c",
207
+ "lexbor/source/lexbor/css/syntax/token.c",
208
+ "lexbor/source/lexbor/css/syntax/tokenizer.c",
209
+ "lexbor/source/lexbor/css/syntax/tokenizer/error.c",
210
+ "lexbor/source/lexbor/css/property/state.c",
211
+ "lexbor/source/lexbor/css/at_rule/state.c",
212
+ "lexbor/source/lexbor/css/selectors/pseudo_state.c",
213
+ "lexbor/source/lexbor/css/selectors/state.c",
214
+ "lexbor/source/lexbor/css/selectors/selectors.c",
215
+ "lexbor/source/lexbor/css/selectors/pseudo.c",
216
+ "lexbor/source/lexbor/css/selectors/selector.c",
217
+ "lexbor/source/lexbor/tag/tag.c",
218
+ "lexbor/source/lexbor/unicode/unicode.c",
219
+ "lexbor/source/lexbor/unicode/idna.c",
220
+ "lexbor/source/lexbor/selectors/selectors.c",
221
+ "lexbor/source/lexbor/encoding/encode.c",
222
+ "lexbor/source/lexbor/encoding/euc_kr.c",
223
+ "lexbor/source/lexbor/encoding/iso_2022_jp_katakana.c",
224
+ "lexbor/source/lexbor/encoding/jis0208.c",
225
+ "lexbor/source/lexbor/encoding/gb18030.c",
226
+ "lexbor/source/lexbor/encoding/decode.c",
227
+ "lexbor/source/lexbor/encoding/res.c",
228
+ "lexbor/source/lexbor/encoding/big5.c",
229
+ "lexbor/source/lexbor/encoding/single.c",
230
+ "lexbor/source/lexbor/encoding/jis0212.c",
231
+ "lexbor/source/lexbor/encoding/encoding.c",
232
+ "lexbor/source/lexbor/encoding/range.c",
233
+ "lexbor/source/lexbor/ports/posix/lexbor/core/perf.c",
234
+ "lexbor/source/lexbor/ports/posix/lexbor/core/memory.c",
235
+ "lexbor/source/lexbor/ports/posix/lexbor/core/fs.c"
236
236
  ]
237
237
  },
238
238
  "module_name": "selectolax.lexbor"
@@ -1327,7 +1327,7 @@ struct __pyx_obj_10selectolax_6lexbor_TextContainer {
1327
1327
  };
1328
1328
 
1329
1329
 
1330
- /* "selectolax/lexbor/selection.pxi":86
1330
+ /* "selectolax/lexbor/selection.pxi":87
1331
1331
  *
1332
1332
  *
1333
1333
  * cdef class LexborSelector: # <<<<<<<<<<<<<<
@@ -1491,7 +1491,7 @@ static struct __pyx_vtabstruct_10selectolax_6lexbor_LexborAttributes *__pyx_vtab
1491
1491
  static struct __pyx_obj_10selectolax_6lexbor_LexborAttributes *__pyx_f_10selectolax_6lexbor_16LexborAttributes_create(lxb_dom_node_t *);
1492
1492
 
1493
1493
 
1494
- /* "selectolax/lexbor/selection.pxi":86
1494
+ /* "selectolax/lexbor/selection.pxi":87
1495
1495
  *
1496
1496
  *
1497
1497
  * cdef class LexborSelector: # <<<<<<<<<<<<<<
@@ -18818,7 +18818,7 @@ static PyObject *__pyx_f_10selectolax_6lexbor_17LexborCSSSelector_any_matches(st
18818
18818
  * raise SelectolaxError("Can't parse CSS selector.")
18819
18819
  * result = bool(self.results) # <<<<<<<<<<<<<<
18820
18820
  * self.results = []
18821
- * return result
18821
+ * lxb_css_selector_list_destroy_memory(selectors_list)
18822
18822
  */
18823
18823
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7cpython_4bool_bool), __pyx_v_self->results); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 73, __pyx_L1_error)
18824
18824
  __Pyx_GOTREF(__pyx_t_1);
@@ -18829,8 +18829,8 @@ static PyObject *__pyx_f_10selectolax_6lexbor_17LexborCSSSelector_any_matches(st
18829
18829
  * raise SelectolaxError("Can't parse CSS selector.")
18830
18830
  * result = bool(self.results)
18831
18831
  * self.results = [] # <<<<<<<<<<<<<<
18832
+ * lxb_css_selector_list_destroy_memory(selectors_list)
18832
18833
  * return result
18833
- *
18834
18834
  */
18835
18835
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error)
18836
18836
  __Pyx_GOTREF(__pyx_t_1);
@@ -18843,6 +18843,15 @@ static PyObject *__pyx_f_10selectolax_6lexbor_17LexborCSSSelector_any_matches(st
18843
18843
  /* "selectolax/lexbor/selection.pxi":75
18844
18844
  * result = bool(self.results)
18845
18845
  * self.results = []
18846
+ * lxb_css_selector_list_destroy_memory(selectors_list) # <<<<<<<<<<<<<<
18847
+ * return result
18848
+ *
18849
+ */
18850
+ lxb_css_selector_list_destroy_memory(__pyx_v_selectors_list);
18851
+
18852
+ /* "selectolax/lexbor/selection.pxi":76
18853
+ * self.results = []
18854
+ * lxb_css_selector_list_destroy_memory(selectors_list)
18846
18855
  * return result # <<<<<<<<<<<<<<
18847
18856
  *
18848
18857
  *
@@ -18973,7 +18982,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_4any_matches(
18973
18982
  return __pyx_r;
18974
18983
  }
18975
18984
 
18976
- /* "selectolax/lexbor/selection.pxi":78
18985
+ /* "selectolax/lexbor/selection.pxi":79
18977
18986
  *
18978
18987
  *
18979
18988
  * def __dealloc__(self): # <<<<<<<<<<<<<<
@@ -18996,7 +19005,7 @@ static void __pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_6__dealloc__(struc
18996
19005
  __Pyx_RefNannyDeclarations
18997
19006
  __Pyx_RefNannySetupContext("__dealloc__", 0);
18998
19007
 
18999
- /* "selectolax/lexbor/selection.pxi":79
19008
+ /* "selectolax/lexbor/selection.pxi":80
19000
19009
  *
19001
19010
  * def __dealloc__(self):
19002
19011
  * lxb_selectors_destroy(self.selectors, True) # <<<<<<<<<<<<<<
@@ -19005,7 +19014,7 @@ static void __pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_6__dealloc__(struc
19005
19014
  */
19006
19015
  (void)(lxb_selectors_destroy(__pyx_v_self->selectors, 1));
19007
19016
 
19008
- /* "selectolax/lexbor/selection.pxi":80
19017
+ /* "selectolax/lexbor/selection.pxi":81
19009
19018
  * def __dealloc__(self):
19010
19019
  * lxb_selectors_destroy(self.selectors, True)
19011
19020
  * lxb_css_parser_destroy(self.parser, True) # <<<<<<<<<<<<<<
@@ -19014,7 +19023,7 @@ static void __pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_6__dealloc__(struc
19014
19023
  */
19015
19024
  (void)(lxb_css_parser_destroy(__pyx_v_self->parser, 1));
19016
19025
 
19017
- /* "selectolax/lexbor/selection.pxi":81
19026
+ /* "selectolax/lexbor/selection.pxi":82
19018
19027
  * lxb_selectors_destroy(self.selectors, True)
19019
19028
  * lxb_css_parser_destroy(self.parser, True)
19020
19029
  * lxb_css_selectors_destroy(self.css_selectors, True) # <<<<<<<<<<<<<<
@@ -19023,7 +19032,7 @@ static void __pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_6__dealloc__(struc
19023
19032
  */
19024
19033
  (void)(lxb_css_selectors_destroy(__pyx_v_self->css_selectors, 1));
19025
19034
 
19026
- /* "selectolax/lexbor/selection.pxi":78
19035
+ /* "selectolax/lexbor/selection.pxi":79
19027
19036
  *
19028
19037
  *
19029
19038
  * def __dealloc__(self): # <<<<<<<<<<<<<<
@@ -19366,7 +19375,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_17LexborCSSSelector_10__setstate_
19366
19375
  return __pyx_r;
19367
19376
  }
19368
19377
 
19369
- /* "selectolax/lexbor/selection.pxi":96
19378
+ /* "selectolax/lexbor/selection.pxi":97
19370
19379
  * cdef list nodes
19371
19380
  *
19372
19381
  * def __init__(self, LexborNode node, query): # <<<<<<<<<<<<<<
@@ -19408,11 +19417,11 @@ static int __pyx_pw_10selectolax_6lexbor_14LexborSelector_1__init__(PyObject *__
19408
19417
  case 1:
19409
19418
  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_query)) != 0)) kw_args--;
19410
19419
  else {
19411
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(5, 96, __pyx_L3_error)
19420
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(5, 97, __pyx_L3_error)
19412
19421
  }
19413
19422
  }
19414
19423
  if (unlikely(kw_args > 0)) {
19415
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(5, 96, __pyx_L3_error)
19424
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(5, 97, __pyx_L3_error)
19416
19425
  }
19417
19426
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
19418
19427
  goto __pyx_L5_argtuple_error;
@@ -19425,13 +19434,13 @@ static int __pyx_pw_10selectolax_6lexbor_14LexborSelector_1__init__(PyObject *__
19425
19434
  }
19426
19435
  goto __pyx_L4_argument_unpacking_done;
19427
19436
  __pyx_L5_argtuple_error:;
19428
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 96, __pyx_L3_error)
19437
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 97, __pyx_L3_error)
19429
19438
  __pyx_L3_error:;
19430
19439
  __Pyx_AddTraceback("selectolax.lexbor.LexborSelector.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
19431
19440
  __Pyx_RefNannyFinishContext();
19432
19441
  return -1;
19433
19442
  __pyx_L4_argument_unpacking_done:;
19434
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_10selectolax_6lexbor_LexborNode, 1, "node", 0))) __PYX_ERR(5, 96, __pyx_L1_error)
19443
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_10selectolax_6lexbor_LexborNode, 1, "node", 0))) __PYX_ERR(5, 97, __pyx_L1_error)
19435
19444
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), __pyx_v_node, __pyx_v_query);
19436
19445
 
19437
19446
  /* function exit code */
@@ -19458,7 +19467,7 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19458
19467
  int __pyx_clineno = 0;
19459
19468
  __Pyx_RefNannySetupContext("__init__", 0);
19460
19469
 
19461
- /* "selectolax/lexbor/selection.pxi":97
19470
+ /* "selectolax/lexbor/selection.pxi":98
19462
19471
  *
19463
19472
  * def __init__(self, LexborNode node, query):
19464
19473
  * self.node = node # <<<<<<<<<<<<<<
@@ -19471,18 +19480,18 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19471
19480
  __Pyx_DECREF(((PyObject *)__pyx_v_self->node));
19472
19481
  __pyx_v_self->node = __pyx_v_node;
19473
19482
 
19474
- /* "selectolax/lexbor/selection.pxi":98
19483
+ /* "selectolax/lexbor/selection.pxi":99
19475
19484
  * def __init__(self, LexborNode node, query):
19476
19485
  * self.node = node
19477
19486
  * self.nodes = self.node.parser.selector.find(query, self.node) if query else [node, ] # <<<<<<<<<<<<<<
19478
19487
  *
19479
19488
  *
19480
19489
  */
19481
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_query); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(5, 98, __pyx_L1_error)
19490
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_query); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(5, 99, __pyx_L1_error)
19482
19491
  if (__pyx_t_2) {
19483
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->node->parser), __pyx_n_s_selector); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 98, __pyx_L1_error)
19492
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->node->parser), __pyx_n_s_selector); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 99, __pyx_L1_error)
19484
19493
  __Pyx_GOTREF(__pyx_t_4);
19485
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 98, __pyx_L1_error)
19494
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 99, __pyx_L1_error)
19486
19495
  __Pyx_GOTREF(__pyx_t_5);
19487
19496
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
19488
19497
  __pyx_t_4 = NULL;
@@ -19500,7 +19509,7 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19500
19509
  #if CYTHON_FAST_PYCALL
19501
19510
  if (PyFunction_Check(__pyx_t_5)) {
19502
19511
  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_query, ((PyObject *)__pyx_v_self->node)};
19503
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 98, __pyx_L1_error)
19512
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 99, __pyx_L1_error)
19504
19513
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
19505
19514
  __Pyx_GOTREF(__pyx_t_3);
19506
19515
  } else
@@ -19508,13 +19517,13 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19508
19517
  #if CYTHON_FAST_PYCCALL
19509
19518
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
19510
19519
  PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_query, ((PyObject *)__pyx_v_self->node)};
19511
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 98, __pyx_L1_error)
19520
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 99, __pyx_L1_error)
19512
19521
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
19513
19522
  __Pyx_GOTREF(__pyx_t_3);
19514
19523
  } else
19515
19524
  #endif
19516
19525
  {
19517
- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 98, __pyx_L1_error)
19526
+ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 99, __pyx_L1_error)
19518
19527
  __Pyx_GOTREF(__pyx_t_7);
19519
19528
  if (__pyx_t_4) {
19520
19529
  __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
@@ -19525,16 +19534,16 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19525
19534
  __Pyx_INCREF(((PyObject *)__pyx_v_self->node));
19526
19535
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node));
19527
19536
  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, ((PyObject *)__pyx_v_self->node));
19528
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 98, __pyx_L1_error)
19537
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 99, __pyx_L1_error)
19529
19538
  __Pyx_GOTREF(__pyx_t_3);
19530
19539
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
19531
19540
  }
19532
19541
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
19533
- if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(5, 98, __pyx_L1_error)
19542
+ if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(5, 99, __pyx_L1_error)
19534
19543
  __pyx_t_1 = __pyx_t_3;
19535
19544
  __pyx_t_3 = 0;
19536
19545
  } else {
19537
- __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 98, __pyx_L1_error)
19546
+ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 99, __pyx_L1_error)
19538
19547
  __Pyx_GOTREF(__pyx_t_3);
19539
19548
  __Pyx_INCREF(((PyObject *)__pyx_v_node));
19540
19549
  __Pyx_GIVEREF(((PyObject *)__pyx_v_node));
@@ -19548,7 +19557,7 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19548
19557
  __pyx_v_self->nodes = ((PyObject*)__pyx_t_1);
19549
19558
  __pyx_t_1 = 0;
19550
19559
 
19551
- /* "selectolax/lexbor/selection.pxi":96
19560
+ /* "selectolax/lexbor/selection.pxi":97
19552
19561
  * cdef list nodes
19553
19562
  *
19554
19563
  * def __init__(self, LexborNode node, query): # <<<<<<<<<<<<<<
@@ -19572,7 +19581,7 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector___init__(struct __pyx_
19572
19581
  return __pyx_r;
19573
19582
  }
19574
19583
 
19575
- /* "selectolax/lexbor/selection.pxi":101
19584
+ /* "selectolax/lexbor/selection.pxi":102
19576
19585
  *
19577
19586
  *
19578
19587
  * cpdef css(self, str query): # <<<<<<<<<<<<<<
@@ -19601,7 +19610,7 @@ static PyObject *__pyx_f_10selectolax_6lexbor_14LexborSelector_css(CYTHON_UNUSED
19601
19610
  if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
19602
19611
  PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
19603
19612
  #endif
19604
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_css); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __pyx_L1_error)
19613
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_css); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 102, __pyx_L1_error)
19605
19614
  __Pyx_GOTREF(__pyx_t_1);
19606
19615
  if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_10selectolax_6lexbor_14LexborSelector_3css)) {
19607
19616
  __Pyx_XDECREF(__pyx_r);
@@ -19618,7 +19627,7 @@ static PyObject *__pyx_f_10selectolax_6lexbor_14LexborSelector_css(CYTHON_UNUSED
19618
19627
  }
19619
19628
  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_query) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_query);
19620
19629
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
19621
- if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 101, __pyx_L1_error)
19630
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 102, __pyx_L1_error)
19622
19631
  __Pyx_GOTREF(__pyx_t_2);
19623
19632
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
19624
19633
  __pyx_r = __pyx_t_2;
@@ -19639,14 +19648,14 @@ static PyObject *__pyx_f_10selectolax_6lexbor_14LexborSelector_css(CYTHON_UNUSED
19639
19648
  #endif
19640
19649
  }
19641
19650
 
19642
- /* "selectolax/lexbor/selection.pxi":103
19651
+ /* "selectolax/lexbor/selection.pxi":104
19643
19652
  * cpdef css(self, str query):
19644
19653
  * """Evaluate CSS selector against current scope."""
19645
19654
  * raise SelectolaxError("This features is not supported by the lexbor backend. Please use Modest backend.") # <<<<<<<<<<<<<<
19646
19655
  *
19647
19656
  * @property
19648
19657
  */
19649
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SelectolaxError); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 103, __pyx_L1_error)
19658
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SelectolaxError); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 104, __pyx_L1_error)
19650
19659
  __Pyx_GOTREF(__pyx_t_2);
19651
19660
  __pyx_t_3 = NULL;
19652
19661
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
@@ -19660,14 +19669,14 @@ static PyObject *__pyx_f_10selectolax_6lexbor_14LexborSelector_css(CYTHON_UNUSED
19660
19669
  }
19661
19670
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_This_features_is_not_supported_b) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_This_features_is_not_supported_b);
19662
19671
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
19663
- if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 103, __pyx_L1_error)
19672
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 104, __pyx_L1_error)
19664
19673
  __Pyx_GOTREF(__pyx_t_1);
19665
19674
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
19666
19675
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
19667
19676
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
19668
- __PYX_ERR(5, 103, __pyx_L1_error)
19677
+ __PYX_ERR(5, 104, __pyx_L1_error)
19669
19678
 
19670
- /* "selectolax/lexbor/selection.pxi":101
19679
+ /* "selectolax/lexbor/selection.pxi":102
19671
19680
  *
19672
19681
  *
19673
19682
  * cpdef css(self, str query): # <<<<<<<<<<<<<<
@@ -19699,7 +19708,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_3css(PyObject *_
19699
19708
  PyObject *__pyx_r = 0;
19700
19709
  __Pyx_RefNannyDeclarations
19701
19710
  __Pyx_RefNannySetupContext("css (wrapper)", 0);
19702
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_query), (&PyUnicode_Type), 1, "query", 1))) __PYX_ERR(5, 101, __pyx_L1_error)
19711
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_query), (&PyUnicode_Type), 1, "query", 1))) __PYX_ERR(5, 102, __pyx_L1_error)
19703
19712
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector_2css(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), ((PyObject*)__pyx_v_query));
19704
19713
 
19705
19714
  /* function exit code */
@@ -19720,7 +19729,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_2css(struct __py
19720
19729
  int __pyx_clineno = 0;
19721
19730
  __Pyx_RefNannySetupContext("css", 0);
19722
19731
  __Pyx_XDECREF(__pyx_r);
19723
- __pyx_t_1 = __pyx_f_10selectolax_6lexbor_14LexborSelector_css(__pyx_v_self, __pyx_v_query, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __pyx_L1_error)
19732
+ __pyx_t_1 = __pyx_f_10selectolax_6lexbor_14LexborSelector_css(__pyx_v_self, __pyx_v_query, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 102, __pyx_L1_error)
19724
19733
  __Pyx_GOTREF(__pyx_t_1);
19725
19734
  __pyx_r = __pyx_t_1;
19726
19735
  __pyx_t_1 = 0;
@@ -19737,7 +19746,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_2css(struct __py
19737
19746
  return __pyx_r;
19738
19747
  }
19739
19748
 
19740
- /* "selectolax/lexbor/selection.pxi":106
19749
+ /* "selectolax/lexbor/selection.pxi":107
19741
19750
  *
19742
19751
  * @property
19743
19752
  * def matches(self): # <<<<<<<<<<<<<<
@@ -19763,7 +19772,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_7matches___get__
19763
19772
  __Pyx_RefNannyDeclarations
19764
19773
  __Pyx_RefNannySetupContext("__get__", 0);
19765
19774
 
19766
- /* "selectolax/lexbor/selection.pxi":108
19775
+ /* "selectolax/lexbor/selection.pxi":109
19767
19776
  * def matches(self):
19768
19777
  * """Returns all possible matches"""
19769
19778
  * return self.nodes # <<<<<<<<<<<<<<
@@ -19775,7 +19784,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_7matches___get__
19775
19784
  __pyx_r = __pyx_v_self->nodes;
19776
19785
  goto __pyx_L0;
19777
19786
 
19778
- /* "selectolax/lexbor/selection.pxi":106
19787
+ /* "selectolax/lexbor/selection.pxi":107
19779
19788
  *
19780
19789
  * @property
19781
19790
  * def matches(self): # <<<<<<<<<<<<<<
@@ -19790,7 +19799,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_7matches___get__
19790
19799
  return __pyx_r;
19791
19800
  }
19792
19801
 
19793
- /* "selectolax/lexbor/selection.pxi":111
19802
+ /* "selectolax/lexbor/selection.pxi":112
19794
19803
  *
19795
19804
  * @property
19796
19805
  * def any_matches(self): # <<<<<<<<<<<<<<
@@ -19820,7 +19829,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_11any_matches___
19820
19829
  int __pyx_clineno = 0;
19821
19830
  __Pyx_RefNannySetupContext("__get__", 0);
19822
19831
 
19823
- /* "selectolax/lexbor/selection.pxi":113
19832
+ /* "selectolax/lexbor/selection.pxi":114
19824
19833
  * def any_matches(self):
19825
19834
  * """Returns True if there are any matches"""
19826
19835
  * return bool(self.nodes) # <<<<<<<<<<<<<<
@@ -19828,13 +19837,13 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_11any_matches___
19828
19837
  * def text_contains(self, str text, bool deep=True, str separator='', bool strip=False):
19829
19838
  */
19830
19839
  __Pyx_XDECREF(__pyx_r);
19831
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7cpython_4bool_bool), __pyx_v_self->nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 113, __pyx_L1_error)
19840
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7cpython_4bool_bool), __pyx_v_self->nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 114, __pyx_L1_error)
19832
19841
  __Pyx_GOTREF(__pyx_t_1);
19833
19842
  __pyx_r = __pyx_t_1;
19834
19843
  __pyx_t_1 = 0;
19835
19844
  goto __pyx_L0;
19836
19845
 
19837
- /* "selectolax/lexbor/selection.pxi":111
19846
+ /* "selectolax/lexbor/selection.pxi":112
19838
19847
  *
19839
19848
  * @property
19840
19849
  * def any_matches(self): # <<<<<<<<<<<<<<
@@ -19853,7 +19862,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_11any_matches___
19853
19862
  return __pyx_r;
19854
19863
  }
19855
19864
 
19856
- /* "selectolax/lexbor/selection.pxi":115
19865
+ /* "selectolax/lexbor/selection.pxi":116
19857
19866
  * return bool(self.nodes)
19858
19867
  *
19859
19868
  * def text_contains(self, str text, bool deep=True, str separator='', bool strip=False): # <<<<<<<<<<<<<<
@@ -19921,7 +19930,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_5text_contains(P
19921
19930
  }
19922
19931
  }
19923
19932
  if (unlikely(kw_args > 0)) {
19924
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "text_contains") < 0)) __PYX_ERR(5, 115, __pyx_L3_error)
19933
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "text_contains") < 0)) __PYX_ERR(5, 116, __pyx_L3_error)
19925
19934
  }
19926
19935
  } else {
19927
19936
  switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -19943,16 +19952,16 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_5text_contains(P
19943
19952
  }
19944
19953
  goto __pyx_L4_argument_unpacking_done;
19945
19954
  __pyx_L5_argtuple_error:;
19946
- __Pyx_RaiseArgtupleInvalid("text_contains", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 115, __pyx_L3_error)
19955
+ __Pyx_RaiseArgtupleInvalid("text_contains", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 116, __pyx_L3_error)
19947
19956
  __pyx_L3_error:;
19948
19957
  __Pyx_AddTraceback("selectolax.lexbor.LexborSelector.text_contains", __pyx_clineno, __pyx_lineno, __pyx_filename);
19949
19958
  __Pyx_RefNannyFinishContext();
19950
19959
  return NULL;
19951
19960
  __pyx_L4_argument_unpacking_done:;
19952
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(5, 115, __pyx_L1_error)
19953
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_deep), __pyx_ptype_7cpython_4bool_bool, 1, "deep", 0))) __PYX_ERR(5, 115, __pyx_L1_error)
19954
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_separator), (&PyUnicode_Type), 1, "separator", 1))) __PYX_ERR(5, 115, __pyx_L1_error)
19955
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strip), __pyx_ptype_7cpython_4bool_bool, 1, "strip", 0))) __PYX_ERR(5, 115, __pyx_L1_error)
19961
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(5, 116, __pyx_L1_error)
19962
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_deep), __pyx_ptype_7cpython_4bool_bool, 1, "deep", 0))) __PYX_ERR(5, 116, __pyx_L1_error)
19963
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_separator), (&PyUnicode_Type), 1, "separator", 1))) __PYX_ERR(5, 116, __pyx_L1_error)
19964
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strip), __pyx_ptype_7cpython_4bool_bool, 1, "strip", 0))) __PYX_ERR(5, 116, __pyx_L1_error)
19956
19965
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), __pyx_v_text, __pyx_v_deep, __pyx_v_separator, __pyx_v_strip);
19957
19966
 
19958
19967
  /* function exit code */
@@ -19984,19 +19993,19 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
19984
19993
  int __pyx_clineno = 0;
19985
19994
  __Pyx_RefNannySetupContext("text_contains", 0);
19986
19995
 
19987
- /* "selectolax/lexbor/selection.pxi":117
19996
+ /* "selectolax/lexbor/selection.pxi":118
19988
19997
  * def text_contains(self, str text, bool deep=True, str separator='', bool strip=False):
19989
19998
  * """Filter all current matches given text."""
19990
19999
  * nodes = [] # <<<<<<<<<<<<<<
19991
20000
  * for node in self.nodes:
19992
20001
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
19993
20002
  */
19994
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 117, __pyx_L1_error)
20003
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 118, __pyx_L1_error)
19995
20004
  __Pyx_GOTREF(__pyx_t_1);
19996
20005
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
19997
20006
  __pyx_t_1 = 0;
19998
20007
 
19999
- /* "selectolax/lexbor/selection.pxi":118
20008
+ /* "selectolax/lexbor/selection.pxi":119
20000
20009
  * """Filter all current matches given text."""
20001
20010
  * nodes = []
20002
20011
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20005,70 +20014,70 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20005
20014
  */
20006
20015
  if (unlikely(__pyx_v_self->nodes == Py_None)) {
20007
20016
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
20008
- __PYX_ERR(5, 118, __pyx_L1_error)
20017
+ __PYX_ERR(5, 119, __pyx_L1_error)
20009
20018
  }
20010
20019
  __pyx_t_1 = __pyx_v_self->nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
20011
20020
  for (;;) {
20012
20021
  if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
20013
20022
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20014
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 118, __pyx_L1_error)
20023
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 119, __pyx_L1_error)
20015
20024
  #else
20016
- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 118, __pyx_L1_error)
20025
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 119, __pyx_L1_error)
20017
20026
  __Pyx_GOTREF(__pyx_t_3);
20018
20027
  #endif
20019
20028
  __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
20020
20029
  __pyx_t_3 = 0;
20021
20030
 
20022
- /* "selectolax/lexbor/selection.pxi":119
20031
+ /* "selectolax/lexbor/selection.pxi":120
20023
20032
  * nodes = []
20024
20033
  * for node in self.nodes:
20025
20034
  * node_text = node.text(deep=deep, separator=separator, strip=strip) # <<<<<<<<<<<<<<
20026
20035
  * if node_text and text in node_text:
20027
20036
  * nodes.append(node)
20028
20037
  */
20029
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 119, __pyx_L1_error)
20038
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 120, __pyx_L1_error)
20030
20039
  __Pyx_GOTREF(__pyx_t_3);
20031
- __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 119, __pyx_L1_error)
20040
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 120, __pyx_L1_error)
20032
20041
  __Pyx_GOTREF(__pyx_t_4);
20033
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_deep, ((PyObject *)__pyx_v_deep)) < 0) __PYX_ERR(5, 119, __pyx_L1_error)
20034
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_separator, __pyx_v_separator) < 0) __PYX_ERR(5, 119, __pyx_L1_error)
20035
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_strip, ((PyObject *)__pyx_v_strip)) < 0) __PYX_ERR(5, 119, __pyx_L1_error)
20036
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 119, __pyx_L1_error)
20042
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_deep, ((PyObject *)__pyx_v_deep)) < 0) __PYX_ERR(5, 120, __pyx_L1_error)
20043
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_separator, __pyx_v_separator) < 0) __PYX_ERR(5, 120, __pyx_L1_error)
20044
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_strip, ((PyObject *)__pyx_v_strip)) < 0) __PYX_ERR(5, 120, __pyx_L1_error)
20045
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 120, __pyx_L1_error)
20037
20046
  __Pyx_GOTREF(__pyx_t_5);
20038
20047
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20039
20048
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20040
20049
  __Pyx_XDECREF_SET(__pyx_v_node_text, __pyx_t_5);
20041
20050
  __pyx_t_5 = 0;
20042
20051
 
20043
- /* "selectolax/lexbor/selection.pxi":120
20052
+ /* "selectolax/lexbor/selection.pxi":121
20044
20053
  * for node in self.nodes:
20045
20054
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20046
20055
  * if node_text and text in node_text: # <<<<<<<<<<<<<<
20047
20056
  * nodes.append(node)
20048
20057
  * self.nodes = nodes
20049
20058
  */
20050
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_node_text); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 120, __pyx_L1_error)
20059
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_node_text); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 121, __pyx_L1_error)
20051
20060
  if (__pyx_t_7) {
20052
20061
  } else {
20053
20062
  __pyx_t_6 = __pyx_t_7;
20054
20063
  goto __pyx_L6_bool_binop_done;
20055
20064
  }
20056
- __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_text, __pyx_v_node_text, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 120, __pyx_L1_error)
20065
+ __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_text, __pyx_v_node_text, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 121, __pyx_L1_error)
20057
20066
  __pyx_t_8 = (__pyx_t_7 != 0);
20058
20067
  __pyx_t_6 = __pyx_t_8;
20059
20068
  __pyx_L6_bool_binop_done:;
20060
20069
  if (__pyx_t_6) {
20061
20070
 
20062
- /* "selectolax/lexbor/selection.pxi":121
20071
+ /* "selectolax/lexbor/selection.pxi":122
20063
20072
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20064
20073
  * if node_text and text in node_text:
20065
20074
  * nodes.append(node) # <<<<<<<<<<<<<<
20066
20075
  * self.nodes = nodes
20067
20076
  * return self
20068
20077
  */
20069
- __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_nodes, __pyx_v_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 121, __pyx_L1_error)
20078
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_nodes, __pyx_v_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 122, __pyx_L1_error)
20070
20079
 
20071
- /* "selectolax/lexbor/selection.pxi":120
20080
+ /* "selectolax/lexbor/selection.pxi":121
20072
20081
  * for node in self.nodes:
20073
20082
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20074
20083
  * if node_text and text in node_text: # <<<<<<<<<<<<<<
@@ -20077,7 +20086,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20077
20086
  */
20078
20087
  }
20079
20088
 
20080
- /* "selectolax/lexbor/selection.pxi":118
20089
+ /* "selectolax/lexbor/selection.pxi":119
20081
20090
  * """Filter all current matches given text."""
20082
20091
  * nodes = []
20083
20092
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20087,7 +20096,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20087
20096
  }
20088
20097
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20089
20098
 
20090
- /* "selectolax/lexbor/selection.pxi":122
20099
+ /* "selectolax/lexbor/selection.pxi":123
20091
20100
  * if node_text and text in node_text:
20092
20101
  * nodes.append(node)
20093
20102
  * self.nodes = nodes # <<<<<<<<<<<<<<
@@ -20100,7 +20109,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20100
20109
  __Pyx_DECREF(__pyx_v_self->nodes);
20101
20110
  __pyx_v_self->nodes = __pyx_v_nodes;
20102
20111
 
20103
- /* "selectolax/lexbor/selection.pxi":123
20112
+ /* "selectolax/lexbor/selection.pxi":124
20104
20113
  * nodes.append(node)
20105
20114
  * self.nodes = nodes
20106
20115
  * return self # <<<<<<<<<<<<<<
@@ -20112,7 +20121,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20112
20121
  __pyx_r = ((PyObject *)__pyx_v_self);
20113
20122
  goto __pyx_L0;
20114
20123
 
20115
- /* "selectolax/lexbor/selection.pxi":115
20124
+ /* "selectolax/lexbor/selection.pxi":116
20116
20125
  * return bool(self.nodes)
20117
20126
  *
20118
20127
  * def text_contains(self, str text, bool deep=True, str separator='', bool strip=False): # <<<<<<<<<<<<<<
@@ -20137,7 +20146,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_4text_contains(s
20137
20146
  return __pyx_r;
20138
20147
  }
20139
20148
 
20140
- /* "selectolax/lexbor/selection.pxi":125
20149
+ /* "selectolax/lexbor/selection.pxi":126
20141
20150
  * return self
20142
20151
  *
20143
20152
  * def any_text_contains(self, str text, bool deep=True, str separator='', bool strip=False): # <<<<<<<<<<<<<<
@@ -20205,7 +20214,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_7any_text_contai
20205
20214
  }
20206
20215
  }
20207
20216
  if (unlikely(kw_args > 0)) {
20208
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "any_text_contains") < 0)) __PYX_ERR(5, 125, __pyx_L3_error)
20217
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "any_text_contains") < 0)) __PYX_ERR(5, 126, __pyx_L3_error)
20209
20218
  }
20210
20219
  } else {
20211
20220
  switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -20227,16 +20236,16 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_7any_text_contai
20227
20236
  }
20228
20237
  goto __pyx_L4_argument_unpacking_done;
20229
20238
  __pyx_L5_argtuple_error:;
20230
- __Pyx_RaiseArgtupleInvalid("any_text_contains", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 125, __pyx_L3_error)
20239
+ __Pyx_RaiseArgtupleInvalid("any_text_contains", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 126, __pyx_L3_error)
20231
20240
  __pyx_L3_error:;
20232
20241
  __Pyx_AddTraceback("selectolax.lexbor.LexborSelector.any_text_contains", __pyx_clineno, __pyx_lineno, __pyx_filename);
20233
20242
  __Pyx_RefNannyFinishContext();
20234
20243
  return NULL;
20235
20244
  __pyx_L4_argument_unpacking_done:;
20236
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(5, 125, __pyx_L1_error)
20237
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_deep), __pyx_ptype_7cpython_4bool_bool, 1, "deep", 0))) __PYX_ERR(5, 125, __pyx_L1_error)
20238
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_separator), (&PyUnicode_Type), 1, "separator", 1))) __PYX_ERR(5, 125, __pyx_L1_error)
20239
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strip), __pyx_ptype_7cpython_4bool_bool, 1, "strip", 0))) __PYX_ERR(5, 125, __pyx_L1_error)
20245
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(5, 126, __pyx_L1_error)
20246
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_deep), __pyx_ptype_7cpython_4bool_bool, 1, "deep", 0))) __PYX_ERR(5, 126, __pyx_L1_error)
20247
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_separator), (&PyUnicode_Type), 1, "separator", 1))) __PYX_ERR(5, 126, __pyx_L1_error)
20248
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_strip), __pyx_ptype_7cpython_4bool_bool, 1, "strip", 0))) __PYX_ERR(5, 126, __pyx_L1_error)
20240
20249
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contains(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), __pyx_v_text, __pyx_v_deep, __pyx_v_separator, __pyx_v_strip);
20241
20250
 
20242
20251
  /* function exit code */
@@ -20267,19 +20276,19 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20267
20276
  int __pyx_clineno = 0;
20268
20277
  __Pyx_RefNannySetupContext("any_text_contains", 0);
20269
20278
 
20270
- /* "selectolax/lexbor/selection.pxi":127
20279
+ /* "selectolax/lexbor/selection.pxi":128
20271
20280
  * def any_text_contains(self, str text, bool deep=True, str separator='', bool strip=False):
20272
20281
  * """Returns True if any node in the current search scope contains specified text"""
20273
20282
  * nodes = [] # <<<<<<<<<<<<<<
20274
20283
  * for node in self.nodes:
20275
20284
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20276
20285
  */
20277
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 127, __pyx_L1_error)
20286
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 128, __pyx_L1_error)
20278
20287
  __Pyx_GOTREF(__pyx_t_1);
20279
20288
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
20280
20289
  __pyx_t_1 = 0;
20281
20290
 
20282
- /* "selectolax/lexbor/selection.pxi":128
20291
+ /* "selectolax/lexbor/selection.pxi":129
20283
20292
  * """Returns True if any node in the current search scope contains specified text"""
20284
20293
  * nodes = []
20285
20294
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20288,61 +20297,61 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20288
20297
  */
20289
20298
  if (unlikely(__pyx_v_self->nodes == Py_None)) {
20290
20299
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
20291
- __PYX_ERR(5, 128, __pyx_L1_error)
20300
+ __PYX_ERR(5, 129, __pyx_L1_error)
20292
20301
  }
20293
20302
  __pyx_t_1 = __pyx_v_self->nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
20294
20303
  for (;;) {
20295
20304
  if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
20296
20305
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20297
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 128, __pyx_L1_error)
20306
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 129, __pyx_L1_error)
20298
20307
  #else
20299
- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 128, __pyx_L1_error)
20308
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 129, __pyx_L1_error)
20300
20309
  __Pyx_GOTREF(__pyx_t_3);
20301
20310
  #endif
20302
20311
  __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
20303
20312
  __pyx_t_3 = 0;
20304
20313
 
20305
- /* "selectolax/lexbor/selection.pxi":129
20314
+ /* "selectolax/lexbor/selection.pxi":130
20306
20315
  * nodes = []
20307
20316
  * for node in self.nodes:
20308
20317
  * node_text = node.text(deep=deep, separator=separator, strip=strip) # <<<<<<<<<<<<<<
20309
20318
  * if node_text and text in node_text:
20310
20319
  * return True
20311
20320
  */
20312
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 129, __pyx_L1_error)
20321
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 130, __pyx_L1_error)
20313
20322
  __Pyx_GOTREF(__pyx_t_3);
20314
- __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 129, __pyx_L1_error)
20323
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 130, __pyx_L1_error)
20315
20324
  __Pyx_GOTREF(__pyx_t_4);
20316
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_deep, ((PyObject *)__pyx_v_deep)) < 0) __PYX_ERR(5, 129, __pyx_L1_error)
20317
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_separator, __pyx_v_separator) < 0) __PYX_ERR(5, 129, __pyx_L1_error)
20318
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_strip, ((PyObject *)__pyx_v_strip)) < 0) __PYX_ERR(5, 129, __pyx_L1_error)
20319
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 129, __pyx_L1_error)
20325
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_deep, ((PyObject *)__pyx_v_deep)) < 0) __PYX_ERR(5, 130, __pyx_L1_error)
20326
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_separator, __pyx_v_separator) < 0) __PYX_ERR(5, 130, __pyx_L1_error)
20327
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_strip, ((PyObject *)__pyx_v_strip)) < 0) __PYX_ERR(5, 130, __pyx_L1_error)
20328
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 130, __pyx_L1_error)
20320
20329
  __Pyx_GOTREF(__pyx_t_5);
20321
20330
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20322
20331
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20323
20332
  __Pyx_XDECREF_SET(__pyx_v_node_text, __pyx_t_5);
20324
20333
  __pyx_t_5 = 0;
20325
20334
 
20326
- /* "selectolax/lexbor/selection.pxi":130
20335
+ /* "selectolax/lexbor/selection.pxi":131
20327
20336
  * for node in self.nodes:
20328
20337
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20329
20338
  * if node_text and text in node_text: # <<<<<<<<<<<<<<
20330
20339
  * return True
20331
20340
  * return False
20332
20341
  */
20333
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_node_text); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 130, __pyx_L1_error)
20342
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_node_text); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 131, __pyx_L1_error)
20334
20343
  if (__pyx_t_7) {
20335
20344
  } else {
20336
20345
  __pyx_t_6 = __pyx_t_7;
20337
20346
  goto __pyx_L6_bool_binop_done;
20338
20347
  }
20339
- __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_text, __pyx_v_node_text, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 130, __pyx_L1_error)
20348
+ __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_text, __pyx_v_node_text, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 131, __pyx_L1_error)
20340
20349
  __pyx_t_8 = (__pyx_t_7 != 0);
20341
20350
  __pyx_t_6 = __pyx_t_8;
20342
20351
  __pyx_L6_bool_binop_done:;
20343
20352
  if (__pyx_t_6) {
20344
20353
 
20345
- /* "selectolax/lexbor/selection.pxi":131
20354
+ /* "selectolax/lexbor/selection.pxi":132
20346
20355
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20347
20356
  * if node_text and text in node_text:
20348
20357
  * return True # <<<<<<<<<<<<<<
@@ -20355,7 +20364,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20355
20364
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20356
20365
  goto __pyx_L0;
20357
20366
 
20358
- /* "selectolax/lexbor/selection.pxi":130
20367
+ /* "selectolax/lexbor/selection.pxi":131
20359
20368
  * for node in self.nodes:
20360
20369
  * node_text = node.text(deep=deep, separator=separator, strip=strip)
20361
20370
  * if node_text and text in node_text: # <<<<<<<<<<<<<<
@@ -20364,7 +20373,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20364
20373
  */
20365
20374
  }
20366
20375
 
20367
- /* "selectolax/lexbor/selection.pxi":128
20376
+ /* "selectolax/lexbor/selection.pxi":129
20368
20377
  * """Returns True if any node in the current search scope contains specified text"""
20369
20378
  * nodes = []
20370
20379
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20374,7 +20383,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20374
20383
  }
20375
20384
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20376
20385
 
20377
- /* "selectolax/lexbor/selection.pxi":132
20386
+ /* "selectolax/lexbor/selection.pxi":133
20378
20387
  * if node_text and text in node_text:
20379
20388
  * return True
20380
20389
  * return False # <<<<<<<<<<<<<<
@@ -20386,7 +20395,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20386
20395
  __pyx_r = Py_False;
20387
20396
  goto __pyx_L0;
20388
20397
 
20389
- /* "selectolax/lexbor/selection.pxi":125
20398
+ /* "selectolax/lexbor/selection.pxi":126
20390
20399
  * return self
20391
20400
  *
20392
20401
  * def any_text_contains(self, str text, bool deep=True, str separator='', bool strip=False): # <<<<<<<<<<<<<<
@@ -20411,7 +20420,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_6any_text_contai
20411
20420
  return __pyx_r;
20412
20421
  }
20413
20422
 
20414
- /* "selectolax/lexbor/selection.pxi":134
20423
+ /* "selectolax/lexbor/selection.pxi":135
20415
20424
  * return False
20416
20425
  *
20417
20426
  * def attribute_longer_than(self, str attribute, int length, str start = None): # <<<<<<<<<<<<<<
@@ -20458,7 +20467,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_9attribute_longe
20458
20467
  case 1:
20459
20468
  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--;
20460
20469
  else {
20461
- __Pyx_RaiseArgtupleInvalid("attribute_longer_than", 0, 2, 3, 1); __PYX_ERR(5, 134, __pyx_L3_error)
20470
+ __Pyx_RaiseArgtupleInvalid("attribute_longer_than", 0, 2, 3, 1); __PYX_ERR(5, 135, __pyx_L3_error)
20462
20471
  }
20463
20472
  CYTHON_FALLTHROUGH;
20464
20473
  case 2:
@@ -20468,7 +20477,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_9attribute_longe
20468
20477
  }
20469
20478
  }
20470
20479
  if (unlikely(kw_args > 0)) {
20471
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attribute_longer_than") < 0)) __PYX_ERR(5, 134, __pyx_L3_error)
20480
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attribute_longer_than") < 0)) __PYX_ERR(5, 135, __pyx_L3_error)
20472
20481
  }
20473
20482
  } else {
20474
20483
  switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -20481,19 +20490,19 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_9attribute_longe
20481
20490
  }
20482
20491
  }
20483
20492
  __pyx_v_attribute = ((PyObject*)values[0]);
20484
- __pyx_v_length = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 134, __pyx_L3_error)
20493
+ __pyx_v_length = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 135, __pyx_L3_error)
20485
20494
  __pyx_v_start = ((PyObject*)values[2]);
20486
20495
  }
20487
20496
  goto __pyx_L4_argument_unpacking_done;
20488
20497
  __pyx_L5_argtuple_error:;
20489
- __Pyx_RaiseArgtupleInvalid("attribute_longer_than", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 134, __pyx_L3_error)
20498
+ __Pyx_RaiseArgtupleInvalid("attribute_longer_than", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 135, __pyx_L3_error)
20490
20499
  __pyx_L3_error:;
20491
20500
  __Pyx_AddTraceback("selectolax.lexbor.LexborSelector.attribute_longer_than", __pyx_clineno, __pyx_lineno, __pyx_filename);
20492
20501
  __Pyx_RefNannyFinishContext();
20493
20502
  return NULL;
20494
20503
  __pyx_L4_argument_unpacking_done:;
20495
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attribute), (&PyUnicode_Type), 1, "attribute", 1))) __PYX_ERR(5, 134, __pyx_L1_error)
20496
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_start), (&PyUnicode_Type), 1, "start", 1))) __PYX_ERR(5, 134, __pyx_L1_error)
20504
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attribute), (&PyUnicode_Type), 1, "attribute", 1))) __PYX_ERR(5, 135, __pyx_L1_error)
20505
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_start), (&PyUnicode_Type), 1, "start", 1))) __PYX_ERR(5, 135, __pyx_L1_error)
20497
20506
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longer_than(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), __pyx_v_attribute, __pyx_v_length, __pyx_v_start);
20498
20507
 
20499
20508
  /* function exit code */
@@ -20526,19 +20535,19 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20526
20535
  int __pyx_clineno = 0;
20527
20536
  __Pyx_RefNannySetupContext("attribute_longer_than", 0);
20528
20537
 
20529
- /* "selectolax/lexbor/selection.pxi":139
20538
+ /* "selectolax/lexbor/selection.pxi":140
20530
20539
  * Similar to `string-length` in XPath.
20531
20540
  * """
20532
20541
  * nodes = [] # <<<<<<<<<<<<<<
20533
20542
  * for node in self.nodes:
20534
20543
  * attr = node.attributes.get(attribute)
20535
20544
  */
20536
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 139, __pyx_L1_error)
20545
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 140, __pyx_L1_error)
20537
20546
  __Pyx_GOTREF(__pyx_t_1);
20538
20547
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
20539
20548
  __pyx_t_1 = 0;
20540
20549
 
20541
- /* "selectolax/lexbor/selection.pxi":140
20550
+ /* "selectolax/lexbor/selection.pxi":141
20542
20551
  * """
20543
20552
  * nodes = []
20544
20553
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20547,30 +20556,30 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20547
20556
  */
20548
20557
  if (unlikely(__pyx_v_self->nodes == Py_None)) {
20549
20558
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
20550
- __PYX_ERR(5, 140, __pyx_L1_error)
20559
+ __PYX_ERR(5, 141, __pyx_L1_error)
20551
20560
  }
20552
20561
  __pyx_t_1 = __pyx_v_self->nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
20553
20562
  for (;;) {
20554
20563
  if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
20555
20564
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20556
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 140, __pyx_L1_error)
20565
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 141, __pyx_L1_error)
20557
20566
  #else
20558
- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 140, __pyx_L1_error)
20567
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 141, __pyx_L1_error)
20559
20568
  __Pyx_GOTREF(__pyx_t_3);
20560
20569
  #endif
20561
20570
  __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
20562
20571
  __pyx_t_3 = 0;
20563
20572
 
20564
- /* "selectolax/lexbor/selection.pxi":141
20573
+ /* "selectolax/lexbor/selection.pxi":142
20565
20574
  * nodes = []
20566
20575
  * for node in self.nodes:
20567
20576
  * attr = node.attributes.get(attribute) # <<<<<<<<<<<<<<
20568
20577
  * if attr and start and start in attr:
20569
20578
  * attr = attr[attr.find(start) + len(start):]
20570
20579
  */
20571
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_attributes_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 141, __pyx_L1_error)
20580
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_attributes_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 142, __pyx_L1_error)
20572
20581
  __Pyx_GOTREF(__pyx_t_4);
20573
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 141, __pyx_L1_error)
20582
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 142, __pyx_L1_error)
20574
20583
  __Pyx_GOTREF(__pyx_t_5);
20575
20584
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20576
20585
  __pyx_t_4 = NULL;
@@ -20585,20 +20594,20 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20585
20594
  }
20586
20595
  __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_attribute) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_attribute);
20587
20596
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20588
- if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 141, __pyx_L1_error)
20597
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 142, __pyx_L1_error)
20589
20598
  __Pyx_GOTREF(__pyx_t_3);
20590
20599
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20591
20600
  __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_3);
20592
20601
  __pyx_t_3 = 0;
20593
20602
 
20594
- /* "selectolax/lexbor/selection.pxi":142
20603
+ /* "selectolax/lexbor/selection.pxi":143
20595
20604
  * for node in self.nodes:
20596
20605
  * attr = node.attributes.get(attribute)
20597
20606
  * if attr and start and start in attr: # <<<<<<<<<<<<<<
20598
20607
  * attr = attr[attr.find(start) + len(start):]
20599
20608
  * if len(attr) > length:
20600
20609
  */
20601
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_attr); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 142, __pyx_L1_error)
20610
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_attr); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 143, __pyx_L1_error)
20602
20611
  if (__pyx_t_7) {
20603
20612
  } else {
20604
20613
  __pyx_t_6 = __pyx_t_7;
@@ -20610,20 +20619,20 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20610
20619
  __pyx_t_6 = __pyx_t_7;
20611
20620
  goto __pyx_L6_bool_binop_done;
20612
20621
  }
20613
- __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_start, __pyx_v_attr, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 142, __pyx_L1_error)
20622
+ __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_start, __pyx_v_attr, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 143, __pyx_L1_error)
20614
20623
  __pyx_t_8 = (__pyx_t_7 != 0);
20615
20624
  __pyx_t_6 = __pyx_t_8;
20616
20625
  __pyx_L6_bool_binop_done:;
20617
20626
  if (__pyx_t_6) {
20618
20627
 
20619
- /* "selectolax/lexbor/selection.pxi":143
20628
+ /* "selectolax/lexbor/selection.pxi":144
20620
20629
  * attr = node.attributes.get(attribute)
20621
20630
  * if attr and start and start in attr:
20622
20631
  * attr = attr[attr.find(start) + len(start):] # <<<<<<<<<<<<<<
20623
20632
  * if len(attr) > length:
20624
20633
  * nodes.append(node)
20625
20634
  */
20626
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 143, __pyx_L1_error)
20635
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 144, __pyx_L1_error)
20627
20636
  __Pyx_GOTREF(__pyx_t_5);
20628
20637
  __pyx_t_4 = NULL;
20629
20638
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
@@ -20637,27 +20646,27 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20637
20646
  }
20638
20647
  __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_start) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_start);
20639
20648
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20640
- if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 143, __pyx_L1_error)
20649
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 144, __pyx_L1_error)
20641
20650
  __Pyx_GOTREF(__pyx_t_3);
20642
20651
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20643
20652
  if (unlikely(__pyx_v_start == Py_None)) {
20644
20653
  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
20645
- __PYX_ERR(5, 143, __pyx_L1_error)
20654
+ __PYX_ERR(5, 144, __pyx_L1_error)
20646
20655
  }
20647
- __pyx_t_9 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_start); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 143, __pyx_L1_error)
20648
- __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 143, __pyx_L1_error)
20656
+ __pyx_t_9 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_start); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 144, __pyx_L1_error)
20657
+ __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 144, __pyx_L1_error)
20649
20658
  __Pyx_GOTREF(__pyx_t_5);
20650
- __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 143, __pyx_L1_error)
20659
+ __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 144, __pyx_L1_error)
20651
20660
  __Pyx_GOTREF(__pyx_t_4);
20652
20661
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20653
20662
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20654
- __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_attr, 0, 0, &__pyx_t_4, NULL, NULL, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 143, __pyx_L1_error)
20663
+ __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_attr, 0, 0, &__pyx_t_4, NULL, NULL, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 144, __pyx_L1_error)
20655
20664
  __Pyx_GOTREF(__pyx_t_5);
20656
20665
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20657
20666
  __Pyx_DECREF_SET(__pyx_v_attr, __pyx_t_5);
20658
20667
  __pyx_t_5 = 0;
20659
20668
 
20660
- /* "selectolax/lexbor/selection.pxi":142
20669
+ /* "selectolax/lexbor/selection.pxi":143
20661
20670
  * for node in self.nodes:
20662
20671
  * attr = node.attributes.get(attribute)
20663
20672
  * if attr and start and start in attr: # <<<<<<<<<<<<<<
@@ -20666,27 +20675,27 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20666
20675
  */
20667
20676
  }
20668
20677
 
20669
- /* "selectolax/lexbor/selection.pxi":144
20678
+ /* "selectolax/lexbor/selection.pxi":145
20670
20679
  * if attr and start and start in attr:
20671
20680
  * attr = attr[attr.find(start) + len(start):]
20672
20681
  * if len(attr) > length: # <<<<<<<<<<<<<<
20673
20682
  * nodes.append(node)
20674
20683
  * self.nodes = nodes
20675
20684
  */
20676
- __pyx_t_9 = PyObject_Length(__pyx_v_attr); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 144, __pyx_L1_error)
20685
+ __pyx_t_9 = PyObject_Length(__pyx_v_attr); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 145, __pyx_L1_error)
20677
20686
  __pyx_t_6 = ((__pyx_t_9 > __pyx_v_length) != 0);
20678
20687
  if (__pyx_t_6) {
20679
20688
 
20680
- /* "selectolax/lexbor/selection.pxi":145
20689
+ /* "selectolax/lexbor/selection.pxi":146
20681
20690
  * attr = attr[attr.find(start) + len(start):]
20682
20691
  * if len(attr) > length:
20683
20692
  * nodes.append(node) # <<<<<<<<<<<<<<
20684
20693
  * self.nodes = nodes
20685
20694
  * return self
20686
20695
  */
20687
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_nodes, __pyx_v_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(5, 145, __pyx_L1_error)
20696
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_nodes, __pyx_v_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(5, 146, __pyx_L1_error)
20688
20697
 
20689
- /* "selectolax/lexbor/selection.pxi":144
20698
+ /* "selectolax/lexbor/selection.pxi":145
20690
20699
  * if attr and start and start in attr:
20691
20700
  * attr = attr[attr.find(start) + len(start):]
20692
20701
  * if len(attr) > length: # <<<<<<<<<<<<<<
@@ -20695,7 +20704,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20695
20704
  */
20696
20705
  }
20697
20706
 
20698
- /* "selectolax/lexbor/selection.pxi":140
20707
+ /* "selectolax/lexbor/selection.pxi":141
20699
20708
  * """
20700
20709
  * nodes = []
20701
20710
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20705,7 +20714,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20705
20714
  }
20706
20715
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
20707
20716
 
20708
- /* "selectolax/lexbor/selection.pxi":146
20717
+ /* "selectolax/lexbor/selection.pxi":147
20709
20718
  * if len(attr) > length:
20710
20719
  * nodes.append(node)
20711
20720
  * self.nodes = nodes # <<<<<<<<<<<<<<
@@ -20718,7 +20727,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20718
20727
  __Pyx_DECREF(__pyx_v_self->nodes);
20719
20728
  __pyx_v_self->nodes = __pyx_v_nodes;
20720
20729
 
20721
- /* "selectolax/lexbor/selection.pxi":147
20730
+ /* "selectolax/lexbor/selection.pxi":148
20722
20731
  * nodes.append(node)
20723
20732
  * self.nodes = nodes
20724
20733
  * return self # <<<<<<<<<<<<<<
@@ -20730,7 +20739,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20730
20739
  __pyx_r = ((PyObject *)__pyx_v_self);
20731
20740
  goto __pyx_L0;
20732
20741
 
20733
- /* "selectolax/lexbor/selection.pxi":134
20742
+ /* "selectolax/lexbor/selection.pxi":135
20734
20743
  * return False
20735
20744
  *
20736
20745
  * def attribute_longer_than(self, str attribute, int length, str start = None): # <<<<<<<<<<<<<<
@@ -20755,7 +20764,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_8attribute_longe
20755
20764
  return __pyx_r;
20756
20765
  }
20757
20766
 
20758
- /* "selectolax/lexbor/selection.pxi":149
20767
+ /* "selectolax/lexbor/selection.pxi":150
20759
20768
  * return self
20760
20769
  *
20761
20770
  * def any_attribute_longer_than(self, str attribute, int length, str start = None): # <<<<<<<<<<<<<<
@@ -20802,7 +20811,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_11any_attribute_
20802
20811
  case 1:
20803
20812
  if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length)) != 0)) kw_args--;
20804
20813
  else {
20805
- __Pyx_RaiseArgtupleInvalid("any_attribute_longer_than", 0, 2, 3, 1); __PYX_ERR(5, 149, __pyx_L3_error)
20814
+ __Pyx_RaiseArgtupleInvalid("any_attribute_longer_than", 0, 2, 3, 1); __PYX_ERR(5, 150, __pyx_L3_error)
20806
20815
  }
20807
20816
  CYTHON_FALLTHROUGH;
20808
20817
  case 2:
@@ -20812,7 +20821,7 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_11any_attribute_
20812
20821
  }
20813
20822
  }
20814
20823
  if (unlikely(kw_args > 0)) {
20815
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "any_attribute_longer_than") < 0)) __PYX_ERR(5, 149, __pyx_L3_error)
20824
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "any_attribute_longer_than") < 0)) __PYX_ERR(5, 150, __pyx_L3_error)
20816
20825
  }
20817
20826
  } else {
20818
20827
  switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -20825,19 +20834,19 @@ static PyObject *__pyx_pw_10selectolax_6lexbor_14LexborSelector_11any_attribute_
20825
20834
  }
20826
20835
  }
20827
20836
  __pyx_v_attribute = ((PyObject*)values[0]);
20828
- __pyx_v_length = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 149, __pyx_L3_error)
20837
+ __pyx_v_length = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_length == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 150, __pyx_L3_error)
20829
20838
  __pyx_v_start = ((PyObject*)values[2]);
20830
20839
  }
20831
20840
  goto __pyx_L4_argument_unpacking_done;
20832
20841
  __pyx_L5_argtuple_error:;
20833
- __Pyx_RaiseArgtupleInvalid("any_attribute_longer_than", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 149, __pyx_L3_error)
20842
+ __Pyx_RaiseArgtupleInvalid("any_attribute_longer_than", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 150, __pyx_L3_error)
20834
20843
  __pyx_L3_error:;
20835
20844
  __Pyx_AddTraceback("selectolax.lexbor.LexborSelector.any_attribute_longer_than", __pyx_clineno, __pyx_lineno, __pyx_filename);
20836
20845
  __Pyx_RefNannyFinishContext();
20837
20846
  return NULL;
20838
20847
  __pyx_L4_argument_unpacking_done:;
20839
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attribute), (&PyUnicode_Type), 1, "attribute", 1))) __PYX_ERR(5, 149, __pyx_L1_error)
20840
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_start), (&PyUnicode_Type), 1, "start", 1))) __PYX_ERR(5, 149, __pyx_L1_error)
20848
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attribute), (&PyUnicode_Type), 1, "attribute", 1))) __PYX_ERR(5, 150, __pyx_L1_error)
20849
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_start), (&PyUnicode_Type), 1, "start", 1))) __PYX_ERR(5, 150, __pyx_L1_error)
20841
20850
  __pyx_r = __pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_longer_than(((struct __pyx_obj_10selectolax_6lexbor_LexborSelector *)__pyx_v_self), __pyx_v_attribute, __pyx_v_length, __pyx_v_start);
20842
20851
 
20843
20852
  /* function exit code */
@@ -20869,19 +20878,19 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
20869
20878
  int __pyx_clineno = 0;
20870
20879
  __Pyx_RefNannySetupContext("any_attribute_longer_than", 0);
20871
20880
 
20872
- /* "selectolax/lexbor/selection.pxi":154
20881
+ /* "selectolax/lexbor/selection.pxi":155
20873
20882
  * Similar to `string-length` in XPath.
20874
20883
  * """
20875
20884
  * nodes = [] # <<<<<<<<<<<<<<
20876
20885
  * for node in self.nodes:
20877
20886
  * attr = node.attributes.get(attribute)
20878
20887
  */
20879
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 154, __pyx_L1_error)
20888
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 155, __pyx_L1_error)
20880
20889
  __Pyx_GOTREF(__pyx_t_1);
20881
20890
  __pyx_v_nodes = ((PyObject*)__pyx_t_1);
20882
20891
  __pyx_t_1 = 0;
20883
20892
 
20884
- /* "selectolax/lexbor/selection.pxi":155
20893
+ /* "selectolax/lexbor/selection.pxi":156
20885
20894
  * """
20886
20895
  * nodes = []
20887
20896
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -20890,30 +20899,30 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
20890
20899
  */
20891
20900
  if (unlikely(__pyx_v_self->nodes == Py_None)) {
20892
20901
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
20893
- __PYX_ERR(5, 155, __pyx_L1_error)
20902
+ __PYX_ERR(5, 156, __pyx_L1_error)
20894
20903
  }
20895
20904
  __pyx_t_1 = __pyx_v_self->nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
20896
20905
  for (;;) {
20897
20906
  if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
20898
20907
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
20899
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 155, __pyx_L1_error)
20908
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(5, 156, __pyx_L1_error)
20900
20909
  #else
20901
- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 155, __pyx_L1_error)
20910
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 156, __pyx_L1_error)
20902
20911
  __Pyx_GOTREF(__pyx_t_3);
20903
20912
  #endif
20904
20913
  __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
20905
20914
  __pyx_t_3 = 0;
20906
20915
 
20907
- /* "selectolax/lexbor/selection.pxi":156
20916
+ /* "selectolax/lexbor/selection.pxi":157
20908
20917
  * nodes = []
20909
20918
  * for node in self.nodes:
20910
20919
  * attr = node.attributes.get(attribute) # <<<<<<<<<<<<<<
20911
20920
  * if attr and start and start in attr:
20912
20921
  * attr = attr[attr.find(start) + len(start):]
20913
20922
  */
20914
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_attributes_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 156, __pyx_L1_error)
20923
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_attributes_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 157, __pyx_L1_error)
20915
20924
  __Pyx_GOTREF(__pyx_t_4);
20916
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 156, __pyx_L1_error)
20925
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 157, __pyx_L1_error)
20917
20926
  __Pyx_GOTREF(__pyx_t_5);
20918
20927
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
20919
20928
  __pyx_t_4 = NULL;
@@ -20928,20 +20937,20 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
20928
20937
  }
20929
20938
  __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_attribute) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_attribute);
20930
20939
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20931
- if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 156, __pyx_L1_error)
20940
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 157, __pyx_L1_error)
20932
20941
  __Pyx_GOTREF(__pyx_t_3);
20933
20942
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20934
20943
  __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_3);
20935
20944
  __pyx_t_3 = 0;
20936
20945
 
20937
- /* "selectolax/lexbor/selection.pxi":157
20946
+ /* "selectolax/lexbor/selection.pxi":158
20938
20947
  * for node in self.nodes:
20939
20948
  * attr = node.attributes.get(attribute)
20940
20949
  * if attr and start and start in attr: # <<<<<<<<<<<<<<
20941
20950
  * attr = attr[attr.find(start) + len(start):]
20942
20951
  * if len(attr) > length:
20943
20952
  */
20944
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_attr); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 157, __pyx_L1_error)
20953
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_attr); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 158, __pyx_L1_error)
20945
20954
  if (__pyx_t_7) {
20946
20955
  } else {
20947
20956
  __pyx_t_6 = __pyx_t_7;
@@ -20953,20 +20962,20 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
20953
20962
  __pyx_t_6 = __pyx_t_7;
20954
20963
  goto __pyx_L6_bool_binop_done;
20955
20964
  }
20956
- __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_start, __pyx_v_attr, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 157, __pyx_L1_error)
20965
+ __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_start, __pyx_v_attr, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 158, __pyx_L1_error)
20957
20966
  __pyx_t_8 = (__pyx_t_7 != 0);
20958
20967
  __pyx_t_6 = __pyx_t_8;
20959
20968
  __pyx_L6_bool_binop_done:;
20960
20969
  if (__pyx_t_6) {
20961
20970
 
20962
- /* "selectolax/lexbor/selection.pxi":158
20971
+ /* "selectolax/lexbor/selection.pxi":159
20963
20972
  * attr = node.attributes.get(attribute)
20964
20973
  * if attr and start and start in attr:
20965
20974
  * attr = attr[attr.find(start) + len(start):] # <<<<<<<<<<<<<<
20966
20975
  * if len(attr) > length:
20967
20976
  * return True
20968
20977
  */
20969
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 158, __pyx_L1_error)
20978
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_find); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 159, __pyx_L1_error)
20970
20979
  __Pyx_GOTREF(__pyx_t_5);
20971
20980
  __pyx_t_4 = NULL;
20972
20981
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
@@ -20980,27 +20989,27 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
20980
20989
  }
20981
20990
  __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_start) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_start);
20982
20991
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
20983
- if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 158, __pyx_L1_error)
20992
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 159, __pyx_L1_error)
20984
20993
  __Pyx_GOTREF(__pyx_t_3);
20985
20994
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20986
20995
  if (unlikely(__pyx_v_start == Py_None)) {
20987
20996
  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
20988
- __PYX_ERR(5, 158, __pyx_L1_error)
20997
+ __PYX_ERR(5, 159, __pyx_L1_error)
20989
20998
  }
20990
- __pyx_t_9 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_start); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 158, __pyx_L1_error)
20991
- __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 158, __pyx_L1_error)
20999
+ __pyx_t_9 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_start); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 159, __pyx_L1_error)
21000
+ __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 159, __pyx_L1_error)
20992
21001
  __Pyx_GOTREF(__pyx_t_5);
20993
- __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 158, __pyx_L1_error)
21002
+ __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 159, __pyx_L1_error)
20994
21003
  __Pyx_GOTREF(__pyx_t_4);
20995
21004
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
20996
21005
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
20997
- __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_attr, 0, 0, &__pyx_t_4, NULL, NULL, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 158, __pyx_L1_error)
21006
+ __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_attr, 0, 0, &__pyx_t_4, NULL, NULL, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 159, __pyx_L1_error)
20998
21007
  __Pyx_GOTREF(__pyx_t_5);
20999
21008
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
21000
21009
  __Pyx_DECREF_SET(__pyx_v_attr, __pyx_t_5);
21001
21010
  __pyx_t_5 = 0;
21002
21011
 
21003
- /* "selectolax/lexbor/selection.pxi":157
21012
+ /* "selectolax/lexbor/selection.pxi":158
21004
21013
  * for node in self.nodes:
21005
21014
  * attr = node.attributes.get(attribute)
21006
21015
  * if attr and start and start in attr: # <<<<<<<<<<<<<<
@@ -21009,18 +21018,18 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21009
21018
  */
21010
21019
  }
21011
21020
 
21012
- /* "selectolax/lexbor/selection.pxi":159
21021
+ /* "selectolax/lexbor/selection.pxi":160
21013
21022
  * if attr and start and start in attr:
21014
21023
  * attr = attr[attr.find(start) + len(start):]
21015
21024
  * if len(attr) > length: # <<<<<<<<<<<<<<
21016
21025
  * return True
21017
21026
  * return False
21018
21027
  */
21019
- __pyx_t_9 = PyObject_Length(__pyx_v_attr); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 159, __pyx_L1_error)
21028
+ __pyx_t_9 = PyObject_Length(__pyx_v_attr); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(5, 160, __pyx_L1_error)
21020
21029
  __pyx_t_6 = ((__pyx_t_9 > __pyx_v_length) != 0);
21021
21030
  if (__pyx_t_6) {
21022
21031
 
21023
- /* "selectolax/lexbor/selection.pxi":160
21032
+ /* "selectolax/lexbor/selection.pxi":161
21024
21033
  * attr = attr[attr.find(start) + len(start):]
21025
21034
  * if len(attr) > length:
21026
21035
  * return True # <<<<<<<<<<<<<<
@@ -21033,7 +21042,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21033
21042
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21034
21043
  goto __pyx_L0;
21035
21044
 
21036
- /* "selectolax/lexbor/selection.pxi":159
21045
+ /* "selectolax/lexbor/selection.pxi":160
21037
21046
  * if attr and start and start in attr:
21038
21047
  * attr = attr[attr.find(start) + len(start):]
21039
21048
  * if len(attr) > length: # <<<<<<<<<<<<<<
@@ -21042,7 +21051,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21042
21051
  */
21043
21052
  }
21044
21053
 
21045
- /* "selectolax/lexbor/selection.pxi":155
21054
+ /* "selectolax/lexbor/selection.pxi":156
21046
21055
  * """
21047
21056
  * nodes = []
21048
21057
  * for node in self.nodes: # <<<<<<<<<<<<<<
@@ -21052,7 +21061,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21052
21061
  }
21053
21062
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21054
21063
 
21055
- /* "selectolax/lexbor/selection.pxi":161
21064
+ /* "selectolax/lexbor/selection.pxi":162
21056
21065
  * if len(attr) > length:
21057
21066
  * return True
21058
21067
  * return False # <<<<<<<<<<<<<<
@@ -21064,7 +21073,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21064
21073
  __pyx_r = Py_False;
21065
21074
  goto __pyx_L0;
21066
21075
 
21067
- /* "selectolax/lexbor/selection.pxi":149
21076
+ /* "selectolax/lexbor/selection.pxi":150
21068
21077
  * return self
21069
21078
  *
21070
21079
  * def any_attribute_longer_than(self, str attribute, int length, str start = None): # <<<<<<<<<<<<<<
@@ -21089,7 +21098,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_10any_attribute_
21089
21098
  return __pyx_r;
21090
21099
  }
21091
21100
 
21092
- /* "selectolax/lexbor/selection.pxi":163
21101
+ /* "selectolax/lexbor/selection.pxi":164
21093
21102
  * return False
21094
21103
  *
21095
21104
  * def __bool__(self): # <<<<<<<<<<<<<<
@@ -21120,21 +21129,21 @@ static int __pyx_pf_10selectolax_6lexbor_14LexborSelector_12__bool__(struct __py
21120
21129
  int __pyx_clineno = 0;
21121
21130
  __Pyx_RefNannySetupContext("__bool__", 0);
21122
21131
 
21123
- /* "selectolax/lexbor/selection.pxi":164
21132
+ /* "selectolax/lexbor/selection.pxi":165
21124
21133
  *
21125
21134
  * def __bool__(self):
21126
21135
  * return bool(self.nodes) # <<<<<<<<<<<<<<
21127
21136
  *
21128
21137
  *
21129
21138
  */
21130
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7cpython_4bool_bool), __pyx_v_self->nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 164, __pyx_L1_error)
21139
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7cpython_4bool_bool), __pyx_v_self->nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 165, __pyx_L1_error)
21131
21140
  __Pyx_GOTREF(__pyx_t_1);
21132
- __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 164, __pyx_L1_error)
21141
+ __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 165, __pyx_L1_error)
21133
21142
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21134
21143
  __pyx_r = __pyx_t_2;
21135
21144
  goto __pyx_L0;
21136
21145
 
21137
- /* "selectolax/lexbor/selection.pxi":163
21146
+ /* "selectolax/lexbor/selection.pxi":164
21138
21147
  * return False
21139
21148
  *
21140
21149
  * def __bool__(self): # <<<<<<<<<<<<<<
@@ -21461,7 +21470,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_14LexborSelector_16__setstate_cyt
21461
21470
  return __pyx_r;
21462
21471
  }
21463
21472
 
21464
- /* "selectolax/lexbor/selection.pxi":167
21473
+ /* "selectolax/lexbor/selection.pxi":168
21465
21474
  *
21466
21475
  *
21467
21476
  * cdef lxb_status_t css_finder_callback(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx): # <<<<<<<<<<<<<<
@@ -21482,7 +21491,7 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_finder_callback(lxb_dom_nod
21482
21491
  int __pyx_clineno = 0;
21483
21492
  __Pyx_RefNannySetupContext("css_finder_callback", 0);
21484
21493
 
21485
- /* "selectolax/lexbor/selection.pxi":170
21494
+ /* "selectolax/lexbor/selection.pxi":171
21486
21495
  * cdef LexborNode lxb_node
21487
21496
  * cdef object cls
21488
21497
  * cls = <object> ctx # <<<<<<<<<<<<<<
@@ -21494,49 +21503,49 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_finder_callback(lxb_dom_nod
21494
21503
  __pyx_v_cls = __pyx_t_1;
21495
21504
  __pyx_t_1 = 0;
21496
21505
 
21497
- /* "selectolax/lexbor/selection.pxi":171
21506
+ /* "selectolax/lexbor/selection.pxi":172
21498
21507
  * cdef object cls
21499
21508
  * cls = <object> ctx
21500
21509
  * lxb_node = LexborNode() # <<<<<<<<<<<<<<
21501
21510
  * lxb_node._cinit(<lxb_dom_node_t *> node, cls.current_node.parser)
21502
21511
  * cls.results.append(lxb_node)
21503
21512
  */
21504
- __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_10selectolax_6lexbor_LexborNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error)
21513
+ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_10selectolax_6lexbor_LexborNode)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 172, __pyx_L1_error)
21505
21514
  __Pyx_GOTREF(__pyx_t_1);
21506
21515
  __pyx_v_lxb_node = ((struct __pyx_obj_10selectolax_6lexbor_LexborNode *)__pyx_t_1);
21507
21516
  __pyx_t_1 = 0;
21508
21517
 
21509
- /* "selectolax/lexbor/selection.pxi":172
21518
+ /* "selectolax/lexbor/selection.pxi":173
21510
21519
  * cls = <object> ctx
21511
21520
  * lxb_node = LexborNode()
21512
21521
  * lxb_node._cinit(<lxb_dom_node_t *> node, cls.current_node.parser) # <<<<<<<<<<<<<<
21513
21522
  * cls.results.append(lxb_node)
21514
21523
  * return LXB_STATUS_OK
21515
21524
  */
21516
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_current_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 172, __pyx_L1_error)
21525
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_current_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)
21517
21526
  __Pyx_GOTREF(__pyx_t_1);
21518
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_parser); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 172, __pyx_L1_error)
21527
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_parser); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 173, __pyx_L1_error)
21519
21528
  __Pyx_GOTREF(__pyx_t_2);
21520
21529
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21521
- if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_10selectolax_6lexbor_LexborHTMLParser))))) __PYX_ERR(5, 172, __pyx_L1_error)
21522
- __pyx_t_1 = __pyx_f_10selectolax_6lexbor_10LexborNode__cinit(__pyx_v_lxb_node, ((lxb_dom_node_t *)__pyx_v_node), ((struct __pyx_obj_10selectolax_6lexbor_LexborHTMLParser *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 172, __pyx_L1_error)
21530
+ if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_10selectolax_6lexbor_LexborHTMLParser))))) __PYX_ERR(5, 173, __pyx_L1_error)
21531
+ __pyx_t_1 = __pyx_f_10selectolax_6lexbor_10LexborNode__cinit(__pyx_v_lxb_node, ((lxb_dom_node_t *)__pyx_v_node), ((struct __pyx_obj_10selectolax_6lexbor_LexborHTMLParser *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)
21523
21532
  __Pyx_GOTREF(__pyx_t_1);
21524
21533
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21525
21534
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21526
21535
 
21527
- /* "selectolax/lexbor/selection.pxi":173
21536
+ /* "selectolax/lexbor/selection.pxi":174
21528
21537
  * lxb_node = LexborNode()
21529
21538
  * lxb_node._cinit(<lxb_dom_node_t *> node, cls.current_node.parser)
21530
21539
  * cls.results.append(lxb_node) # <<<<<<<<<<<<<<
21531
21540
  * return LXB_STATUS_OK
21532
21541
  *
21533
21542
  */
21534
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_results); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)
21543
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_results); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 174, __pyx_L1_error)
21535
21544
  __Pyx_GOTREF(__pyx_t_1);
21536
- __pyx_t_3 = __Pyx_PyObject_Append(__pyx_t_1, ((PyObject *)__pyx_v_lxb_node)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 173, __pyx_L1_error)
21545
+ __pyx_t_3 = __Pyx_PyObject_Append(__pyx_t_1, ((PyObject *)__pyx_v_lxb_node)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 174, __pyx_L1_error)
21537
21546
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21538
21547
 
21539
- /* "selectolax/lexbor/selection.pxi":174
21548
+ /* "selectolax/lexbor/selection.pxi":175
21540
21549
  * lxb_node._cinit(<lxb_dom_node_t *> node, cls.current_node.parser)
21541
21550
  * cls.results.append(lxb_node)
21542
21551
  * return LXB_STATUS_OK # <<<<<<<<<<<<<<
@@ -21546,7 +21555,7 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_finder_callback(lxb_dom_nod
21546
21555
  __pyx_r = LXB_STATUS_OK;
21547
21556
  goto __pyx_L0;
21548
21557
 
21549
- /* "selectolax/lexbor/selection.pxi":167
21558
+ /* "selectolax/lexbor/selection.pxi":168
21550
21559
  *
21551
21560
  *
21552
21561
  * cdef lxb_status_t css_finder_callback(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx): # <<<<<<<<<<<<<<
@@ -21567,7 +21576,7 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_finder_callback(lxb_dom_nod
21567
21576
  return __pyx_r;
21568
21577
  }
21569
21578
 
21570
- /* "selectolax/lexbor/selection.pxi":176
21579
+ /* "selectolax/lexbor/selection.pxi":177
21571
21580
  * return LXB_STATUS_OK
21572
21581
  *
21573
21582
  * cdef lxb_status_t css_matcher_callback(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx): # <<<<<<<<<<<<<<
@@ -21586,7 +21595,7 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_matcher_callback(CYTHON_UNU
21586
21595
  int __pyx_clineno = 0;
21587
21596
  __Pyx_RefNannySetupContext("css_matcher_callback", 0);
21588
21597
 
21589
- /* "selectolax/lexbor/selection.pxi":179
21598
+ /* "selectolax/lexbor/selection.pxi":180
21590
21599
  * cdef LexborNode lxb_node
21591
21600
  * cdef object cls
21592
21601
  * cls = <object> ctx # <<<<<<<<<<<<<<
@@ -21598,18 +21607,18 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_matcher_callback(CYTHON_UNU
21598
21607
  __pyx_v_cls = __pyx_t_1;
21599
21608
  __pyx_t_1 = 0;
21600
21609
 
21601
- /* "selectolax/lexbor/selection.pxi":180
21610
+ /* "selectolax/lexbor/selection.pxi":181
21602
21611
  * cdef object cls
21603
21612
  * cls = <object> ctx
21604
21613
  * cls.results.append(True) # <<<<<<<<<<<<<<
21605
21614
  * return LXB_STATUS_STOP
21606
21615
  */
21607
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_results); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 180, __pyx_L1_error)
21616
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cls, __pyx_n_s_results); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error)
21608
21617
  __Pyx_GOTREF(__pyx_t_1);
21609
- __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, Py_True); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 180, __pyx_L1_error)
21618
+ __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, Py_True); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 181, __pyx_L1_error)
21610
21619
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21611
21620
 
21612
- /* "selectolax/lexbor/selection.pxi":181
21621
+ /* "selectolax/lexbor/selection.pxi":182
21613
21622
  * cls = <object> ctx
21614
21623
  * cls.results.append(True)
21615
21624
  * return LXB_STATUS_STOP # <<<<<<<<<<<<<<
@@ -21617,7 +21626,7 @@ static lxb_status_t __pyx_f_10selectolax_6lexbor_css_matcher_callback(CYTHON_UNU
21617
21626
  __pyx_r = LXB_STATUS_STOP;
21618
21627
  goto __pyx_L0;
21619
21628
 
21620
- /* "selectolax/lexbor/selection.pxi":176
21629
+ /* "selectolax/lexbor/selection.pxi":177
21621
21630
  * return LXB_STATUS_OK
21622
21631
  *
21623
21632
  * cdef lxb_status_t css_matcher_callback(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx): # <<<<<<<<<<<<<<
@@ -23950,7 +23959,7 @@ static PyObject *__pyx_pf_10selectolax_6lexbor_16LexborHTMLParser_14strip_tags(s
23950
23959
 
23951
23960
  /* Python wrapper */
23952
23961
  static PyObject *__pyx_pw_10selectolax_6lexbor_16LexborHTMLParser_17select(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23953
- static char __pyx_doc_10selectolax_6lexbor_16LexborHTMLParser_16select[] = "LexborHTMLParser.select(self, query=None)\nSelect nodes give a CSS selector.\n\n Works similarly to the the ``css`` method, but supports chained filtering and extra features.\n\n Parameters\n ----------\n query : str or None\n The CSS selector to use when searching for nodes.\n\n Returns\n -------\n selector : The `Selector` class.\n ";
23962
+ static char __pyx_doc_10selectolax_6lexbor_16LexborHTMLParser_16select[] = "LexborHTMLParser.select(self, query=None)\nSelect nodes give a CSS selector.\n\n Works similarly to the ``css`` method, but supports chained filtering and extra features.\n\n Parameters\n ----------\n query : str or None\n The CSS selector to use when searching for nodes.\n\n Returns\n -------\n selector : The `Selector` class.\n ";
23954
23963
  static PyObject *__pyx_pw_10selectolax_6lexbor_16LexborHTMLParser_17select(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23955
23964
  PyObject *__pyx_v_query = 0;
23956
23965
  int __pyx_lineno = 0;
@@ -28388,16 +28397,16 @@ static int __Pyx_modinit_type_init_code(void) {
28388
28397
  __pyx_ptype_10selectolax_6lexbor_TextContainer = &__pyx_type_10selectolax_6lexbor_TextContainer;
28389
28398
  __pyx_vtabptr_10selectolax_6lexbor_LexborSelector = &__pyx_vtable_10selectolax_6lexbor_LexborSelector;
28390
28399
  __pyx_vtable_10selectolax_6lexbor_LexborSelector.css = (PyObject *(*)(struct __pyx_obj_10selectolax_6lexbor_LexborSelector *, PyObject *, int __pyx_skip_dispatch))__pyx_f_10selectolax_6lexbor_14LexborSelector_css;
28391
- if (PyType_Ready(&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 86, __pyx_L1_error)
28400
+ if (PyType_Ready(&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 87, __pyx_L1_error)
28392
28401
  #if PY_VERSION_HEX < 0x030800B1
28393
28402
  __pyx_type_10selectolax_6lexbor_LexborSelector.tp_print = 0;
28394
28403
  #endif
28395
28404
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_10selectolax_6lexbor_LexborSelector.tp_dictoffset && __pyx_type_10selectolax_6lexbor_LexborSelector.tp_getattro == PyObject_GenericGetAttr)) {
28396
28405
  __pyx_type_10selectolax_6lexbor_LexborSelector.tp_getattro = __Pyx_PyObject_GenericGetAttr;
28397
28406
  }
28398
- if (__Pyx_SetVtable(__pyx_type_10selectolax_6lexbor_LexborSelector.tp_dict, __pyx_vtabptr_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 86, __pyx_L1_error)
28399
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LexborSelector, (PyObject *)&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 86, __pyx_L1_error)
28400
- if (__Pyx_setup_reduce((PyObject*)&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 86, __pyx_L1_error)
28407
+ if (__Pyx_SetVtable(__pyx_type_10selectolax_6lexbor_LexborSelector.tp_dict, __pyx_vtabptr_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 87, __pyx_L1_error)
28408
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LexborSelector, (PyObject *)&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 87, __pyx_L1_error)
28409
+ if (__Pyx_setup_reduce((PyObject*)&__pyx_type_10selectolax_6lexbor_LexborSelector) < 0) __PYX_ERR(5, 87, __pyx_L1_error)
28401
28410
  __pyx_ptype_10selectolax_6lexbor_LexborSelector = &__pyx_type_10selectolax_6lexbor_LexborSelector;
28402
28411
  if (PyType_Ready(&__pyx_type_10selectolax_6lexbor___pyx_scope_struct____iter__) < 0) __PYX_ERR(1, 15, __pyx_L1_error)
28403
28412
  #if PY_VERSION_HEX < 0x030800B1