ssc_codegen 0.9.1__tar.gz → 0.9.2__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.9.1 → ssc_codegen-0.9.2}/PKG-INFO +4 -1
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/README.md +3 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/pyproject.toml +1 -1
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/__init__.py +1 -1
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/py_base.py +2 -3
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/.gitignore +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/LICENSE +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/_compat.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/base.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_array.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_cast.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_core.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_filter.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_selectors.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_string.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_/nodes_validate.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_build/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_build/main.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/ast_build/utils.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/cli_callbacks.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/cli_utils.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/code_callbacks.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/consts.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/main.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/cli/runtime_parse_runners.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/compiler.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/consts.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/base.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/go_goquery.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/helpers.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/js_pure.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/py_bs4.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/py_parsel.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/py_selectolax.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/templates/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/templates/go_goquery.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/converters/templates/js_pure.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/document.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/document_utlis.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/json_struct.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/json_to_scc.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/logs.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/pseudo_selectors.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/schema.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/selector_utils.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/static_checker/__init__.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/static_checker/base.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/static_checker/callbacks.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/str_utils.py +0 -0
- {ssc_codegen-0.9.1 → ssc_codegen-0.9.2}/ssc_codegen/tokens.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssc_codegen
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Python-dsl code converter to html parser for web scraping
|
|
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
|
|
@@ -45,6 +45,9 @@ Project solving next problems:
|
|
|
45
45
|
- generate types or type annotations if possible and documentation
|
|
46
46
|
- simplify code support
|
|
47
47
|
- portability to other languages and HTML parser backends
|
|
48
|
+
- designed for server-side-render pages parse.
|
|
49
|
+
For REST-API, GRAPHQL use tools like [mitmproxy2swagger](https://github.com/alufers/mitmproxy2swagger)
|
|
50
|
+
for simplify convert to code
|
|
48
51
|
|
|
49
52
|
## Support converters
|
|
50
53
|
|
|
@@ -11,6 +11,9 @@ Project solving next problems:
|
|
|
11
11
|
- generate types or type annotations if possible and documentation
|
|
12
12
|
- simplify code support
|
|
13
13
|
- portability to other languages and HTML parser backends
|
|
14
|
+
- designed for server-side-render pages parse.
|
|
15
|
+
For REST-API, GRAPHQL use tools like [mitmproxy2swagger](https://github.com/alufers/mitmproxy2swagger)
|
|
16
|
+
for simplify convert to code
|
|
14
17
|
|
|
15
18
|
## Support converters
|
|
16
19
|
|
|
@@ -491,7 +491,7 @@ def post_start_parse(node: StartParseMethod) -> str:
|
|
|
491
491
|
code += f"{name!r}: self._parse_{name}(self._document),"
|
|
492
492
|
code += "}"
|
|
493
493
|
case StructType.ACC_LIST:
|
|
494
|
-
code += INDENT_METHOD_BODY + "return list(
|
|
494
|
+
code += INDENT_METHOD_BODY + "return list(set("
|
|
495
495
|
methods = []
|
|
496
496
|
for expr in node.body:
|
|
497
497
|
name = expr.kwargs["name"]
|
|
@@ -1100,8 +1100,7 @@ def pre_list_unique(node: ExprListUnique) -> str:
|
|
|
1100
1100
|
INDENT_DEFAULT_BODY if have_default_expr(node) else INDENT_METHOD_BODY
|
|
1101
1101
|
)
|
|
1102
1102
|
prv, nxt = prev_next_var(node)
|
|
1103
|
-
|
|
1104
|
-
return f"{indent}{nxt} = list(dict.fromkeys({prv}))"
|
|
1103
|
+
return f"{indent}{nxt} = list(set({prv}))"
|
|
1105
1104
|
|
|
1106
1105
|
|
|
1107
1106
|
def pre_str_map_replace(node: ExprStringMapReplace) -> str:
|
|
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
|