ssc_codegen 0.5.3__tar.gz → 0.5.5__tar.gz
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 ssc_codegen might be problematic. Click here for more details.
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/workspace.xml +108 -89
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/PKG-INFO +2 -2
- ssc_codegen-0.5.5/examples/a.py +7 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/generate_code.sh +1 -0
- ssc_codegen-0.5.5/examples/manual_make.py +14 -0
- ssc_codegen-0.5.5/examples/testDoc/index.html +23 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/pyproject.toml +2 -2
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/__init__.py +1 -1
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/ast_builder.py +63 -28
- ssc_codegen-0.5.5/ssc_codegen/converters/__init__.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/py_base.py +1 -1
- ssc_codegen-0.5.5/tests/schema/test_default_expr.py +25 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/schema/test_sc_magic_methods.py +13 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.gitignore +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/.gitignore +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/inspectionProfiles/Project_Default.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/libraries/Dart_Packages.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/libraries/Dart_SDK.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/misc.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/modules.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/selector_schema_codegen.iml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/.idea/vcs.xml +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/LICENSE +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/README.md +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/README.md +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/booksToScrapePage.html +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/booksToScrapePage50.html +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/dart/booksToScrape.dart +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/dart/main.dart +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/ex_extended.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/go/booksToScrape.go +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/go/main.go +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/js/booksToScrape.js +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/js/booksToScrapeTests.js +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/js/main.js +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/manual_make.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/python/booksToScrape.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/python/main.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/python/main2.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/runtime_compile.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/schemas/booksToScrape.py +0 -0
- {ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/schemas/booksToScrapeTests.py +0 -0
- /ssc_codegen-0.5.3/ssc_codegen/converters/__init__.py → /ssc_codegen-0.5.5/examples/testDoc/schema.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/main.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/o.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/scripts/check.sh +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/scripts/fix.sh +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/scripts/ver_patch.sh +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/scripts/version.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/ast_ssc.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/cli.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/cli_utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/compiler.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/consts.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/ast_utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/base.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/dart_universal_html.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/go_goquery.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/js_pure.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/py_bs4.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/py_parsel.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/py_scrapy.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/py_selectolax.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/templates/dart.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/templates/go.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/templates/js.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/templates/py.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/templates/utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/tools.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/converters/utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/document.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/document_utlis.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/schema.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/selector_utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/ssc_codegen/tokens.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/converter_tools/test_str_utils.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/converter_tools/test_variable.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/converters/helpers_converters.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/converters/test_buildin_converters.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_array.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_assert.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_invalid_expr.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_regex.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_select.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_document_text.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_nested.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/document/test_selector_converters.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/schema/helpers.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/schema/test_sc_mro.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/utils/test_convert_query.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/utils/test_go_unimport.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/tests/utils/test_validate_query.py +0 -0
- {ssc_codegen-0.5.3 → ssc_codegen-0.5.5}/uv.lock +0 -0
|
@@ -4,13 +4,29 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="9c5efa3e-dda3-4c3a-8055-fa28924643ed" name="Changes" comment="
|
|
8
|
-
<change afterPath="$PROJECT_DIR$/examples/ex_extended.py" afterDir="false" />
|
|
9
|
-
<change afterPath="$PROJECT_DIR$/examples/python/main2.py" afterDir="false" />
|
|
10
|
-
<change afterPath="$PROJECT_DIR$/examples/schemas/booksToScrapeTests.py" afterDir="false" />
|
|
7
|
+
<list default="true" id="9c5efa3e-dda3-4c3a-8055-fa28924643ed" name="Changes" comment="bump">
|
|
8
|
+
<change afterPath="$PROJECT_DIR$/examples/booksToScrape/ex_extended.py" afterDir="false" />
|
|
9
|
+
<change afterPath="$PROJECT_DIR$/examples/booksToScrape/python/main2.py" afterDir="false" />
|
|
10
|
+
<change afterPath="$PROJECT_DIR$/examples/booksToScrape/schemas/booksToScrapeTests.py" afterDir="false" />
|
|
11
|
+
<change afterPath="$PROJECT_DIR$/examples/testDoc/index.html" afterDir="false" />
|
|
12
|
+
<change afterPath="$PROJECT_DIR$/examples/testDoc/schema.py" afterDir="false" />
|
|
13
|
+
<change afterPath="$PROJECT_DIR$/tests/schema/test_default_expr.py" afterDir="false" />
|
|
11
14
|
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
|
12
|
-
<change beforePath="$PROJECT_DIR$/
|
|
13
|
-
<change beforePath="$PROJECT_DIR$/
|
|
15
|
+
<change beforePath="$PROJECT_DIR$/examples/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/README.md" afterDir="false" />
|
|
16
|
+
<change beforePath="$PROJECT_DIR$/examples/dart/booksToScrape.dart" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/dart/booksToScrape.dart" afterDir="false" />
|
|
17
|
+
<change beforePath="$PROJECT_DIR$/examples/dart/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/dart/main.dart" afterDir="false" />
|
|
18
|
+
<change beforePath="$PROJECT_DIR$/examples/generate_code.sh" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/generate_code.sh" afterDir="false" />
|
|
19
|
+
<change beforePath="$PROJECT_DIR$/examples/go/booksToScrape.go" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/go/booksToScrape.go" afterDir="false" />
|
|
20
|
+
<change beforePath="$PROJECT_DIR$/examples/go/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/go/main.go" afterDir="false" />
|
|
21
|
+
<change beforePath="$PROJECT_DIR$/examples/js/booksToScrape.js" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/js/booksToScrape.js" afterDir="false" />
|
|
22
|
+
<change beforePath="$PROJECT_DIR$/examples/js/main.js" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/js/main.js" afterDir="false" />
|
|
23
|
+
<change beforePath="$PROJECT_DIR$/examples/manual_make.py" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/manual_make.py" afterDir="false" />
|
|
24
|
+
<change beforePath="$PROJECT_DIR$/examples/python/booksToScrape.py" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/python/booksToScrape.py" afterDir="false" />
|
|
25
|
+
<change beforePath="$PROJECT_DIR$/examples/python/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/python/main.py" afterDir="false" />
|
|
26
|
+
<change beforePath="$PROJECT_DIR$/examples/runtime_compile.py" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/runtime_compile.py" afterDir="false" />
|
|
27
|
+
<change beforePath="$PROJECT_DIR$/examples/schemas/booksToScrape.py" beforeDir="false" afterPath="$PROJECT_DIR$/examples/booksToScrape/schemas/booksToScrape.py" afterDir="false" />
|
|
28
|
+
<change beforePath="$PROJECT_DIR$/ssc_codegen/ast_builder.py" beforeDir="false" afterPath="$PROJECT_DIR$/ssc_codegen/ast_builder.py" afterDir="false" />
|
|
29
|
+
<change beforePath="$PROJECT_DIR$/tests/schema/test_sc_magic_methods.py" beforeDir="false" afterPath="$PROJECT_DIR$/tests/schema/test_sc_magic_methods.py" afterDir="false" />
|
|
14
30
|
</list>
|
|
15
31
|
<option name="SHOW_DIALOG" value="false" />
|
|
16
32
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
@@ -88,6 +104,8 @@
|
|
|
88
104
|
"Python tests.Python tests for test_buildin_converters.test_converter_impl.executor": "Run",
|
|
89
105
|
"Python tests.Python tests for test_convert_query.test_convert_css_to_xpath.executor": "Run",
|
|
90
106
|
"Python tests.Python tests for test_convert_query.test_convert_xpath_to_css.executor": "Run",
|
|
107
|
+
"Python tests.Python tests for test_default.test_invalid_default.executor": "Run",
|
|
108
|
+
"Python tests.Python tests for test_default_expr.test_invalid_default.executor": "Run",
|
|
91
109
|
"Python tests.Python tests for test_document.test_expr.executor": "Run",
|
|
92
110
|
"Python tests.Python tests for test_document.test_fail_attr_expr.executor": "Run",
|
|
93
111
|
"Python tests.Python tests for test_document.test_valid_html_expr.executor": "Run",
|
|
@@ -113,6 +131,7 @@
|
|
|
113
131
|
"Python tests.Python tests for test_sc_magic_methods.test_fail_schema_dict_key.executor": "Run",
|
|
114
132
|
"Python tests.Python tests for test_sc_magic_methods.test_fail_schema_magic.executor": "Run",
|
|
115
133
|
"Python tests.Python tests for test_sc_magic_methods.test_fail_schema_split_doc_ret_type.executor": "Run",
|
|
134
|
+
"Python tests.Python tests for test_sc_magic_methods.test_valid_dict_schema_key.executor": "Run",
|
|
116
135
|
"Python tests.Python tests for test_sc_mro.test_schema_mro.executor": "Run",
|
|
117
136
|
"Python tests.Python tests for test_select_document.test_valid_html_expr.executor": "Run",
|
|
118
137
|
"Python tests.Python tests for test_selector_converters.test_convert_css_to_xpath.executor": "Run",
|
|
@@ -179,7 +198,7 @@
|
|
|
179
198
|
"WebServerToolWindowFactoryState": "false",
|
|
180
199
|
"dart.analysis.tool.window.visible": "false",
|
|
181
200
|
"git-widget-placeholder": "main",
|
|
182
|
-
"last_opened_file_path": "/home/georgiy/PycharmProjects/selector_schema_codegen/
|
|
201
|
+
"last_opened_file_path": "/home/georgiy/PycharmProjects/selector_schema_codegen/examples",
|
|
183
202
|
"node.js.detected.package.eslint": "true",
|
|
184
203
|
"node.js.detected.package.tslint": "true",
|
|
185
204
|
"node.js.selected.package.eslint": "(autodetect)",
|
|
@@ -194,22 +213,22 @@
|
|
|
194
213
|
</component>
|
|
195
214
|
<component name="RecentsManager">
|
|
196
215
|
<key name="CopyFile.RECENT_KEYS">
|
|
216
|
+
<recent name="$PROJECT_DIR$/examples" />
|
|
197
217
|
<recent name="$PROJECT_DIR$" />
|
|
198
218
|
<recent name="$PROJECT_DIR$/examples/schemas/a" />
|
|
199
219
|
<recent name="$PROJECT_DIR$/examples/schemas" />
|
|
200
220
|
<recent name="$PROJECT_DIR$/scs" />
|
|
201
|
-
<recent name="$PROJECT_DIR$/ssc_codegen/converters/templates/dart/universal_html" />
|
|
202
221
|
</key>
|
|
203
222
|
<key name="MoveFile.RECENT_KEYS">
|
|
223
|
+
<recent name="$PROJECT_DIR$/examples/booksToScrape" />
|
|
204
224
|
<recent name="$PROJECT_DIR$/tests/schema" />
|
|
205
225
|
<recent name="$PROJECT_DIR$/ssc_codegen/converters" />
|
|
206
226
|
<recent name="$PROJECT_DIR$/examples" />
|
|
207
227
|
<recent name="$PROJECT_DIR$/examples/python" />
|
|
208
|
-
<recent name="$PROJECT_DIR$/tests/document" />
|
|
209
228
|
</key>
|
|
210
229
|
</component>
|
|
211
|
-
<component name="RunManager" selected="Python tests.Python tests for
|
|
212
|
-
<configuration name="
|
|
230
|
+
<component name="RunManager" selected="Python tests.Python tests for test_default_expr.test_invalid_default">
|
|
231
|
+
<configuration name="manual_make" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
|
213
232
|
<module name="selector_schema_codegen" />
|
|
214
233
|
<option name="ENV_FILES" value="" />
|
|
215
234
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
@@ -223,7 +242,7 @@
|
|
|
223
242
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
224
243
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
225
244
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
226
|
-
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/examples/
|
|
245
|
+
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/examples/manual_make.py" />
|
|
227
246
|
<option name="PARAMETERS" value="" />
|
|
228
247
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
|
229
248
|
<option name="EMULATE_TERMINAL" value="false" />
|
|
@@ -232,84 +251,77 @@
|
|
|
232
251
|
<option name="INPUT_FILE" value="" />
|
|
233
252
|
<method v="2" />
|
|
234
253
|
</configuration>
|
|
235
|
-
<configuration name="
|
|
254
|
+
<configuration name="Python tests for test_buildin_converters.test_converter_impl" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
|
|
236
255
|
<module name="selector_schema_codegen" />
|
|
237
256
|
<option name="ENV_FILES" value="" />
|
|
238
257
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
239
258
|
<option name="PARENT_ENVS" value="true" />
|
|
240
|
-
<envs>
|
|
241
|
-
<env name="PYTHONUNBUFFERED" value="1" />
|
|
242
|
-
</envs>
|
|
243
259
|
<option name="SDK_HOME" value="" />
|
|
244
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR
|
|
260
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/converters" />
|
|
245
261
|
<option name="IS_MODULE_SDK" value="true" />
|
|
246
262
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
247
263
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
248
264
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
249
|
-
<option name="
|
|
250
|
-
<option name="
|
|
251
|
-
<option name="
|
|
252
|
-
<option name="EMULATE_TERMINAL" value="false" />
|
|
253
|
-
<option name="MODULE_MODE" value="false" />
|
|
254
|
-
<option name="REDIRECT_INPUT" value="false" />
|
|
255
|
-
<option name="INPUT_FILE" value="" />
|
|
265
|
+
<option name="_new_additionalArguments" value="""" />
|
|
266
|
+
<option name="_new_target" value=""test_buildin_converters.test_converter_impl"" />
|
|
267
|
+
<option name="_new_targetType" value=""PYTHON"" />
|
|
256
268
|
<method v="2" />
|
|
257
269
|
</configuration>
|
|
258
|
-
<configuration name="Python tests for
|
|
270
|
+
<configuration name="Python tests for test_default_expr.test_invalid_default" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
|
|
259
271
|
<module name="selector_schema_codegen" />
|
|
260
272
|
<option name="ENV_FILES" value="" />
|
|
261
273
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
262
274
|
<option name="PARENT_ENVS" value="true" />
|
|
263
275
|
<option name="SDK_HOME" value="" />
|
|
264
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/
|
|
276
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/schema" />
|
|
265
277
|
<option name="IS_MODULE_SDK" value="true" />
|
|
266
278
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
267
279
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
268
280
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
269
281
|
<option name="_new_additionalArguments" value="""" />
|
|
270
|
-
<option name="_new_target" value=""
|
|
282
|
+
<option name="_new_target" value=""test_default_expr.test_invalid_default"" />
|
|
271
283
|
<option name="_new_targetType" value=""PYTHON"" />
|
|
272
284
|
<method v="2" />
|
|
273
285
|
</configuration>
|
|
274
|
-
<configuration name="Python tests for
|
|
286
|
+
<configuration name="Python tests for test_sc_magic_methods.test_valid_dict_schema_key" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
|
|
275
287
|
<module name="selector_schema_codegen" />
|
|
276
288
|
<option name="ENV_FILES" value="" />
|
|
277
289
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
278
290
|
<option name="PARENT_ENVS" value="true" />
|
|
279
291
|
<option name="SDK_HOME" value="" />
|
|
280
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/
|
|
292
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/schema" />
|
|
281
293
|
<option name="IS_MODULE_SDK" value="true" />
|
|
282
294
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
283
295
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
284
296
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
285
297
|
<option name="_new_additionalArguments" value="""" />
|
|
286
|
-
<option name="_new_target" value=""
|
|
298
|
+
<option name="_new_target" value=""test_sc_magic_methods.test_valid_dict_schema_key"" />
|
|
287
299
|
<option name="_new_targetType" value=""PYTHON"" />
|
|
288
300
|
<method v="2" />
|
|
289
301
|
</configuration>
|
|
290
|
-
<configuration name="Python tests for
|
|
302
|
+
<configuration name="Python tests for tests.schema.test_default_expr.test_invalid_default" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
|
|
291
303
|
<module name="selector_schema_codegen" />
|
|
292
304
|
<option name="ENV_FILES" value="" />
|
|
293
305
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
294
306
|
<option name="PARENT_ENVS" value="true" />
|
|
295
307
|
<option name="SDK_HOME" value="" />
|
|
296
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/
|
|
308
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests/schema" />
|
|
297
309
|
<option name="IS_MODULE_SDK" value="true" />
|
|
298
310
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
299
311
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
300
312
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
301
313
|
<option name="_new_additionalArguments" value="""" />
|
|
302
|
-
<option name="_new_target" value=""
|
|
314
|
+
<option name="_new_target" value=""tests.schema.test_default_expr.test_invalid_default"" />
|
|
303
315
|
<option name="_new_targetType" value=""PYTHON"" />
|
|
304
316
|
<method v="2" />
|
|
305
317
|
</configuration>
|
|
306
318
|
<recent_temporary>
|
|
307
319
|
<list>
|
|
320
|
+
<item itemvalue="Python tests.Python tests for test_default_expr.test_invalid_default" />
|
|
321
|
+
<item itemvalue="Python tests.Python tests for tests.schema.test_default_expr.test_invalid_default" />
|
|
322
|
+
<item itemvalue="Python tests.Python tests for test_sc_magic_methods.test_valid_dict_schema_key" />
|
|
323
|
+
<item itemvalue="Python.manual_make" />
|
|
308
324
|
<item itemvalue="Python tests.Python tests for test_buildin_converters.test_converter_impl" />
|
|
309
|
-
<item itemvalue="Python.o" />
|
|
310
|
-
<item itemvalue="Python.ex_extended" />
|
|
311
|
-
<item itemvalue="Python tests.Python tests for test_selector_converters.test_convert_xpath_to_css_tokens" />
|
|
312
|
-
<item itemvalue="Python tests.Python tests for test_selector_converters.test_convert_css_to_xpath_tokens" />
|
|
313
325
|
</list>
|
|
314
326
|
</recent_temporary>
|
|
315
327
|
</component>
|
|
@@ -394,47 +406,9 @@
|
|
|
394
406
|
<workItem from="1738301565437" duration="8521000" />
|
|
395
407
|
<workItem from="1738575037148" duration="22388000" />
|
|
396
408
|
<workItem from="1738684052578" duration="6332000" />
|
|
397
|
-
<workItem from="1738746990365" duration="
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
<option name="closed" value="true" />
|
|
401
|
-
<created>1738055157052</created>
|
|
402
|
-
<option name="number" value="00132" />
|
|
403
|
-
<option name="presentableId" value="LOCAL-00132" />
|
|
404
|
-
<option name="project" value="LOCAL" />
|
|
405
|
-
<updated>1738055157052</updated>
|
|
406
|
-
</task>
|
|
407
|
-
<task id="LOCAL-00133" summary="fix dart codegen">
|
|
408
|
-
<option name="closed" value="true" />
|
|
409
|
-
<created>1738067544204</created>
|
|
410
|
-
<option name="number" value="00133" />
|
|
411
|
-
<option name="presentableId" value="LOCAL-00133" />
|
|
412
|
-
<option name="project" value="LOCAL" />
|
|
413
|
-
<updated>1738067544205</updated>
|
|
414
|
-
</task>
|
|
415
|
-
<task id="LOCAL-00134" summary="fix XPATH js">
|
|
416
|
-
<option name="closed" value="true" />
|
|
417
|
-
<created>1738094439436</created>
|
|
418
|
-
<option name="number" value="00134" />
|
|
419
|
-
<option name="presentableId" value="LOCAL-00134" />
|
|
420
|
-
<option name="project" value="LOCAL" />
|
|
421
|
-
<updated>1738094439436</updated>
|
|
422
|
-
</task>
|
|
423
|
-
<task id="LOCAL-00135" summary="add test for converter utils, fix lowerCamelCase func">
|
|
424
|
-
<option name="closed" value="true" />
|
|
425
|
-
<created>1738231018899</created>
|
|
426
|
-
<option name="number" value="00135" />
|
|
427
|
-
<option name="presentableId" value="LOCAL-00135" />
|
|
428
|
-
<option name="project" value="LOCAL" />
|
|
429
|
-
<updated>1738231018900</updated>
|
|
430
|
-
</task>
|
|
431
|
-
<task id="LOCAL-00136" summary="CallStructFunctionExpression: fix have_default_expr method, DefaultValueWrapper: change accept_type, ret_type to VariableType.DOCUMENT">
|
|
432
|
-
<option name="closed" value="true" />
|
|
433
|
-
<created>1738231131458</created>
|
|
434
|
-
<option name="number" value="00136" />
|
|
435
|
-
<option name="presentableId" value="LOCAL-00136" />
|
|
436
|
-
<option name="project" value="LOCAL" />
|
|
437
|
-
<updated>1738231131458</updated>
|
|
409
|
+
<workItem from="1738746990365" duration="28527000" />
|
|
410
|
+
<workItem from="1738827918820" duration="143000" />
|
|
411
|
+
<workItem from="1738830292119" duration="2627000" />
|
|
438
412
|
</task>
|
|
439
413
|
<task id="LOCAL-00137" summary="SIGNATURE_MAP: add ANY, OPTIONAL_INT, OPTIONAL_LIST_INT, OPTIONAL_FLOAT, OPTIONAL_LIST_FLOAT">
|
|
440
414
|
<option name="closed" value="true" />
|
|
@@ -788,7 +762,47 @@
|
|
|
788
762
|
<option name="project" value="LOCAL" />
|
|
789
763
|
<updated>1738794557342</updated>
|
|
790
764
|
</task>
|
|
791
|
-
<
|
|
765
|
+
<task id="LOCAL-00181" summary="rename modules">
|
|
766
|
+
<option name="closed" value="true" />
|
|
767
|
+
<created>1738794901438</created>
|
|
768
|
+
<option name="number" value="00181" />
|
|
769
|
+
<option name="presentableId" value="LOCAL-00181" />
|
|
770
|
+
<option name="project" value="LOCAL" />
|
|
771
|
+
<updated>1738794901438</updated>
|
|
772
|
+
</task>
|
|
773
|
+
<task id="LOCAL-00182" summary="ruff fmt">
|
|
774
|
+
<option name="closed" value="true" />
|
|
775
|
+
<created>1738794911350</created>
|
|
776
|
+
<option name="number" value="00182" />
|
|
777
|
+
<option name="presentableId" value="LOCAL-00182" />
|
|
778
|
+
<option name="project" value="LOCAL" />
|
|
779
|
+
<updated>1738794911350</updated>
|
|
780
|
+
</task>
|
|
781
|
+
<task id="LOCAL-00183" summary="bump">
|
|
782
|
+
<option name="closed" value="true" />
|
|
783
|
+
<created>1738794935313</created>
|
|
784
|
+
<option name="number" value="00183" />
|
|
785
|
+
<option name="presentableId" value="LOCAL-00183" />
|
|
786
|
+
<option name="project" value="LOCAL" />
|
|
787
|
+
<updated>1738794935313</updated>
|
|
788
|
+
</task>
|
|
789
|
+
<task id="LOCAL-00184" summary="TokenType.EXPR_LIST_JOIN: fix syntax">
|
|
790
|
+
<option name="closed" value="true" />
|
|
791
|
+
<created>1738830468062</created>
|
|
792
|
+
<option name="number" value="00184" />
|
|
793
|
+
<option name="presentableId" value="LOCAL-00184" />
|
|
794
|
+
<option name="project" value="LOCAL" />
|
|
795
|
+
<updated>1738830468062</updated>
|
|
796
|
+
</task>
|
|
797
|
+
<task id="LOCAL-00185" summary="bump">
|
|
798
|
+
<option name="closed" value="true" />
|
|
799
|
+
<created>1738830485847</created>
|
|
800
|
+
<option name="number" value="00185" />
|
|
801
|
+
<option name="presentableId" value="LOCAL-00185" />
|
|
802
|
+
<option name="project" value="LOCAL" />
|
|
803
|
+
<updated>1738830485847</updated>
|
|
804
|
+
</task>
|
|
805
|
+
<option name="localTasksCounter" value="186" />
|
|
792
806
|
<servers />
|
|
793
807
|
</component>
|
|
794
808
|
<component name="TypeScriptGeneratedFilesManager">
|
|
@@ -806,9 +820,6 @@
|
|
|
806
820
|
</option>
|
|
807
821
|
</component>
|
|
808
822
|
<component name="VcsManagerConfiguration">
|
|
809
|
-
<MESSAGE value="dev: add httpx dep" />
|
|
810
|
-
<MESSAGE value="update readme" />
|
|
811
|
-
<MESSAGE value="add schema tests" />
|
|
812
823
|
<MESSAGE value="add check stacks expr len, extract_default_expr check stack len throw error if stack is empty" />
|
|
813
824
|
<MESSAGE value="refactoring: ast utils to another module" />
|
|
814
825
|
<MESSAGE value="gen_go: add unimport function. fix typo --debug flag" />
|
|
@@ -826,12 +837,15 @@
|
|
|
826
837
|
<MESSAGE value="add new schema factories, add new tests" />
|
|
827
838
|
<MESSAGE value="Document marks: add optional default_value argument" />
|
|
828
839
|
<MESSAGE value="ruff fix" />
|
|
829
|
-
<MESSAGE value="bump" />
|
|
830
840
|
<MESSAGE value="check: add run pytest fix: add ruff fix" />
|
|
831
841
|
<MESSAGE value="ruff, mypy fix" />
|
|
832
842
|
<MESSAGE value="js_pure: TokenType.EXPR_CSS_ALL: convert nodes to array TokenType.EXPR_RAW,TokenType.EXPR_TEXT: add check variable type document and node" />
|
|
833
843
|
<MESSAGE value="add test converters implementation status" />
|
|
834
|
-
<
|
|
844
|
+
<MESSAGE value="rename modules" />
|
|
845
|
+
<MESSAGE value="ruff fmt" />
|
|
846
|
+
<MESSAGE value="TokenType.EXPR_LIST_JOIN: fix syntax" />
|
|
847
|
+
<MESSAGE value="bump" />
|
|
848
|
+
<option name="LAST_COMMIT_MESSAGE" value="bump" />
|
|
835
849
|
</component>
|
|
836
850
|
<component name="XDebuggerManager">
|
|
837
851
|
<breakpoint-manager>
|
|
@@ -857,7 +871,7 @@
|
|
|
857
871
|
<option name="timeStamp" value="121" />
|
|
858
872
|
</line-breakpoint>
|
|
859
873
|
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
|
|
860
|
-
<url>file://$PROJECT_DIR$/examples/python/main2.py</url>
|
|
874
|
+
<url>file://$PROJECT_DIR$/examples/booksToScrape/python/main2.py</url>
|
|
861
875
|
<line>6</line>
|
|
862
876
|
<option name="timeStamp" value="125" />
|
|
863
877
|
</line-breakpoint>
|
|
@@ -867,10 +881,15 @@
|
|
|
867
881
|
<option name="timeStamp" value="132" />
|
|
868
882
|
</line-breakpoint>
|
|
869
883
|
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
|
|
870
|
-
<url>file://$PROJECT_DIR$/examples/ex_extended.py</url>
|
|
884
|
+
<url>file://$PROJECT_DIR$/examples/booksToScrape/ex_extended.py</url>
|
|
871
885
|
<line>14</line>
|
|
872
886
|
<option name="timeStamp" value="134" />
|
|
873
887
|
</line-breakpoint>
|
|
888
|
+
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
|
|
889
|
+
<url>file://$PROJECT_DIR$/ssc_codegen/ast_builder.py</url>
|
|
890
|
+
<line>155</line>
|
|
891
|
+
<option name="timeStamp" value="137" />
|
|
892
|
+
</line-breakpoint>
|
|
874
893
|
<line-breakpoint enabled="true" type="Dart">
|
|
875
894
|
<url>file://$PROJECT_DIR$/dart_sscgen/bin/dart_sscgen.dart</url>
|
|
876
895
|
<line>16</line>
|
|
@@ -880,12 +899,12 @@
|
|
|
880
899
|
</breakpoint-manager>
|
|
881
900
|
</component>
|
|
882
901
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
|
883
|
-
<SUITE FILE_PATH="coverage/selector_schema_codegen$.coverage" NAME=" Coverage Results" MODIFIED="
|
|
902
|
+
<SUITE FILE_PATH="coverage/selector_schema_codegen$.coverage" NAME=" Coverage Results" MODIFIED="1738832894654" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests/schema" />
|
|
884
903
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$cli.coverage" NAME="cli Coverage Results" MODIFIED="1717347870433" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
|
885
904
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$schemas.coverage" NAME="schemas Coverage Results" MODIFIED="1714992167313" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen/v2" />
|
|
886
905
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$ex_extended.coverage" NAME="ex_extended Coverage Results" MODIFIED="1738777474650" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples" />
|
|
887
|
-
<SUITE FILE_PATH="coverage/selector_schema_codegen$calc_hash.coverage" NAME="calc_hash Coverage Results" MODIFIED="1718171677863" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen/utils" />
|
|
888
906
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$extract.coverage" NAME="validate Coverage Results" MODIFIED="1706819346637" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen2" />
|
|
907
|
+
<SUITE FILE_PATH="coverage/selector_schema_codegen$calc_hash.coverage" NAME="calc_hash Coverage Results" MODIFIED="1718171677863" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen/utils" />
|
|
889
908
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$ast_ssc.coverage" NAME="ast_ssc Coverage Results" MODIFIED="1735321217497" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen" />
|
|
890
909
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$translator.coverage" NAME="translator Coverage Results" MODIFIED="1707045679760" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen2" />
|
|
891
910
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$constants.coverage" NAME="constants Coverage Results" MODIFIED="1717348468280" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen2/schema" />
|
|
@@ -901,7 +920,7 @@
|
|
|
901
920
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$tg_mini.coverage" NAME="tg_mini Coverage Results" MODIFIED="1717771734055" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
|
902
921
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$expression.coverage" NAME="expression Coverage Results" MODIFIED="1715360828778" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen2" />
|
|
903
922
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$animego_pro.coverage" NAME="animego_pro Coverage Results" MODIFIED="1717401685023" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/libanime_schema/source_v2/src" />
|
|
904
|
-
<SUITE FILE_PATH="coverage/selector_schema_codegen$manual_make.coverage" NAME="manual_make Coverage Results" MODIFIED="
|
|
923
|
+
<SUITE FILE_PATH="coverage/selector_schema_codegen$manual_make.coverage" NAME="manual_make Coverage Results" MODIFIED="1738832322479" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples" />
|
|
905
924
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$__init__.coverage" NAME="__init__ Coverage Results" MODIFIED="1715378131584" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/ssc_codegen2/document" />
|
|
906
925
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$o.coverage" NAME="o Coverage Results" MODIFIED="1738787607226" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
|
907
926
|
<SUITE FILE_PATH="coverage/selector_schema_codegen$aaaa.coverage" NAME="aaaa Coverage Results" MODIFIED="1717773815300" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssc_codegen
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.5
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Project-URL: Documentation, https://github.com/vypivshiy/selector_schema_codegen#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/vypivshiy/selector_schema_codegen/issues
|
|
7
7
|
Project-URL: Source, https://github.com/vypivshiy/selector_schema_codegen
|
|
8
8
|
Project-URL: Examples, https://github.com/vypivshiy/selector_schema_codegen/examples
|
|
9
9
|
License-File: LICENSE
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
11
|
Requires-Dist: cssselect>=1.2.0
|
|
12
12
|
Requires-Dist: lxml>=5.3.0
|
|
13
13
|
Requires-Dist: typer>=0.15.1
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""example usage API interface"""
|
|
2
|
+
if __name__ == '__main__':
|
|
3
|
+
# base ast builder
|
|
4
|
+
from ssc_codegen.ast_builder import build_ast_module
|
|
5
|
+
# build-in converter
|
|
6
|
+
from ssc_codegen.converters.py_parsel import converter
|
|
7
|
+
# runtime import module and parse
|
|
8
|
+
# WARNING: DO NOT PASS UNKNOWN MODULES FOR SECURITY REASONS
|
|
9
|
+
# IT COMPILE AND EXEC PYTHON CODE FROM FILE IN RUNTIME
|
|
10
|
+
ast = build_ast_module(
|
|
11
|
+
'a.py',
|
|
12
|
+
)
|
|
13
|
+
code = converter.convert_program(ast)
|
|
14
|
+
print("\n".join(code))
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!--synthetic html page for demonstare write schemas examples and tests in several cases-->
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<title>Demo page 1</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<!--simple items element-->
|
|
10
|
+
<div class="item-sc">
|
|
11
|
+
<p>item sc</p>
|
|
12
|
+
<a href="example.com">example page</a>
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
1. simple item-sc tags
|
|
16
|
+
2. simple list-sc tags
|
|
17
|
+
3. simple dict-sc tags
|
|
18
|
+
4. simple flatlist-sc tags
|
|
19
|
+
|
|
20
|
+
5. nested item-sc tags + 2-4
|
|
21
|
+
5. multi layered page
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|
|
@@ -79,6 +79,9 @@ def check_field_expr(field: BaseDocument) -> None:
|
|
|
79
79
|
elif expr.accept_type == VariableType.ANY:
|
|
80
80
|
var_cursor = VariableType.DOCUMENT
|
|
81
81
|
continue
|
|
82
|
+
# end token operation, ignore
|
|
83
|
+
elif expr.kind == TokenType.EXPR_DEFAULT_END:
|
|
84
|
+
continue
|
|
82
85
|
elif var_cursor == VariableType.NESTED:
|
|
83
86
|
raise TypeError("sub_parser not allowed next instructions")
|
|
84
87
|
|
|
@@ -151,30 +154,27 @@ def _fill_stack_variables(
|
|
|
151
154
|
ret_type = tmp_stack[-2].ret_type
|
|
152
155
|
# used for convert return type
|
|
153
156
|
if first_expr.value is None: # type: ignore[attr-defined]
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
raise TypeError(
|
|
176
|
-
f"Unknown variable return type: {ret_type.name} {ret_type.name}"
|
|
177
|
-
)
|
|
157
|
+
ret_type = _cast_ret_type_optional(ret_type)
|
|
158
|
+
# set DefaultEnd ret_type as DefaultStartToken
|
|
159
|
+
tmp_stack[-1].ret_type = ret_type
|
|
160
|
+
elif isinstance(first_expr.value, str): # type: ignore[attr-defined]
|
|
161
|
+
tmp_stack[-1].ret_type = VariableType.STRING
|
|
162
|
+
assert ret_type == VariableType.STRING, (
|
|
163
|
+
"wrong default type passed (should be a STRING or NULL)"
|
|
164
|
+
)
|
|
165
|
+
elif isinstance(first_expr.value, float): # type: ignore[attr-defined]
|
|
166
|
+
tmp_stack[-1].ret_type = VariableType.FLOAT
|
|
167
|
+
assert ret_type == VariableType.FLOAT, (
|
|
168
|
+
"wrong default type passed (should be a FLOAT or NULL)"
|
|
169
|
+
)
|
|
170
|
+
elif isinstance(first_expr.value, int): # type: ignore[attr-defined]
|
|
171
|
+
tmp_stack[-1].ret_type = VariableType.INT
|
|
172
|
+
assert ret_type == VariableType.INT, (
|
|
173
|
+
"wrong default type passed (should be a INT or NULL)"
|
|
174
|
+
)
|
|
175
|
+
else:
|
|
176
|
+
msg = f"{first_expr.value!r}<{type(first_expr.value).__name__}> default operation not support this type"
|
|
177
|
+
raise TypeError(msg)
|
|
178
178
|
|
|
179
179
|
expr_count = len(tmp_stack)
|
|
180
180
|
for i, expr in enumerate(tmp_stack):
|
|
@@ -202,6 +202,34 @@ def _fill_stack_variables(
|
|
|
202
202
|
return tmp_stack
|
|
203
203
|
|
|
204
204
|
|
|
205
|
+
def _cast_ret_type_optional(ret_type):
|
|
206
|
+
match ret_type:
|
|
207
|
+
case VariableType.STRING:
|
|
208
|
+
ret_type = VariableType.OPTIONAL_STRING
|
|
209
|
+
case VariableType.LIST_STRING:
|
|
210
|
+
ret_type = VariableType.OPTIONAL_LIST_STRING
|
|
211
|
+
case VariableType.INT:
|
|
212
|
+
ret_type = VariableType.OPTIONAL_INT
|
|
213
|
+
case VariableType.LIST_INT:
|
|
214
|
+
ret_type = VariableType.OPTIONAL_LIST_INT
|
|
215
|
+
case VariableType.FLOAT:
|
|
216
|
+
ret_type = VariableType.OPTIONAL_FLOAT
|
|
217
|
+
case VariableType.LIST_FLOAT:
|
|
218
|
+
ret_type = VariableType.OPTIONAL_LIST_FLOAT
|
|
219
|
+
# ignore cast
|
|
220
|
+
case t if t in (
|
|
221
|
+
VariableType.NULL,
|
|
222
|
+
VariableType.ANY,
|
|
223
|
+
VariableType.NESTED,
|
|
224
|
+
):
|
|
225
|
+
pass
|
|
226
|
+
case _:
|
|
227
|
+
raise TypeError(
|
|
228
|
+
f"Unknown variable return type: {ret_type.name} {ret_type.name}"
|
|
229
|
+
)
|
|
230
|
+
return ret_type
|
|
231
|
+
|
|
232
|
+
|
|
205
233
|
# TODO: better typing?
|
|
206
234
|
def replace_enum_values(item: Any) -> dict[str, Any] | list[Any] | str:
|
|
207
235
|
"""
|
|
@@ -337,11 +365,18 @@ def _check_split_doc_type(
|
|
|
337
365
|
def _check_dict_schema_key_type(
|
|
338
366
|
field: "BaseDocument", name: str, schema: Type[BaseSchema]
|
|
339
367
|
) -> None:
|
|
368
|
+
if schema.__SCHEMA_TYPE__ != StructType.DICT:
|
|
369
|
+
return
|
|
370
|
+
# corner case: default value is string, last return value - string
|
|
340
371
|
if (
|
|
341
|
-
|
|
342
|
-
and
|
|
343
|
-
and field.
|
|
344
|
-
):
|
|
372
|
+
field.stack[0].kind == TokenType.EXPR_DEFAULT_START
|
|
373
|
+
and isinstance(field.stack[0].value, str)
|
|
374
|
+
and field.stack[-2].ret_type == VariableType.STRING
|
|
375
|
+
):
|
|
376
|
+
return
|
|
377
|
+
|
|
378
|
+
elif name == "__KEY__" and field.stack_last_ret != VariableType.STRING: # type: ignore
|
|
379
|
+
# case: default value as string
|
|
345
380
|
msg = f"{schema.__name__}.__KEY__ should be STRING, not {field.stack_last_ret.name}" # type: ignore
|
|
346
381
|
raise TypeError(msg)
|
|
347
382
|
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from typing import Type
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
from helpers import schema_item_factory
|
|
5
|
+
|
|
6
|
+
from ssc_codegen import D
|
|
7
|
+
from ssc_codegen.ast_builder import build_ast_struct
|
|
8
|
+
from ssc_codegen.schema import BaseSchema
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.mark.parametrize(
|
|
12
|
+
"schema",
|
|
13
|
+
[
|
|
14
|
+
schema_item_factory(f=D().default(0).raw()),
|
|
15
|
+
schema_item_factory(f=D().default(0.1).raw()),
|
|
16
|
+
schema_item_factory(f=D().default("a").raw().to_int()),
|
|
17
|
+
schema_item_factory(f=D().default("a").raw().to_float()),
|
|
18
|
+
schema_item_factory(f=D().default(1).raw().to_float()),
|
|
19
|
+
schema_item_factory(f=D().default(0.1).raw().to_int()),
|
|
20
|
+
],
|
|
21
|
+
)
|
|
22
|
+
def test_invalid_default(schema: Type["BaseSchema"]) -> None:
|
|
23
|
+
# TODO: replace exception as TypeError
|
|
24
|
+
with pytest.raises(AssertionError):
|
|
25
|
+
build_ast_struct(schema)
|
|
@@ -159,3 +159,16 @@ def test_fail_schema_dict_key(schema: Type["BaseSchema"]) -> None:
|
|
|
159
159
|
def test_fail_document_value_type(schema: Type["BaseSchema"]) -> None:
|
|
160
160
|
with pytest.raises(TypeError):
|
|
161
161
|
build_ast_struct(schema)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
@pytest.mark.parametrize(
|
|
165
|
+
"schema",
|
|
166
|
+
[
|
|
167
|
+
schema_dict_factory(
|
|
168
|
+
__SPLIT_DOC__=D().css_all("a"),
|
|
169
|
+
__KEY__=D().default("ok").attr("a"),
|
|
170
|
+
__VALUE__=R()),
|
|
171
|
+
]
|
|
172
|
+
)
|
|
173
|
+
def test_valid_dict_schema_key(schema: Type["BaseSchema"]) -> None:
|
|
174
|
+
assert build_ast_struct(schema)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/booksToScrapePage.html
RENAMED
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/booksToScrapePage50.html
RENAMED
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/dart/booksToScrape.dart
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/js/booksToScrapeTests.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/python/booksToScrape.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ssc_codegen-0.5.3/examples → ssc_codegen-0.5.5/examples/booksToScrape}/schemas/booksToScrape.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|