ssc_codegen 0.26.3__tar.gz → 0.26.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.
Files changed (60) hide show
  1. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/PKG-INFO +1 -1
  2. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/pyproject.toml +1 -1
  3. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/js_pure.py +4 -0
  4. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_bs4.py +7 -2
  5. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_helpers.py +561 -561
  6. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_lxml.py +4 -0
  7. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_parsel.py +4 -0
  8. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_slax.py +4 -0
  9. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/.gitignore +0 -0
  10. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/LICENSE +0 -0
  11. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/README.md +0 -0
  12. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/__init__.py +0 -0
  13. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/_logging.py +0 -0
  14. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/__init__.py +0 -0
  15. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/array.py +0 -0
  16. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/base.py +0 -0
  17. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/cast.py +0 -0
  18. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/control.py +0 -0
  19. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/extract.py +0 -0
  20. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/helpers.py +0 -0
  21. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/jsondef.py +0 -0
  22. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/module.py +0 -0
  23. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/predicate_containers.py +0 -0
  24. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/predicate_ops.py +0 -0
  25. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/regex.py +0 -0
  26. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/selectors.py +0 -0
  27. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/string.py +0 -0
  28. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/struct.py +0 -0
  29. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/transform.py +0 -0
  30. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/typedef.py +0 -0
  31. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/ast/types.py +0 -0
  32. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/base.py +0 -0
  33. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/helpers.py +0 -0
  34. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/py_render.py +0 -0
  35. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/converters/request_spec.py +0 -0
  36. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/__init__.py +0 -0
  37. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/adapter.py +0 -0
  38. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/contexts.py +0 -0
  39. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/expressions.py +0 -0
  40. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/format.py +0 -0
  41. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/linting.py +0 -0
  42. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/module_handler.py +0 -0
  43. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/predicates.py +0 -0
  44. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/reader.py +0 -0
  45. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/struct_parser.py +0 -0
  46. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/core/type_checking.py +0 -0
  47. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/document_utils.py +0 -0
  48. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/exceptions.py +0 -0
  49. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/health.py +0 -0
  50. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/kdl/__init__.py +0 -0
  51. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/kdl/dict_reader.py +0 -0
  52. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/kdl/parser.py +0 -0
  53. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/kdl/reader.py +0 -0
  54. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/main.py +0 -0
  55. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/parsers/__init__.py +0 -0
  56. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/parsers/curl.py +0 -0
  57. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/parsers/http.py +0 -0
  58. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/pseudo_selectors.py +0 -0
  59. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/ssc_codegen/regex_utils.py +0 -0
  60. {ssc_codegen-0.26.3 → ssc_codegen-0.26.5}/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.3
3
+ Version: 0.26.5
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.3"
3
+ version = "0.26.5"
4
4
  description = "Python-dsl code converter to html parser for web scraping "
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -594,6 +594,8 @@ def pre_start_parse(node: a.StartParse, ctx: ConverterContext):
594
594
  # type
595
595
  name = to_pascal_case(node.struct.name)
596
596
  match node.struct_type:
597
+ case a.StructType.REST:
598
+ return
597
599
  case a.StructType.ITEM:
598
600
  ret_type = f"{name}Type"
599
601
  case a.StructType.LIST:
@@ -619,6 +621,8 @@ def pre_start_parse(node: a.StartParse, ctx: ConverterContext):
619
621
  @JS_CONVERTER.post(a.StartParse)
620
622
  def post_start_parse(node: a.StartParse, ctx: ConverterContext):
621
623
  lines: list[str] = []
624
+ if node.struct_type == a.StructType.REST:
625
+ return
622
626
  if node.use_pre_validate:
623
627
  lines.append(f"{ctx.indent * 2}this._preValidate(this._doc);")
624
628
 
@@ -61,6 +61,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
61
61
  "import json",
62
62
  "import re",
63
63
  "import sys",
64
+ "from dataclasses import dataclass"
64
65
  "from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
65
66
  ]
66
67
  base_imports.extend(py_helpers.NOT_REQUIRED_IMPORT)
@@ -69,6 +70,7 @@ def pre_imports(node: a.Imports, ctx: ConverterContext):
69
70
  "import json",
70
71
  "import re",
71
72
  "import sys",
73
+ "from dataclasses import dataclass"
72
74
  "from typing import TypedDict, Optional, Any, List, Dict, Union, Literal",
73
75
  ]
74
76
  if not py_helpers.module_is_rest_only(node):
@@ -225,6 +227,8 @@ def pre_start_parse(node: a.StartParse, ctx: ConverterContext):
225
227
  name = to_pascal_case(node.struct.name)
226
228
 
227
229
  match node.struct_type:
230
+ case a.StructType.REST:
231
+ return
228
232
  case a.StructType.ITEM:
229
233
  ret_type = f"{name}Type"
230
234
  case a.StructType.LIST:
@@ -245,10 +249,11 @@ def pre_start_parse(node: a.StartParse, ctx: ConverterContext):
245
249
  @PY_BASE_CONVERTER.post(a.StartParse)
246
250
  def post_start_parse(node: a.StartParse, ctx: ConverterContext):
247
251
  lines: list[str] = []
252
+ if node.struct_type == a.StructType.REST:
253
+ return
254
+
248
255
  if node.use_pre_validate:
249
256
  lines.append(f"{ctx.indent * 2}self._pre_validate(self._doc)")
250
- # TODO: pre_validate call
251
- # TODO: move init fields here
252
257
  match node.struct_type:
253
258
  case a.StructType.ITEM:
254
259
  # return {name: self_parse_name(self._doc), ...}