ssc_codegen 0.2.7__tar.gz → 0.5.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 (117) hide show
  1. ssc_codegen-0.5.0/.gitignore +134 -0
  2. ssc_codegen-0.5.0/.idea/.gitignore +8 -0
  3. ssc_codegen-0.5.0/.idea/inspectionProfiles/Project_Default.xml +73 -0
  4. ssc_codegen-0.5.0/.idea/inspectionProfiles/profiles_settings.xml +7 -0
  5. ssc_codegen-0.5.0/.idea/libraries/Dart_Packages.xml +460 -0
  6. ssc_codegen-0.5.0/.idea/libraries/Dart_SDK.xml +29 -0
  7. ssc_codegen-0.5.0/.idea/misc.xml +7 -0
  8. ssc_codegen-0.5.0/.idea/modules.xml +8 -0
  9. ssc_codegen-0.5.0/.idea/selector_schema_codegen.iml +33 -0
  10. ssc_codegen-0.5.0/.idea/vcs.xml +6 -0
  11. ssc_codegen-0.5.0/.idea/workspace.xml +874 -0
  12. ssc_codegen-0.5.0/PKG-INFO +222 -0
  13. ssc_codegen-0.5.0/README.md +207 -0
  14. ssc_codegen-0.5.0/examples/README.md +39 -0
  15. ssc_codegen-0.5.0/examples/_demp.py +12 -0
  16. ssc_codegen-0.5.0/examples/dart/booksToScrape.dart +279 -0
  17. ssc_codegen-0.5.0/examples/dart/main.dart +19 -0
  18. ssc_codegen-0.5.0/examples/generate_code.sh +4 -0
  19. ssc_codegen-0.5.0/examples/go/booksToScrape.go +289 -0
  20. ssc_codegen-0.5.0/examples/go/main.go +41 -0
  21. ssc_codegen-0.5.0/examples/js/booksToScrape.js +172 -0
  22. ssc_codegen-0.5.0/examples/js/main.js +7 -0
  23. ssc_codegen-0.5.0/examples/manual_make.py +28 -0
  24. ssc_codegen-0.5.0/examples/python/booksToScrape.py +227 -0
  25. ssc_codegen-0.5.0/examples/python/main.py +10 -0
  26. ssc_codegen-0.5.0/examples/runtime_compile.py +16 -0
  27. ssc_codegen-0.5.0/examples/schemas/booksToScrape.py +65 -0
  28. ssc_codegen-0.5.0/main.py +5 -0
  29. ssc_codegen-0.5.0/pyproject.toml +65 -0
  30. ssc_codegen-0.5.0/scripts/check.sh +14 -0
  31. ssc_codegen-0.5.0/scripts/fix.sh +12 -0
  32. ssc_codegen-0.5.0/scripts/ver_patch.sh +10 -0
  33. ssc_codegen-0.5.0/scripts/version.py +82 -0
  34. ssc_codegen-0.5.0/ssc_codegen/__init__.py +30 -0
  35. ssc_codegen-0.5.0/ssc_codegen/ast_builder.py +413 -0
  36. ssc_codegen-0.5.0/ssc_codegen/ast_ssc.py +1216 -0
  37. ssc_codegen-0.5.0/ssc_codegen/cli.py +321 -0
  38. ssc_codegen-0.5.0/ssc_codegen/cli_utils.py +113 -0
  39. ssc_codegen-0.5.0/ssc_codegen/compiler.py +63 -0
  40. ssc_codegen-0.5.0/ssc_codegen/consts.py +37 -0
  41. ssc_codegen-0.5.0/ssc_codegen/converters/base.py +267 -0
  42. ssc_codegen-0.5.0/ssc_codegen/converters/dart_universal_html.py +514 -0
  43. ssc_codegen-0.5.0/ssc_codegen/converters/go_goquery.py +592 -0
  44. ssc_codegen-0.5.0/ssc_codegen/converters/js_pure.py +435 -0
  45. ssc_codegen-0.5.0/ssc_codegen/converters/py_base.py +504 -0
  46. ssc_codegen-0.5.0/ssc_codegen/converters/py_bs4.py +205 -0
  47. ssc_codegen-0.5.0/ssc_codegen/converters/py_parsel.py +216 -0
  48. ssc_codegen-0.5.0/ssc_codegen/converters/py_scrapy.py +214 -0
  49. ssc_codegen-0.5.0/ssc_codegen/converters/py_selectolax.py +187 -0
  50. ssc_codegen-0.5.0/ssc_codegen/converters/templates/dart.py +338 -0
  51. ssc_codegen-0.5.0/ssc_codegen/converters/templates/go.py +720 -0
  52. ssc_codegen-0.5.0/ssc_codegen/converters/templates/js.py +287 -0
  53. ssc_codegen-0.5.0/ssc_codegen/converters/templates/py.py +188 -0
  54. ssc_codegen-0.5.0/ssc_codegen/converters/templates/utils.py +99 -0
  55. ssc_codegen-0.5.0/ssc_codegen/converters/tools.py +2 -0
  56. ssc_codegen-0.5.0/ssc_codegen/converters/utils.py +81 -0
  57. ssc_codegen-0.5.0/ssc_codegen/document.py +454 -0
  58. ssc_codegen-0.5.0/ssc_codegen/document_utlis.py +86 -0
  59. ssc_codegen-0.5.0/ssc_codegen/schema.py +207 -0
  60. ssc_codegen-0.2.7/ssc_codegen/queries.py → ssc_codegen-0.5.0/ssc_codegen/selector_utils.py +7 -3
  61. ssc_codegen-0.5.0/ssc_codegen/tokens.py +125 -0
  62. ssc_codegen-0.5.0/tests/config.py +100 -0
  63. ssc_codegen-0.5.0/tests/converter_tools/test_str_utils.py +89 -0
  64. ssc_codegen-0.5.0/tests/converter_tools/test_variable.py +32 -0
  65. ssc_codegen-0.5.0/tests/demo.html +60 -0
  66. ssc_codegen-0.5.0/tests/document/test_document_array.py +33 -0
  67. ssc_codegen-0.5.0/tests/document/test_document_assert.py +17 -0
  68. ssc_codegen-0.5.0/tests/document/test_document_invalid_expr.py +58 -0
  69. ssc_codegen-0.5.0/tests/document/test_document_regex.py +32 -0
  70. ssc_codegen-0.5.0/tests/document/test_document_select.py +46 -0
  71. ssc_codegen-0.5.0/tests/document/test_document_text.py +30 -0
  72. ssc_codegen-0.5.0/tests/document/test_nested.py +33 -0
  73. ssc_codegen-0.5.0/tests/schema/test_sc_magic_methods.py +77 -0
  74. ssc_codegen-0.5.0/tests/schema/test_sc_mro.py +31 -0
  75. ssc_codegen-0.5.0/tests/utils/test_convert_query.py +24 -0
  76. ssc_codegen-0.5.0/tests/utils/test_validate_query.py +43 -0
  77. ssc_codegen-0.5.0/uv.lock +469 -0
  78. ssc_codegen-0.2.7/PKG-INFO +0 -77
  79. ssc_codegen-0.2.7/README.md +0 -52
  80. ssc_codegen-0.2.7/pyproject.toml +0 -70
  81. ssc_codegen-0.2.7/ssc_codegen/__init__.py +0 -4
  82. ssc_codegen-0.2.7/ssc_codegen/_cli.py +0 -191
  83. ssc_codegen-0.2.7/ssc_codegen/converters/base.py +0 -66
  84. ssc_codegen-0.2.7/ssc_codegen/converters/dart_universal_html.py +0 -362
  85. ssc_codegen-0.2.7/ssc_codegen/converters/py_bs4.py +0 -236
  86. ssc_codegen-0.2.7/ssc_codegen/converters/py_parsel.py +0 -226
  87. ssc_codegen-0.2.7/ssc_codegen/converters/py_scrapy.py +0 -229
  88. ssc_codegen-0.2.7/ssc_codegen/converters/py_selectolax.py +0 -221
  89. ssc_codegen-0.2.7/ssc_codegen/converters/utils.py +0 -24
  90. ssc_codegen-0.2.7/ssc_codegen/document.py +0 -386
  91. ssc_codegen-0.2.7/ssc_codegen/generator.py +0 -231
  92. ssc_codegen-0.2.7/ssc_codegen/objects.py +0 -195
  93. ssc_codegen-0.2.7/ssc_codegen/schemas.py +0 -84
  94. ssc_codegen-0.2.7/ssc_codegen/template.py +0 -122
  95. ssc_codegen-0.2.7/ssc_codegen/templates/dart/universal_html/baseStruct.j2 +0 -41
  96. ssc_codegen-0.2.7/ssc_codegen/templates/dart/universal_html/dictStruct.j2 +0 -54
  97. ssc_codegen-0.2.7/ssc_codegen/templates/dart/universal_html/itemStruct.j2 +0 -45
  98. ssc_codegen-0.2.7/ssc_codegen/templates/dart/universal_html/listStruct.j2 +0 -55
  99. ssc_codegen-0.2.7/ssc_codegen/templates/python/bs4/baseStruct.j2 +0 -38
  100. ssc_codegen-0.2.7/ssc_codegen/templates/python/bs4/dictStruct.j2 +0 -39
  101. ssc_codegen-0.2.7/ssc_codegen/templates/python/bs4/itemStruct.j2 +0 -35
  102. ssc_codegen-0.2.7/ssc_codegen/templates/python/bs4/listStruct.j2 +0 -43
  103. ssc_codegen-0.2.7/ssc_codegen/templates/python/parsel/baseStruct.j2 +0 -38
  104. ssc_codegen-0.2.7/ssc_codegen/templates/python/parsel/dictStruct.j2 +0 -39
  105. ssc_codegen-0.2.7/ssc_codegen/templates/python/parsel/itemStruct.j2 +0 -36
  106. ssc_codegen-0.2.7/ssc_codegen/templates/python/parsel/listStruct.j2 +0 -44
  107. ssc_codegen-0.2.7/ssc_codegen/templates/python/scrapy/baseStruct.j2 +0 -41
  108. ssc_codegen-0.2.7/ssc_codegen/templates/python/scrapy/dictStruct.j2 +0 -39
  109. ssc_codegen-0.2.7/ssc_codegen/templates/python/scrapy/itemStruct.j2 +0 -35
  110. ssc_codegen-0.2.7/ssc_codegen/templates/python/scrapy/listStruct.j2 +0 -44
  111. ssc_codegen-0.2.7/ssc_codegen/templates/python/selectolax/baseStruct.j2 +0 -38
  112. ssc_codegen-0.2.7/ssc_codegen/templates/python/selectolax/dictStruct.j2 +0 -39
  113. ssc_codegen-0.2.7/ssc_codegen/templates/python/selectolax/itemStruct.j2 +0 -36
  114. ssc_codegen-0.2.7/ssc_codegen/templates/python/selectolax/listStruct.j2 +0 -43
  115. ssc_codegen-0.2.7/ssc_codegen/validate.py +0 -85
  116. {ssc_codegen-0.2.7 → ssc_codegen-0.5.0}/LICENSE +0 -0
  117. {ssc_codegen-0.2.7 → ssc_codegen-0.5.0}/ssc_codegen/converters/__init__.py +0 -0
@@ -0,0 +1,134 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ .ruff_cache/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/source/_build/
74
+
75
+ # PyBuilder
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ .python-version
87
+
88
+ # pipenv
89
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
91
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
92
+ # install all needed dependencies.
93
+ #Pipfile.lock
94
+
95
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
96
+ __pypackages__/
97
+
98
+ # Celery stuff
99
+ celerybeat-schedule
100
+ celerybeat.pid
101
+
102
+ # SageMath parsed files
103
+ *.sage.py
104
+
105
+ # Environments
106
+ .env
107
+ .venv
108
+ env/
109
+ venv/
110
+ ENV/
111
+ env.bak/
112
+ venv.bak/
113
+
114
+ # Spyder project settings
115
+ .spyderproject
116
+ .spyproject
117
+
118
+ # Rope project settings
119
+ .ropeproject
120
+
121
+ # mkdocs documentation
122
+ /site
123
+
124
+ # mypy
125
+ .mypy_cache/
126
+ .dmypy.json
127
+ dmypy.json
128
+
129
+ # Pyre type checker
130
+ .pyre/
131
+
132
+ # project
133
+ test_schemas/
134
+ dart_sscgen
@@ -0,0 +1,8 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Editor-based HTTP Client requests
5
+ /httpRequests/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
@@ -0,0 +1,73 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
5
+ <option name="myValues">
6
+ <value>
7
+ <list size="7">
8
+ <item index="0" class="java.lang.String" itemvalue="nobr" />
9
+ <item index="1" class="java.lang.String" itemvalue="noembed" />
10
+ <item index="2" class="java.lang.String" itemvalue="comment" />
11
+ <item index="3" class="java.lang.String" itemvalue="noscript" />
12
+ <item index="4" class="java.lang.String" itemvalue="embed" />
13
+ <item index="5" class="java.lang.String" itemvalue="script" />
14
+ <item index="6" class="java.lang.String" itemvalue="parser" />
15
+ </list>
16
+ </value>
17
+ </option>
18
+ <option name="myCustomValuesEnabled" value="true" />
19
+ </inspection_tool>
20
+ <inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
21
+ <option name="ourVersions">
22
+ <value>
23
+ <list size="3">
24
+ <item index="0" class="java.lang.String" itemvalue="3.9" />
25
+ <item index="1" class="java.lang.String" itemvalue="3.10" />
26
+ <item index="2" class="java.lang.String" itemvalue="3.11" />
27
+ </list>
28
+ </value>
29
+ </option>
30
+ </inspection_tool>
31
+ <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
32
+ <option name="ignoredPackages">
33
+ <value>
34
+ <list size="33">
35
+ <item index="0" class="java.lang.String" itemvalue="sphinxcontrib-applehelp" />
36
+ <item index="1" class="java.lang.String" itemvalue="httpx" />
37
+ <item index="2" class="java.lang.String" itemvalue="pathspec" />
38
+ <item index="3" class="java.lang.String" itemvalue="yt-dlp" />
39
+ <item index="4" class="java.lang.String" itemvalue="h11" />
40
+ <item index="5" class="java.lang.String" itemvalue="requests" />
41
+ <item index="6" class="java.lang.String" itemvalue="importlib-metadata" />
42
+ <item index="7" class="java.lang.String" itemvalue="markupsafe" />
43
+ <item index="8" class="java.lang.String" itemvalue="exceptiongroup" />
44
+ <item index="9" class="java.lang.String" itemvalue="alabaster" />
45
+ <item index="10" class="java.lang.String" itemvalue="zipp" />
46
+ <item index="11" class="java.lang.String" itemvalue="pycryptodomex" />
47
+ <item index="12" class="java.lang.String" itemvalue="certifi" />
48
+ <item index="13" class="java.lang.String" itemvalue="pkginfo" />
49
+ <item index="14" class="java.lang.String" itemvalue="urllib3" />
50
+ <item index="15" class="java.lang.String" itemvalue="websockets" />
51
+ <item index="16" class="java.lang.String" itemvalue="pygments" />
52
+ <item index="17" class="java.lang.String" itemvalue="coverage" />
53
+ <item index="18" class="java.lang.String" itemvalue="pytest" />
54
+ <item index="19" class="java.lang.String" itemvalue="iniconfig" />
55
+ <item index="20" class="java.lang.String" itemvalue="twine" />
56
+ <item index="21" class="java.lang.String" itemvalue="black" />
57
+ <item index="22" class="java.lang.String" itemvalue="cryptography" />
58
+ <item index="23" class="java.lang.String" itemvalue="rich" />
59
+ <item index="24" class="java.lang.String" itemvalue="packaging" />
60
+ <item index="25" class="java.lang.String" itemvalue="pytest-asyncio" />
61
+ <item index="26" class="java.lang.String" itemvalue="attrs" />
62
+ <item index="27" class="java.lang.String" itemvalue="platformdirs" />
63
+ <item index="28" class="java.lang.String" itemvalue="charset-normalizer" />
64
+ <item index="29" class="java.lang.String" itemvalue="isort" />
65
+ <item index="30" class="java.lang.String" itemvalue="pytz" />
66
+ <item index="31" class="java.lang.String" itemvalue="keyring" />
67
+ <item index="32" class="java.lang.String" itemvalue="httpcore" />
68
+ </list>
69
+ </value>
70
+ </option>
71
+ </inspection_tool>
72
+ </profile>
73
+ </component>
@@ -0,0 +1,7 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="PROJECT_PROFILE" value="Default" />
4
+ <option name="USE_PROJECT_PROFILE" value="false" />
5
+ <version value="1.0" />
6
+ </settings>
7
+ </component>