ssc_codegen 0.25.2__tar.gz → 0.26.0__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.25.2 → ssc_codegen-0.26.0}/PKG-INFO +1 -1
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/pyproject.toml +1 -1
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/request_spec.py +1 -1
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/expressions.py +2 -2
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/linting.py +12 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/.gitignore +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/LICENSE +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/README.md +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/__init__.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/_logging.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/__init__.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/array.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/base.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/cast.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/control.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/extract.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/helpers.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/jsondef.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/module.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/predicate_containers.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/predicate_ops.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/regex.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/selectors.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/string.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/struct.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/transform.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/typedef.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/ast/types.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/base.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/helpers.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/js_pure.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_bs4.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_helpers.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_lxml.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_parsel.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_render.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/converters/py_slax.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/__init__.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/adapter.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/contexts.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/format.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/module_handler.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/predicates.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/reader.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/struct_parser.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/core/type_checking.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/document_utils.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/exceptions.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/health.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/kdl/__init__.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/kdl/dict_reader.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/kdl/parser.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/kdl/reader.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/main.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/parsers/__init__.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/parsers/curl.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/parsers/http.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/pseudo_selectors.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/ssc_codegen/regex_utils.py +0 -0
- {ssc_codegen-0.25.2 → ssc_codegen-0.26.0}/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.
|
|
3
|
+
Version: 0.26.0
|
|
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
|
|
@@ -167,7 +167,7 @@ _FLOAT_RE = _re.compile(
|
|
|
167
167
|
r"[+-]?(?:\d(?:[\d_])*\.\d(?:[\d_])*|\d(?:[\d_])*[eE][+-]?\d(?:[\d_])*|\d(?:[\d_]*)\.\d(?:[\d_]*)[eE][+-]?\d(?:[\d_])*)\Z"
|
|
168
168
|
)
|
|
169
169
|
|
|
170
|
-
_DEFINE_REF_RE = _re.compile(r"\{\{([A-
|
|
170
|
+
_DEFINE_REF_RE = _re.compile(r"\{\{([A-Z_][A-Z0-9_-]*)\}\}")
|
|
171
171
|
|
|
172
172
|
|
|
173
173
|
def _resolve_define_references(value: str, ctx: ParseContext) -> str:
|
|
@@ -175,7 +175,7 @@ def _resolve_define_references(value: str, ctx: ParseContext) -> str:
|
|
|
175
175
|
name = m.group(1)
|
|
176
176
|
resolved = ctx.property_defines.get(name)
|
|
177
177
|
if resolved is None:
|
|
178
|
-
|
|
178
|
+
return m.group(0)
|
|
179
179
|
return str(resolved)
|
|
180
180
|
|
|
181
181
|
return _DEFINE_REF_RE.sub(_replacer, value)
|
|
@@ -1111,12 +1111,24 @@ def lint_rest_cross_refs(ctx: ParseContext, lint: LintContext) -> None:
|
|
|
1111
1111
|
)
|
|
1112
1112
|
|
|
1113
1113
|
|
|
1114
|
+
_DEFINE_NAME_RE = _re.compile(r"^[A-Z_][A-Z0-9_-]*\Z")
|
|
1115
|
+
|
|
1116
|
+
|
|
1114
1117
|
def lint_define_node(
|
|
1115
1118
|
node: KdlNode, ctx: ParseContext, lint: LintContext
|
|
1116
1119
|
) -> None:
|
|
1117
1120
|
"""Validate module-level define."""
|
|
1118
1121
|
children = lint.get_children_nodes(node)
|
|
1119
1122
|
args = lint.get_args(node)
|
|
1123
|
+
if args:
|
|
1124
|
+
name = args[0]
|
|
1125
|
+
if not _DEFINE_NAME_RE.match(name):
|
|
1126
|
+
lint.error(
|
|
1127
|
+
node,
|
|
1128
|
+
message=f"define name '{name}' must be UPPER_CASE ([A-Z_][A-Z0-9_-]*)",
|
|
1129
|
+
code="E002",
|
|
1130
|
+
hint="use UPPER_CASE: define MY-VAR=... or define MY_BLOCK { ... }",
|
|
1131
|
+
)
|
|
1120
1132
|
if children:
|
|
1121
1133
|
if not args:
|
|
1122
1134
|
lint.error(
|
|
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
|
|
File without changes
|
|
File without changes
|