ssc_codegen 0.26.1__tar.gz → 0.26.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.
Files changed (60) hide show
  1. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/PKG-INFO +1 -1
  2. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/pyproject.toml +1 -1
  3. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_bs4.py +2 -14
  4. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_helpers.py +12 -0
  5. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_lxml.py +2 -0
  6. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_parsel.py +1 -0
  7. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_slax.py +1 -0
  8. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/.gitignore +0 -0
  9. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/LICENSE +0 -0
  10. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/README.md +0 -0
  11. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/__init__.py +0 -0
  12. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/_logging.py +0 -0
  13. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/__init__.py +0 -0
  14. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/array.py +0 -0
  15. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/base.py +0 -0
  16. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/cast.py +0 -0
  17. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/control.py +0 -0
  18. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/extract.py +0 -0
  19. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/helpers.py +0 -0
  20. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/jsondef.py +0 -0
  21. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/module.py +0 -0
  22. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/predicate_containers.py +0 -0
  23. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/predicate_ops.py +0 -0
  24. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/regex.py +0 -0
  25. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/selectors.py +0 -0
  26. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/string.py +0 -0
  27. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/struct.py +0 -0
  28. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/transform.py +0 -0
  29. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/typedef.py +0 -0
  30. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/ast/types.py +0 -0
  31. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/base.py +0 -0
  32. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/helpers.py +0 -0
  33. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/js_pure.py +0 -0
  34. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/py_render.py +0 -0
  35. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/converters/request_spec.py +0 -0
  36. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/__init__.py +0 -0
  37. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/adapter.py +0 -0
  38. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/contexts.py +0 -0
  39. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/expressions.py +0 -0
  40. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/format.py +0 -0
  41. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/linting.py +0 -0
  42. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/module_handler.py +0 -0
  43. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/predicates.py +0 -0
  44. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/reader.py +0 -0
  45. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/struct_parser.py +0 -0
  46. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/core/type_checking.py +0 -0
  47. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/document_utils.py +0 -0
  48. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/exceptions.py +0 -0
  49. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/health.py +0 -0
  50. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/kdl/__init__.py +0 -0
  51. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/kdl/dict_reader.py +0 -0
  52. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/kdl/parser.py +0 -0
  53. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/kdl/reader.py +0 -0
  54. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/main.py +0 -0
  55. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/parsers/__init__.py +0 -0
  56. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/parsers/curl.py +0 -0
  57. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/parsers/http.py +0 -0
  58. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/pseudo_selectors.py +0 -0
  59. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/ssc_codegen/regex_utils.py +0 -0
  60. {ssc_codegen-0.26.1 → ssc_codegen-0.26.2}/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.26.1
3
+ Version: 0.26.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ssc_codegen"
3
- version = "0.26.1"
3
+ version = "0.26.2"
4
4
  description = "Python-dsl code converter to html parser for web scraping "
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -62,12 +62,8 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
62
62
  "import re",
63
63
  "import sys",
64
64
  "from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
65
- "",
66
- "if sys.version_info >= (3, 11):",
67
- " from typing import NotRequired",
68
- "else:",
69
- " from typing_extensions import NotRequired",
70
65
  ]
66
+ base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
71
67
  else:
72
68
  base_imports = [
73
69
  "import json",
@@ -77,15 +73,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
77
73
  ]
78
74
  if not py_helpers.module_is_rest_only(node):
79
75
  base_imports.append("from html import unescape as _html_unescape")
80
- base_imports.extend(
81
- [
82
- "",
83
- "if sys.version_info >= (3, 11):",
84
- " from typing import NotRequired",
85
- "else:",
86
- " from typing_extensions import NotRequired",
87
- ]
88
- )
76
+ base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
89
77
  base_imports.extend(py_helpers.rest_imports(node))
90
78
 
91
79
  # Get transform imports for Python (already collected during parsing)
@@ -10,9 +10,21 @@ import ssc_codegen.ast as a
10
10
  from ssc_codegen.ast.struct import PlaceholderSpec
11
11
 
12
12
  from ssc_codegen.converters.base import ConverterContext
13
+ import sys
14
+
13
15
  from ssc_codegen.converters.helpers import to_pascal_case
14
16
 
17
+ NOT_REQUIRED_IMPORT: list[str] = [
18
+ "",
19
+ "if sys.version_info >= (3, 11):",
20
+ " from typing import NotRequired",
21
+ "else:",
22
+ " from typing_extensions import NotRequired",
23
+ ]
24
+
15
25
  __all__ = [
26
+ # Shared import fragments
27
+ "NOT_REQUIRED_IMPORT",
16
28
  # Runtime module generation
17
29
  "base_utility_lines",
18
30
  "runtime_export_names",
@@ -49,6 +49,8 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
49
49
  base_imports.append("from html import unescape as _html_unescape")
50
50
  base_imports.extend(py_helpers.rest_imports(node))
51
51
 
52
+ base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
53
+
52
54
  # Get transform imports for Python (already collected during parsing)
53
55
  transform_imports = sorted(node.transform_imports.get("py", set()))
54
56
 
@@ -30,6 +30,7 @@ def pre_imports(node: a.Imports, _: ConverterContext):
30
30
  if not py_helpers.module_is_rest_only(node):
31
31
  base_imports.append("from html import unescape as _html_unescape")
32
32
  base_imports.extend(py_helpers.rest_imports(node))
33
+ base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
33
34
 
34
35
  transform_imports = sorted(node.transform_imports.get("py", set()))
35
36
 
@@ -29,6 +29,7 @@ def pre_imports(node: a.Imports, _: ConverterContext):
29
29
  if not py_helpers.module_is_rest_only(node):
30
30
  base_imports.append("from html import unescape as _html_unescape")
31
31
  base_imports.extend(py_helpers.rest_imports(node))
32
+ base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
32
33
 
33
34
  transform_imports = sorted(node.transform_imports.get("py", set()))
34
35
 
File without changes
File without changes
File without changes