ssc_codegen 0.29.3__tar.gz → 0.29.4__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.
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/PKG-INFO +1 -1
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/pyproject.toml +1 -1
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/py_bs4.py +7 -5
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/py_lxml.py +5 -3
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/py_parsel.py +5 -3
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/py_slax.py +5 -3
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/.gitignore +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/LICENSE +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/README.md +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/__init__.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/_logging.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/__init__.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/array.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/base.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/cast.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/control.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/extract.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/helpers.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/jsondef.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/module.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/predicate_containers.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/predicate_ops.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/regex.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/selectors.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/string.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/struct.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/transform.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/typedef.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/ast/types.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/base.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/helpers.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/js_pure.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/py_render.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/converters/request_spec.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/__init__.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/adapter.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/contexts.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/expressions.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/format.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/linting.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/module_handler.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/predicates.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/reader.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/struct_parser.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/core/type_checking.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/document_utils.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/exceptions.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/health.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/kdl/__init__.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/kdl/dict_reader.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/kdl/parser.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/kdl/reader.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/main.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/parsers/__init__.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/parsers/curl.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/parsers/http.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/pseudo_selectors.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/regex_utils.py +0 -0
- {ssc_codegen-0.29.3 → ssc_codegen-0.29.4}/ssc_codegen/selector_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssc_codegen
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.4
|
|
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
|
|
@@ -55,7 +55,7 @@ _BASE_UTILITY_LINES: list[str] = [
|
|
|
55
55
|
" pass",
|
|
56
56
|
"",
|
|
57
57
|
"def unescape_text(text: str) -> str:",
|
|
58
|
-
" s =
|
|
58
|
+
" s = ssc_html_unescape(text)",
|
|
59
59
|
" s = _RE_HEX_ENTITY.sub(lambda m: chr(int(m.group(1), 16)), s)",
|
|
60
60
|
" s = _RE_UNICODE_ENTITY.sub(lambda m: chr(int(m.group(1), 16)), s)",
|
|
61
61
|
" s = _RE_BYTES_ENTITY.sub(lambda m: chr(int(m.group(1), 16)), s)",
|
|
@@ -111,7 +111,7 @@ def runtime_module_content(node: a.Node) -> str:
|
|
|
111
111
|
"import re",
|
|
112
112
|
"import sys",
|
|
113
113
|
"from typing import Dict",
|
|
114
|
-
"from html import unescape as
|
|
114
|
+
"from html import unescape as ssc_html_unescape",
|
|
115
115
|
]
|
|
116
116
|
has_rest = _module_has_rest(node)
|
|
117
117
|
if has_rest:
|
|
@@ -252,7 +252,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
252
252
|
"import re",
|
|
253
253
|
"import sys",
|
|
254
254
|
"from dataclasses import dataclass",
|
|
255
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
255
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
256
256
|
]
|
|
257
257
|
base_imports.extend(NOT_REQUIRED_IMPORT)
|
|
258
258
|
else:
|
|
@@ -261,10 +261,12 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
261
261
|
"import re",
|
|
262
262
|
"import sys",
|
|
263
263
|
"from dataclasses import dataclass",
|
|
264
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
264
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
265
265
|
]
|
|
266
266
|
if not module_is_rest_only(node):
|
|
267
|
-
base_imports.append(
|
|
267
|
+
base_imports.append(
|
|
268
|
+
"from html import unescape as ssc_html_unescape"
|
|
269
|
+
)
|
|
268
270
|
base_imports.extend(NOT_REQUIRED_IMPORT)
|
|
269
271
|
base_imports.extend(rest_imports(node))
|
|
270
272
|
|
|
@@ -36,7 +36,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
36
36
|
"import re",
|
|
37
37
|
"import sys",
|
|
38
38
|
"from dataclasses import dataclass",
|
|
39
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
39
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
40
40
|
]
|
|
41
41
|
else:
|
|
42
42
|
base_imports = [
|
|
@@ -44,10 +44,12 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
44
44
|
"import re",
|
|
45
45
|
"import sys",
|
|
46
46
|
"from dataclasses import dataclass",
|
|
47
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
47
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
48
48
|
]
|
|
49
49
|
if not py_bs4.module_is_rest_only(node):
|
|
50
|
-
base_imports.append(
|
|
50
|
+
base_imports.append(
|
|
51
|
+
"from html import unescape as ssc_html_unescape"
|
|
52
|
+
)
|
|
51
53
|
base_imports.extend(py_bs4.rest_imports(node))
|
|
52
54
|
|
|
53
55
|
base_imports.extend(py_bs4.NOT_REQUIRED_IMPORT)
|
|
@@ -28,7 +28,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
28
28
|
"import re",
|
|
29
29
|
"import sys",
|
|
30
30
|
"from dataclasses import dataclass",
|
|
31
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
31
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
32
32
|
]
|
|
33
33
|
base_imports.extend(py_bs4.NOT_REQUIRED_IMPORT)
|
|
34
34
|
else:
|
|
@@ -37,10 +37,12 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
37
37
|
"import re",
|
|
38
38
|
"import sys",
|
|
39
39
|
"from dataclasses import dataclass",
|
|
40
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
40
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
41
41
|
]
|
|
42
42
|
if not py_bs4.module_is_rest_only(node):
|
|
43
|
-
base_imports.append(
|
|
43
|
+
base_imports.append(
|
|
44
|
+
"from html import unescape as ssc_html_unescape"
|
|
45
|
+
)
|
|
44
46
|
base_imports.extend(py_bs4.NOT_REQUIRED_IMPORT)
|
|
45
47
|
base_imports.extend(py_bs4.rest_imports(node))
|
|
46
48
|
|
|
@@ -27,7 +27,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
27
27
|
"import re",
|
|
28
28
|
"import sys",
|
|
29
29
|
"from dataclasses import dataclass",
|
|
30
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
30
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
31
31
|
]
|
|
32
32
|
base_imports.extend(py_bs4.NOT_REQUIRED_IMPORT)
|
|
33
33
|
else:
|
|
@@ -36,10 +36,12 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
|
|
|
36
36
|
"import re",
|
|
37
37
|
"import sys",
|
|
38
38
|
"from dataclasses import dataclass",
|
|
39
|
-
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
|
|
39
|
+
"from typing import TypedDict, Optional, Any, List, Dict, Union, Literal, Mapping",
|
|
40
40
|
]
|
|
41
41
|
if not py_bs4.module_is_rest_only(node):
|
|
42
|
-
base_imports.append(
|
|
42
|
+
base_imports.append(
|
|
43
|
+
"from html import unescape as ssc_html_unescape"
|
|
44
|
+
)
|
|
43
45
|
base_imports.extend(py_bs4.NOT_REQUIRED_IMPORT)
|
|
44
46
|
base_imports.extend(py_bs4.rest_imports(node))
|
|
45
47
|
|
|
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
|