ssc_codegen 0.10.1__tar.gz → 0.10.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 (61) hide show
  1. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/PKG-INFO +3 -1
  2. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/README.md +2 -0
  3. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/pyproject.toml +1 -1
  4. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/__init__.py +3 -1
  5. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/helpers.py +1 -1
  6. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/py_base.py +2 -2
  7. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/document.py +205 -316
  8. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/.gitignore +0 -0
  9. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/LICENSE +0 -0
  10. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/_compat.py +0 -0
  11. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/__init__.py +0 -0
  12. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/base.py +0 -0
  13. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_array.py +0 -0
  14. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_cast.py +0 -0
  15. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_core.py +0 -0
  16. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_filter.py +0 -0
  17. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_selectors.py +0 -0
  18. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_string.py +0 -0
  19. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_/nodes_validate.py +0 -0
  20. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_build/__init__.py +0 -0
  21. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_build/main.py +0 -0
  22. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_build/utils.py +0 -0
  23. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_grep_rules/js_rules.yml +0 -0
  24. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/ast_grep_rules/py_rules.yml +0 -0
  25. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/__init__.py +0 -0
  26. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/ast_grep.py +0 -0
  27. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/cli_callbacks.py +0 -0
  28. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/cli_utils.py +0 -0
  29. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/code_callbacks.py +0 -0
  30. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/consts.py +0 -0
  31. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/main.py +0 -0
  32. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/cli/runtime_parse_runners.py +0 -0
  33. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/compiler.py +0 -0
  34. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/__init__.py +0 -0
  35. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/base.py +0 -0
  36. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/go_goquery.py +0 -0
  37. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/js_pure.py +0 -0
  38. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/lua_htmlparser.py +0 -0
  39. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/py_bs4.py +0 -0
  40. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/py_lxml.py +0 -0
  41. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/py_parsel.py +0 -0
  42. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/py_selectolax.py +0 -0
  43. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/__init__.py +0 -0
  44. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/go_goquery.py +0 -0
  45. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/js_pure.py +0 -0
  46. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/lua_base.py +0 -0
  47. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/lua_css_compat.py +0 -0
  48. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/lua_re_compat.py +0 -0
  49. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/converters/templates/py_base.py +0 -0
  50. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/document_utlis.py +0 -0
  51. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/json_struct.py +0 -0
  52. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/json_to_scc.py +0 -0
  53. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/logs.py +0 -0
  54. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/pseudo_selectors.py +0 -0
  55. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/schema.py +0 -0
  56. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/selector_utils.py +0 -0
  57. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/static_checker/__init__.py +0 -0
  58. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/static_checker/base.py +0 -0
  59. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/static_checker/callbacks.py +0 -0
  60. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/str_utils.py +0 -0
  61. {ssc_codegen-0.10.1 → ssc_codegen-0.10.2}/ssc_codegen/tokens.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssc_codegen
3
- Version: 0.10.1
3
+ Version: 0.10.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
@@ -247,7 +247,9 @@ You can use any html source:
247
247
 
248
248
  ## See also
249
249
 
250
+
250
251
  - [Brief](docs/briefing.md) about css selectors and regular expressions.
252
+ - [LLM]("llm.md") experimental prompt for generate code
251
253
  - [Quickstart](docs/quickstart.md) about css selectors and regular expressions.
252
254
  - [Tutorial](docs/tutorial.md) basic usage ssc-gen
253
255
  - [AST reference](docs/ast_reference.md) about generation code from AST
@@ -210,7 +210,9 @@ You can use any html source:
210
210
 
211
211
  ## See also
212
212
 
213
+
213
214
  - [Brief](docs/briefing.md) about css selectors and regular expressions.
215
+ - [LLM]("llm.md") experimental prompt for generate code
214
216
  - [Quickstart](docs/quickstart.md) about css selectors and regular expressions.
215
217
  - [Tutorial](docs/tutorial.md) basic usage ssc-gen
216
218
  - [AST reference](docs/ast_reference.md) about generation code from AST
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ssc_codegen"
3
- version = "0.10.1"
3
+ version = "0.10.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"
@@ -7,7 +7,7 @@ from ssc_codegen.schema import ItemSchema, DictSchema, ListSchema, FlatListSchem
7
7
 
8
8
  setup_logger()
9
9
 
10
- VERSION = "0.10.1"
10
+ VERSION = "0.10.2"
11
11
 
12
12
 
13
13
  class __MISSING(object):
@@ -28,10 +28,12 @@ class Document(
28
28
  JsonDocument,
29
29
  BooleanDocument
30
30
  ):
31
+ """Special Common Document or Element marker manipulations"""
31
32
  pass
32
33
 
33
34
 
34
35
  class Nested(HTMLDocument, NestedDocument, ArrayDocument, AssertDocument):
36
+ """Special Common Document or Element marker for provide Nested structure parsers"""
35
37
  pass
36
38
 
37
39
 
@@ -141,7 +141,7 @@ def _js_default_cast_t(i) -> str:
141
141
  return "[" + ",".join(repr(j) for j in i) + "]"
142
142
  return "[]"
143
143
  elif isinstance(i, str):
144
- return repr(str)
144
+ return repr(i)
145
145
  elif isinstance(i, bool):
146
146
  return "true" if i else "false"
147
147
  # int, float types
@@ -951,9 +951,9 @@ def pre_is_regex(node: ExprStringIsRegex) -> str:
951
951
  else:
952
952
  flags = py_regex_flags(ignore_case)
953
953
  if flags:
954
- expr = f"re.search({pattern}, {prv}, re.I)"
954
+ expr = f"re.search({pattern!r}, {prv}, re.I)"
955
955
  else:
956
- expr = f"re.search({pattern}, {prv})"
956
+ expr = f"re.search({pattern!r}, {prv})"
957
957
 
958
958
  expr = indent + f"assert {expr}, {msg}"
959
959
  if is_last_var_no_ret(node):