ssc_codegen 0.8.8__tar.gz → 0.8.9__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.

Potentially problematic release.


This version of ssc_codegen might be problematic. Click here for more details.

Files changed (52) hide show
  1. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/PKG-INFO +1 -1
  2. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/pyproject.toml +1 -1
  3. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/__init__.py +1 -1
  4. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/js_pure.py +16 -9
  5. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/.gitignore +0 -0
  6. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/LICENSE +0 -0
  7. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/README.md +0 -0
  8. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/_compat.py +0 -0
  9. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/__init__.py +0 -0
  10. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/base.py +0 -0
  11. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_array.py +0 -0
  12. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_cast.py +0 -0
  13. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_core.py +0 -0
  14. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_selectors.py +0 -0
  15. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_string.py +0 -0
  16. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_/nodes_validate.py +0 -0
  17. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_build/__init__.py +0 -0
  18. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_build/main.py +0 -0
  19. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/ast_build/utils.py +0 -0
  20. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/__init__.py +0 -0
  21. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/cli_callbacks.py +0 -0
  22. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/cli_utils.py +0 -0
  23. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/code_callbacks.py +0 -0
  24. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/consts.py +0 -0
  25. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/main.py +0 -0
  26. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/cli/runtime_parse_runners.py +0 -0
  27. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/compiler.py +0 -0
  28. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/consts.py +0 -0
  29. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/__init__.py +0 -0
  30. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/base.py +0 -0
  31. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/go_goquery.py +0 -0
  32. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/helpers.py +0 -0
  33. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/py_base.py +0 -0
  34. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/py_bs4.py +0 -0
  35. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/py_parsel.py +0 -0
  36. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/py_selectolax.py +0 -0
  37. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/templates/__init__.py +0 -0
  38. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/templates/go_goquery.py +0 -0
  39. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/converters/templates/js_pure.py +0 -0
  40. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/document.py +0 -0
  41. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/document_utlis.py +0 -0
  42. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/json_struct.py +0 -0
  43. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/json_to_scc.py +0 -0
  44. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/logs.py +0 -0
  45. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/pseudo_selectors.py +0 -0
  46. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/schema.py +0 -0
  47. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/selector_utils.py +0 -0
  48. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/static_checker/__init__.py +0 -0
  49. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/static_checker/base.py +0 -0
  50. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/static_checker/callbacks.py +0 -0
  51. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/str_utils.py +0 -0
  52. {ssc_codegen-0.8.8 → ssc_codegen-0.8.9}/ssc_codegen/tokens.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssc_codegen
3
- Version: 0.8.8
3
+ Version: 0.8.9
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.8.8"
3
+ version = "0.8.9"
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.8.8"
10
+ VERSION = "0.8.9"
11
11
 
12
12
 
13
13
  class __MISSING(object):
@@ -353,9 +353,10 @@ def pre_list_str_replace(node: ExprListStringReplace) -> str:
353
353
  def pre_str_regex(node: ExprStringRegex) -> str:
354
354
  prv, nxt = prev_next_var(node)
355
355
  pattern, group, ignore_case = node.unpack_args()
356
- pattern = f"/{node.pattern}/g"
356
+ pattern = pattern.replace("/", "\\/")
357
+ pattern = f"/{pattern}/g"
357
358
  if ignore_case:
358
- return f'let {nxt} = (new RegExp({pattern}, "i")).exec({prv})[{group}];'
359
+ pattern += "i"
359
360
  return f"let {nxt} = (new RegExp({pattern})).exec({prv})[{group}];"
360
361
 
361
362
 
@@ -363,9 +364,10 @@ def pre_str_regex(node: ExprStringRegex) -> str:
363
364
  def pre_str_regex_all(node: ExprStringRegexAll) -> str:
364
365
  prv, nxt = prev_next_var(node)
365
366
  pattern, ignore_case = node.unpack_args()
366
- pattern = f"/{node.pattern}/g"
367
+ pattern = pattern.replace("/", "\\/")
368
+ pattern = f"/{pattern}/g"
367
369
  if ignore_case:
368
- return f'let {nxt} = (new RegExp({pattern}, "i")).exec({prv});'
370
+ pattern += "i"
369
371
  return f"let {nxt} = (new RegExp({pattern})).exec({prv});"
370
372
 
371
373
 
@@ -373,7 +375,8 @@ def pre_str_regex_all(node: ExprStringRegexAll) -> str:
373
375
  def pre_str_regex_sub(node: ExprStringRegexSub) -> str:
374
376
  prv, nxt = prev_next_var(node)
375
377
  pattern, repl = node.unpack_args()
376
- pattern = f"/{node.pattern}/g"
378
+ pattern = pattern.replace("/", "\\/")
379
+ pattern = f"/{pattern}/g"
377
380
 
378
381
  return f"let {nxt} = {prv}.replace({pattern}, {repl!r});"
379
382
 
@@ -382,7 +385,8 @@ def pre_str_regex_sub(node: ExprStringRegexSub) -> str:
382
385
  def pre_list_str_regex_sub(node: ExprListStringRegexSub) -> str:
383
386
  prv, nxt = prev_next_var(node)
384
387
  pattern, repl = node.unpack_args()
385
- pattern = f"/{node.pattern}/g"
388
+ pattern = pattern.replace("/", "\\/")
389
+ pattern = f"/{pattern}/g"
386
390
  return f"let {nxt} = {prv}.map(e => e.replace({pattern}, {repl!r}));"
387
391
 
388
392
 
@@ -448,7 +452,8 @@ def pre_is_contains(node: ExprIsContains) -> str:
448
452
  def pre_is_regex(node: ExprStringIsRegex) -> str:
449
453
  prv, nxt = prev_next_var(node)
450
454
  pattern, ignore_case, msg = node.unpack_args()
451
- pattern = f"/{node.pattern}/g"
455
+ pattern = pattern.replace("/", "\\/")
456
+ pattern = f"/{pattern}/g"
452
457
  if ignore_case:
453
458
  pattern += "i"
454
459
 
@@ -464,7 +469,8 @@ def pre_list_str_any_is_regex(node: ExprListStringAnyRegex) -> str:
464
469
  # a.some(i => (new RegExp("foo")).test(i))
465
470
  prv, nxt = prev_next_var(node)
466
471
  pattern, ignore_case, msg = node.unpack_args()
467
- pattern = f"/{node.pattern}/g"
472
+ pattern = pattern.replace("/", "\\/")
473
+ pattern = f"/{pattern}/g"
468
474
  if ignore_case:
469
475
  pattern += "i"
470
476
 
@@ -480,7 +486,8 @@ def pre_list_str_all_is_regex(node: ExprListStringAllRegex) -> str:
480
486
  prv, nxt = prev_next_var(node)
481
487
  # a.every(i => (new RegExp("foo")).test)
482
488
  pattern, ignore_case, msg = node.unpack_args()
483
- pattern = f"/{node.pattern}/g"
489
+ pattern = pattern.replace("/", "\\/")
490
+ pattern = f"/{pattern}/g"
484
491
  if ignore_case:
485
492
  pattern += "i"
486
493
 
File without changes
File without changes
File without changes