crawlee 1.0.4b7__tar.gz → 1.0.5b1__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 crawlee might be problematic. Click here for more details.

Files changed (679) hide show
  1. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/CHANGELOG.md +6 -2
  2. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/PKG-INFO +1 -1
  3. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/architecture_overview.mdx +1 -1
  4. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/request_loaders.mdx +8 -2
  5. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/pyproject.toml +1 -1
  6. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler.py +31 -6
  7. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/_sitemap_request_loader.py +5 -0
  8. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_sitemap.py +0 -4
  9. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/conftest.py +13 -6
  10. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawler.py +80 -1
  11. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/http_clients/test_http_clients.py +0 -5
  12. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/test_request_queue.py +3 -2
  13. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/uv.lock +648 -606
  14. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/yarn.lock +483 -482
  15. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.editorconfig +0 -0
  16. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/CODEOWNERS +0 -0
  17. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/pull_request_template.md +0 -0
  18. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/build_and_deploy_docs.yaml +0 -0
  19. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/check_pr_title.yaml +0 -0
  20. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/pre_release.yaml +0 -0
  21. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/release.yaml +0 -0
  22. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/run_code_checks.yaml +0 -0
  23. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/templates_e2e_tests.yaml +0 -0
  24. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.github/workflows/update_new_issue.yaml +0 -0
  25. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.gitignore +0 -0
  26. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.markdownlint.yaml +0 -0
  27. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/.pre-commit-config.yaml +0 -0
  28. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/CONTRIBUTING.md +0 -0
  29. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/LICENSE +0 -0
  30. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/Makefile +0 -0
  31. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/README.md +0 -0
  32. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/apify_platform.mdx +0 -0
  33. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/apify/crawler_as_actor_example.py +0 -0
  34. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/apify/get_public_url.py +0 -0
  35. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/apify/log_with_config_example.py +0 -0
  36. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/apify/proxy_advanced_example.py +0 -0
  37. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/apify/proxy_example.py +0 -0
  38. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/google/cloud_run_example.py +0 -0
  39. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/code_examples/google/google_example.py +0 -0
  40. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/google_cloud.mdx +0 -0
  41. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/deployment/google_cloud_run.mdx +0 -0
  42. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/add_data_to_dataset.mdx +0 -0
  43. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/beautifulsoup_crawler.mdx +0 -0
  44. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/capture_screenshot_using_playwright.mdx +0 -0
  45. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/capturing_page_snapshots_with_error_snapshotter.mdx +0 -0
  46. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/adaptive_playwright_crawler.py +0 -0
  47. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/add_data_to_dataset_bs.py +0 -0
  48. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/add_data_to_dataset_dataset.py +0 -0
  49. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/add_data_to_dataset_pw.py +0 -0
  50. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/beautifulsoup_crawler.py +0 -0
  51. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/beautifulsoup_crawler_keep_alive.py +0 -0
  52. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/beautifulsoup_crawler_stop.py +0 -0
  53. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/capture_screenshot_using_playwright.py +0 -0
  54. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/configure_json_logging.py +0 -0
  55. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_all_links_on_website_bs.py +0 -0
  56. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_all_links_on_website_pw.py +0 -0
  57. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_multiple_urls_bs.py +0 -0
  58. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_multiple_urls_pw.py +0 -0
  59. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_specific_links_on_website_bs.py +0 -0
  60. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_specific_links_on_website_pw.py +0 -0
  61. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_website_with_relative_links_all_links.py +0 -0
  62. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_website_with_relative_links_same_domain.py +0 -0
  63. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_website_with_relative_links_same_hostname.py +0 -0
  64. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/crawl_website_with_relative_links_same_origin.py +0 -0
  65. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/export_entire_dataset_to_file_csv.py +0 -0
  66. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/export_entire_dataset_to_file_json.py +0 -0
  67. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/extract_and_add_specific_links_on_website_bs.py +0 -0
  68. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/extract_and_add_specific_links_on_website_pw.py +0 -0
  69. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/fill_and_submit_web_form_crawler.py +0 -0
  70. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/fill_and_submit_web_form_request.py +0 -0
  71. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/parsel_crawler.py +0 -0
  72. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/parsel_crawler_with_error_snapshotter.py +0 -0
  73. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/playwright_block_requests.py +0 -0
  74. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/playwright_crawler.py +0 -0
  75. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/playwright_crawler_with_camoufox.py +0 -0
  76. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/playwright_crawler_with_error_snapshotter.py +0 -0
  77. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/playwright_crawler_with_fingerprint_generator.py +0 -0
  78. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/respect_robots_on_skipped_request.py +0 -0
  79. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/respect_robots_txt_file.py +0 -0
  80. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/resuming_paused_crawl.py +0 -0
  81. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/using_browser_profiles_chrome.py +0 -0
  82. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/code_examples/using_browser_profiles_firefox.py +0 -0
  83. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawl_all_links_on_website.mdx +0 -0
  84. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawl_multiple_urls.mdx +0 -0
  85. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawl_specific_links_on_website.mdx +0 -0
  86. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawl_website_with_relative_links.mdx +0 -0
  87. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawler_keep_alive.mdx +0 -0
  88. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/crawler_stop.mdx +0 -0
  89. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/export_entire_dataset_to_file.mdx +0 -0
  90. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/fill_and_submit_web_form.mdx +0 -0
  91. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/json_logging.mdx +0 -0
  92. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/parsel_crawler.mdx +0 -0
  93. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/playwright_crawler.mdx +0 -0
  94. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/playwright_crawler_adaptive.mdx +0 -0
  95. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/playwright_crawler_with_block_requests.mdx +0 -0
  96. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/playwright_crawler_with_camoufox.mdx +0 -0
  97. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/playwright_crawler_with_fingerprint_generator.mdx +0 -0
  98. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/respect_robots_txt_file.mdx +0 -0
  99. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/resuming_paused_crawl.mdx +0 -0
  100. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/examples/using_browser_profile.mdx +0 -0
  101. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/avoid_blocking.mdx +0 -0
  102. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/avoid_blocking/default_fingerprint_generator_with_args.py +0 -0
  103. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/avoid_blocking/playwright_with_fingerprint_generator.py +0 -0
  104. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/creating_web_archive/manual_archiving_parsel_crawler.py +0 -0
  105. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/creating_web_archive/manual_archiving_playwright_crawler.py +0 -0
  106. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/creating_web_archive/simple_pw_through_proxy_pywb_server.py +0 -0
  107. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/error_handling/change_handle_error_status.py +0 -0
  108. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/error_handling/disable_retry.py +0 -0
  109. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/error_handling/handle_proxy_error.py +0 -0
  110. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_clients/parsel_curl_impersonate_example.py +0 -0
  111. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_clients/parsel_httpx_example.py +0 -0
  112. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_clients/parsel_impit_example.py +0 -0
  113. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_crawlers/beautifulsoup_example.py +0 -0
  114. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_crawlers/custom_crawler_example.py +0 -0
  115. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_crawlers/http_example.py +0 -0
  116. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/http_crawlers/parsel_example.py +0 -0
  117. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/login_crawler/http_login.py +0 -0
  118. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/login_crawler/playwright_login.py +0 -0
  119. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler/browser_configuration_example.py +0 -0
  120. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler/multiple_launch_example.py +0 -0
  121. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler/plugin_browser_configuration_example.py +0 -0
  122. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler/pre_navigation_hook_example.py +0 -0
  123. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_adaptive/handler.py +0 -0
  124. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_adaptive/init_beautifulsoup.py +0 -0
  125. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_adaptive/init_parsel.py +0 -0
  126. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_adaptive/init_prediction.py +0 -0
  127. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_adaptive/pre_nav_hooks.py +0 -0
  128. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_stagehand/__init__.py +0 -0
  129. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_stagehand/browser_classes.py +0 -0
  130. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_stagehand/stagehand_run.py +0 -0
  131. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/playwright_crawler_stagehand/support_classes.py +0 -0
  132. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/inspecting_bs_example.py +0 -0
  133. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/inspecting_pw_example.py +0 -0
  134. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/integration_bs_example.py +0 -0
  135. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/integration_pw_example.py +0 -0
  136. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/quick_start_example.py +0 -0
  137. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/session_bs_example.py +0 -0
  138. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/session_pw_example.py +0 -0
  139. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/tiers_bs_example.py +0 -0
  140. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/proxy_management/tiers_pw_example.py +0 -0
  141. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/rl_basic_example.py +0 -0
  142. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/rl_basic_example_with_persist.py +0 -0
  143. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/rl_tandem_example.py +0 -0
  144. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/rl_tandem_example_explicit.py +0 -0
  145. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/sitemap_basic_example.py +0 -0
  146. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/sitemap_example_with_persist.py +0 -0
  147. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/sitemap_tandem_example.py +0 -0
  148. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_loaders/sitemap_tandem_example_explicit.py +0 -0
  149. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/adaptive_crawler_handlers.py +0 -0
  150. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/basic_request_handlers.py +0 -0
  151. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/custom_router_default_only.py +0 -0
  152. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/error_handler.py +0 -0
  153. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/failed_request_handler.py +0 -0
  154. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/http_pre_navigation.py +0 -0
  155. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/playwright_pre_navigation.py +0 -0
  156. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/request_router/simple_default_handler.py +0 -0
  157. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/running_in_web_server/__init__.py +0 -0
  158. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/running_in_web_server/crawler.py +0 -0
  159. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/running_in_web_server/server.py +0 -0
  160. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/scaling_crawlers/max_tasks_per_minute_example.py +0 -0
  161. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/scaling_crawlers/min_and_max_concurrency_example.py +0 -0
  162. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_conflicts.py +0 -0
  163. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_crawler_configuration.py +0 -0
  164. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_crawler_event_manager.py +0 -0
  165. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_crawler_storage_client.py +0 -0
  166. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_locator_configuration.py +0 -0
  167. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_locator_event_manager.py +0 -0
  168. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_locator_storage_client.py +0 -0
  169. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_storage_configuration.py +0 -0
  170. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/service_locator/service_storage_storage_client.py +0 -0
  171. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/multi_sessions_http.py +0 -0
  172. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/one_session_http.py +0 -0
  173. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_basic.py +0 -0
  174. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_beautifulsoup.py +0 -0
  175. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_http.py +0 -0
  176. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_parsel.py +0 -0
  177. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_playwright.py +0 -0
  178. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/session_management/sm_standalone.py +0 -0
  179. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/custom_storage_client_example.py +0 -0
  180. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/file_system_storage_client_basic_example.py +0 -0
  181. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/file_system_storage_client_configuration_example.py +0 -0
  182. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/memory_storage_client_basic_example.py +0 -0
  183. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/registering_storage_clients_example.py +0 -0
  184. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/sql_storage_client_basic_example.py +0 -0
  185. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storage_clients/sql_storage_client_configuration_example.py +0 -0
  186. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/cleaning_do_not_purge_example.py +0 -0
  187. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/cleaning_purge_explicitly_example.py +0 -0
  188. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/dataset_basic_example.py +0 -0
  189. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/dataset_with_crawler_example.py +0 -0
  190. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/dataset_with_crawler_explicit_example.py +0 -0
  191. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/helper_add_requests_example.py +0 -0
  192. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/helper_enqueue_links_example.py +0 -0
  193. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/kvs_basic_example.py +0 -0
  194. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/kvs_with_crawler_example.py +0 -0
  195. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/kvs_with_crawler_explicit_example.py +0 -0
  196. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/opening.py +0 -0
  197. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/rq_basic_example.py +0 -0
  198. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/rq_with_crawler_example.py +0 -0
  199. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/storages/rq_with_crawler_explicit_example.py +0 -0
  200. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/code_examples/trace_and_monitor_crawlers/instrument_crawler.py +0 -0
  201. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/crawler_login.mdx +0 -0
  202. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/creating_web_archive.mdx +0 -0
  203. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/error_handling.mdx +0 -0
  204. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/http_clients.mdx +0 -0
  205. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/http_crawlers.mdx +0 -0
  206. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/playwright_crawler.mdx +0 -0
  207. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/playwright_crawler_adaptive.mdx +0 -0
  208. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/playwright_crawler_stagehand.mdx +0 -0
  209. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/proxy_management.mdx +0 -0
  210. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/request_router.mdx +0 -0
  211. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/running_in_web_server.mdx +0 -0
  212. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/scaling_crawlers.mdx +0 -0
  213. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/service_locator.mdx +0 -0
  214. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/session_management.mdx +0 -0
  215. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/storage_clients.mdx +0 -0
  216. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/storages.mdx +0 -0
  217. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/guides/trace_and_monitor_crawlers.mdx +0 -0
  218. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/01_setting_up.mdx +0 -0
  219. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/02_first_crawler.mdx +0 -0
  220. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/03_adding_more_urls.mdx +0 -0
  221. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/04_real_world_project.mdx +0 -0
  222. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/05_crawling.mdx +0 -0
  223. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/06_scraping.mdx +0 -0
  224. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/07_saving_data.mdx +0 -0
  225. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/08_refactoring.mdx +0 -0
  226. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/09_running_in_cloud.mdx +0 -0
  227. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/02_bs.py +0 -0
  228. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/02_bs_better.py +0 -0
  229. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/02_request_queue.py +0 -0
  230. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/03_enqueue_strategy.py +0 -0
  231. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/03_finding_new_links.py +0 -0
  232. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/03_globs.py +0 -0
  233. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/03_original_code.py +0 -0
  234. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/03_transform_request.py +0 -0
  235. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/04_sanity_check.py +0 -0
  236. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/05_crawling_detail.py +0 -0
  237. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/05_crawling_listing.py +0 -0
  238. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/06_scraping.py +0 -0
  239. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/07_final_code.py +0 -0
  240. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/07_first_code.py +0 -0
  241. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/08_main.py +0 -0
  242. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/08_routes.py +0 -0
  243. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/09_apify_sdk.py +0 -0
  244. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/__init__.py +0 -0
  245. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/code_examples/routes.py +0 -0
  246. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/introduction/index.mdx +0 -0
  247. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/pyproject.toml +0 -0
  248. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/quick-start/code_examples/beautifulsoup_crawler_example.py +0 -0
  249. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/quick-start/code_examples/parsel_crawler_example.py +0 -0
  250. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/quick-start/code_examples/playwright_crawler_example.py +0 -0
  251. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/quick-start/code_examples/playwright_crawler_headful_example.py +0 -0
  252. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/quick-start/index.mdx +0 -0
  253. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/upgrading/upgrading_to_v0x.md +0 -0
  254. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/docs/upgrading/upgrading_to_v1.md +0 -0
  255. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/renovate.json +0 -0
  256. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/__init__.py +0 -0
  257. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/__init__.py +0 -0
  258. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/_types.py +0 -0
  259. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/autoscaled_pool.py +0 -0
  260. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/py.typed +0 -0
  261. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/snapshotter.py +0 -0
  262. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_autoscaling/system_status.py +0 -0
  263. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_browserforge_workaround.py +0 -0
  264. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_cli.py +0 -0
  265. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_consts.py +0 -0
  266. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_log_config.py +0 -0
  267. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_request.py +0 -0
  268. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_service_locator.py +0 -0
  269. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_types.py +0 -0
  270. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/__init__.py +0 -0
  271. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/blocked.py +0 -0
  272. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/byte_size.py +0 -0
  273. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/console.py +0 -0
  274. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/context.py +0 -0
  275. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/crypto.py +0 -0
  276. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/docs.py +0 -0
  277. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/file.py +0 -0
  278. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/globs.py +0 -0
  279. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/html_to_text.py +0 -0
  280. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/models.py +0 -0
  281. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/raise_if_too_many_kwargs.py +0 -0
  282. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/recoverable_state.py +0 -0
  283. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/recurring_task.py +0 -0
  284. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/requests.py +0 -0
  285. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/robots.py +0 -0
  286. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/sitemap.py +0 -0
  287. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/system.py +0 -0
  288. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/time.py +0 -0
  289. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/try_import.py +0 -0
  290. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/urls.py +0 -0
  291. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/wait.py +0 -0
  292. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/_utils/web.py +0 -0
  293. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/__init__.py +0 -0
  294. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_browser_controller.py +0 -0
  295. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_browser_plugin.py +0 -0
  296. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_browser_pool.py +0 -0
  297. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_playwright_browser.py +0 -0
  298. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_playwright_browser_controller.py +0 -0
  299. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_playwright_browser_plugin.py +0 -0
  300. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/_types.py +0 -0
  301. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/browsers/py.typed +0 -0
  302. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/configuration.py +0 -0
  303. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/__init__.py +0 -0
  304. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_abstract_http/__init__.py +0 -0
  305. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_abstract_http/_abstract_http_crawler.py +0 -0
  306. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_abstract_http/_abstract_http_parser.py +0 -0
  307. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_abstract_http/_http_crawling_context.py +0 -0
  308. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_abstract_http/py.typed +0 -0
  309. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/__init__.py +0 -0
  310. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler_statistics.py +0 -0
  311. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawling_context.py +0 -0
  312. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_rendering_type_predictor.py +0 -0
  313. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_result_comparator.py +0 -0
  314. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_adaptive_playwright/_utils.py +0 -0
  315. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/__init__.py +0 -0
  316. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/_basic_crawler.py +0 -0
  317. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/_basic_crawling_context.py +0 -0
  318. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/_context_pipeline.py +0 -0
  319. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/_logging_utils.py +0 -0
  320. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_basic/py.typed +0 -0
  321. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/__init__.py +0 -0
  322. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawler.py +0 -0
  323. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawling_context.py +0 -0
  324. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_parser.py +0 -0
  325. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/_utils.py +0 -0
  326. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_beautifulsoup/py.typed +0 -0
  327. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_http/__init__.py +0 -0
  328. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_http/_http_crawler.py +0 -0
  329. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_http/_http_parser.py +0 -0
  330. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_parsel/__init__.py +0 -0
  331. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_parsel/_parsel_crawler.py +0 -0
  332. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_parsel/_parsel_crawling_context.py +0 -0
  333. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_parsel/_parsel_parser.py +0 -0
  334. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_parsel/_utils.py +0 -0
  335. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/__init__.py +0 -0
  336. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_playwright_crawler.py +0 -0
  337. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_playwright_crawling_context.py +0 -0
  338. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_playwright_http_client.py +0 -0
  339. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_playwright_pre_nav_crawling_context.py +0 -0
  340. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_types.py +0 -0
  341. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_playwright/_utils.py +0 -0
  342. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/_types.py +0 -0
  343. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/crawlers/py.typed +0 -0
  344. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/errors.py +0 -0
  345. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/events/__init__.py +0 -0
  346. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/events/_event_manager.py +0 -0
  347. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/events/_local_event_manager.py +0 -0
  348. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/events/_types.py +0 -0
  349. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/events/py.typed +0 -0
  350. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/__init__.py +0 -0
  351. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/_browserforge_adapter.py +0 -0
  352. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/_consts.py +0 -0
  353. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/_fingerprint_generator.py +0 -0
  354. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/_header_generator.py +0 -0
  355. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/_types.py +0 -0
  356. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/fingerprint_suite/py.typed +0 -0
  357. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/http_clients/__init__.py +0 -0
  358. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/http_clients/_base.py +0 -0
  359. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/http_clients/_curl_impersonate.py +0 -0
  360. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/http_clients/_httpx.py +0 -0
  361. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/http_clients/_impit.py +0 -0
  362. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/otel/__init__.py +0 -0
  363. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/otel/crawler_instrumentor.py +0 -0
  364. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/cookiecutter.json +0 -0
  365. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/hooks/post_gen_project.py +0 -0
  366. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/hooks/pre_gen_project.py +0 -0
  367. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/main.py +0 -0
  368. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/main_beautifulsoup.py +0 -0
  369. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/main_parsel.py +0 -0
  370. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/main_playwright.py +0 -0
  371. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/main_playwright_camoufox.py +0 -0
  372. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/routes_beautifulsoup.py +0 -0
  373. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/routes_camoufox.py +0 -0
  374. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/routes_parsel.py +0 -0
  375. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/routes_playwright.py +0 -0
  376. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/templates/routes_playwright_camoufox.py +0 -0
  377. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/.dockerignore +0 -0
  378. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/Dockerfile +0 -0
  379. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/README.md +0 -0
  380. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/pyproject.toml +0 -0
  381. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/requirements.txt +0 -0
  382. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/__init__.py +0 -0
  383. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/__main__.py +0 -0
  384. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/main.py +0 -0
  385. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/routes.py +0 -0
  386. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/proxy_configuration.py +0 -0
  387. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/py.typed +0 -0
  388. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/__init__.py +0 -0
  389. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/_request_list.py +0 -0
  390. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/_request_loader.py +0 -0
  391. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/_request_manager.py +0 -0
  392. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/request_loaders/_request_manager_tandem.py +0 -0
  393. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/router.py +0 -0
  394. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/__init__.py +0 -0
  395. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/_cookies.py +0 -0
  396. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/_models.py +0 -0
  397. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/_session.py +0 -0
  398. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/_session_pool.py +0 -0
  399. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/sessions/py.typed +0 -0
  400. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/statistics/__init__.py +0 -0
  401. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/statistics/_error_snapshotter.py +0 -0
  402. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/statistics/_error_tracker.py +0 -0
  403. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/statistics/_models.py +0 -0
  404. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/statistics/_statistics.py +0 -0
  405. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/__init__.py +0 -0
  406. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/__init__.py +0 -0
  407. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/_dataset_client.py +0 -0
  408. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/_key_value_store_client.py +0 -0
  409. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/_request_queue_client.py +0 -0
  410. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/_storage_client.py +0 -0
  411. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_base/py.typed +0 -0
  412. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/__init__.py +0 -0
  413. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/_dataset_client.py +0 -0
  414. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/_key_value_store_client.py +0 -0
  415. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/_request_queue_client.py +0 -0
  416. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/_storage_client.py +0 -0
  417. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/_utils.py +0 -0
  418. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_file_system/py.typed +0 -0
  419. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/__init__.py +0 -0
  420. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/_dataset_client.py +0 -0
  421. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/_key_value_store_client.py +0 -0
  422. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/_request_queue_client.py +0 -0
  423. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/_storage_client.py +0 -0
  424. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_memory/py.typed +0 -0
  425. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/__init__.py +0 -0
  426. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_client_mixin.py +0 -0
  427. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_dataset_client.py +0 -0
  428. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_db_models.py +0 -0
  429. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_key_value_store_client.py +0 -0
  430. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_request_queue_client.py +0 -0
  431. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/_storage_client.py +0 -0
  432. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/_sql/py.typed +0 -0
  433. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/models.py +0 -0
  434. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storage_clients/py.typed +0 -0
  435. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/__init__.py +0 -0
  436. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_base.py +0 -0
  437. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_dataset.py +0 -0
  438. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_key_value_store.py +0 -0
  439. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_request_queue.py +0 -0
  440. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_storage_instance_manager.py +0 -0
  441. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/_utils.py +0 -0
  442. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/src/crawlee/storages/py.typed +0 -0
  443. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/__init__.py +0 -0
  444. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/e2e/__init__.py +0 -0
  445. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/e2e/conftest.py +0 -0
  446. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/e2e/project_template/test_static_crawlers_templates.py +0 -0
  447. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/e2e/project_template/utils.py +0 -0
  448. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/README.md +0 -0
  449. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/__init__.py +0 -0
  450. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_autoscaling/test_autoscaled_pool.py +0 -0
  451. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_autoscaling/test_snapshotter.py +0 -0
  452. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_autoscaling/test_system_status.py +0 -0
  453. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_statistics/test_error_tracker.py +0 -0
  454. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_statistics/test_periodic_logging.py +0 -0
  455. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_statistics/test_persistence.py +0 -0
  456. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_statistics/test_request_processing_record.py +0 -0
  457. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_byte_size.py +0 -0
  458. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_console.py +0 -0
  459. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_crypto.py +0 -0
  460. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_file.py +0 -0
  461. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_globs.py +0 -0
  462. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_html_to_text.py +0 -0
  463. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_measure_time.py +0 -0
  464. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_raise_if_too_many_kwargs.py +0 -0
  465. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_recurring_task.py +0 -0
  466. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_requests.py +0 -0
  467. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_robots.py +0 -0
  468. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_system.py +0 -0
  469. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_timedelata_ms.py +0 -0
  470. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/_utils/test_urls.py +0 -0
  471. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/browsers/test_browser_pool.py +0 -0
  472. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/browsers/test_playwright_browser.py +0 -0
  473. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/browsers/test_playwright_browser_controller.py +0 -0
  474. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/browsers/test_playwright_browser_plugin.py +0 -0
  475. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawler_statistics.py +0 -0
  476. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawling_context.py +0 -0
  477. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_adaptive_playwright/test_predictor.py +0 -0
  478. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_basic/test_basic_crawler.py +0 -0
  479. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_basic/test_context_pipeline.py +0 -0
  480. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_beautifulsoup/test_beautifulsoup_crawler.py +0 -0
  481. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_http/test_http_crawler.py +0 -0
  482. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_parsel/test_parsel_crawler.py +0 -0
  483. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/crawlers/_playwright/test_playwright_crawler.py +0 -0
  484. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/events/test_event_manager.py +0 -0
  485. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/events/test_local_event_manager.py +0 -0
  486. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/fingerprint_suite/test_adapters.py +0 -0
  487. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/fingerprint_suite/test_header_generator.py +0 -0
  488. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/http_clients/test_httpx.py +0 -0
  489. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/otel/test_crawler_instrumentor.py +0 -0
  490. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/proxy_configuration/test_new_proxy_info.py +0 -0
  491. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/proxy_configuration/test_tiers.py +0 -0
  492. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/request_loaders/test_request_list.py +0 -0
  493. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/request_loaders/test_sitemap_request_loader.py +0 -0
  494. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/server.py +0 -0
  495. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/server_endpoints.py +0 -0
  496. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/sessions/test_cookies.py +0 -0
  497. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/sessions/test_models.py +0 -0
  498. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/sessions/test_session.py +0 -0
  499. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/sessions/test_session_pool.py +0 -0
  500. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_file_system/test_fs_dataset_client.py +0 -0
  501. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_file_system/test_fs_kvs_client.py +0 -0
  502. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_file_system/test_fs_rq_client.py +0 -0
  503. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_memory/test_memory_dataset_client.py +0 -0
  504. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_memory/test_memory_kvs_client.py +0 -0
  505. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_memory/test_memory_rq_client.py +0 -0
  506. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_sql/test_sql_dataset_client.py +0 -0
  507. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_sql/test_sql_kvs_client.py +0 -0
  508. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storage_clients/_sql/test_sql_rq_client.py +0 -0
  509. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/conftest.py +0 -0
  510. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/test_dataset.py +0 -0
  511. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/test_key_value_store.py +0 -0
  512. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/test_request_manager_tandem.py +0 -0
  513. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/storages/test_storage_instance_manager.py +0 -0
  514. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/test_cli.py +0 -0
  515. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/test_configuration.py +0 -0
  516. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/test_log_config.py +0 -0
  517. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/test_router.py +0 -0
  518. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/tests/unit/test_service_locator.py +0 -0
  519. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/.eslintrc.json +0 -0
  520. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/.yarnrc.yml +0 -0
  521. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/babel.config.js +0 -0
  522. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/build_api_reference.sh +0 -0
  523. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/docusaurus.config.js +0 -0
  524. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/generate_module_shortcuts.py +0 -0
  525. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/package.json +0 -0
  526. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/patches/@docusaurus+core+3.4.0.patch +0 -0
  527. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/patches/@docusaurus+core+3.5.2.patch +0 -0
  528. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/roa-loader/index.js +0 -0
  529. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/roa-loader/package.json +0 -0
  530. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/sidebars.js +0 -0
  531. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/ApiLink.jsx +0 -0
  532. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Button.jsx +0 -0
  533. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Button.module.css +0 -0
  534. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/CopyButton.jsx +0 -0
  535. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/CopyButton.module.css +0 -0
  536. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Gradients.jsx +0 -0
  537. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Highlights.jsx +0 -0
  538. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Highlights.module.css +0 -0
  539. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageCliExample.jsx +0 -0
  540. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageCliExample.module.css +0 -0
  541. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageCtaSection.jsx +0 -0
  542. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageCtaSection.module.css +0 -0
  543. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageHeroSection.jsx +0 -0
  544. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/HomepageHeroSection.module.css +0 -0
  545. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/LanguageInfoWidget.jsx +0 -0
  546. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/LanguageInfoWidget.module.css +0 -0
  547. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/LanguageSwitch.jsx +0 -0
  548. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/LanguageSwitch.module.css +0 -0
  549. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/RiverSection.jsx +0 -0
  550. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/RiverSection.module.css +0 -0
  551. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/ThreeCardsWithIcon.jsx +0 -0
  552. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/ThreeCardsWithIcon.module.css +0 -0
  553. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/animated-crawlee-logo-dark.svg +0 -0
  554. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/Homepage/animated-crawlee-logo-light.svg +0 -0
  555. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/RunnableCodeBlock.jsx +0 -0
  556. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/components/RunnableCodeBlock.module.css +0 -0
  557. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/css/custom.css +0 -0
  558. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/pages/home_page_example.py +0 -0
  559. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/pages/index.js +0 -0
  560. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/pages/index.module.css +0 -0
  561. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/ColorModeToggle/dark-mode-icon.svg +0 -0
  562. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/ColorModeToggle/index.js +0 -0
  563. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/ColorModeToggle/light-mode-icon.svg +0 -0
  564. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/ColorModeToggle/styles.module.css +0 -0
  565. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/DocItem/Layout/index.js +0 -0
  566. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/DocItem/Layout/styles.module.css +0 -0
  567. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Footer/LinkItem/index.js +0 -0
  568. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Footer/LinkItem/index.module.css +0 -0
  569. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Footer/index.js +0 -0
  570. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Footer/index.module.css +0 -0
  571. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/MDXComponents/A.js +0 -0
  572. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/Content/index.js +0 -0
  573. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/Content/styles.module.css +0 -0
  574. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/Logo/index.js +0 -0
  575. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/Logo/index.module.css +0 -0
  576. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/MobileSidebar/Header/index.js +0 -0
  577. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/MobileSidebar/Header/index.module.css +0 -0
  578. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/MobileSidebar/Layout/index.js +0 -0
  579. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +0 -0
  580. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/Navbar/MobileSidebar/index.js +0 -0
  581. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/src/theme/NavbarItem/ComponentTypes.js +0 -0
  582. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/.nojekyll +0 -0
  583. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/font/lota.woff +0 -0
  584. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/font/lota.woff2 +0 -0
  585. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/API.png +0 -0
  586. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/apify_logo.svg +0 -0
  587. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/apify_og_SDK.png +0 -0
  588. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/apify_sdk.svg +0 -0
  589. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/apify_sdk_white.svg +0 -0
  590. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/arrow_right.svg +0 -0
  591. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/auto-scaling-dark.webp +0 -0
  592. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/auto-scaling-light.webp +0 -0
  593. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/check.svg +0 -0
  594. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/chrome-scrape-dark.gif +0 -0
  595. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/chrome-scrape-light.gif +0 -0
  596. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/cloud_icon.svg +0 -0
  597. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/community-dark-icon.svg +0 -0
  598. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/community-light-icon.svg +0 -0
  599. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-dark-new.svg +0 -0
  600. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-dark.svg +0 -0
  601. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-javascript-dark.svg +0 -0
  602. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-javascript-light.svg +0 -0
  603. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-light-new.svg +0 -0
  604. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-light.svg +0 -0
  605. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-logo-monocolor.svg +0 -0
  606. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-logo.svg +0 -0
  607. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-python-dark.svg +0 -0
  608. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-python-light.svg +0 -0
  609. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/crawlee-python-og.png +0 -0
  610. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/defaults-dark-icon.svg +0 -0
  611. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/defaults-light-icon.svg +0 -0
  612. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/discord-brand-dark.svg +0 -0
  613. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/discord-brand.svg +0 -0
  614. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/docusaurus.svg +0 -0
  615. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/external-link.svg +0 -0
  616. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/favicon.ico +0 -0
  617. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/favorite-tools-dark.webp +0 -0
  618. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/favorite-tools-light.webp +0 -0
  619. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/auto-scaling.svg +0 -0
  620. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/automate-everything.svg +0 -0
  621. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/fingerprints.svg +0 -0
  622. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/node-requests.svg +0 -0
  623. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/runs-on-py.svg +0 -0
  624. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/storage.svg +0 -0
  625. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/features/works-everywhere.svg +0 -0
  626. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/fill-and-submit-web-form/00.jpg +0 -0
  627. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/fill-and-submit-web-form/01.jpg +0 -0
  628. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/fill-and-submit-web-form/02.jpg +0 -0
  629. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/fill-and-submit-web-form/03.jpg +0 -0
  630. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/current-price.jpg +0 -0
  631. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/scraping-practice.jpg +0 -0
  632. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/select-an-element.jpg +0 -0
  633. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/selected-element.jpg +0 -0
  634. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/sku.jpg +0 -0
  635. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/getting-started/title.jpg +0 -0
  636. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/github-brand-dark.svg +0 -0
  637. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/github-brand.svg +0 -0
  638. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/guides/jaeger_otel_search_view_example.png +0 -0
  639. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/guides/jaeger_otel_trace_example.png +0 -0
  640. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/hearth copy.svg +0 -0
  641. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/hearth.svg +0 -0
  642. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/javascript_logo.svg +0 -0
  643. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/js_file.svg +0 -0
  644. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/logo-big.svg +0 -0
  645. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/logo-blur.png +0 -0
  646. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/logo-blur.svg +0 -0
  647. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/logo-zoom.svg +0 -0
  648. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/menu-arrows.svg +0 -0
  649. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/oss_logo.png +0 -0
  650. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/puppeteer-live-view-dashboard.png +0 -0
  651. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/puppeteer-live-view-detail.png +0 -0
  652. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/queue-dark-icon.svg +0 -0
  653. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/queue-light-icon.svg +0 -0
  654. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/resuming-paused-crawl/00.webp +0 -0
  655. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/resuming-paused-crawl/01.webp +0 -0
  656. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/robot.png +0 -0
  657. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/routing-dark-icon.svg +0 -0
  658. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/routing-light-icon.svg +0 -0
  659. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/scraping-utils-dark-icon.svg +0 -0
  660. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/scraping-utils-light-icon.svg +0 -0
  661. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/smart-proxy-dark.webp +0 -0
  662. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/smart-proxy-light.webp +0 -0
  663. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/source_code.png +0 -0
  664. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/system.svg +0 -0
  665. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/triangles_dark.svg +0 -0
  666. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/triangles_light.svg +0 -0
  667. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/workflow.svg +0 -0
  668. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/zero-setup-dark-icon.svg +0 -0
  669. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/img/zero-setup-light-icon.svg +0 -0
  670. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/js/custom.js +0 -0
  671. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/static/robots.txt +0 -0
  672. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/docs-prettier.config.js +0 -0
  673. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/utils/externalLink.js +0 -0
  674. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/website_gif/chrome-scrape-dark.gif +0 -0
  675. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/website_gif/chrome-scrape-dark.mp4 +0 -0
  676. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/website_gif/chrome-scrape-light.gif +0 -0
  677. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/website_gif/chrome-scrape-light.mp4 +0 -0
  678. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tools/website_gif/website_gif.mjs +0 -0
  679. {crawlee-1.0.4b7 → crawlee-1.0.5b1}/website/tsconfig.eslint.json +0 -0
@@ -3,7 +3,11 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
5
  <!-- git-cliff-unreleased-start -->
6
- ## 1.0.4 - **not yet released**
6
+ ## 1.0.5 - **not yet released**
7
+
8
+
9
+ <!-- git-cliff-unreleased-end -->
10
+ ## [1.0.4](https://github.com/apify/crawlee-python/releases/tag/v1.0.4) (2025-10-24)
7
11
 
8
12
  ### 🐛 Bug Fixes
9
13
 
@@ -11,9 +15,9 @@ All notable changes to this project will be documented in this file.
11
15
  - Exclude incorrect links before checking `robots.txt` ([#1502](https://github.com/apify/crawlee-python/pull/1502)) ([3273da5](https://github.com/apify/crawlee-python/commit/3273da5fee62ec9254666b376f382474c3532a56)) by [@Mantisus](https://github.com/Mantisus), closes [#1499](https://github.com/apify/crawlee-python/issues/1499)
12
16
  - Resolve compatibility issue between `SqlStorageClient` and `AdaptivePlaywrightCrawler` ([#1496](https://github.com/apify/crawlee-python/pull/1496)) ([ce172c4](https://github.com/apify/crawlee-python/commit/ce172c425a8643a1d4c919db4f5e5a6e47e91deb)) by [@Mantisus](https://github.com/Mantisus), closes [#1495](https://github.com/apify/crawlee-python/issues/1495)
13
17
  - Fix `BasicCrawler` statistics persistence ([#1490](https://github.com/apify/crawlee-python/pull/1490)) ([1eb1c19](https://github.com/apify/crawlee-python/commit/1eb1c19aa6f9dda4a0e3f7eda23f77a554f95076)) by [@Pijukatel](https://github.com/Pijukatel), closes [#1501](https://github.com/apify/crawlee-python/issues/1501)
18
+ - Save context state in result for `AdaptivePlaywrightCrawler` after isolated processing in `SubCrawler` ([#1488](https://github.com/apify/crawlee-python/pull/1488)) ([62b7c70](https://github.com/apify/crawlee-python/commit/62b7c70b54085fc65a660062028014f4502beba9)) by [@Mantisus](https://github.com/Mantisus), closes [#1483](https://github.com/apify/crawlee-python/issues/1483)
14
19
 
15
20
 
16
- <!-- git-cliff-unreleased-end -->
17
21
  ## [1.0.3](https://github.com/apify/crawlee-python/releases/tag/v1.0.3) (2025-10-17)
18
22
 
19
23
  ### 🐛 Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crawlee
3
- Version: 1.0.4b7
3
+ Version: 1.0.5b1
4
4
  Summary: Crawlee for Python
5
5
  Project-URL: Apify Homepage, https://apify.com
6
6
  Project-URL: Changelog, https://crawlee.dev/python/docs/changelog
@@ -291,7 +291,7 @@ Request loaders provide a subset of <ApiLink to="class/RequestQueue">`RequestQue
291
291
 
292
292
  - <ApiLink to="class/RequestLoader">`RequestLoader`</ApiLink> - Base interface for read-only access to a stream of requests, with capabilities like fetching the next request, marking as handled, and status checking.
293
293
  - <ApiLink to="class/RequestList">`RequestList`</ApiLink> - Lightweight in-memory implementation of `RequestLoader` for managing static lists of URLs.
294
- - <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> - Specialized loader for reading URLs from XML sitemaps with filtering capabilities.
294
+ - <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> - A specialized loader that reads URLs from XML and plain-text sitemaps following the [Sitemaps protocol](https://www.sitemaps.org/protocol.html) with filtering capabilities.
295
295
 
296
296
  ### Request managers
297
297
 
@@ -31,7 +31,7 @@ The [`request_loaders`](https://github.com/apify/crawlee-python/tree/master/src/
31
31
  And specific request loader implementations:
32
32
 
33
33
  - <ApiLink to="class/RequestList">`RequestList`</ApiLink>: A lightweight implementation for managing a static list of URLs.
34
- - <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink>: A specialized loader that reads URLs from XML sitemaps with filtering capabilities.
34
+ - <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink>: A specialized loader that reads URLs from XML and plain-text sitemaps following the [Sitemaps protocol](https://www.sitemaps.org/protocol.html) with filtering capabilities.
35
35
 
36
36
  Below is a class diagram that illustrates the relationships between these components and the <ApiLink to="class/RequestQueue">`RequestQueue`</ApiLink>:
37
37
 
@@ -130,7 +130,13 @@ To enable persistence, provide `persist_state_key` and optionally `persist_reque
130
130
 
131
131
  ### Sitemap request loader
132
132
 
133
- The <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> is a specialized request loader that reads URLs from XML sitemaps. It's particularly useful when you want to crawl a website systematically by following its sitemap structure. The loader supports filtering URLs using glob patterns and regular expressions, allowing you to include or exclude specific types of URLs. The <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> provides streaming processing of sitemaps, ensuring efficient memory usage without loading the entire sitemap into memory.
133
+ The <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> is a specialized request loader that reads URLs from sitemaps following the [Sitemaps protocol](https://www.sitemaps.org/protocol.html). It supports both XML and plain text sitemap formats. It's particularly useful when you want to crawl a website systematically by following its sitemap structure.
134
+
135
+ :::note
136
+ The `SitemapRequestLoader` is designed specifically for sitemaps that follow the standard Sitemaps protocol. HTML pages containing links are not supported by this loader - those should be handled by regular crawlers using the `enqueue_links` functionality.
137
+ :::
138
+
139
+ The loader supports filtering URLs using glob patterns and regular expressions, allowing you to include or exclude specific types of URLs. The <ApiLink to="class/SitemapRequestLoader">`SitemapRequestLoader`</ApiLink> provides streaming processing of sitemaps, ensuring efficient memory usage without loading the entire sitemap into memory.
134
140
 
135
141
  <RunnableCodeBlock className="language-python" language="python">
136
142
  {SitemapExample}
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "crawlee"
7
- version = "1.0.4b7"
7
+ version = "1.0.5b1"
8
8
  description = "Crawlee for Python"
9
9
  authors = [{ name = "Apify Technologies s.r.o.", email = "support@apify.com" }]
10
10
  license = { file = "LICENSE" }
@@ -315,7 +315,7 @@ class AdaptivePlaywrightCrawler(
315
315
  ),
316
316
  logger=self._logger,
317
317
  )
318
- return SubCrawlerRun(result=result)
318
+ return SubCrawlerRun(result=result, run_context=context_linked_to_result)
319
319
  except Exception as e:
320
320
  return SubCrawlerRun(exception=e)
321
321
 
@@ -371,7 +371,8 @@ class AdaptivePlaywrightCrawler(
371
371
  self.track_http_only_request_handler_runs()
372
372
 
373
373
  static_run = await self._crawl_one(rendering_type='static', context=context)
374
- if static_run.result and self.result_checker(static_run.result):
374
+ if static_run.result and static_run.run_context and self.result_checker(static_run.result):
375
+ self._update_context_from_copy(context, static_run.run_context)
375
376
  self._context_result_map[context] = static_run.result
376
377
  return
377
378
  if static_run.exception:
@@ -402,13 +403,10 @@ class AdaptivePlaywrightCrawler(
402
403
  if pw_run.exception is not None:
403
404
  raise pw_run.exception
404
405
 
405
- if pw_run.result:
406
- self._context_result_map[context] = pw_run.result
407
-
406
+ if pw_run.result and pw_run.run_context:
408
407
  if should_detect_rendering_type:
409
408
  detection_result: RenderingType
410
409
  static_run = await self._crawl_one('static', context=context, state=old_state_copy)
411
-
412
410
  if static_run.result and self.result_comparator(static_run.result, pw_run.result):
413
411
  detection_result = 'static'
414
412
  else:
@@ -417,6 +415,9 @@ class AdaptivePlaywrightCrawler(
417
415
  context.log.debug(f'Detected rendering type {detection_result} for {context.request.url}')
418
416
  self.rendering_type_predictor.store_result(context.request, detection_result)
419
417
 
418
+ self._update_context_from_copy(context, pw_run.run_context)
419
+ self._context_result_map[context] = pw_run.result
420
+
420
421
  def pre_navigation_hook(
421
422
  self,
422
423
  hook: Callable[[AdaptivePlaywrightPreNavCrawlingContext], Awaitable[None]] | None = None,
@@ -451,8 +452,32 @@ class AdaptivePlaywrightCrawler(
451
452
  def track_rendering_type_mispredictions(self) -> None:
452
453
  self.statistics.state.rendering_type_mispredictions += 1
453
454
 
455
+ def _update_context_from_copy(self, context: BasicCrawlingContext, context_copy: BasicCrawlingContext) -> None:
456
+ """Update mutable fields of `context` from `context_copy`.
457
+
458
+ Uses object.__setattr__ to bypass frozen dataclass restrictions,
459
+ allowing state synchronization after isolated crawler execution.
460
+ """
461
+ updating_attributes = {
462
+ 'request': ('headers', 'user_data'),
463
+ 'session': ('_user_data', '_usage_count', '_error_score', '_cookies'),
464
+ }
465
+
466
+ for attr, sub_attrs in updating_attributes.items():
467
+ original_sub_obj = getattr(context, attr)
468
+ copy_sub_obj = getattr(context_copy, attr)
469
+
470
+ # Check that both sub objects are not None
471
+ if original_sub_obj is None or copy_sub_obj is None:
472
+ continue
473
+
474
+ for sub_attr in sub_attrs:
475
+ new_value = getattr(copy_sub_obj, sub_attr)
476
+ object.__setattr__(original_sub_obj, sub_attr, new_value)
477
+
454
478
 
455
479
  @dataclass(frozen=True)
456
480
  class SubCrawlerRun:
457
481
  result: RequestHandlerRunResult | None = None
458
482
  exception: Exception | None = None
483
+ run_context: BasicCrawlingContext | None = None
@@ -90,6 +90,11 @@ class SitemapRequestLoaderState(BaseModel):
90
90
  class SitemapRequestLoader(RequestLoader):
91
91
  """A request loader that reads URLs from sitemap(s).
92
92
 
93
+ The loader is designed to handle sitemaps that follow the format described in the Sitemaps protocol
94
+ (https://www.sitemaps.org/protocol.html). It supports both XML and plain text sitemap formats.
95
+ Note that HTML pages containing links are not supported - those should be handled by regular crawlers
96
+ and the `enqueue_links` functionality.
97
+
93
98
  The loader fetches and parses sitemaps in the background, allowing crawling to start
94
99
  before all URLs are loaded. It supports filtering URLs using glob and regex patterns.
95
100
 
@@ -1,9 +1,7 @@
1
1
  import base64
2
2
  import gzip
3
- import sys
4
3
  from datetime import datetime
5
4
 
6
- import pytest
7
5
  from yarl import URL
8
6
 
9
7
  from crawlee._utils.sitemap import Sitemap, SitemapUrl, parse_sitemap
@@ -95,8 +93,6 @@ async def test_gzipped_sitemap(server_url: URL, http_client: HttpClient) -> None
95
93
  assert set(sitemap.urls) == BASIC_RESULTS
96
94
 
97
95
 
98
- # TODO: Remove this skip when #1460 is resolved.
99
- @pytest.mark.skipif(sys.platform != 'linux', reason='Flaky with Curl on Windows, see #1460.')
100
96
  async def test_gzipped_sitemap_with_invalid_data(server_url: URL, http_client: HttpClient) -> None:
101
97
  """Test loading a invalid gzipped sitemap with correct type and .xml.gz url."""
102
98
  compress_data = compress_gzip(BASIC_SITEMAP)
@@ -6,7 +6,7 @@ from __future__ import annotations
6
6
  import logging
7
7
  import os
8
8
  import warnings
9
- from typing import TYPE_CHECKING, cast
9
+ from typing import TYPE_CHECKING, Any, cast
10
10
 
11
11
  import pytest
12
12
  from curl_cffi import CurlHttpVersion
@@ -205,9 +205,16 @@ def redirect_server_url(redirect_http_server: TestServer) -> URL:
205
205
  pytest.param('curl', id='curl'),
206
206
  ]
207
207
  )
208
- async def http_client(request: pytest.FixtureRequest) -> HttpClient:
208
+ async def http_client(request: pytest.FixtureRequest) -> AsyncGenerator[HttpClient, None]:
209
+ class_client: type[HttpClient]
209
210
  if request.param == 'curl':
210
- return CurlImpersonateHttpClient(http_version=CurlHttpVersion.V1_1)
211
- if request.param == 'impit':
212
- return ImpitHttpClient(http3=False)
213
- return HttpxHttpClient(http2=False)
211
+ class_client = CurlImpersonateHttpClient
212
+ kwargs: dict[str, Any] = {'http_version': CurlHttpVersion.V1_1}
213
+ elif request.param == 'impit':
214
+ class_client = ImpitHttpClient
215
+ kwargs = {'http3': False}
216
+ else:
217
+ class_client = HttpxHttpClient
218
+ kwargs = {'http2': True}
219
+ async with class_client(**kwargs) as client:
220
+ yield client
@@ -29,9 +29,10 @@ from crawlee.crawlers._adaptive_playwright._adaptive_playwright_crawler_statisti
29
29
  from crawlee.crawlers._adaptive_playwright._adaptive_playwright_crawling_context import (
30
30
  AdaptiveContextError,
31
31
  )
32
+ from crawlee.sessions import SessionPool
32
33
  from crawlee.statistics import Statistics
33
34
  from crawlee.storage_clients import SqlStorageClient
34
- from crawlee.storages import KeyValueStore
35
+ from crawlee.storages import KeyValueStore, RequestQueue
35
36
 
36
37
  if TYPE_CHECKING:
37
38
  from collections.abc import AsyncGenerator, Iterator
@@ -730,6 +731,84 @@ async def test_adaptive_context_query_non_existing_element(test_urls: list[str])
730
731
  mocked_h3_handler.assert_called_once_with(None)
731
732
 
732
733
 
734
+ @pytest.mark.parametrize(
735
+ 'test_input',
736
+ [
737
+ pytest.param(
738
+ TestInput(
739
+ expected_pw_count=0,
740
+ expected_static_count=2,
741
+ rendering_types=cycle(['static']),
742
+ detection_probability_recommendation=cycle([0]),
743
+ ),
744
+ id='Static only',
745
+ ),
746
+ pytest.param(
747
+ TestInput(
748
+ expected_pw_count=2,
749
+ expected_static_count=0,
750
+ rendering_types=cycle(['client only']),
751
+ detection_probability_recommendation=cycle([0]),
752
+ ),
753
+ id='Client only',
754
+ ),
755
+ pytest.param(
756
+ TestInput(
757
+ expected_pw_count=2,
758
+ expected_static_count=2,
759
+ rendering_types=cycle(['static', 'client only']),
760
+ detection_probability_recommendation=cycle([1]),
761
+ ),
762
+ id='Enforced rendering type detection',
763
+ ),
764
+ ],
765
+ )
766
+ async def test_change_context_state_after_handling(test_input: TestInput, server_url: URL) -> None:
767
+ """Test that context state is saved after handling the request."""
768
+ predictor = _SimpleRenderingTypePredictor(
769
+ rendering_types=test_input.rendering_types,
770
+ detection_probability_recommendation=test_input.detection_probability_recommendation,
771
+ )
772
+
773
+ request_queue = await RequestQueue.open(name='state-test')
774
+ used_session_id = None
775
+
776
+ async with SessionPool() as session_pool:
777
+ crawler = AdaptivePlaywrightCrawler.with_beautifulsoup_static_parser(
778
+ rendering_type_predictor=predictor,
779
+ session_pool=session_pool,
780
+ request_manager=request_queue,
781
+ )
782
+
783
+ @crawler.router.default_handler
784
+ async def request_handler(context: AdaptivePlaywrightCrawlingContext) -> None:
785
+ nonlocal used_session_id
786
+
787
+ if context.session is not None:
788
+ used_session_id = context.session.id
789
+ context.session.user_data['session_state'] = True
790
+
791
+ if isinstance(context.request.user_data['request_state'], list):
792
+ context.request.user_data['request_state'].append('handler')
793
+
794
+ request = Request.from_url(str(server_url), user_data={'request_state': ['initial']})
795
+
796
+ await crawler.run([request])
797
+
798
+ assert used_session_id is not None
799
+
800
+ session = await session_pool.get_session_by_id(used_session_id)
801
+ check_request = await request_queue.get_request(request.unique_key)
802
+
803
+ assert session is not None
804
+ assert check_request is not None
805
+ assert session.user_data.get('session_state') is True
806
+ # Check that request user data was updated in the handler and only onse.
807
+ assert check_request.user_data.get('request_state') == ['initial', 'handler']
808
+
809
+ await request_queue.drop()
810
+
811
+
733
812
  async def test_adaptive_playwright_crawler_with_sql_storage(test_urls: list[str], tmp_path: Path) -> None:
734
813
  """Tests that AdaptivePlaywrightCrawler can be initialized with SqlStorageClient."""
735
814
  storage_dir = tmp_path / 'test_table.db'
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import os
4
- import sys
5
4
  from typing import TYPE_CHECKING
6
5
 
7
6
  import pytest
@@ -164,10 +163,6 @@ async def test_send_request_allow_redirects_false(custom_http_client: HttpClient
164
163
 
165
164
 
166
165
  async def test_stream(http_client: HttpClient, server_url: URL) -> None:
167
- # TODO: Remove this skip when #1494 is resolved.
168
- if isinstance(http_client, CurlImpersonateHttpClient) and sys.platform != 'linux':
169
- pytest.skip('Flaky with Curl on Windows, see #1494.')
170
-
171
166
  content_body: bytes = b''
172
167
 
173
168
  async with http_client.stream(str(server_url)) as response:
@@ -449,8 +449,9 @@ async def test_add_requests_wait_for_all(
449
449
  # Immediately after adding, the total count may be less than 15 due to background processing
450
450
  assert await rq.get_total_count() <= 15
451
451
 
452
- # Wait a 500 milliseconds for background tasks to complete
453
- await asyncio.sleep(0.5)
452
+ # Wait for background tasks to complete
453
+ while await rq.get_total_count() < 15: # noqa: ASYNC110
454
+ await asyncio.sleep(0.1)
454
455
 
455
456
  # Verify all requests were added
456
457
  assert await rq.get_total_count() == 15