ssc_codegen 0.36.1__tar.gz → 0.36.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 (88) hide show
  1. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/PKG-INFO +1 -1
  2. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/pyproject.toml +1 -1
  3. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/rest.py +9 -1
  4. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/visitor.py +1 -2
  5. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/.gitignore +0 -0
  6. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/LICENSE +0 -0
  7. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/README.md +0 -0
  8. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/__init__.py +0 -0
  9. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/_logging.py +0 -0
  10. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/__init__.py +0 -0
  11. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/array.py +0 -0
  12. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/base.py +0 -0
  13. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/cast.py +0 -0
  14. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/control.py +0 -0
  15. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/extract.py +0 -0
  16. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/function.py +0 -0
  17. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/helpers.py +0 -0
  18. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/jsondef.py +0 -0
  19. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/module.py +0 -0
  20. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/predicate_containers.py +0 -0
  21. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/predicate_ops.py +0 -0
  22. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/regex.py +0 -0
  23. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/rest.py +0 -0
  24. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/selectors.py +0 -0
  25. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/string.py +0 -0
  26. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/struct.py +0 -0
  27. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/typedef.py +0 -0
  28. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/ast/types.py +0 -0
  29. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/__init__.py +0 -0
  30. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/contexts.py +0 -0
  31. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/expressions.py +0 -0
  32. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/format.py +0 -0
  33. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/linter.py +0 -0
  34. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/module_handler.py +0 -0
  35. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/predicates.py +0 -0
  36. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/reader.py +0 -0
  37. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/rest_artifacts.py +0 -0
  38. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/struct_parser.py +0 -0
  39. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/core/type_checking.py +0 -0
  40. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/exceptions.py +0 -0
  41. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/explore.py +0 -0
  42. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/generation/__init__.py +0 -0
  43. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/generation/builder.py +0 -0
  44. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/generation/runtime.py +0 -0
  45. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/health.py +0 -0
  46. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/main.py +0 -0
  47. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/naming.py +0 -0
  48. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/parsers/__init__.py +0 -0
  49. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/parsers/curl.py +0 -0
  50. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/parsers/http.py +0 -0
  51. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/regex_utils.py +0 -0
  52. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/request_spec.py +0 -0
  53. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/__init__.py +0 -0
  54. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/__init__.py +0 -0
  55. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/http_libs/__init__.py +0 -0
  56. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/http_libs/base.py +0 -0
  57. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/http_libs/nethttp.py +0 -0
  58. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/literals.py +0 -0
  59. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/regex.py +0 -0
  60. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/golang/runtime.py +0 -0
  61. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/__init__.py +0 -0
  62. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/http_libs/__init__.py +0 -0
  63. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/http_libs/axios.py +0 -0
  64. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/http_libs/base.py +0 -0
  65. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/http_libs/fetch.py +0 -0
  66. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/rest.py +0 -0
  67. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/javascript/visitor.py +0 -0
  68. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/profile.py +0 -0
  69. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/__init__.py +0 -0
  70. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/__init__.py +0 -0
  71. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/base.py +0 -0
  72. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/bs4.py +0 -0
  73. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/lxml.py +0 -0
  74. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/parsel.py +0 -0
  75. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/html_libs/slax.py +0 -0
  76. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/http_libs/__init__.py +0 -0
  77. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/http_libs/aiohttp.py +0 -0
  78. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/http_libs/base.py +0 -0
  79. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/http_libs/httpx.py +0 -0
  80. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/http_libs/requests.py +0 -0
  81. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/rest.py +0 -0
  82. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/python/visitor.py +0 -0
  83. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/resolver.py +0 -0
  84. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/targets/spec.py +0 -0
  85. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/traversal/__init__.py +0 -0
  86. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/traversal/context.py +0 -0
  87. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/traversal/utils.py +0 -0
  88. {ssc_codegen-0.36.1 → ssc_codegen-0.36.2}/ssc_codegen/traversal/walker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ssc_codegen
3
- Version: 0.36.1
3
+ Version: 0.36.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.36.1"
3
+ version = "0.36.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"
@@ -20,7 +20,9 @@ from ssc_codegen.ast import (
20
20
  PlaceholderTemplate,
21
21
  ResultAliasDef,
22
22
  ResultVariantDef,
23
+ Struct,
23
24
  StructBase,
25
+ StructType as ST,
24
26
  )
25
27
  from ssc_codegen.ast.struct import RequestHttp
26
28
  from ssc_codegen.naming import to_camel_case, to_pascal_case, to_snake_case
@@ -338,7 +340,13 @@ def emit_method_fetch(
338
340
  )
339
341
 
340
342
  # Construct parser from body.
341
- lines.append(f"{i2}return New{name}(string(body))")
343
+ # (raw)struct constructor returns a single value (*Name), wrapper
344
+ # signature is (*Name, error) → must add `, nil`. HTML constructor
345
+ # already returns (*Name, error) so naked tuple pass-through works.
346
+ if isinstance(struct, Struct) and struct.type == ST.RAW:
347
+ lines.append(f"{i2}return New{name}(string(body)), nil")
348
+ else:
349
+ lines.append(f"{i2}return New{name}(string(body))")
342
350
  lines.append(f"{i1}}}")
343
351
  lines.append("")
344
352
  return lines
@@ -138,7 +138,6 @@ from ssc_codegen.naming import (
138
138
  from ssc_codegen.traversal.utils import (
139
139
  find_predicate_container,
140
140
  module_has_html_struct,
141
- module_has_rest,
142
141
  module_uses_http,
143
142
  )
144
143
  from ssc_codegen.generation.builder import ModuleBuilder
@@ -321,7 +320,7 @@ class GoVisitor(BaseWalker):
321
320
  for imp in self._builder.std_imports:
322
321
  if imp not in self._all_std_imports:
323
322
  self._all_std_imports.append(imp)
324
- if module_has_rest(module_ast):
323
+ if module_uses_http(module_ast):
325
324
  self._has_rest = True
326
325
  out: dict[str, str] = {"": _gofmt("\n".join(lines))}
327
326
  for fname, provider in self._file_providers.items():
File without changes
File without changes
File without changes