ssc_codegen 0.19.4__tar.gz → 0.21.0__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 (66) hide show
  1. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/PKG-INFO +5 -1
  2. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/pyproject.toml +119 -112
  3. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/py_bs4.py +19 -336
  4. ssc_codegen-0.21.0/ssc_codegen/converters/py_helpers.py +361 -0
  5. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/py_lxml.py +4 -3
  6. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/py_parsel.py +3 -2
  7. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/py_slax.py +3 -2
  8. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/main.py +222 -0
  9. ssc_codegen-0.21.0/ssc_codegen/openapi/__init__.py +87 -0
  10. ssc_codegen-0.21.0/ssc_codegen/openapi/converter.py +684 -0
  11. ssc_codegen-0.21.0/ssc_codegen/openapi/emitter.py +128 -0
  12. ssc_codegen-0.21.0/ssc_codegen/openapi/parser.py +143 -0
  13. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/parsers/spec.py +3 -1
  14. ssc_codegen-0.21.0/ssc_codegen/repl.py +769 -0
  15. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/.gitignore +0 -0
  16. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/LICENSE +0 -0
  17. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/README.md +0 -0
  18. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/__init__.py +0 -0
  19. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/_logging.py +0 -0
  20. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/__init__.py +0 -0
  21. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/array.py +0 -0
  22. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/base.py +0 -0
  23. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/cast.py +0 -0
  24. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/control.py +0 -0
  25. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/extract.py +0 -0
  26. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/helpers.py +0 -0
  27. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/jsondef.py +0 -0
  28. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/module.py +0 -0
  29. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/predicate_containers.py +0 -0
  30. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/predicate_ops.py +0 -0
  31. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/regex.py +0 -0
  32. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/selectors.py +0 -0
  33. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/string.py +0 -0
  34. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/struct.py +0 -0
  35. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/transform.py +0 -0
  36. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/typedef.py +0 -0
  37. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/ast/types.py +0 -0
  38. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/base.py +0 -0
  39. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/go_goquery.py +0 -0
  40. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/helpers.py +0 -0
  41. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/converters/js_pure.py +0 -0
  42. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/document_utils.py +0 -0
  43. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/exceptions.py +0 -0
  44. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/health.py +0 -0
  45. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/kdl/__init__.py +0 -0
  46. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/kdl/parser.py +0 -0
  47. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/__init__.py +0 -0
  48. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/_kdl_lang.py +0 -0
  49. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/base.py +0 -0
  50. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/errors.py +0 -0
  51. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/format_errors.py +0 -0
  52. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/metadata.py +0 -0
  53. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/navigation.py +0 -0
  54. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/path.py +0 -0
  55. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/rule_keywords.py +0 -0
  56. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/rules.py +0 -0
  57. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/rules_struct.py +0 -0
  58. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/type_rules.py +0 -0
  59. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/linter/types.py +0 -0
  60. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/parser.py +0 -0
  61. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/parsers/__init__.py +0 -0
  62. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/parsers/curl.py +0 -0
  63. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/parsers/http.py +0 -0
  64. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/pseudo_selectors.py +0 -0
  65. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/ssc_codegen/regex_utils.py +0 -0
  66. {ssc_codegen-0.19.4 → ssc_codegen-0.21.0}/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.19.4
3
+ Version: 0.21.0
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
@@ -24,9 +24,13 @@ Requires-Dist: click<8.2.0
24
24
  Requires-Dist: colorama>=0.4.6; sys_platform == 'win32'
25
25
  Requires-Dist: cssselect>=1.2.0
26
26
  Requires-Dist: lxml>=5.3.0
27
+ Requires-Dist: pyyaml>=6.0
27
28
  Requires-Dist: soupsieve>=2.6
28
29
  Requires-Dist: typer>=0.15.1
29
30
  Requires-Dist: typing-extensions; python_version < '3.11'
31
+ Provides-Extra: repl
32
+ Requires-Dist: httpx>=0.28.1; extra == 'repl'
33
+ Requires-Dist: ipython>=8.39.0; extra == 'repl'
30
34
  Description-Content-Type: text/markdown
31
35
 
32
36
  # ssc-codegen
@@ -1,112 +1,119 @@
1
- [project]
2
- name = "ssc_codegen"
3
- version = "0.19.4"
4
- description = "Python-dsl code converter to html parser for web scraping "
5
- readme = "README.md"
6
- requires-python = ">=3.10"
7
- dependencies = [
8
- "bs4>=0.0.2",
9
- "colorama>=0.4.6 ; sys_platform == 'win32'",
10
- "cssselect>=1.2.0",
11
- "lxml>=5.3.0",
12
- "soupsieve>=2.6",
13
- "typer>=0.15.1",
14
- "typing_extensions;python_version<'3.11'",
15
- # https://github.com/fastapi/typer/discussions/1215
16
- # https://github.com/fastapi/typer/pull/1145
17
- "click<8.2.0",
18
- ]
19
-
20
- classifiers = [
21
- "Development Status :: 3 - Alpha",
22
- "Environment :: Console",
23
- "Intended Audience :: Developers",
24
- "License :: OSI Approved :: MIT License",
25
- "Topic :: Software Development :: Code Generators",
26
- "Topic :: Text Processing :: Markup :: HTML",
27
- "Topic :: Utilities",
28
- "Programming Language :: Python :: 3.10",
29
- "Programming Language :: Python :: 3.11",
30
- "Programming Language :: Python :: 3.12",
31
- "Programming Language :: Python :: 3.13",
32
- ]
33
-
34
- [project.urls]
35
- Documentation = "https://github.com/vypivshiy/selector_schema_codegen#readme"
36
- Issues = "https://github.com/vypivshiy/selector_schema_codegen/issues"
37
- Source = "https://github.com/vypivshiy/selector_schema_codegen"
38
- Examples = "https://github.com/vypivshiy/selector_schema_codegen/examples"
39
-
40
-
41
- [project.scripts]
42
- ssc-gen = 'ssc_codegen.main:main'
43
-
44
- [build-system]
45
- requires = ["hatchling"]
46
- build-backend = "hatchling.build"
47
-
48
- [tool.hatch.build.targets.sdist]
49
- include = [
50
- "ssc_codegen/**",
51
- ]
52
-
53
- [tool.hatch.build.targets.wheel]
54
- packages = ["ssc_codegen"]
55
-
56
- [dependency-groups]
57
- dev = [
58
- "bs4>=0.0.2",
59
- "coverage>=7.6.12",
60
- "httpx>=0.28.1",
61
- "hypothesis>=6.151.9",
62
- "lxml>=5.3.0",
63
- "mypy>=1.14.1",
64
- "parsel>=1.9.1",
65
- "pytest>=8.3.4",
66
- "ruff>=0.9.3",
67
- "selectolax>=0.3.27",
68
- ]
69
-
70
- [tool.ruff]
71
- target-version = "py310"
72
- line-length = 80
73
- exclude = ["__init__.py"]
74
-
75
- [tool.mypy]
76
- python_version = "3.10"
77
- pretty = true
78
- ignore_missing_imports = true
79
- disallow_untyped_defs = true
80
- show_error_codes = true
81
- no_implicit_optional = true
82
- mypy_path = 'ssc_codegen'
83
- exclude = [
84
- "converters/.*\\.py$", # to tired typing
85
- "examples/.*\\.py$"
86
- ]
87
- [[tool.mypy.overrides]]
88
- module="tests.*"
89
- disallow_untyped_defs = false
90
-
91
-
92
- [tool.coverage.report]
93
- exclude_also = [
94
- 'def __repr__',
95
- 'if self.debug:',
96
- 'if settings.DEBUG',
97
- 'raise AssertionError',
98
- 'raise NotImplementedError',
99
- 'if 0:',
100
- 'if __name__ == .__main__.:',
101
- 'if TYPE_CHECKING:',
102
- 'class .*\bProtocol\):',
103
- '@(abc\.)?abstractmethod',
104
- ]
105
-
106
- [tool.coverage.run]
107
- source = ["ssc_codegen"]
108
- omit = [
109
- "*/.venv/*",
110
- "*/scripts/*",
111
- "*/tests/*"
112
- ]
1
+ [project]
2
+ name = "ssc_codegen"
3
+ version = "0.21.0"
4
+ description = "Python-dsl code converter to html parser for web scraping "
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ dependencies = [
8
+ "bs4>=0.0.2",
9
+ "colorama>=0.4.6 ; sys_platform == 'win32'",
10
+ "cssselect>=1.2.0",
11
+ "lxml>=5.3.0",
12
+ "soupsieve>=2.6",
13
+ "typer>=0.15.1",
14
+ "typing_extensions;python_version<'3.11'",
15
+ # https://github.com/fastapi/typer/discussions/1215
16
+ # https://github.com/fastapi/typer/pull/1145
17
+ "click<8.2.0",
18
+ "pyyaml>=6.0",
19
+ ]
20
+
21
+ classifiers = [
22
+ "Development Status :: 3 - Alpha",
23
+ "Environment :: Console",
24
+ "Intended Audience :: Developers",
25
+ "License :: OSI Approved :: MIT License",
26
+ "Topic :: Software Development :: Code Generators",
27
+ "Topic :: Text Processing :: Markup :: HTML",
28
+ "Topic :: Utilities",
29
+ "Programming Language :: Python :: 3.10",
30
+ "Programming Language :: Python :: 3.11",
31
+ "Programming Language :: Python :: 3.12",
32
+ "Programming Language :: Python :: 3.13",
33
+ ]
34
+
35
+ [project.urls]
36
+ Documentation = "https://github.com/vypivshiy/selector_schema_codegen#readme"
37
+ Issues = "https://github.com/vypivshiy/selector_schema_codegen/issues"
38
+ Source = "https://github.com/vypivshiy/selector_schema_codegen"
39
+ Examples = "https://github.com/vypivshiy/selector_schema_codegen/examples"
40
+
41
+
42
+ [project.scripts]
43
+ ssc-gen = 'ssc_codegen.main:main'
44
+
45
+ [project.optional-dependencies]
46
+ repl = [
47
+ "httpx>=0.28.1",
48
+ "ipython>=8.39.0",
49
+ ]
50
+
51
+ [build-system]
52
+ requires = ["hatchling"]
53
+ build-backend = "hatchling.build"
54
+
55
+ [tool.hatch.build.targets.sdist]
56
+ include = [
57
+ "ssc_codegen/**",
58
+ ]
59
+
60
+ [tool.hatch.build.targets.wheel]
61
+ packages = ["ssc_codegen"]
62
+
63
+ [dependency-groups]
64
+ dev = [
65
+ "bs4>=0.0.2",
66
+ "coverage>=7.6.12",
67
+ "httpx>=0.28.1",
68
+ "hypothesis>=6.151.9",
69
+ "lxml>=5.3.0",
70
+ "mypy>=1.14.1",
71
+ "parsel>=1.9.1",
72
+ "pytest>=8.3.4",
73
+ "ruff>=0.9.3",
74
+ "selectolax>=0.3.27",
75
+ ]
76
+
77
+ [tool.ruff]
78
+ target-version = "py310"
79
+ line-length = 80
80
+ exclude = ["__init__.py"]
81
+
82
+ [tool.mypy]
83
+ python_version = "3.10"
84
+ pretty = true
85
+ ignore_missing_imports = true
86
+ disallow_untyped_defs = true
87
+ show_error_codes = true
88
+ no_implicit_optional = true
89
+ mypy_path = 'ssc_codegen'
90
+ exclude = [
91
+ "converters/.*\\.py$", # to tired typing
92
+ "examples/.*\\.py$"
93
+ ]
94
+ [[tool.mypy.overrides]]
95
+ module="tests.*"
96
+ disallow_untyped_defs = false
97
+
98
+
99
+ [tool.coverage.report]
100
+ exclude_also = [
101
+ 'def __repr__',
102
+ 'if self.debug:',
103
+ 'if settings.DEBUG',
104
+ 'raise AssertionError',
105
+ 'raise NotImplementedError',
106
+ 'if 0:',
107
+ 'if __name__ == .__main__.:',
108
+ 'if TYPE_CHECKING:',
109
+ 'class .*\bProtocol\):',
110
+ '@(abc\.)?abstractmethod',
111
+ ]
112
+
113
+ [tool.coverage.run]
114
+ source = ["ssc_codegen"]
115
+ omit = [
116
+ "*/.venv/*",
117
+ "*/scripts/*",
118
+ "*/tests/*"
119
+ ]