ssc_codegen 0.29.5__tar.gz → 0.29.6__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 (59) hide show
  1. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/PKG-INFO +1 -1
  2. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/pyproject.toml +1 -1
  3. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/js_pure.py +1 -0
  4. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/py_bs4.py +5 -11
  5. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/py_lxml.py +3 -3
  6. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/.gitignore +0 -0
  7. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/LICENSE +0 -0
  8. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/README.md +0 -0
  9. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/__init__.py +0 -0
  10. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/_logging.py +0 -0
  11. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/__init__.py +0 -0
  12. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/array.py +0 -0
  13. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/base.py +0 -0
  14. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/cast.py +0 -0
  15. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/control.py +0 -0
  16. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/extract.py +0 -0
  17. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/helpers.py +0 -0
  18. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/jsondef.py +0 -0
  19. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/module.py +0 -0
  20. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/predicate_containers.py +0 -0
  21. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/predicate_ops.py +0 -0
  22. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/regex.py +0 -0
  23. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/selectors.py +0 -0
  24. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/string.py +0 -0
  25. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/struct.py +0 -0
  26. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/transform.py +0 -0
  27. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/typedef.py +0 -0
  28. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/ast/types.py +0 -0
  29. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/base.py +0 -0
  30. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/helpers.py +0 -0
  31. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/py_parsel.py +0 -0
  32. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/py_render.py +0 -0
  33. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/py_slax.py +0 -0
  34. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/converters/request_spec.py +0 -0
  35. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/__init__.py +0 -0
  36. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/adapter.py +0 -0
  37. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/contexts.py +0 -0
  38. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/expressions.py +0 -0
  39. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/format.py +0 -0
  40. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/linting.py +0 -0
  41. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/module_handler.py +0 -0
  42. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/predicates.py +0 -0
  43. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/reader.py +0 -0
  44. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/struct_parser.py +0 -0
  45. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/core/type_checking.py +0 -0
  46. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/document_utils.py +0 -0
  47. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/exceptions.py +0 -0
  48. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/health.py +0 -0
  49. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/kdl/__init__.py +0 -0
  50. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/kdl/dict_reader.py +0 -0
  51. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/kdl/parser.py +0 -0
  52. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/kdl/reader.py +0 -0
  53. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/main.py +0 -0
  54. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/parsers/__init__.py +0 -0
  55. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/parsers/curl.py +0 -0
  56. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/parsers/http.py +0 -0
  57. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/pseudo_selectors.py +0 -0
  58. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/ssc_codegen/regex_utils.py +0 -0
  59. {ssc_codegen-0.29.5 → ssc_codegen-0.29.6}/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.5
3
+ Version: 0.29.6
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.29.5"
3
+ version = "0.29.6"
4
4
  description = "Python-dsl code converter to html parser for web scraping "
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -588,6 +588,7 @@ def pre_struct_check_method(node: a.CheckMethod, ctx: ConverterContext):
588
588
  method_name = to_camel_case(node.name)
589
589
  return [
590
590
  f"{ctx.indent}{method_name}() " + "{",
591
+ f"{ctx.deeper().indent}let {ctx.var_name} = this._doc;",
591
592
  ]
592
593
 
593
594
 
@@ -307,7 +307,7 @@ def pre_utilities(node: a.Utilities, ctx: ConverterContext):
307
307
  runtime = ctx.meta.get("runtime_module")
308
308
  if runtime:
309
309
  names = runtime_export_names(node)
310
- return [f"from {runtime} import " + ", ".join(names), ""]
310
+ return [f"from .{runtime} import " + ", ".join(names), ""]
311
311
 
312
312
  if module_is_rest_only(node):
313
313
  lines = []
@@ -808,16 +808,10 @@ def pre_struct_check_method(node: a.CheckMethod, ctx: ConverterContext):
808
808
  from ssc_codegen.converters.helpers import to_snake_case
809
809
 
810
810
  method_name = to_snake_case(node.name)
811
- return [f" def {method_name}(self) -> bool:"]
812
-
813
-
814
- # @PY_BASE_CONVERTER.post(a.CheckMethod)
815
- # def post_struct_check_method(node: a.CheckMethod, ctx: ConverterContext):
816
- # return [
817
- # " return True",
818
- # " except Exception:",
819
- # " return False",
820
- # ]
811
+ return [
812
+ f" def {method_name}(self) -> bool:",
813
+ f" {ctx.var_name} = self._doc",
814
+ ]
821
815
 
822
816
 
823
817
  @PY_BASE_CONVERTER(a.SplitDoc)
@@ -87,7 +87,7 @@ def pre_utilities(node: a.Utilities, ctx: ConverterContext):
87
87
  if runtime:
88
88
  names = py_bs4.runtime_export_names(node)
89
89
  names.append(_FALLBACK_HTML_EXPORT)
90
- return [f"from {runtime} import " + ", ".join(names), ""]
90
+ return [f"from .{runtime} import " + ", ".join(names), ""]
91
91
 
92
92
  if py_bs4.module_is_rest_only(node):
93
93
  lines = []
@@ -352,7 +352,7 @@ def pre_expr_attr(node: a.Attr, ctx: ConverterContext):
352
352
  @PY_LXML_CONVERTER(a.PredCss)
353
353
  def pre_expr_pred_css(node: a.PredCss, ctx: ConverterContext):
354
354
  query = repr(node.query)
355
- cond = f"bool(i.cssselect({query}))"
355
+ cond = f"i.cssselect({query}) is not None"
356
356
  if ctx.index == 0:
357
357
  return ctx.indent + cond
358
358
  return ctx.indent + f"and {cond}"
@@ -361,7 +361,7 @@ def pre_expr_pred_css(node: a.PredCss, ctx: ConverterContext):
361
361
  @PY_LXML_CONVERTER(a.PredXpath)
362
362
  def pre_expr_pred_xpath(node: a.PredXpath, ctx: ConverterContext):
363
363
  query = repr(node.query)
364
- cond = f"bool(i.xpath({query}))"
364
+ cond = f"i.xpath({query}) is not None"
365
365
  if ctx.index == 0:
366
366
  return ctx.indent + cond
367
367
  return ctx.indent + f"and {cond}"
File without changes
File without changes
File without changes