scrapegraphai 2.2.0b4__tar.gz → 2.2.0b5__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 (386) hide show
  1. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/CHANGELOG.md +7 -0
  2. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/PKG-INFO +1 -1
  3. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/pyproject.toml +1 -1
  4. scrapegraphai-2.2.0b5/scrapegraphai/docloaders/__init__.py +30 -0
  5. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/chromium.py +9 -2
  6. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_node.py +1 -1
  7. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/robots_node.py +1 -1
  8. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/conftest.py +15 -0
  9. scrapegraphai-2.2.0b4/scrapegraphai/docloaders/__init__.py +0 -15
  10. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.gitattributes +0 -0
  11. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/FUNDING.yml +0 -0
  12. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  13. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  14. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  15. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/codeql.yml +0 -0
  16. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/dependency-review.yml +0 -0
  17. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/release.yml +0 -0
  18. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/test-suite.yml +0 -0
  19. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.gitignore +0 -0
  20. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.pre-commit-config.yaml +0 -0
  21. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.releaserc.yml +0 -0
  22. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.semantic-commits-applied +0 -0
  23. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/CODE_OF_CONDUCT.md +0 -0
  24. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/CONTRIBUTING.md +0 -0
  25. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/Dockerfile +0 -0
  26. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/LICENSE +0 -0
  27. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/Makefile +0 -0
  28. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/PullRequests/PR_1027_reviews.md +0 -0
  29. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/README.md +0 -0
  30. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/SECURITY.md +0 -0
  31. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/SEMANTIC_COMMITS.md +0 -0
  32. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/TESTING_INFRASTRUCTURE.md +0 -0
  33. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/citation.cff +0 -0
  34. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/codebeaver.yml +0 -0
  35. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docker-compose.yml +0 -0
  36. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/api-banner.png +0 -0
  37. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/api_banner.png +0 -0
  38. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_1.png +0 -0
  39. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_2.png +0 -0
  40. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_3.png +0 -0
  41. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_4.png +0 -0
  42. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/browserbase_logo.png +0 -0
  43. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/codespaces-badge.png +0 -0
  44. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/histogram.png +0 -0
  45. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/omniscrapergraph.png +0 -0
  46. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/omnisearchgraph.png +0 -0
  47. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/project_overview_diagram.fig +0 -0
  48. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/project_overview_diagram.png +0 -0
  49. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scrapegraphai_logo.png +0 -0
  50. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scrapegraphai_logo.svg +0 -0
  51. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scriptcreatorgraph.png +0 -0
  52. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/searchgraph.png +0 -0
  53. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/sgai-hero.png +0 -0
  54. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/smartscrapergraph.png +0 -0
  55. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/speechgraph.png +0 -0
  56. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/chinese.md +0 -0
  57. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/french.md +0 -0
  58. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/german.md +0 -0
  59. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/italian.md +0 -0
  60. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/japanese.md +0 -0
  61. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/korean.md +0 -0
  62. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/portuguese.md +0 -0
  63. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/russian.md +0 -0
  64. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/spanish.md +0 -0
  65. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/timeout_configuration.md +0 -0
  66. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/turkish.md +0 -0
  67. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/ScrapegraphAI_cookbook.ipynb +0 -0
  68. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/.env.example +0 -0
  69. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/README.md +0 -0
  70. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/ollama/code_generator_graph_ollama.py +0 -0
  71. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/openai/code_generator_graph_openai.py +0 -0
  72. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/.env.example +0 -0
  73. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/README.md +0 -0
  74. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/csv_scraper_graph_multi_ollama.py +0 -0
  75. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/csv_scraper_ollama.py +0 -0
  76. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/inputs/username.csv +0 -0
  77. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/csv_scraper_graph_multi_openai.py +0 -0
  78. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/csv_scraper_openai.py +0 -0
  79. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/inputs/username.csv +0 -0
  80. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/.env.example +0 -0
  81. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/README.md +0 -0
  82. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/ollama/custom_graph_ollama.py +0 -0
  83. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/openai/custom_graph_openai.py +0 -0
  84. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/.env.example +0 -0
  85. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/README.md +0 -0
  86. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/ollama/depth_search_graph_ollama.py +0 -0
  87. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/openai/depth_search_graph_openai.py +0 -0
  88. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/.env.example +0 -0
  89. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/README.md +0 -0
  90. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/ollama/document_scraper_ollama.py +0 -0
  91. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/ollama/inputs/plain_html_example.txt +0 -0
  92. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/document_scraper_openai.py +0 -0
  93. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/inputs/markdown_example.md +0 -0
  94. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/inputs/plain_html_example.txt +0 -0
  95. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/.env.example +0 -0
  96. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/Savedscreenshots/test_image.jpeg +0 -0
  97. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/authenticated_playwright.py +0 -0
  98. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/browser_base_integration.py +0 -0
  99. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/chromium_selenium.py +0 -0
  100. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/cond_smartscraper_usage.py +0 -0
  101. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/conditional_usage.py +0 -0
  102. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/custom_prompt.py +0 -0
  103. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/example.yml +0 -0
  104. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/force_mode.py +0 -0
  105. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/html_mode.py +0 -0
  106. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/load_yml.py +0 -0
  107. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/no_cut.py +0 -0
  108. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/proxy_rotation.py +0 -0
  109. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/rag_caching.py +0 -0
  110. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/reasoning.py +0 -0
  111. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/scrape_do.py +0 -0
  112. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/screenshot_scaping.py +0 -0
  113. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/serch_graph_scehma.py +0 -0
  114. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/slow_mo.py +0 -0
  115. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/undected_playwright.py +0 -0
  116. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/.env.example +0 -0
  117. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/README.md +0 -0
  118. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/inputs/example.json +0 -0
  119. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/json_scraper_multi_ollama.py +0 -0
  120. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/json_scraper_ollama.py +0 -0
  121. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/inputs/example.json +0 -0
  122. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/json_scraper_multi_openai.py +0 -0
  123. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/json_scraper_openai.py +0 -0
  124. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/md_scraper_openai.py +0 -0
  125. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/omni_scraper_openai.py +0 -0
  126. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/.env.example +0 -0
  127. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai.py +0 -0
  128. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai_v3.py +0 -0
  129. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/readme.md +0 -0
  130. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/.env.example +0 -0
  131. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/README.md +0 -0
  132. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/omni_search_openai.py +0 -0
  133. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/readme.md +0 -0
  134. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/.env.example +0 -0
  135. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/README.md +0 -0
  136. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/ollama/script_generator_ollama.py +0 -0
  137. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/ollama/script_multi_generator_ollama.py +0 -0
  138. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_multi_openai.py +0 -0
  139. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_openai.py +0 -0
  140. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_schema_openai.py +0 -0
  141. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/.env.example +0 -0
  142. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/README.md +0 -0
  143. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/ollama/search_graph_ollama.py +0 -0
  144. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/ollama/search_graph_schema_ollama.py +0 -0
  145. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_graph_openai.py +0 -0
  146. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_graph_schema_openai.py +0 -0
  147. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_link_graph_openai.py +0 -0
  148. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/.env.example +0 -0
  149. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/readme.md +0 -0
  150. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai.py +0 -0
  151. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai_v3.py +0 -0
  152. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/.env.example +0 -0
  153. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/nvidia/smart_scraper_nvidia.py +0 -0
  154. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_lite_ollama.py +0 -0
  155. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_concat_ollama.py +0 -0
  156. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_lite_ollama.py +0 -0
  157. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_ollama.py +0 -0
  158. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_ollama.py +0 -0
  159. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_schema_ollama.py +0 -0
  160. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_lite_openai.py +0 -0
  161. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_concat_openai.py +0 -0
  162. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_lite_openai.py +0 -0
  163. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_openai.py +0 -0
  164. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_openai.py +0 -0
  165. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_schema_openai.py +0 -0
  166. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/.env.example +0 -0
  167. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/readme.md +0 -0
  168. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai.py +0 -0
  169. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai_v3.py +0 -0
  170. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/.env.example +0 -0
  171. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/README.md +0 -0
  172. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/speech_graph_openai.py +0 -0
  173. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/.env.example +0 -0
  174. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/README.md +0 -0
  175. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/inputs/books.xml +0 -0
  176. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/xml_scraper_graph_multi_ollama.py +0 -0
  177. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/xml_scraper_ollama.py +0 -0
  178. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/inputs/books.xml +0 -0
  179. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/xml_scraper_graph_multi_openai.py +0 -0
  180. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/xml_scraper_openai.py +0 -0
  181. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/media/banner.png +0 -0
  182. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/pytest.ini +0 -0
  183. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/__init__.py +0 -0
  184. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/builders/__init__.py +0 -0
  185. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/builders/graph_builder.py +0 -0
  186. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/browser_base.py +0 -0
  187. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/plasmate.py +0 -0
  188. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/scrape_do.py +0 -0
  189. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/__init__.py +0 -0
  190. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/abstract_graph.py +0 -0
  191. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/base_graph.py +0 -0
  192. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/code_generator_graph.py +0 -0
  193. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/csv_scraper_graph.py +0 -0
  194. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/csv_scraper_multi_graph.py +0 -0
  195. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/depth_search_graph.py +0 -0
  196. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/document_scraper_graph.py +0 -0
  197. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/document_scraper_multi_graph.py +0 -0
  198. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/json_scraper_graph.py +0 -0
  199. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/json_scraper_multi_graph.py +0 -0
  200. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/markdownify_graph.py +0 -0
  201. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/omni_scraper_graph.py +0 -0
  202. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/omni_search_graph.py +0 -0
  203. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/screenshot_scraper_graph.py +0 -0
  204. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/script_creator_graph.py +0 -0
  205. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/script_creator_multi_graph.py +0 -0
  206. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/search_graph.py +0 -0
  207. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/search_link_graph.py +0 -0
  208. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_graph.py +0 -0
  209. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_lite_graph.py +0 -0
  210. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_batch_graph.py +0 -0
  211. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_concat_graph.py +0 -0
  212. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_graph.py +0 -0
  213. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_lite_graph.py +0 -0
  214. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/speech_graph.py +0 -0
  215. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/xml_scraper_graph.py +0 -0
  216. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/xml_scraper_multi_graph.py +0 -0
  217. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/__init__.py +0 -0
  218. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/default_filters.py +0 -0
  219. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/models_tokens.py +0 -0
  220. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/nodes_metadata.py +0 -0
  221. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/robots.py +0 -0
  222. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/schemas.py +0 -0
  223. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/__init__.py +0 -0
  224. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/burr_bridge.py +0 -0
  225. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/indexify_node.py +0 -0
  226. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/scrapegraph_py_compat.py +0 -0
  227. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/__init__.py +0 -0
  228. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/clod.py +0 -0
  229. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/deepseek.py +0 -0
  230. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/minimax.py +0 -0
  231. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/nvidia.py +0 -0
  232. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/oneapi.py +0 -0
  233. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/openai_itt.py +0 -0
  234. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/openai_tts.py +0 -0
  235. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/xai.py +0 -0
  236. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/__init__.py +0 -0
  237. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/base_node.py +0 -0
  238. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/batch_generate_answer_node.py +0 -0
  239. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/concat_answers_node.py +0 -0
  240. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/conditional_node.py +0 -0
  241. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/description_node.py +0 -0
  242. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_node_level_k.py +0 -0
  243. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_screen_node.py +0 -0
  244. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_csv_node.py +0 -0
  245. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_from_image_node.py +0 -0
  246. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_node.py +0 -0
  247. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_node_k_level.py +0 -0
  248. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_omni_node.py +0 -0
  249. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_code_node.py +0 -0
  250. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_scraper_node.py +0 -0
  251. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/get_probable_tags_node.py +0 -0
  252. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/graph_iterator_node.py +0 -0
  253. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/html_analyzer_node.py +0 -0
  254. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/image_to_text_node.py +0 -0
  255. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/markdownify_node.py +0 -0
  256. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/merge_answers_node.py +0 -0
  257. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/merge_generated_scripts_node.py +0 -0
  258. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/parse_node.py +0 -0
  259. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/parse_node_depth_k_node.py +0 -0
  260. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/prompt_refiner_node.py +0 -0
  261. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/rag_node.py +0 -0
  262. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/reasoning_node.py +0 -0
  263. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_internet_node.py +0 -0
  264. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_link_node.py +0 -0
  265. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_node_with_context.py +0 -0
  266. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/text_to_speech_node.py +0 -0
  267. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/__init__.py +0 -0
  268. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/description_node_prompts.py +0 -0
  269. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_csv_prompts.py +0 -0
  270. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_omni_prompts.py +0 -0
  271. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_pdf_prompts.py +0 -0
  272. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_prompts.py +0 -0
  273. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_code_node_prompts.py +0 -0
  274. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/get_probable_tags_node_prompts.py +0 -0
  275. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/html_analyzer_node_prompts.py +0 -0
  276. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/merge_answer_node_prompts.py +0 -0
  277. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/merge_generated_scripts_prompts.py +0 -0
  278. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/prompt_refiner_node_prompts.py +0 -0
  279. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/reasoning_node_prompts.py +0 -0
  280. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/robots_node_prompts.py +0 -0
  281. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_internet_node_prompts.py +0 -0
  282. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_link_node_prompts.py +0 -0
  283. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_node_with_context_prompts.py +0 -0
  284. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/telemetry/__init__.py +0 -0
  285. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/telemetry/telemetry.py +0 -0
  286. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/__init__.py +0 -0
  287. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/batch_api.py +0 -0
  288. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/cleanup_code.py +0 -0
  289. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/cleanup_html.py +0 -0
  290. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/code_error_analysis.py +0 -0
  291. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/code_error_correction.py +0 -0
  292. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/convert_to_md.py +0 -0
  293. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/copy.py +0 -0
  294. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/custom_callback.py +0 -0
  295. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/data_export.py +0 -0
  296. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/dict_content_compare.py +0 -0
  297. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/llm_callback_manager.py +0 -0
  298. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/logging.py +0 -0
  299. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/model_costs.py +0 -0
  300. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/output_parser.py +0 -0
  301. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/parse_state_keys.py +0 -0
  302. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/prettify_exec_info.py +0 -0
  303. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/proxy_rotation.py +0 -0
  304. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/research_web.py +0 -0
  305. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/save_audio_from_bytes.py +0 -0
  306. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/save_code_to_file.py +0 -0
  307. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/schema_trasform.py +0 -0
  308. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/__init__.py +0 -0
  309. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/screenshot_preparation.py +0 -0
  310. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/text_detection.py +0 -0
  311. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/split_text_into_chunks.py +0 -0
  312. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/sys_dynamic_import.py +0 -0
  313. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizer.py +0 -0
  314. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_mistral.py +0 -0
  315. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_ollama.py +0 -0
  316. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_openai.py +0 -0
  317. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/test +0 -0
  318. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/QUICKSTART.md +0 -0
  319. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/README_TESTING.md +0 -0
  320. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/Readme.md +0 -0
  321. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/benchmarking.py +0 -0
  322. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/helpers.py +0 -0
  323. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/mock_server/__init__.py +0 -0
  324. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/mock_server/server.py +0 -0
  325. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/.env.example +0 -0
  326. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/abstract_graph_test.py +0 -0
  327. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/code_generator_graph_openai_test.py +0 -0
  328. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/depth_search_graph_openai_test.py +0 -0
  329. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/books.xml +0 -0
  330. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/example.json +0 -0
  331. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/plain_html_example.txt +0 -0
  332. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/username.csv +0 -0
  333. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/scrape_plain_text_mistral_test.py +0 -0
  334. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/scrape_xml_ollama_test.py +0 -0
  335. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/screenshot_scraper_test.py +0 -0
  336. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/script_generator_test.py +0 -0
  337. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/search_graph_openai_test.py +0 -0
  338. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/search_link_ollama.py +0 -0
  339. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_clod_test.py +0 -0
  340. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_ernie_test.py +0 -0
  341. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_fireworks_test.py +0 -0
  342. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_multi_lite_graph_openai_test.py +0 -0
  343. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_ollama_test.py +0 -0
  344. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_openai_test.py +0 -0
  345. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/xml_scraper_openai_test.py +0 -0
  346. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/books.xml +0 -0
  347. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/example.json +0 -0
  348. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/plain_html_example.txt +0 -0
  349. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/username.csv +0 -0
  350. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/__init__.py +0 -0
  351. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_file_formats_integration.py +0 -0
  352. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_multi_graph_integration.py +0 -0
  353. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_smart_scraper_integration.py +0 -0
  354. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/fetch_node_test.py +0 -0
  355. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/books.xml +0 -0
  356. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/example.json +0 -0
  357. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/plain_html_example.txt +0 -0
  358. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/username.csv +0 -0
  359. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/robot_node_test.py +0 -0
  360. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/search_internet_node_test.py +0 -0
  361. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/search_link_node_test.py +0 -0
  362. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_batch_api.py +0 -0
  363. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_chromium.py +0 -0
  364. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_cleanup_html.py +0 -0
  365. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_csv_scraper_multi_graph.py +0 -0
  366. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_depth_search_graph.py +0 -0
  367. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_fetch_node_timeout.py +0 -0
  368. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_generate_answer_node.py +0 -0
  369. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_json_scraper_graph.py +0 -0
  370. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_json_scraper_multi_graph.py +0 -0
  371. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_minimax_models.py +0 -0
  372. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_models_tokens.py +0 -0
  373. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_omni_search_graph.py +0 -0
  374. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_plasmate.py +0 -0
  375. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_scrape_do.py +0 -0
  376. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_script_creator_multi_graph.py +0 -0
  377. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_search_graph.py +0 -0
  378. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_smart_scraper_multi_concat_graph.py +0 -0
  379. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/convert_to_md_test.py +0 -0
  380. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/copy_utils_test.py +0 -0
  381. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/output_parser_test.py +0 -0
  382. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/parse_state_keys_test.py +0 -0
  383. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/research_web_test.py +0 -0
  384. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/test_proxy_rotation.py +0 -0
  385. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/test_sys_dynamic_import.py +0 -0
  386. {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/uv.lock +0 -0
@@ -1,3 +1,10 @@
1
+ ## [2.2.0-beta.5](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.4...v2.2.0-beta.5) (2026-06-23)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * lazy imports to prevent torchcodec FFmpeg DLL crash on Windows ([#1089](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1089)) ([2f55377](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/2f55377010fb16c81655aa1c8d08b88daa880797))
7
+
1
8
  ## [2.2.0-beta.4](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.3...v2.2.0-beta.4) (2026-06-11)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: scrapegraphai
3
- Version: 2.2.0b4
3
+ Version: 2.2.0b5
4
4
  Summary: A web scraping library based on LangChain which uses LLM and direct graph logic to create scraping pipelines.
5
5
  Author-email: Marco Vinciguerra <mvincig11@gmail.com>, Lorenzo Padoan <lorenzo.padoan977@gmail.com>
6
6
  Keywords: ai,artificial intelligence,gpt,graph,langchain,llm,machine learning,natural language processing,nlp,openai,rag,scrapegraph,scrapegraphai,scraping,web scraping,web scraping library,web scraping tool,webscraping
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "scrapegraphai"
3
3
 
4
- version = "2.2.0b4"
4
+ version = "2.2.0b5"
5
5
 
6
6
  description = "A web scraping library based on LangChain which uses LLM and direct graph logic to create scraping pipelines."
7
7
  authors = [
@@ -0,0 +1,30 @@
1
+ """
2
+ This module handles document loading functionalities for the ScrapeGraphAI application.
3
+
4
+ Note: ChromiumLoader and PlasmateLoader are lazy-imported to avoid triggering
5
+ torchcodec/FFmpeg DLL loading at import time (sentence_transformers -> torchcodec chain).
6
+ """
7
+
8
+ from .browser_base import browser_base_fetch
9
+ from .scrape_do import scrape_do_fetch
10
+
11
+ _LAZY_MODULES = {
12
+ "ChromiumLoader": ".chromium",
13
+ "PlasmateLoader": ".plasmate",
14
+ }
15
+
16
+
17
+ def __getattr__(name):
18
+ if name in _LAZY_MODULES:
19
+ import importlib
20
+ module = importlib.import_module(_LAZY_MODULES[name], __package__)
21
+ return getattr(module, name)
22
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
23
+
24
+
25
+ __all__ = [
26
+ "browser_base_fetch",
27
+ "ChromiumLoader",
28
+ "PlasmateLoader",
29
+ "scrape_do_fetch",
30
+ ]
@@ -3,7 +3,6 @@ from typing import Any, AsyncIterator, Iterator, List, Optional, Union
3
3
 
4
4
  import aiohttp
5
5
  import async_timeout
6
- from langchain_community.document_loaders.base import BaseLoader
7
6
  from langchain_core.documents import Document
8
7
 
9
8
  from ..utils import Proxy, dynamic_import, get_logger, parse_or_search_proxy
@@ -11,7 +10,7 @@ from ..utils import Proxy, dynamic_import, get_logger, parse_or_search_proxy
11
10
  logger = get_logger("web-loader")
12
11
 
13
12
 
14
- class ChromiumLoader(BaseLoader):
13
+ class ChromiumLoader:
15
14
  """Scrapes HTML pages from URLs using a (headless) instance of the
16
15
  Chromium web driver with proxy protection.
17
16
 
@@ -436,6 +435,14 @@ class ChromiumLoader(BaseLoader):
436
435
  finally:
437
436
  await browser.close()
438
437
 
438
+ def load(self) -> List[Document]:
439
+ """Load all documents synchronously."""
440
+ return list(self.lazy_load())
441
+
442
+ async def aload(self) -> List[Document]:
443
+ """Load all documents asynchronously."""
444
+ return [doc async for doc in self.alazy_load()]
445
+
439
446
  def lazy_load(self) -> Iterator[Document]:
440
447
  """
441
448
  Lazily load text content from the provided URLs.
@@ -7,7 +7,6 @@ from typing import List, Optional
7
7
  import concurrent.futures
8
8
 
9
9
  import requests
10
- from langchain_community.document_loaders import PyPDFLoader
11
10
  from langchain_core.documents import Document
12
11
  from langchain_openai import AzureChatOpenAI, ChatOpenAI
13
12
 
@@ -182,6 +181,7 @@ class FetchNode(BaseNode):
182
181
  """
183
182
 
184
183
  if input_type == "pdf":
184
+ from langchain_community.document_loaders import PyPDFLoader
185
185
  loader = PyPDFLoader(source)
186
186
  # PyPDFLoader.load() can be blocking for large PDFs. Run it in a thread and
187
187
  # enforce the configured timeout if provided.
@@ -7,7 +7,6 @@ from urllib.parse import urlparse
7
7
 
8
8
  from langchain_core.output_parsers import CommaSeparatedListOutputParser
9
9
  from langchain_core.prompts import PromptTemplate
10
- from langchain_community.document_loaders import AsyncChromiumLoader
11
10
 
12
11
  from ..helpers import robots_dictionary
13
12
  from ..prompts import TEMPLATE_ROBOT
@@ -90,6 +89,7 @@ class RobotsNode(BaseNode):
90
89
  else:
91
90
  parsed_url = urlparse(source)
92
91
  base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
92
+ from langchain_community.document_loaders import AsyncChromiumLoader
93
93
  loader = AsyncChromiumLoader(f"{base_url}/robots.txt")
94
94
  document = loader.load()
95
95
  if "ollama" in self.llm_model.model:
@@ -14,9 +14,24 @@ from pathlib import Path
14
14
  from typing import Any, Dict
15
15
  from unittest.mock import Mock
16
16
 
17
+ import sys
18
+ import types
19
+
17
20
  import pytest
18
21
  from dotenv import load_dotenv
19
22
 
23
+ # Mock torchcodec to prevent FFmpeg DLL crashes at import time.
24
+ # sentence_transformers -> torchcodec -> FFmpeg native DLLs can't load on some systems.
25
+ _tc = types.ModuleType("torchcodec")
26
+ _tc.__version__ = "0.0.0"
27
+ _tc.__file__ = "<mock>"
28
+ _tc.__spec__ = types.ModuleType("spec")
29
+ _tc.__spec__.name = "torchcodec"
30
+ _tc.__spec__.loader = None
31
+ _tc.__spec__.submodule_search_locations = []
32
+ if "torchcodec" not in sys.modules:
33
+ sys.modules["torchcodec"] = _tc
34
+
20
35
  # Load environment variables
21
36
  load_dotenv()
22
37
 
@@ -1,15 +0,0 @@
1
- """
2
- This module handles document loading functionalities for the ScrapeGraphAI application.
3
- """
4
-
5
- from .browser_base import browser_base_fetch
6
- from .chromium import ChromiumLoader
7
- from .plasmate import PlasmateLoader
8
- from .scrape_do import scrape_do_fetch
9
-
10
- __all__ = [
11
- "browser_base_fetch",
12
- "ChromiumLoader",
13
- "PlasmateLoader",
14
- "scrape_do_fetch",
15
- ]
File without changes