crawlee 0.6.12b4__tar.gz → 1.1.2b5__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.
- crawlee-1.1.2b5/.github/workflows/build_and_deploy_docs.yaml +76 -0
- crawlee-1.1.2b5/.github/workflows/check_pr_title.yaml +14 -0
- crawlee-1.1.2b5/.github/workflows/pre_release.yaml +88 -0
- crawlee-1.1.2b5/.github/workflows/release.yaml +121 -0
- crawlee-1.1.2b5/.github/workflows/run_code_checks.yaml +43 -0
- crawlee-1.1.2b5/.github/workflows/templates_e2e_tests.yaml +58 -0
- crawlee-1.1.2b5/.github/workflows/update_new_issue.yaml +25 -0
- crawlee-1.1.2b5/.gitignore +55 -0
- crawlee-1.1.2b5/CHANGELOG.md +720 -0
- crawlee-1.1.2b5/CONTRIBUTING.md +133 -0
- crawlee-1.1.2b5/Makefile +58 -0
- crawlee-1.1.2b5/PKG-INFO +526 -0
- crawlee-1.1.2b5/README.md +215 -0
- crawlee-1.1.2b5/before_scroll.png +0 -0
- crawlee-1.1.2b5/docs/deployment/apify_platform.mdx +253 -0
- crawlee-1.1.2b5/docs/deployment/code_examples/google/cloud_run_example.py +54 -0
- crawlee-1.1.2b5/docs/deployment/code_examples/google/google_example.py +58 -0
- crawlee-1.1.2b5/docs/examples/code_examples/adaptive_playwright_crawler.py +66 -0
- crawlee-1.1.2b5/docs/examples/code_examples/export_entire_dataset_to_file_csv.py +38 -0
- crawlee-1.1.2b5/docs/examples/code_examples/export_entire_dataset_to_file_json.py +38 -0
- crawlee-1.1.2b5/docs/examples/code_examples/fill_and_submit_web_form_crawler.py +41 -0
- crawlee-1.1.2b5/docs/examples/code_examples/parsel_crawler.py +47 -0
- crawlee-1.1.2b5/docs/examples/code_examples/playwright_crawler_with_fingerprint_generator.py +44 -0
- crawlee-1.1.2b5/docs/examples/code_examples/using_browser_profiles_chrome.py +54 -0
- crawlee-1.1.2b5/docs/examples/code_examples/using_browser_profiles_firefox.py +42 -0
- crawlee-1.1.2b5/docs/examples/code_examples/using_sitemap_request_loader.py +101 -0
- crawlee-1.1.2b5/docs/examples/export_entire_dataset_to_file.mdx +33 -0
- crawlee-1.1.2b5/docs/examples/playwright_crawler_adaptive.mdx +20 -0
- crawlee-1.1.2b5/docs/examples/playwright_crawler_with_fingerprint_generator.mdx +17 -0
- crawlee-1.1.2b5/docs/examples/using_browser_profile.mdx +39 -0
- crawlee-1.1.2b5/docs/examples/using_sitemap_request_loader.mdx +22 -0
- crawlee-1.1.2b5/docs/guides/architecture_overview.mdx +407 -0
- crawlee-1.1.2b5/docs/guides/avoid_blocking.mdx +47 -0
- crawlee-1.1.2b5/docs/guides/code_examples/creating_web_archive/manual_archiving_parsel_crawler.py +61 -0
- crawlee-1.1.2b5/docs/guides/code_examples/creating_web_archive/manual_archiving_playwright_crawler.py +85 -0
- crawlee-1.1.2b5/docs/guides/code_examples/creating_web_archive/simple_pw_through_proxy_pywb_server.py +30 -0
- crawlee-1.1.2b5/docs/guides/code_examples/error_handling/change_handle_error_status.py +45 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_clients/parsel_curl_impersonate_example.py +42 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_clients/parsel_httpx_example.py +42 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_clients/parsel_impit_example.py +43 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_crawlers/beautifulsoup_example.py +35 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_crawlers/http_example.py +52 -0
- crawlee-1.1.2b5/docs/guides/code_examples/http_crawlers/parsel_example.py +35 -0
- crawlee-1.1.2b5/docs/guides/code_examples/login_crawler/http_login.py +85 -0
- crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_adaptive/handler.py +21 -0
- crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_adaptive/init_prediction.py +72 -0
- crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_stagehand/browser_classes.py +101 -0
- crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_stagehand/stagehand_run.py +66 -0
- crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_stagehand/support_classes.py +57 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/rl_basic_example.py +28 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/rl_basic_example_with_persist.py +46 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/rl_tandem_example.py +43 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/rl_tandem_example_explicit.py +44 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/sitemap_basic_example.py +30 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/sitemap_example_with_persist.py +45 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/sitemap_tandem_example.py +53 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_loaders/sitemap_tandem_example_explicit.py +54 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/adaptive_crawler_handlers.py +51 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/basic_request_handlers.py +92 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/custom_router_default_only.py +44 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/error_handler.py +62 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/failed_request_handler.py +64 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/http_pre_navigation.py +37 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/playwright_pre_navigation.py +59 -0
- crawlee-1.1.2b5/docs/guides/code_examples/request_router/simple_default_handler.py +36 -0
- crawlee-1.1.2b5/docs/guides/code_examples/running_in_web_server/server.py +58 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_conflicts.py +22 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_crawler_configuration.py +22 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_crawler_event_manager.py +20 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_crawler_storage_client.py +17 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_locator_configuration.py +20 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_locator_event_manager.py +18 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_locator_storage_client.py +15 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_storage_configuration.py +30 -0
- crawlee-1.1.2b5/docs/guides/code_examples/service_locator/service_storage_storage_client.py +17 -0
- crawlee-1.1.2b5/docs/guides/code_examples/session_management/multi_sessions_http.py +85 -0
- crawlee-1.1.2b5/docs/guides/code_examples/session_management/sm_basic.py +48 -0
- crawlee-1.1.2b5/docs/guides/code_examples/session_management/sm_http.py +44 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/custom_storage_client_example.py +65 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/file_system_storage_client_basic_example.py +8 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/file_system_storage_client_configuration_example.py +18 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/memory_storage_client_basic_example.py +8 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/redis_storage_client_basic_example.py +10 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/redis_storage_client_configuration_example.py +27 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/registering_storage_clients_example.py +29 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/sql_storage_client_basic_example.py +12 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storage_clients/sql_storage_client_configuration_example.py +33 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/cleaning_purge_explicitly_example.py +20 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/dataset_basic_example.py +26 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/dataset_with_crawler_explicit_example.py +37 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/kvs_basic_example.py +26 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/kvs_with_crawler_explicit_example.py +36 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/opening.py +19 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/rq_basic_example.py +31 -0
- crawlee-1.1.2b5/docs/guides/code_examples/storages/rq_with_crawler_explicit_example.py +29 -0
- crawlee-1.1.2b5/docs/guides/code_examples/trace_and_monitor_crawlers/instrument_crawler.py +57 -0
- crawlee-1.1.2b5/docs/guides/creating_web_archive.mdx +89 -0
- crawlee-1.1.2b5/docs/guides/http_clients.mdx +118 -0
- crawlee-1.1.2b5/docs/guides/http_crawlers.mdx +101 -0
- crawlee-1.1.2b5/docs/guides/playwright_crawler.mdx +70 -0
- crawlee-1.1.2b5/docs/guides/playwright_crawler_adaptive.mdx +94 -0
- crawlee-1.1.2b5/docs/guides/playwright_crawler_stagehand.mdx +66 -0
- crawlee-1.1.2b5/docs/guides/request_loaders.mdx +203 -0
- crawlee-1.1.2b5/docs/guides/request_router.mdx +112 -0
- crawlee-1.1.2b5/docs/guides/service_locator.mdx +136 -0
- crawlee-1.1.2b5/docs/guides/storage_clients.mdx +516 -0
- crawlee-1.1.2b5/docs/guides/storages.mdx +239 -0
- crawlee-1.1.2b5/docs/guides/trace_and_monitor_crawlers.mdx +52 -0
- crawlee-1.1.2b5/docs/introduction/01_setting_up.mdx +153 -0
- crawlee-1.1.2b5/docs/introduction/03_adding_more_urls.mdx +120 -0
- crawlee-1.1.2b5/docs/introduction/09_running_in_cloud.mdx +101 -0
- crawlee-1.1.2b5/docs/pyproject.toml +9 -0
- crawlee-1.1.2b5/docs/quick-start/index.mdx +133 -0
- crawlee-1.1.2b5/docs/upgrading/upgrading_to_v1.md +339 -0
- crawlee-1.1.2b5/pyproject.toml +282 -0
- crawlee-1.1.2b5/src/crawlee/_autoscaling/_types.py +169 -0
- crawlee-1.1.2b5/src/crawlee/_autoscaling/autoscaled_pool.py +285 -0
- crawlee-1.1.2b5/src/crawlee/_autoscaling/snapshotter.py +390 -0
- crawlee-1.1.2b5/src/crawlee/_autoscaling/system_status.py +201 -0
- crawlee-1.1.2b5/src/crawlee/_browserforge_workaround.py +42 -0
- crawlee-1.1.2b5/src/crawlee/_cli.py +283 -0
- crawlee-1.1.2b5/src/crawlee/_consts.py +4 -0
- crawlee-1.1.2b5/src/crawlee/_log_config.py +167 -0
- crawlee-1.1.2b5/src/crawlee/_request.py +418 -0
- crawlee-1.1.2b5/src/crawlee/_service_locator.py +135 -0
- crawlee-1.1.2b5/src/crawlee/_types.py +793 -0
- crawlee-1.1.2b5/src/crawlee/_utils/blocked.py +29 -0
- crawlee-1.1.2b5/src/crawlee/_utils/byte_size.py +128 -0
- crawlee-1.1.2b5/src/crawlee/_utils/context.py +47 -0
- crawlee-1.1.2b5/src/crawlee/_utils/docs.py +47 -0
- crawlee-1.1.2b5/src/crawlee/_utils/file.py +185 -0
- crawlee-1.1.2b5/src/crawlee/_utils/globs.py +144 -0
- crawlee-1.1.2b5/src/crawlee/_utils/models.py +68 -0
- crawlee-1.1.2b5/src/crawlee/_utils/raise_if_too_many_kwargs.py +12 -0
- crawlee-1.1.2b5/src/crawlee/_utils/recoverable_state.py +208 -0
- crawlee-1.1.2b5/src/crawlee/_utils/recurring_task.py +64 -0
- crawlee-1.1.2b5/src/crawlee/_utils/requests.py +128 -0
- crawlee-1.1.2b5/src/crawlee/_utils/robots.py +117 -0
- crawlee-1.1.2b5/src/crawlee/_utils/sitemap.py +479 -0
- crawlee-1.1.2b5/src/crawlee/_utils/system.py +125 -0
- crawlee-1.1.2b5/src/crawlee/_utils/time.py +120 -0
- crawlee-1.1.2b5/src/crawlee/_utils/urls.py +53 -0
- crawlee-1.1.2b5/src/crawlee/browsers/__init__.py +24 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_browser_controller.py +97 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_browser_plugin.py +91 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_browser_pool.py +359 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_playwright_browser.py +109 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_playwright_browser_controller.py +254 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_playwright_browser_plugin.py +197 -0
- crawlee-1.1.2b5/src/crawlee/browsers/_types.py +18 -0
- crawlee-1.1.2b5/src/crawlee/configuration.py +227 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/__init__.py +66 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_abstract_http/__init__.py +10 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_abstract_http/_abstract_http_crawler.py +308 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_abstract_http/_abstract_http_parser.py +105 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_abstract_http/_http_crawling_context.py +56 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler.py +482 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler_statistics.py +24 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawling_context.py +247 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_adaptive_playwright/_rendering_type_predictor.py +278 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_adaptive_playwright/_utils.py +32 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_basic/_basic_crawler.py +1652 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_basic/_context_pipeline.py +146 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_basic/_logging_utils.py +68 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawler.py +81 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawling_context.py +32 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_parser.py +51 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_http/_http_crawler.py +62 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_http/_http_parser.py +47 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_parsel/_parsel_crawler.py +77 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_parsel/_parsel_crawling_context.py +32 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_parsel/_parsel_parser.py +47 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_playwright/_playwright_crawler.py +568 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_playwright/_playwright_crawling_context.py +37 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_playwright/_playwright_http_client.py +117 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_playwright/_playwright_pre_nav_crawling_context.py +47 -0
- crawlee-1.1.2b5/src/crawlee/crawlers/_playwright/_types.py +70 -0
- crawlee-1.1.2b5/src/crawlee/events/__init__.py +27 -0
- crawlee-1.1.2b5/src/crawlee/events/_event_manager.py +266 -0
- crawlee-1.1.2b5/src/crawlee/events/_local_event_manager.py +100 -0
- crawlee-1.1.2b5/src/crawlee/events/_types.py +122 -0
- crawlee-1.1.2b5/src/crawlee/fingerprint_suite/_browserforge_adapter.py +268 -0
- crawlee-1.1.2b5/src/crawlee/fingerprint_suite/_consts.py +10 -0
- crawlee-1.1.2b5/src/crawlee/fingerprint_suite/_fingerprint_generator.py +23 -0
- crawlee-1.1.2b5/src/crawlee/fingerprint_suite/_header_generator.py +84 -0
- crawlee-1.1.2b5/src/crawlee/fingerprint_suite/_types.py +54 -0
- crawlee-1.1.2b5/src/crawlee/http_clients/__init__.py +26 -0
- crawlee-1.1.2b5/src/crawlee/http_clients/_base.py +225 -0
- crawlee-1.1.2b5/src/crawlee/http_clients/_curl_impersonate.py +321 -0
- crawlee-1.1.2b5/src/crawlee/http_clients/_httpx.py +355 -0
- crawlee-1.1.2b5/src/crawlee/http_clients/_impit.py +273 -0
- crawlee-1.1.2b5/src/crawlee/otel/__init__.py +5 -0
- crawlee-1.1.2b5/src/crawlee/otel/crawler_instrumentor.py +152 -0
- crawlee-1.1.2b5/src/crawlee/project_template/cookiecutter.json +15 -0
- crawlee-1.1.2b5/src/crawlee/project_template/hooks/post_gen_project.py +45 -0
- crawlee-1.1.2b5/src/crawlee/project_template/templates/main.py +53 -0
- crawlee-1.1.2b5/src/crawlee/project_template/{{cookiecutter.project_name}}/pyproject.toml +38 -0
- crawlee-1.1.2b5/src/crawlee/project_template/{{cookiecutter.project_name}}/requirements.txt +16 -0
- crawlee-1.1.2b5/src/crawlee/proxy_configuration.py +268 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/__init__.py +7 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/_request_list.py +230 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/_request_loader.py +90 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/_request_manager.py +74 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/_request_manager_tandem.py +108 -0
- crawlee-1.1.2b5/src/crawlee/request_loaders/_sitemap_request_loader.py +375 -0
- crawlee-1.1.2b5/src/crawlee/router.py +101 -0
- crawlee-1.1.2b5/src/crawlee/sessions/_cookies.py +275 -0
- crawlee-1.1.2b5/src/crawlee/sessions/_models.py +82 -0
- crawlee-1.1.2b5/src/crawlee/sessions/_session.py +239 -0
- crawlee-1.1.2b5/src/crawlee/sessions/_session_pool.py +253 -0
- crawlee-1.1.2b5/src/crawlee/statistics/__init__.py +4 -0
- crawlee-1.1.2b5/src/crawlee/statistics/_error_snapshotter.py +77 -0
- crawlee-1.1.2b5/src/crawlee/statistics/_error_tracker.py +197 -0
- crawlee-1.1.2b5/src/crawlee/statistics/_models.py +145 -0
- crawlee-1.1.2b5/src/crawlee/statistics/_statistics.py +299 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/__init__.py +25 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_base/__init__.py +11 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_base/_dataset_client.py +94 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_base/_key_value_store_client.py +99 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_base/_request_queue_client.py +131 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_base/_storage_client.py +95 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/__init__.py +11 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/_dataset_client.py +485 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/_key_value_store_client.py +490 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/_request_queue_client.py +833 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/_storage_client.py +82 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_memory/__init__.py +11 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_memory/_dataset_client.py +269 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_memory/_key_value_store_client.py +189 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_memory/_request_queue_client.py +355 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_memory/_storage_client.py +70 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/__init__.py +6 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_client_mixin.py +295 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_dataset_client.py +325 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_key_value_store_client.py +264 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_request_queue_client.py +586 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_storage_client.py +146 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/_utils.py +23 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/lua_scripts/atomic_bloom_add_requests.lua +36 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/lua_scripts/atomic_fetch_request.lua +49 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/lua_scripts/atomic_set_add_requests.lua +37 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/lua_scripts/reclaim_stale_requests.lua +34 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/__init__.py +6 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_client_mixin.py +385 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_dataset_client.py +310 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_db_models.py +268 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_key_value_store_client.py +300 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_request_queue_client.py +720 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/_storage_client.py +282 -0
- crawlee-1.1.2b5/src/crawlee/storage_clients/models.py +175 -0
- crawlee-1.1.2b5/src/crawlee/storages/_base.py +66 -0
- crawlee-1.1.2b5/src/crawlee/storages/_dataset.py +366 -0
- crawlee-1.1.2b5/src/crawlee/storages/_key_value_store.py +312 -0
- crawlee-1.1.2b5/src/crawlee/storages/_request_queue.py +345 -0
- crawlee-1.1.2b5/src/crawlee/storages/_storage_instance_manager.py +195 -0
- crawlee-1.1.2b5/src/crawlee/storages/_utils.py +11 -0
- crawlee-1.1.2b5/src/crawlee/storages/py.typed +0 -0
- crawlee-1.1.2b5/tests/__init__.py +0 -0
- crawlee-1.1.2b5/tests/e2e/__init__.py +0 -0
- crawlee-1.1.2b5/tests/e2e/conftest.py +61 -0
- crawlee-1.1.2b5/tests/e2e/project_template/test_static_crawlers_templates.py +118 -0
- crawlee-1.1.2b5/tests/e2e/project_template/utils.py +103 -0
- crawlee-1.1.2b5/tests/unit/__init__.py +0 -0
- crawlee-1.1.2b5/tests/unit/_autoscaling/test_autoscaled_pool.py +335 -0
- crawlee-1.1.2b5/tests/unit/_autoscaling/test_snapshotter.py +353 -0
- crawlee-1.1.2b5/tests/unit/_autoscaling/test_system_status.py +253 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_byte_size.py +109 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_file.py +13 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_html_to_text.py +202 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_measure_time.py +38 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_raise_if_too_many_kwargs.py +38 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_requests.py +134 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_shared_timeout.py +57 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_sitemap.py +248 -0
- crawlee-1.1.2b5/tests/unit/_utils/test_system.py +143 -0
- crawlee-1.1.2b5/tests/unit/browsers/test_browser_pool.py +188 -0
- crawlee-1.1.2b5/tests/unit/browsers/test_playwright_browser_controller.py +134 -0
- crawlee-1.1.2b5/tests/unit/browsers/test_playwright_browser_plugin.py +81 -0
- crawlee-1.1.2b5/tests/unit/conftest.py +223 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawler.py +829 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawling_context.py +0 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_adaptive_playwright/test_predictor.py +217 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_basic/test_basic_crawler.py +1833 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_beautifulsoup/test_beautifulsoup_crawler.py +411 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_http/test_http_crawler.py +579 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_parsel/test_parsel_crawler.py +446 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_playwright/test_playwright_crawler.py +993 -0
- crawlee-1.1.2b5/tests/unit/crawlers/_playwright/test_utils.py +157 -0
- crawlee-1.1.2b5/tests/unit/events/test_event_manager.py +221 -0
- crawlee-1.1.2b5/tests/unit/fingerprint_suite/test_adapters.py +87 -0
- crawlee-1.1.2b5/tests/unit/fingerprint_suite/test_header_generator.py +80 -0
- crawlee-1.1.2b5/tests/unit/http_clients/test_http_clients.py +253 -0
- crawlee-1.1.2b5/tests/unit/http_clients/test_httpx.py +45 -0
- crawlee-1.1.2b5/tests/unit/otel/test_crawler_instrumentor.py +98 -0
- crawlee-1.1.2b5/tests/unit/request_loaders/test_request_list.py +242 -0
- crawlee-1.1.2b5/tests/unit/request_loaders/test_sitemap_request_loader.py +209 -0
- crawlee-1.1.2b5/tests/unit/server.py +530 -0
- crawlee-1.1.2b5/tests/unit/server_endpoints.py +142 -0
- crawlee-1.1.2b5/tests/unit/server_static/test.js +0 -0
- crawlee-1.1.2b5/tests/unit/server_static/test.png +0 -0
- crawlee-1.1.2b5/tests/unit/sessions/test_session_pool.py +198 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_file_system/test_fs_dataset_client.py +153 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_file_system/test_fs_kvs_client.py +201 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_file_system/test_fs_rq_client.py +175 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_memory/test_memory_dataset_client.py +78 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_memory/test_memory_kvs_client.py +80 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_memory/test_memory_rq_client.py +78 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_redis/test_redis_dataset_client.py +146 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_redis/test_redis_kvs_client.py +217 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_redis/test_redis_rq_client.py +257 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_sql/test_sql_dataset_client.py +236 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_sql/test_sql_kvs_client.py +287 -0
- crawlee-1.1.2b5/tests/unit/storage_clients/_sql/test_sql_rq_client.py +239 -0
- crawlee-1.1.2b5/tests/unit/storages/conftest.py +39 -0
- crawlee-1.1.2b5/tests/unit/storages/test_dataset.py +1101 -0
- crawlee-1.1.2b5/tests/unit/storages/test_key_value_store.py +1152 -0
- crawlee-1.1.2b5/tests/unit/storages/test_request_manager_tandem.py +82 -0
- crawlee-1.1.2b5/tests/unit/storages/test_request_queue.py +1369 -0
- crawlee-1.1.2b5/tests/unit/storages/test_storage_instance_manager.py +130 -0
- crawlee-1.1.2b5/tests/unit/test_cli.py +253 -0
- crawlee-1.1.2b5/tests/unit/test_configuration.py +97 -0
- crawlee-1.1.2b5/tests/unit/test_service_locator.py +97 -0
- crawlee-1.1.2b5/uv.lock +4462 -0
- crawlee-1.1.2b5/website/docusaurus.config.js +379 -0
- crawlee-1.1.2b5/website/generate_module_shortcuts.py +60 -0
- crawlee-1.1.2b5/website/package.json +71 -0
- crawlee-1.1.2b5/website/sidebars.js +131 -0
- crawlee-1.1.2b5/website/src/components/Homepage/HomepageCliExample.jsx +26 -0
- crawlee-1.1.2b5/website/src/components/LLMButtons.jsx +510 -0
- crawlee-1.1.2b5/website/src/components/LLMButtons.module.css +151 -0
- crawlee-1.1.2b5/website/src/components/RunnableCodeBlock.jsx +42 -0
- crawlee-1.1.2b5/website/src/css/custom.css +965 -0
- crawlee-1.1.2b5/website/src/pages/home_page_example.py +42 -0
- crawlee-1.1.2b5/website/src/pages/index.js +364 -0
- crawlee-1.1.2b5/website/src/theme/DocItem/Content/index.js +35 -0
- crawlee-1.1.2b5/website/src/theme/DocItem/Content/styles.module.css +22 -0
- crawlee-1.1.2b5/website/static/.nojekyll +0 -0
- crawlee-1.1.2b5/website/static/img/guides/jaeger_otel_search_view_example.png +0 -0
- crawlee-1.1.2b5/website/static/img/guides/jaeger_otel_trace_example.png +0 -0
- crawlee-1.1.2b5/website/yarn.lock +18048 -0
- crawlee-0.6.12b4/.github/workflows/build_and_deploy_docs.yaml +0 -72
- crawlee-0.6.12b4/.github/workflows/check_pr_title.yaml +0 -14
- crawlee-0.6.12b4/.github/workflows/pre_release.yaml +0 -88
- crawlee-0.6.12b4/.github/workflows/release.yaml +0 -115
- crawlee-0.6.12b4/.github/workflows/run_code_checks.yaml +0 -36
- crawlee-0.6.12b4/.github/workflows/templates_e2e_tests.yaml +0 -57
- crawlee-0.6.12b4/.github/workflows/update_new_issue.yaml +0 -25
- crawlee-0.6.12b4/.gitignore +0 -54
- crawlee-0.6.12b4/CHANGELOG.md +0 -580
- crawlee-0.6.12b4/CONTRIBUTING.md +0 -133
- crawlee-0.6.12b4/Makefile +0 -58
- crawlee-0.6.12b4/PKG-INFO +0 -485
- crawlee-0.6.12b4/README.md +0 -210
- crawlee-0.6.12b4/docs/deployment/apify_platform.mdx +0 -253
- crawlee-0.6.12b4/docs/deployment/code_examples/google/cloud_run_example.py +0 -55
- crawlee-0.6.12b4/docs/deployment/code_examples/google/google_example.py +0 -62
- crawlee-0.6.12b4/docs/examples/code_examples/adaptive_playwright_crawler.py +0 -65
- crawlee-0.6.12b4/docs/examples/code_examples/export_entire_dataset_to_file_csv.py +0 -37
- crawlee-0.6.12b4/docs/examples/code_examples/export_entire_dataset_to_file_json.py +0 -37
- crawlee-0.6.12b4/docs/examples/code_examples/fill_and_submit_web_form_crawler.py +0 -41
- crawlee-0.6.12b4/docs/examples/code_examples/parsel_crawler.py +0 -47
- crawlee-0.6.12b4/docs/examples/code_examples/playwright_crawler_with_fingerprint_generator.py +0 -44
- crawlee-0.6.12b4/docs/examples/export_entire_dataset_to_file.mdx +0 -33
- crawlee-0.6.12b4/docs/examples/playwright_crawler_adaptive.mdx +0 -20
- crawlee-0.6.12b4/docs/examples/playwright_crawler_with_fingerprint_generator.mdx +0 -17
- crawlee-0.6.12b4/docs/guides/avoid_blocking.mdx +0 -47
- crawlee-0.6.12b4/docs/guides/code_examples/error_handling/change_handle_error_status.py +0 -47
- crawlee-0.6.12b4/docs/guides/code_examples/http_clients/curl_impersonate_example.py +0 -42
- crawlee-0.6.12b4/docs/guides/code_examples/http_clients/httpx_example.py +0 -42
- crawlee-0.6.12b4/docs/guides/code_examples/login_crawler/http_login.py +0 -85
- crawlee-0.6.12b4/docs/guides/code_examples/playwright_crawler_adaptive/handler.py +0 -21
- crawlee-0.6.12b4/docs/guides/code_examples/playwright_crawler_adaptive/init_prediction.py +0 -70
- crawlee-0.6.12b4/docs/guides/code_examples/request_loaders/rl_basic_example.py +0 -27
- crawlee-0.6.12b4/docs/guides/code_examples/request_loaders/tandem_example.py +0 -27
- crawlee-0.6.12b4/docs/guides/code_examples/request_loaders/tandem_example_explicit.py +0 -30
- crawlee-0.6.12b4/docs/guides/code_examples/running_in_web_server/server.py +0 -58
- crawlee-0.6.12b4/docs/guides/code_examples/session_management/multi_sessions_http.py +0 -85
- crawlee-0.6.12b4/docs/guides/code_examples/session_management/sm_basic.py +0 -48
- crawlee-0.6.12b4/docs/guides/code_examples/session_management/sm_http.py +0 -44
- crawlee-0.6.12b4/docs/guides/code_examples/storages/cleaning_purge_explicitly_example.py +0 -21
- crawlee-0.6.12b4/docs/guides/code_examples/storages/dataset_basic_example.py +0 -26
- crawlee-0.6.12b4/docs/guides/code_examples/storages/dataset_with_crawler_explicit_example.py +0 -37
- crawlee-0.6.12b4/docs/guides/code_examples/storages/kvs_basic_example.py +0 -26
- crawlee-0.6.12b4/docs/guides/code_examples/storages/kvs_with_crawler_explicit_example.py +0 -36
- crawlee-0.6.12b4/docs/guides/code_examples/storages/rq_basic_example.py +0 -31
- crawlee-0.6.12b4/docs/guides/code_examples/storages/rq_with_crawler_explicit_example.py +0 -31
- crawlee-0.6.12b4/docs/guides/http_clients.mdx +0 -50
- crawlee-0.6.12b4/docs/guides/http_crawlers.mdx +0 -38
- crawlee-0.6.12b4/docs/guides/playwright_crawler.mdx +0 -70
- crawlee-0.6.12b4/docs/guides/playwright_crawler_adaptive.mdx +0 -94
- crawlee-0.6.12b4/docs/guides/request_loaders.mdx +0 -142
- crawlee-0.6.12b4/docs/guides/storages.mdx +0 -221
- crawlee-0.6.12b4/docs/introduction/01_setting_up.mdx +0 -153
- crawlee-0.6.12b4/docs/introduction/03_adding_more_urls.mdx +0 -120
- crawlee-0.6.12b4/docs/introduction/09_running_in_cloud.mdx +0 -101
- crawlee-0.6.12b4/docs/pyproject.toml +0 -9
- crawlee-0.6.12b4/docs/quick-start/index.mdx +0 -133
- crawlee-0.6.12b4/pyproject.toml +0 -271
- crawlee-0.6.12b4/src/crawlee/_autoscaling/_types.py +0 -155
- crawlee-0.6.12b4/src/crawlee/_autoscaling/autoscaled_pool.py +0 -285
- crawlee-0.6.12b4/src/crawlee/_autoscaling/snapshotter.py +0 -372
- crawlee-0.6.12b4/src/crawlee/_autoscaling/system_status.py +0 -201
- crawlee-0.6.12b4/src/crawlee/_browserforge_workaround.py +0 -42
- crawlee-0.6.12b4/src/crawlee/_cli.py +0 -252
- crawlee-0.6.12b4/src/crawlee/_consts.py +0 -3
- crawlee-0.6.12b4/src/crawlee/_log_config.py +0 -158
- crawlee-0.6.12b4/src/crawlee/_request.py +0 -406
- crawlee-0.6.12b4/src/crawlee/_service_locator.py +0 -106
- crawlee-0.6.12b4/src/crawlee/_types.py +0 -660
- crawlee-0.6.12b4/src/crawlee/_utils/blocked.py +0 -27
- crawlee-0.6.12b4/src/crawlee/_utils/byte_size.py +0 -124
- crawlee-0.6.12b4/src/crawlee/_utils/context.py +0 -46
- crawlee-0.6.12b4/src/crawlee/_utils/data_processing.py +0 -41
- crawlee-0.6.12b4/src/crawlee/_utils/docs.py +0 -24
- crawlee-0.6.12b4/src/crawlee/_utils/file.py +0 -110
- crawlee-0.6.12b4/src/crawlee/_utils/globs.py +0 -144
- crawlee-0.6.12b4/src/crawlee/_utils/measure_time.py +0 -31
- crawlee-0.6.12b4/src/crawlee/_utils/models.py +0 -65
- crawlee-0.6.12b4/src/crawlee/_utils/recoverable_state.py +0 -153
- crawlee-0.6.12b4/src/crawlee/_utils/recurring_task.py +0 -48
- crawlee-0.6.12b4/src/crawlee/_utils/requests.py +0 -154
- crawlee-0.6.12b4/src/crawlee/_utils/robots.py +0 -85
- crawlee-0.6.12b4/src/crawlee/_utils/system.py +0 -114
- crawlee-0.6.12b4/src/crawlee/_utils/urls.py +0 -46
- crawlee-0.6.12b4/src/crawlee/browsers/__init__.py +0 -26
- crawlee-0.6.12b4/src/crawlee/browsers/_browser_controller.py +0 -94
- crawlee-0.6.12b4/src/crawlee/browsers/_browser_plugin.py +0 -88
- crawlee-0.6.12b4/src/crawlee/browsers/_browser_pool.py +0 -356
- crawlee-0.6.12b4/src/crawlee/browsers/_playwright_browser.py +0 -106
- crawlee-0.6.12b4/src/crawlee/browsers/_playwright_browser_controller.py +0 -247
- crawlee-0.6.12b4/src/crawlee/browsers/_playwright_browser_plugin.py +0 -183
- crawlee-0.6.12b4/src/crawlee/browsers/_types.py +0 -18
- crawlee-0.6.12b4/src/crawlee/configuration.py +0 -273
- crawlee-0.6.12b4/src/crawlee/crawlers/__init__.py +0 -65
- crawlee-0.6.12b4/src/crawlee/crawlers/_abstract_http/__init__.py +0 -9
- crawlee-0.6.12b4/src/crawlee/crawlers/_abstract_http/_abstract_http_crawler.py +0 -270
- crawlee-0.6.12b4/src/crawlee/crawlers/_abstract_http/_abstract_http_parser.py +0 -105
- crawlee-0.6.12b4/src/crawlee/crawlers/_abstract_http/_http_crawling_context.py +0 -56
- crawlee-0.6.12b4/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler.py +0 -456
- crawlee-0.6.12b4/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawler_statistics.py +0 -24
- crawlee-0.6.12b4/src/crawlee/crawlers/_adaptive_playwright/_adaptive_playwright_crawling_context.py +0 -242
- crawlee-0.6.12b4/src/crawlee/crawlers/_adaptive_playwright/_rendering_type_predictor.py +0 -185
- crawlee-0.6.12b4/src/crawlee/crawlers/_basic/_basic_crawler.py +0 -1524
- crawlee-0.6.12b4/src/crawlee/crawlers/_basic/_context_pipeline.py +0 -123
- crawlee-0.6.12b4/src/crawlee/crawlers/_basic/_logging_utils.py +0 -64
- crawlee-0.6.12b4/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawler.py +0 -81
- crawlee-0.6.12b4/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_crawling_context.py +0 -32
- crawlee-0.6.12b4/src/crawlee/crawlers/_beautifulsoup/_beautifulsoup_parser.py +0 -49
- crawlee-0.6.12b4/src/crawlee/crawlers/_http/_http_crawler.py +0 -62
- crawlee-0.6.12b4/src/crawlee/crawlers/_http/_http_parser.py +0 -44
- crawlee-0.6.12b4/src/crawlee/crawlers/_parsel/_parsel_crawler.py +0 -77
- crawlee-0.6.12b4/src/crawlee/crawlers/_parsel/_parsel_crawling_context.py +0 -32
- crawlee-0.6.12b4/src/crawlee/crawlers/_parsel/_parsel_parser.py +0 -44
- crawlee-0.6.12b4/src/crawlee/crawlers/_playwright/_playwright_crawler.py +0 -515
- crawlee-0.6.12b4/src/crawlee/crawlers/_playwright/_playwright_crawling_context.py +0 -37
- crawlee-0.6.12b4/src/crawlee/crawlers/_playwright/_playwright_http_client.py +0 -111
- crawlee-0.6.12b4/src/crawlee/crawlers/_playwright/_playwright_pre_nav_crawling_context.py +0 -44
- crawlee-0.6.12b4/src/crawlee/crawlers/_playwright/_types.py +0 -60
- crawlee-0.6.12b4/src/crawlee/events/__init__.py +0 -25
- crawlee-0.6.12b4/src/crawlee/events/_event_manager.py +0 -259
- crawlee-0.6.12b4/src/crawlee/events/_local_event_manager.py +0 -100
- crawlee-0.6.12b4/src/crawlee/events/_types.py +0 -98
- crawlee-0.6.12b4/src/crawlee/fingerprint_suite/_browserforge_adapter.py +0 -269
- crawlee-0.6.12b4/src/crawlee/fingerprint_suite/_consts.py +0 -12
- crawlee-0.6.12b4/src/crawlee/fingerprint_suite/_fingerprint_generator.py +0 -23
- crawlee-0.6.12b4/src/crawlee/fingerprint_suite/_header_generator.py +0 -72
- crawlee-0.6.12b4/src/crawlee/fingerprint_suite/_types.py +0 -58
- crawlee-0.6.12b4/src/crawlee/http_clients/__init__.py +0 -22
- crawlee-0.6.12b4/src/crawlee/http_clients/_base.py +0 -221
- crawlee-0.6.12b4/src/crawlee/http_clients/_curl_impersonate.py +0 -309
- crawlee-0.6.12b4/src/crawlee/http_clients/_httpx.py +0 -345
- crawlee-0.6.12b4/src/crawlee/project_template/cookiecutter.json +0 -14
- crawlee-0.6.12b4/src/crawlee/project_template/hooks/post_gen_project.py +0 -41
- crawlee-0.6.12b4/src/crawlee/project_template/templates/main.py +0 -49
- crawlee-0.6.12b4/src/crawlee/project_template/{{cookiecutter.project_name}}/pyproject.toml +0 -36
- crawlee-0.6.12b4/src/crawlee/project_template/{{cookiecutter.project_name}}/requirements.txt +0 -13
- crawlee-0.6.12b4/src/crawlee/proxy_configuration.py +0 -268
- crawlee-0.6.12b4/src/crawlee/request_loaders/__init__.py +0 -11
- crawlee-0.6.12b4/src/crawlee/request_loaders/_request_list.py +0 -125
- crawlee-0.6.12b4/src/crawlee/request_loaders/_request_loader.py +0 -85
- crawlee-0.6.12b4/src/crawlee/request_loaders/_request_manager.py +0 -70
- crawlee-0.6.12b4/src/crawlee/request_loaders/_request_manager_tandem.py +0 -106
- crawlee-0.6.12b4/src/crawlee/router.py +0 -101
- crawlee-0.6.12b4/src/crawlee/sessions/_cookies.py +0 -268
- crawlee-0.6.12b4/src/crawlee/sessions/_models.py +0 -82
- crawlee-0.6.12b4/src/crawlee/sessions/_session.py +0 -217
- crawlee-0.6.12b4/src/crawlee/sessions/_session_pool.py +0 -252
- crawlee-0.6.12b4/src/crawlee/statistics/__init__.py +0 -6
- crawlee-0.6.12b4/src/crawlee/statistics/_error_snapshotter.py +0 -70
- crawlee-0.6.12b4/src/crawlee/statistics/_error_tracker.py +0 -197
- crawlee-0.6.12b4/src/crawlee/statistics/_models.py +0 -106
- crawlee-0.6.12b4/src/crawlee/statistics/_statistics.py +0 -308
- crawlee-0.6.12b4/src/crawlee/storage_clients/__init__.py +0 -4
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/__init__.py +0 -20
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_dataset_client.py +0 -231
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_dataset_collection_client.py +0 -59
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_key_value_store_client.py +0 -131
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_key_value_store_collection_client.py +0 -59
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_request_queue_client.py +0 -189
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_request_queue_collection_client.py +0 -59
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_storage_client.py +0 -62
- crawlee-0.6.12b4/src/crawlee/storage_clients/_base/_types.py +0 -22
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/__init__.py +0 -17
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_creation_management.py +0 -429
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_dataset_client.py +0 -410
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_dataset_collection_client.py +0 -62
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_key_value_store_client.py +0 -425
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_key_value_store_collection_client.py +0 -62
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_memory_storage_client.py +0 -358
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_request_queue_client.py +0 -558
- crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/_request_queue_collection_client.py +0 -62
- crawlee-0.6.12b4/src/crawlee/storage_clients/models.py +0 -277
- crawlee-0.6.12b4/src/crawlee/storages/_base.py +0 -57
- crawlee-0.6.12b4/src/crawlee/storages/_creation_management.py +0 -231
- crawlee-0.6.12b4/src/crawlee/storages/_dataset.py +0 -499
- crawlee-0.6.12b4/src/crawlee/storages/_key_value_store.py +0 -275
- crawlee-0.6.12b4/src/crawlee/storages/_request_queue.py +0 -713
- crawlee-0.6.12b4/tests/e2e/conftest.py +0 -60
- crawlee-0.6.12b4/tests/e2e/project_template/test_static_crawlers_templates.py +0 -114
- crawlee-0.6.12b4/tests/e2e/project_template/utils.py +0 -98
- crawlee-0.6.12b4/tests/unit/_autoscaling/test_autoscaled_pool.py +0 -333
- crawlee-0.6.12b4/tests/unit/_autoscaling/test_snapshotter.py +0 -275
- crawlee-0.6.12b4/tests/unit/_autoscaling/test_system_status.py +0 -206
- crawlee-0.6.12b4/tests/unit/_utils/test_byte_size.py +0 -109
- crawlee-0.6.12b4/tests/unit/_utils/test_data_processing.py +0 -51
- crawlee-0.6.12b4/tests/unit/_utils/test_file.py +0 -149
- crawlee-0.6.12b4/tests/unit/_utils/test_html_to_text.py +0 -199
- crawlee-0.6.12b4/tests/unit/_utils/test_measure_time.py +0 -38
- crawlee-0.6.12b4/tests/unit/_utils/test_requests.py +0 -169
- crawlee-0.6.12b4/tests/unit/_utils/test_system.py +0 -125
- crawlee-0.6.12b4/tests/unit/browsers/test_browser_pool.py +0 -188
- crawlee-0.6.12b4/tests/unit/browsers/test_playwright_browser_controller.py +0 -108
- crawlee-0.6.12b4/tests/unit/browsers/test_playwright_browser_plugin.py +0 -71
- crawlee-0.6.12b4/tests/unit/conftest.py +0 -214
- crawlee-0.6.12b4/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawler.py +0 -725
- crawlee-0.6.12b4/tests/unit/crawlers/_adaptive_playwright/test_predictor.py +0 -139
- crawlee-0.6.12b4/tests/unit/crawlers/_basic/test_basic_crawler.py +0 -1419
- crawlee-0.6.12b4/tests/unit/crawlers/_beautifulsoup/test_beautifulsoup_crawler.py +0 -200
- crawlee-0.6.12b4/tests/unit/crawlers/_http/test_http_crawler.py +0 -565
- crawlee-0.6.12b4/tests/unit/crawlers/_parsel/test_parsel_crawler.py +0 -296
- crawlee-0.6.12b4/tests/unit/crawlers/_playwright/test_playwright_crawler.py +0 -729
- crawlee-0.6.12b4/tests/unit/events/test_event_manager.py +0 -209
- crawlee-0.6.12b4/tests/unit/fingerprint_suite/test_adapters.py +0 -66
- crawlee-0.6.12b4/tests/unit/fingerprint_suite/test_header_generator.py +0 -80
- crawlee-0.6.12b4/tests/unit/http_clients/test_curl_impersonate.py +0 -206
- crawlee-0.6.12b4/tests/unit/http_clients/test_httpx.py +0 -220
- crawlee-0.6.12b4/tests/unit/request_loaders/test_request_list.py +0 -58
- crawlee-0.6.12b4/tests/unit/server.py +0 -448
- crawlee-0.6.12b4/tests/unit/server_endpoints.py +0 -60
- crawlee-0.6.12b4/tests/unit/sessions/test_session_pool.py +0 -198
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_creation_management.py +0 -59
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_dataset_client.py +0 -148
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_dataset_collection_client.py +0 -45
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_key_value_store_client.py +0 -443
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_key_value_store_collection_client.py +0 -42
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_memory_storage_client.py +0 -288
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_memory_storage_e2e.py +0 -130
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_request_queue_client.py +0 -249
- crawlee-0.6.12b4/tests/unit/storage_clients/_memory/test_request_queue_collection_client.py +0 -42
- crawlee-0.6.12b4/tests/unit/storages/test_dataset.py +0 -156
- crawlee-0.6.12b4/tests/unit/storages/test_key_value_store.py +0 -229
- crawlee-0.6.12b4/tests/unit/storages/test_request_manager_tandem.py +0 -78
- crawlee-0.6.12b4/tests/unit/storages/test_request_queue.py +0 -367
- crawlee-0.6.12b4/tests/unit/test_cli.py +0 -241
- crawlee-0.6.12b4/tests/unit/test_configuration.py +0 -76
- crawlee-0.6.12b4/tests/unit/test_service_locator.py +0 -101
- crawlee-0.6.12b4/uv.lock +0 -3637
- crawlee-0.6.12b4/website/docusaurus.config.js +0 -360
- crawlee-0.6.12b4/website/generate_module_shortcuts.py +0 -59
- crawlee-0.6.12b4/website/package.json +0 -64
- crawlee-0.6.12b4/website/sidebars.js +0 -127
- crawlee-0.6.12b4/website/src/components/Homepage/HomepageCliExample.jsx +0 -26
- crawlee-0.6.12b4/website/src/components/RunnableCodeBlock.jsx +0 -40
- crawlee-0.6.12b4/website/src/css/custom.css +0 -963
- crawlee-0.6.12b4/website/src/pages/home_page_example.py +0 -37
- crawlee-0.6.12b4/website/src/pages/index.js +0 -364
- crawlee-0.6.12b4/website/static/img/apify_logo.svg +0 -5
- crawlee-0.6.12b4/website/static/img/apify_og_SDK.png +0 -0
- crawlee-0.6.12b4/website/static/img/apify_sdk.svg +0 -13
- crawlee-0.6.12b4/website/static/img/apify_sdk_white.svg +0 -13
- crawlee-0.6.12b4/website/yarn.lock +0 -17457
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/.editorconfig +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/.github/CODEOWNERS +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/.github/pull_request_template.md +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/.markdownlint.yaml +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/.pre-commit-config.yaml +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/LICENSE +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/code_examples/apify/crawler_as_actor_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/code_examples/apify/get_public_url.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/code_examples/apify/log_with_config_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/code_examples/apify/proxy_advanced_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/code_examples/apify/proxy_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/google_cloud.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/deployment/google_cloud_run.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/add_data_to_dataset.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/beautifulsoup_crawler.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/capture_screenshot_using_playwright.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/capturing_page_snapshots_with_error_snapshotter.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/add_data_to_dataset_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/add_data_to_dataset_dataset.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/add_data_to_dataset_pw.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/beautifulsoup_crawler.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/beautifulsoup_crawler_keep_alive.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/beautifulsoup_crawler_stop.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/capture_screenshot_using_playwright.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/configure_json_logging.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_all_links_on_website_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_all_links_on_website_pw.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_multiple_urls_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_multiple_urls_pw.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_specific_links_on_website_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_specific_links_on_website_pw.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_website_with_relative_links_all_links.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_website_with_relative_links_same_domain.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_website_with_relative_links_same_hostname.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/crawl_website_with_relative_links_same_origin.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/extract_and_add_specific_links_on_website_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/extract_and_add_specific_links_on_website_pw.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/fill_and_submit_web_form_request.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/parsel_crawler_with_error_snapshotter.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/playwright_block_requests.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/playwright_crawler.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/playwright_crawler_with_camoufox.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/playwright_crawler_with_error_snapshotter.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/respect_robots_on_skipped_request.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/respect_robots_txt_file.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/code_examples/resuming_paused_crawl.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawl_all_links_on_website.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawl_multiple_urls.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawl_specific_links_on_website.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawl_website_with_relative_links.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawler_keep_alive.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/crawler_stop.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/fill_and_submit_web_form.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/json_logging.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/parsel_crawler.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/playwright_crawler.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/playwright_crawler_with_block_requests.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/playwright_crawler_with_camoufox.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/respect_robots_txt_file.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/examples/resuming_paused_crawl.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/avoid_blocking/default_fingerprint_generator_with_args.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/avoid_blocking/playwright_with_fingerprint_generator.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/error_handling/disable_retry.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/error_handling/handle_proxy_error.py +0 -0
- /crawlee-0.6.12b4/docs/guides/code_examples/running_in_web_server/__init__.py → /crawlee-1.1.2b5/docs/guides/code_examples/http_crawlers/custom_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/login_crawler/playwright_login.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler/browser_configuration_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler/multiple_launch_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler/plugin_browser_configuration_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler/pre_navigation_hook_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler_adaptive/init_beautifulsoup.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler_adaptive/init_parsel.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/playwright_crawler_adaptive/pre_nav_hooks.py +0 -0
- {crawlee-0.6.12b4/docs/introduction/code_examples → crawlee-1.1.2b5/docs/guides/code_examples/playwright_crawler_stagehand}/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/inspecting_bs_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/inspecting_pw_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/integration_bs_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/integration_pw_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/quick_start_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/session_bs_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/session_pw_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/tiers_bs_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/proxy_management/tiers_pw_example.py +0 -0
- {crawlee-0.6.12b4/src/crawlee/_utils → crawlee-1.1.2b5/docs/guides/code_examples/running_in_web_server}/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/running_in_web_server/crawler.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/scaling_crawlers/max_tasks_per_minute_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/scaling_crawlers/min_and_max_concurrency_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/session_management/one_session_http.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/session_management/sm_beautifulsoup.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/session_management/sm_parsel.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/session_management/sm_playwright.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/session_management/sm_standalone.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/cleaning_do_not_purge_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/dataset_with_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/helper_add_requests_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/helper_enqueue_links_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/kvs_with_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/code_examples/storages/rq_with_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/crawler_login.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/error_handling.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/proxy_management.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/running_in_web_server.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/scaling_crawlers.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/guides/session_management.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/02_first_crawler.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/04_real_world_project.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/05_crawling.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/06_scraping.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/07_saving_data.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/08_refactoring.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/02_bs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/02_bs_better.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/02_request_queue.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/03_enqueue_strategy.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/03_finding_new_links.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/03_globs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/03_original_code.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/03_transform_request.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/04_sanity_check.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/05_crawling_detail.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/05_crawling_listing.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/06_scraping.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/07_final_code.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/07_first_code.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/08_main.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/08_routes.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/09_apify_sdk.py +0 -0
- {crawlee-0.6.12b4/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}} → crawlee-1.1.2b5/docs/introduction/code_examples}/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/code_examples/routes.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/introduction/index.mdx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/quick-start/code_examples/beautifulsoup_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/quick-start/code_examples/parsel_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/quick-start/code_examples/playwright_crawler_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/quick-start/code_examples/playwright_crawler_headful_example.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/docs/upgrading/upgrading_to_v0x.md +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/renovate.json +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_autoscaling/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_autoscaling/py.typed +0 -0
- {crawlee-0.6.12b4/tests → crawlee-1.1.2b5/src/crawlee/_utils}/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/console.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/crypto.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/html_to_text.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/try_import.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/wait.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/_utils/web.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/browsers/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_abstract_http/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_adaptive_playwright/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_adaptive_playwright/_result_comparator.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_basic/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_basic/_basic_crawling_context.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_basic/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_beautifulsoup/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_beautifulsoup/_utils.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_beautifulsoup/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_http/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_parsel/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_parsel/_utils.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_playwright/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_playwright/_utils.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/_types.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/crawlers/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/errors.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/events/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/fingerprint_suite/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/fingerprint_suite/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/hooks/pre_gen_project.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/main_beautifulsoup.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/main_parsel.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/main_playwright.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/main_playwright_camoufox.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/routes_beautifulsoup.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/routes_camoufox.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/routes_parsel.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/routes_playwright.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/templates/routes_playwright_camoufox.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/.dockerignore +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/Dockerfile +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/README.md +0 -0
- {crawlee-0.6.12b4/tests/e2e → crawlee-1.1.2b5/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}}/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/__main__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/main.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/project_template/{{cookiecutter.project_name}}/{{cookiecutter.__package_name}}/routes.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/sessions/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/sessions/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/storage_clients/_base/py.typed +0 -0
- /crawlee-0.6.12b4/src/crawlee/storage_clients/_memory/py.typed → /crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system/_utils.py +0 -0
- {crawlee-0.6.12b4/src/crawlee/storage_clients → crawlee-1.1.2b5/src/crawlee/storage_clients/_file_system}/py.typed +0 -0
- {crawlee-0.6.12b4/src/crawlee/storages → crawlee-1.1.2b5/src/crawlee/storage_clients/_memory}/py.typed +0 -0
- /crawlee-0.6.12b4/tests/unit/__init__.py → /crawlee-1.1.2b5/src/crawlee/storage_clients/_redis/py.typed +0 -0
- /crawlee-0.6.12b4/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawling_context.py → /crawlee-1.1.2b5/src/crawlee/storage_clients/_sql/py.typed +0 -0
- /crawlee-0.6.12b4/website/static/.nojekyll → /crawlee-1.1.2b5/src/crawlee/storage_clients/py.typed +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/src/crawlee/storages/__init__.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/README.md +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_statistics/test_error_tracker.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_statistics/test_periodic_logging.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_statistics/test_persistence.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_statistics/test_request_processing_record.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_console.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_crypto.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_globs.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_recurring_task.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_robots.py +0 -0
- /crawlee-0.6.12b4/tests/unit/_utils/test_timedelata_ms.py → /crawlee-1.1.2b5/tests/unit/_utils/test_timedelta_ms.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/_utils/test_urls.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/browsers/test_playwright_browser.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/crawlers/_adaptive_playwright/test_adaptive_playwright_crawler_statistics.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/crawlers/_basic/test_context_pipeline.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/events/test_local_event_manager.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/proxy_configuration/test_new_proxy_info.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/proxy_configuration/test_tiers.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/sessions/test_cookies.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/sessions/test_models.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/sessions/test_session.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/test_log_config.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/tests/unit/test_router.py +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/.eslintrc.json +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/.yarnrc.yml +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/babel.config.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/build_api_reference.sh +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/patches/@docusaurus+core+3.4.0.patch +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/patches/@docusaurus+core+3.5.2.patch +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/roa-loader/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/roa-loader/package.json +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/ApiLink.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Button.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Button.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/CopyButton.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/CopyButton.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Gradients.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Highlights.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Highlights.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/HomepageCliExample.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/HomepageCtaSection.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/HomepageCtaSection.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/HomepageHeroSection.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/HomepageHeroSection.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/LanguageInfoWidget.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/LanguageInfoWidget.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/LanguageSwitch.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/LanguageSwitch.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/RiverSection.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/RiverSection.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/ThreeCardsWithIcon.jsx +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/ThreeCardsWithIcon.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/animated-crawlee-logo-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/Homepage/animated-crawlee-logo-light.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/components/RunnableCodeBlock.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/pages/index.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/ColorModeToggle/dark-mode-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/ColorModeToggle/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/ColorModeToggle/light-mode-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/ColorModeToggle/styles.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/DocItem/Layout/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/DocItem/Layout/styles.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Footer/LinkItem/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Footer/LinkItem/index.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Footer/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Footer/index.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/MDXComponents/A.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/Content/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/Content/styles.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/Logo/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/Logo/index.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/MobileSidebar/Header/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/MobileSidebar/Header/index.module.css +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/MobileSidebar/Layout/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/Navbar/MobileSidebar/index.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/src/theme/NavbarItem/ComponentTypes.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/font/lota.woff +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/font/lota.woff2 +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/API.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/arrow_right.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/auto-scaling-dark.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/auto-scaling-light.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/check.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/chrome-scrape-dark.gif +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/chrome-scrape-light.gif +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/cloud_icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/community-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/community-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-dark-new.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-javascript-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-javascript-light.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-light-new.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-light.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-logo-monocolor.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-logo.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-python-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-python-light.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/crawlee-python-og.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/defaults-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/defaults-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/discord-brand-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/discord-brand.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/docusaurus.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/external-link.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/favicon.ico +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/favorite-tools-dark.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/favorite-tools-light.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/auto-scaling.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/automate-everything.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/fingerprints.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/node-requests.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/runs-on-py.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/storage.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/features/works-everywhere.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/fill-and-submit-web-form/00.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/fill-and-submit-web-form/01.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/fill-and-submit-web-form/02.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/fill-and-submit-web-form/03.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/current-price.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/scraping-practice.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/select-an-element.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/selected-element.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/sku.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/getting-started/title.jpg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/github-brand-dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/github-brand.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/hearth copy.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/hearth.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/javascript_logo.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/js_file.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/logo-big.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/logo-blur.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/logo-blur.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/logo-zoom.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/menu-arrows.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/oss_logo.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/puppeteer-live-view-dashboard.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/puppeteer-live-view-detail.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/queue-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/queue-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/resuming-paused-crawl/00.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/resuming-paused-crawl/01.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/robot.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/routing-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/routing-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/scraping-utils-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/scraping-utils-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/smart-proxy-dark.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/smart-proxy-light.webp +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/source_code.png +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/system.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/triangles_dark.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/triangles_light.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/workflow.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/zero-setup-dark-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/img/zero-setup-light-icon.svg +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/js/custom.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/static/robots.txt +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/docs-prettier.config.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/utils/externalLink.js +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/website_gif/chrome-scrape-dark.gif +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/website_gif/chrome-scrape-dark.mp4 +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/website_gif/chrome-scrape-light.gif +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/website_gif/chrome-scrape-light.mp4 +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tools/website_gif/website_gif.mjs +0 -0
- {crawlee-0.6.12b4 → crawlee-1.1.2b5}/website/tsconfig.eslint.json +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
name: Build and deploy docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
workflow_call:
|
|
6
|
+
inputs:
|
|
7
|
+
ref:
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
env:
|
|
12
|
+
NODE_VERSION: 20
|
|
13
|
+
PYTHON_VERSION: 3.14
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build_and_deploy_docs:
|
|
17
|
+
environment:
|
|
18
|
+
name: github-pages
|
|
19
|
+
permissions:
|
|
20
|
+
contents: write
|
|
21
|
+
pages: write
|
|
22
|
+
id-token: write
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout repository
|
|
27
|
+
uses: actions/checkout@v6
|
|
28
|
+
with:
|
|
29
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
30
|
+
ref: ${{ github.event_name == 'workflow_call' && inputs.ref || github.ref }}
|
|
31
|
+
|
|
32
|
+
- name: Set up Node
|
|
33
|
+
uses: actions/setup-node@v6
|
|
34
|
+
with:
|
|
35
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
36
|
+
|
|
37
|
+
- name: Set up Python
|
|
38
|
+
uses: actions/setup-python@v6
|
|
39
|
+
with:
|
|
40
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
41
|
+
|
|
42
|
+
- name: Set up uv package manager
|
|
43
|
+
uses: astral-sh/setup-uv@v7
|
|
44
|
+
with:
|
|
45
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
46
|
+
|
|
47
|
+
- name: Install Python dependencies
|
|
48
|
+
run: make install-dev
|
|
49
|
+
|
|
50
|
+
- name: Build generated API reference
|
|
51
|
+
run: make build-api-reference
|
|
52
|
+
|
|
53
|
+
- name: Build Docusaurus docs
|
|
54
|
+
run: make build-docs
|
|
55
|
+
env:
|
|
56
|
+
APIFY_SIGNING_TOKEN: ${{ secrets.APIFY_SIGNING_TOKEN }}
|
|
57
|
+
|
|
58
|
+
- name: Set up GitHub Pages
|
|
59
|
+
uses: actions/configure-pages@v5
|
|
60
|
+
|
|
61
|
+
- name: Upload GitHub Pages artifact
|
|
62
|
+
uses: actions/upload-pages-artifact@v4
|
|
63
|
+
with:
|
|
64
|
+
path: ./website/build
|
|
65
|
+
|
|
66
|
+
- name: Deploy artifact to GitHub Pages
|
|
67
|
+
uses: actions/deploy-pages@v4
|
|
68
|
+
|
|
69
|
+
- name: Invalidate CloudFront cache
|
|
70
|
+
run: |
|
|
71
|
+
gh workflow run invalidate-cloudfront.yml \
|
|
72
|
+
--repo apify/apify-docs-private \
|
|
73
|
+
--field deployment=crawlee-web
|
|
74
|
+
echo "✅ CloudFront cache invalidation workflow triggered successfully"
|
|
75
|
+
env:
|
|
76
|
+
GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: Check PR title
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request_target:
|
|
5
|
+
types: [opened, edited, synchronize]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
check_pr_title:
|
|
9
|
+
name: Check PR title
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: amannn/action-semantic-pull-request@v6.1.1
|
|
13
|
+
env:
|
|
14
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
name: Create a pre-release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger a beta version release (pre-release) on push to the master branch.
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- master
|
|
8
|
+
tags-ignore:
|
|
9
|
+
- "**" # Ignore all tags to prevent duplicate builds when tags are pushed.
|
|
10
|
+
|
|
11
|
+
# Or it can be triggered manually.
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: release
|
|
16
|
+
cancel-in-progress: false
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
release_metadata:
|
|
20
|
+
name: Prepare release metadata
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
outputs:
|
|
23
|
+
version_number: ${{ steps.release_metadata.outputs.version_number }}
|
|
24
|
+
tag_name: ${{ steps.release_metadata.outputs.tag_name }}
|
|
25
|
+
changelog: ${{ steps.release_metadata.outputs.changelog }}
|
|
26
|
+
steps:
|
|
27
|
+
- uses: apify/workflows/git-cliff-release@main
|
|
28
|
+
id: release_metadata
|
|
29
|
+
name: Prepare release metadata
|
|
30
|
+
with:
|
|
31
|
+
release_type: prerelease
|
|
32
|
+
existing_changelog_path: CHANGELOG.md
|
|
33
|
+
|
|
34
|
+
# If github.ref points to a [ci skip] commit, this workflow won't run.
|
|
35
|
+
# Otherwise, these checks will be launched from the `run_code_checks` workflow.
|
|
36
|
+
wait_for_checks:
|
|
37
|
+
name: Wait for code checks to pass
|
|
38
|
+
runs-on: ubuntu-latest
|
|
39
|
+
steps:
|
|
40
|
+
- uses: lewagon/wait-on-check-action@v1.4.1
|
|
41
|
+
with:
|
|
42
|
+
ref: ${{ github.ref }}
|
|
43
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
+
check-regexp: "( check| tests)$"
|
|
45
|
+
wait-interval: 5
|
|
46
|
+
|
|
47
|
+
update_changelog:
|
|
48
|
+
name: Update changelog
|
|
49
|
+
needs: [release_metadata, wait_for_checks]
|
|
50
|
+
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
|
|
51
|
+
with:
|
|
52
|
+
version_number: ${{ needs.release_metadata.outputs.version_number }}
|
|
53
|
+
changelog: ${{ needs.release_metadata.outputs.changelog }}
|
|
54
|
+
secrets:
|
|
55
|
+
APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
56
|
+
|
|
57
|
+
build_and_deploy_docs:
|
|
58
|
+
needs: [update_changelog]
|
|
59
|
+
uses: ./.github/workflows/build_and_deploy_docs.yaml
|
|
60
|
+
with:
|
|
61
|
+
ref: ${{ needs.update_changelog.outputs.changelog_commitish }}
|
|
62
|
+
secrets: inherit
|
|
63
|
+
|
|
64
|
+
publish_to_pypi:
|
|
65
|
+
if: "!startsWith(github.event.head_commit.message, 'ci') && !startsWith(github.event.head_commit.message, 'docs')"
|
|
66
|
+
name: Publish to PyPI
|
|
67
|
+
needs: [release_metadata, update_changelog]
|
|
68
|
+
runs-on: ubuntu-latest
|
|
69
|
+
permissions:
|
|
70
|
+
contents: write
|
|
71
|
+
id-token: write # Required for OIDC authentication.
|
|
72
|
+
environment:
|
|
73
|
+
name: pypi
|
|
74
|
+
url: https://pypi.org/project/crawlee
|
|
75
|
+
steps:
|
|
76
|
+
- name: Prepare distribution
|
|
77
|
+
uses: apify/workflows/prepare-pypi-distribution@main
|
|
78
|
+
with:
|
|
79
|
+
package_name: crawlee
|
|
80
|
+
is_prerelease: "yes"
|
|
81
|
+
version_number: ${{ needs.release_metadata.outputs.version_number }}
|
|
82
|
+
ref: ${{ needs.update_changelog.outputs.changelog_commitish }}
|
|
83
|
+
# Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
|
|
84
|
+
- name: Publish package to PyPI
|
|
85
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
86
|
+
|
|
87
|
+
# TODO: add job for publish package to Conda
|
|
88
|
+
# https://github.com/apify/crawlee-python/issues/104
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
name: Create a release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger a stable version release via GitHub's UI, with the ability to specify the type of release.
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
release_type:
|
|
8
|
+
description: Release type
|
|
9
|
+
required: true
|
|
10
|
+
type: choice
|
|
11
|
+
default: auto
|
|
12
|
+
options:
|
|
13
|
+
- auto
|
|
14
|
+
- custom
|
|
15
|
+
- patch
|
|
16
|
+
- minor
|
|
17
|
+
- major
|
|
18
|
+
custom_version:
|
|
19
|
+
description: The custom version to bump to (only for "custom" type)
|
|
20
|
+
required: false
|
|
21
|
+
type: string
|
|
22
|
+
default: ""
|
|
23
|
+
|
|
24
|
+
concurrency:
|
|
25
|
+
group: release
|
|
26
|
+
cancel-in-progress: false
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
release_metadata:
|
|
30
|
+
name: Prepare release metadata
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
outputs:
|
|
33
|
+
version_number: ${{ steps.release_metadata.outputs.version_number }}
|
|
34
|
+
tag_name: ${{ steps.release_metadata.outputs.tag_name }}
|
|
35
|
+
changelog: ${{ steps.release_metadata.outputs.changelog }}
|
|
36
|
+
release_notes: ${{ steps.release_metadata.outputs.release_notes }}
|
|
37
|
+
steps:
|
|
38
|
+
- uses: apify/workflows/git-cliff-release@main
|
|
39
|
+
name: Prepare release metadata
|
|
40
|
+
id: release_metadata
|
|
41
|
+
with:
|
|
42
|
+
release_type: ${{ inputs.release_type }}
|
|
43
|
+
custom_version: ${{ inputs.custom_version }}
|
|
44
|
+
existing_changelog_path: CHANGELOG.md
|
|
45
|
+
|
|
46
|
+
lint_check:
|
|
47
|
+
name: Lint check
|
|
48
|
+
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
|
|
49
|
+
with:
|
|
50
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
51
|
+
|
|
52
|
+
type_check:
|
|
53
|
+
name: Type check
|
|
54
|
+
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
|
|
55
|
+
with:
|
|
56
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
57
|
+
|
|
58
|
+
unit_tests:
|
|
59
|
+
name: Unit tests
|
|
60
|
+
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
|
|
61
|
+
secrets:
|
|
62
|
+
httpbin_url: ${{ secrets.APIFY_HTTPBIN_TOKEN && format('https://httpbin.apify.actor?token={0}', secrets.APIFY_HTTPBIN_TOKEN) || 'https://httpbin.org'}}
|
|
63
|
+
with:
|
|
64
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
65
|
+
|
|
66
|
+
update_changelog:
|
|
67
|
+
name: Update changelog
|
|
68
|
+
needs: [release_metadata, lint_check, type_check, unit_tests]
|
|
69
|
+
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
|
|
70
|
+
with:
|
|
71
|
+
version_number: ${{ needs.release_metadata.outputs.version_number }}
|
|
72
|
+
changelog: ${{ needs.release_metadata.outputs.changelog }}
|
|
73
|
+
secrets:
|
|
74
|
+
APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
75
|
+
|
|
76
|
+
build_and_deploy_docs:
|
|
77
|
+
needs: [update_changelog]
|
|
78
|
+
uses: ./.github/workflows/build_and_deploy_docs.yaml
|
|
79
|
+
with:
|
|
80
|
+
ref: ${{ needs.update_changelog.outputs.changelog_commitish }}
|
|
81
|
+
secrets: inherit
|
|
82
|
+
|
|
83
|
+
create_github_release:
|
|
84
|
+
name: Create github release
|
|
85
|
+
needs: [release_metadata, update_changelog]
|
|
86
|
+
runs-on: ubuntu-latest
|
|
87
|
+
env:
|
|
88
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
89
|
+
steps:
|
|
90
|
+
- name: Create release
|
|
91
|
+
uses: softprops/action-gh-release@v2
|
|
92
|
+
with:
|
|
93
|
+
tag_name: ${{ needs.release_metadata.outputs.tag_name }}
|
|
94
|
+
name: ${{ needs.release_metadata.outputs.version_number }}
|
|
95
|
+
target_commitish: ${{ needs.update_changelog.outputs.changelog_commitish }}
|
|
96
|
+
body: ${{ needs.release_metadata.outputs.release_notes }}
|
|
97
|
+
|
|
98
|
+
publish_to_pypi:
|
|
99
|
+
name: Publish to PyPI
|
|
100
|
+
needs: [release_metadata, update_changelog]
|
|
101
|
+
runs-on: ubuntu-latest
|
|
102
|
+
permissions:
|
|
103
|
+
contents: write
|
|
104
|
+
id-token: write # Required for OIDC authentication.
|
|
105
|
+
environment:
|
|
106
|
+
name: pypi
|
|
107
|
+
url: https://pypi.org/project/crawlee
|
|
108
|
+
steps:
|
|
109
|
+
- name: Prepare distribution
|
|
110
|
+
uses: apify/workflows/prepare-pypi-distribution@main
|
|
111
|
+
with:
|
|
112
|
+
package_name: crawlee
|
|
113
|
+
is_prerelease: ""
|
|
114
|
+
version_number: ${{ needs.release_metadata.outputs.version_number }}
|
|
115
|
+
ref: ${{ needs.update_changelog.outputs.changelog_commitish }}
|
|
116
|
+
# Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
|
|
117
|
+
- name: Publish package to PyPI
|
|
118
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
119
|
+
|
|
120
|
+
# TODO: add job for publish package to Conda
|
|
121
|
+
# https://github.com/apify/crawlee-python/issues/104
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: Run code checks
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger code checks on opening a new pull request.
|
|
5
|
+
# Secrets are only made available to the integration tests job, with a manual approval
|
|
6
|
+
# step required for PRs from forks. This prevents their potential exposure.
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
# Pushing to the master branch triggers code checks
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- master
|
|
13
|
+
tags-ignore:
|
|
14
|
+
- "**" # Ignore all tags to prevent duplicate checks when tags are pushed.
|
|
15
|
+
|
|
16
|
+
# It should also be possible to trigger checks manually
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
lint_check:
|
|
21
|
+
name: Lint check
|
|
22
|
+
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
|
|
23
|
+
with:
|
|
24
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
25
|
+
|
|
26
|
+
type_check:
|
|
27
|
+
name: Type check
|
|
28
|
+
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
|
|
29
|
+
with:
|
|
30
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
31
|
+
|
|
32
|
+
unit_tests:
|
|
33
|
+
name: Unit tests
|
|
34
|
+
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
|
|
35
|
+
secrets:
|
|
36
|
+
httpbin_url: ${{ secrets.APIFY_HTTPBIN_TOKEN && format('https://httpbin.apify.actor?token={0}', secrets.APIFY_HTTPBIN_TOKEN) || 'https://httpbin.org'}}
|
|
37
|
+
with:
|
|
38
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]'
|
|
39
|
+
|
|
40
|
+
docs_check:
|
|
41
|
+
name: Docs check
|
|
42
|
+
uses: apify/workflows/.github/workflows/python_docs_check.yaml@main
|
|
43
|
+
secrets: inherit
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Templates end-to-end tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '0 6 * * *'
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
NODE_VERSION: 22
|
|
10
|
+
PYTHON_VERSION: 3.14
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
end_to_end_tests:
|
|
14
|
+
name: End-to-end tests
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
max-parallel: 12
|
|
18
|
+
matrix:
|
|
19
|
+
crawler-type: ["playwright_camoufox", "playwright", "parsel", "beautifulsoup"]
|
|
20
|
+
http-client: [ "httpx", "curl_impersonate"]
|
|
21
|
+
package-manager: ["pip", "uv", "poetry"]
|
|
22
|
+
|
|
23
|
+
runs-on: "ubuntu-latest"
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout repository
|
|
27
|
+
uses: actions/checkout@v6
|
|
28
|
+
|
|
29
|
+
- name: Setup node
|
|
30
|
+
uses: actions/setup-node@v6
|
|
31
|
+
with:
|
|
32
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: npm install -g apify-cli
|
|
36
|
+
|
|
37
|
+
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
|
38
|
+
uses: actions/setup-python@v6
|
|
39
|
+
with:
|
|
40
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
41
|
+
|
|
42
|
+
# installed to be able to patch crawlee in the poetry.lock with custom wheel file for poetry based templates
|
|
43
|
+
- name: Install poetry
|
|
44
|
+
run: pipx install poetry
|
|
45
|
+
|
|
46
|
+
- name: Set up uv package manager
|
|
47
|
+
uses: astral-sh/setup-uv@v7
|
|
48
|
+
with:
|
|
49
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
50
|
+
|
|
51
|
+
# Sync the project, but no need to install the browsers into the test runner environment.
|
|
52
|
+
- name: Install Python dependencies
|
|
53
|
+
run: make install-sync
|
|
54
|
+
|
|
55
|
+
- name: Run templates end-to-end tests
|
|
56
|
+
run: make e2e-templates-tests args="-m ${{ matrix.http-client }} and ${{ matrix.crawler-type }} and ${{ matrix.package-manager }}"
|
|
57
|
+
env:
|
|
58
|
+
APIFY_TEST_USER_API_TOKEN: ${{ secrets.APIFY_TEST_USER_API_TOKEN }}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Update new issue
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issues:
|
|
5
|
+
types:
|
|
6
|
+
- opened
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
label_issues:
|
|
10
|
+
name: Label issues
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
issues: write
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
# Add the "t-tooling" label to all new issues
|
|
17
|
+
- uses: actions/github-script@v8
|
|
18
|
+
with:
|
|
19
|
+
script: |
|
|
20
|
+
github.rest.issues.addLabels({
|
|
21
|
+
issue_number: context.issue.number,
|
|
22
|
+
owner: context.repo.owner,
|
|
23
|
+
repo: context.repo.repo,
|
|
24
|
+
labels: ["t-tooling"]
|
|
25
|
+
})
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Cache
|
|
2
|
+
__pycache__
|
|
3
|
+
.mypy_cache
|
|
4
|
+
.pytest_cache
|
|
5
|
+
.ruff_cache
|
|
6
|
+
|
|
7
|
+
# Virtual envs
|
|
8
|
+
.venv
|
|
9
|
+
.direnv
|
|
10
|
+
.envrc
|
|
11
|
+
.python-version
|
|
12
|
+
|
|
13
|
+
# Other Python tools
|
|
14
|
+
.ropeproject
|
|
15
|
+
|
|
16
|
+
# Mise
|
|
17
|
+
mise.toml
|
|
18
|
+
.mise.toml
|
|
19
|
+
|
|
20
|
+
# Egg and build artifacts
|
|
21
|
+
*.egg-info/
|
|
22
|
+
*.egg
|
|
23
|
+
dist/
|
|
24
|
+
build/
|
|
25
|
+
|
|
26
|
+
# Coverage reports
|
|
27
|
+
.coverage*
|
|
28
|
+
htmlcov
|
|
29
|
+
|
|
30
|
+
# IDE, editors
|
|
31
|
+
.vscode
|
|
32
|
+
.idea
|
|
33
|
+
*~
|
|
34
|
+
.DS_Store
|
|
35
|
+
.nvim.lua
|
|
36
|
+
Session.vim
|
|
37
|
+
|
|
38
|
+
# Docs
|
|
39
|
+
docs/changelog.md
|
|
40
|
+
|
|
41
|
+
# Website build artifacts, node dependencies
|
|
42
|
+
website/build
|
|
43
|
+
website/node_modules
|
|
44
|
+
website/.yarn
|
|
45
|
+
website/.docusaurus
|
|
46
|
+
website/api-typedoc-generated.json
|
|
47
|
+
website/apify-shared-docspec-dump.jsonl
|
|
48
|
+
website/docspec-dump.jsonl
|
|
49
|
+
website/module_shortcuts.json
|
|
50
|
+
website/typedoc-types*
|
|
51
|
+
# npm lockfile (we use yarn)
|
|
52
|
+
website/package-lock.json
|
|
53
|
+
|
|
54
|
+
# Default directory for memory storage
|
|
55
|
+
storage/
|