apify 3.3.2b3__tar.gz → 3.3.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.
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/_tests.yaml +2 -2
- {apify-3.3.2b3 → apify-3.3.2b5}/CHANGELOG.md +2 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/PKG-INFO +1 -1
- {apify-3.3.2b3 → apify-3.3.2b5}/pyproject.toml +1 -1
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_actor.py +19 -4
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_helpers.py +55 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/uv.lock +1 -1
- {apify-3.3.2b3 → apify-3.3.2b5}/.editorconfig +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/CODEOWNERS +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/_check_code.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/_check_docs.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/_release_docs.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/manual_release_stable.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/on_issue.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/on_master.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.github/workflows/on_pull_request.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.gitignore +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.markdownlint.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.pre-commit-config.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/.rules.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/AGENTS.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/CLAUDE.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/CONTRIBUTING.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/GEMINI.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/LICENSE +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/README.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/codecov.yaml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/images/apify-create.gif +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/index.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/01_introduction/quick-start.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/02_actor_input.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/03_storages.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/04_actor_events.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/05_proxy_management.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/07_webhooks.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/08_access_apify_api.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/09_logging.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/10_configuration.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/11_pay_per_event.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_class_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_class_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_error_handling_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_error_handling_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_instance_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_instance_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/02_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/07_webhook.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/07_webhook_preventing.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/08_actor_new_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/09_log_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/09_logger_usage.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/09_redirect_log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/09_redirect_log_existing_run.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/10_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/11_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/11_charge_limit_check.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/02_concepts/code/11_conditional_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/01_beautifulsoup_httpx.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/02_parsel_impit.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/03_playwright.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/04_selenium.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/05_crawlee.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/06_scrapy.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/07_running_webserver.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/02_parsel_impit.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/05_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/05_crawlee_parsel.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/05_crawlee_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/07_webserver.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/03_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/04_upgrading/upgrading_to_v2.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/04_upgrading/upgrading_to_v3.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/docs/pyproject.toml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/renovate.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_charging.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_consts.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_crypto.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_models.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_proxy_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/_utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/events/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/events/_apify_event_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/events/_types.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/events/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/request_loaders/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/request_loaders/_apify_request_list.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/request_loaders/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/_actor_runner.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/_async_thread.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/_logging_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/extensions/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/extensions/_httpcache.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/middlewares/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/middlewares/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/pipelines/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/pipelines/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/requests.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/scheduler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/scrapy/utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_alias_resolving.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_api_client_creation.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_dataset_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_key_value_store_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_models.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_request_queue_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_request_queue_shared_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_request_queue_single_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_storage_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_file_system/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_file_system/_dataset_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_file_system/_key_value_store_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_file_system/_storage_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_ppe_dataset_mixin.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_smart_apify/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_smart_apify/_storage_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storages/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storages/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/README.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/_utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/Dockerfile +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/requirements.txt +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/server.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/src/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/src/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/actor_source_base/src/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/conftest.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_api_helpers.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_call_timeouts.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_create_proxy_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_dataset.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_events.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_key_value_store.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_lifecycle.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_request_queue.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_actor_scrapy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_apify_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_adaptive_playwright_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_basic_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_beautifulsoup_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_http_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_parsel_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/main_playwright_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/actor_source/playwright.Dockerfile +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/conftest.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_adaptive_playwright_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_basic_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_beautifulsoup_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_http_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_parsel_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_crawlee/test_playwright_crawler.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_fixtures.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_schema_storages/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_schema_storages/actor_source/actor.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_schema_storages/actor_source/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_schema_storages/test_schema_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/items.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/main_custom_pipeline.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/pipelines.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/settings.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/settings_custom_pipeline.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/spider_basic.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/spider_cb_kwargs.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/spider_crawl.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/spider_custom_pipeline.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/actor_source/spider_itemloader.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/conftest.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/test_basic_spider.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/test_cb_kwargs_spider.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/test_crawl_spider.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/test_custom_pipeline_spider.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/e2e/test_scrapy/test_itemloader_spider.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/README.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/_utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/conftest.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/test_dataset.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/test_key_value_store.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/test_request_queue.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/integration/test_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/README.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_dataset.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_env_helpers.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_key_value_store.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_lifecycle.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_actor_request_queue.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_charging_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/actor/test_request_list.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/conftest.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/events/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/events/test_apify_event_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/extensions/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/middlewares/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/pipelines/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/requests/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/utils/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_alias_resolver.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_api_client_creation.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_apify_dataset_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_apify_kvs_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_apify_request_queue_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_file_system.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/storage_clients/test_smart_apify_storage_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/test_apify_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/test_crypto.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/test_log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/test_proxy_configuration.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/tests/unit/test_utils.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/typos.toml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/.eslintrc.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/.yarnrc.yml +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/babel.config.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/build_api_reference.sh +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/docusaurus.config.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/generate_module_shortcuts.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/package.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/roa-loader/index.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/roa-loader/package.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/sidebars.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/ApiLink.jsx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/Gradients.jsx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/Highlights.jsx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/Highlights.module.css +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/RunnableCodeBlock.jsx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/components/RunnableCodeBlock.module.css +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/css/custom.css +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/pages/index.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/plugins/docusaurus-plugin-segment/index.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/plugins/docusaurus-plugin-segment/segment.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/theme/DocItem/Content/index.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/theme/NavbarItem/ComponentTypes.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/src/theme/NavbarItem/VersionedReferenceNavbarItem.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/static/.nojekyll +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/static/img/docs-og.png +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/static/img/guides/redirected_logs_example.webp +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/tools/docs-prettier.config.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/tools/utils/externalLink.js +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/.gitignore +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/01-introduction/index.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/01-introduction/quick-start.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/02-guides/01-requests-and-httpx.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/02-guides/02-beautiful-soup.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/02-guides/03-playwright.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/02-guides/04-selenium.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/02-guides/05-scrapy.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/01-actor-lifecycle.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/02-actor-input.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/03-storages.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/04-actor-events.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/05-proxy-management.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/06-interacting-with-other-actors.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/07-webhooks.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/08-access-apify-api.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/09-running-webserver.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/10-logging.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/03-concepts/11-configuration.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/api-packages.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-1.7/api-typedoc.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/.gitignore +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/index.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/01_introduction/quick-start.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/01_beautifulsoup_httpx.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/02_crawlee.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/03_playwright.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/04_selenium.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/05_scrapy.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/02_crawlee_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/02_actor_input.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/03_storages.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/04_actor_events.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/05_proxy_management.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/07_webhooks.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/08_access_apify_api.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/09_running_webserver.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/10_logging.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/11_configuration.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/12_pay_per_event.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/02_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/07_webhook.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/07_webhook_preventing.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/08_actor_new_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/09_webserver.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/10_log_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/10_logger_usage.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/11_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/03_concepts/code/conditional_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/04_upgrading/upgrading_to_v2.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/api-packages.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-2.7/api-typedoc.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/.gitignore +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/images/apify-create.gif +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/index.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/01_introduction/quick-start.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/02_actor_input.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/03_storages.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/04_actor_events.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/05_proxy_management.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/07_webhooks.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/08_access_apify_api.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/09_logging.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/10_configuration.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/11_pay_per_event.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_class_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_class_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_error_handling_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_error_handling_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_instance_context.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_instance_manual.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/02_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/07_webhook.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/07_webhook_preventing.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/08_actor_new_client.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/09_log_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/09_logger_usage.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/09_redirect_log.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/09_redirect_log_existing_run.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/10_config.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/11_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/11_charge_limit_check.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/02_concepts/code/11_conditional_actor_charge.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/01_beautifulsoup_httpx.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/02_parsel_impit.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/03_playwright.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/04_selenium.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/05_crawlee.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/06_scrapy.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/07_running_webserver.mdx +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/02_parsel_impit.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_parsel.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_playwright.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/07_webserver.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/04_upgrading/upgrading_to_v2.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/04_upgrading/upgrading_to_v3.md +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/api-packages.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_docs/version-3.3/api-typedoc.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_sidebars/version-1.7-sidebars.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_sidebars/version-2.7-sidebars.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versioned_sidebars/version-3.3-sidebars.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/versions.json +0 -0
- {apify-3.3.2b3 → apify-3.3.2b5}/website/yarn.lock +0 -0
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
matrix.python-version == '3.14' &&
|
|
72
72
|
env.CODECOV_TOKEN != ''
|
|
73
73
|
}}
|
|
74
|
-
uses: codecov/codecov-action@
|
|
74
|
+
uses: codecov/codecov-action@v6
|
|
75
75
|
env:
|
|
76
76
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
77
77
|
with:
|
|
@@ -128,7 +128,7 @@ jobs:
|
|
|
128
128
|
matrix.python-version == '3.14' &&
|
|
129
129
|
env.CODECOV_TOKEN != ''
|
|
130
130
|
}}
|
|
131
|
-
uses: codecov/codecov-action@
|
|
131
|
+
uses: codecov/codecov-action@v6
|
|
132
132
|
env:
|
|
133
133
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
134
134
|
with:
|
|
@@ -10,6 +10,8 @@ All notable changes to this project will be documented in this file.
|
|
|
10
10
|
- **scrapy:** Resolve Crawlee's request data round-trip failure in request conversion ([#832](https://github.com/apify/apify-sdk-python/pull/832)) ([3b9d588](https://github.com/apify/apify-sdk-python/commit/3b9d5888611597a522300c742014c06cc0b857b9)) by [@vdusek](https://github.com/vdusek)
|
|
11
11
|
- Treat `default` alias as default storage when in schema ([#827](https://github.com/apify/apify-sdk-python/pull/827)) ([1610d0d](https://github.com/apify/apify-sdk-python/commit/1610d0dda40ba30bd3b4dea28d9fef04c9b7c839)) by [@Pijukatel](https://github.com/Pijukatel)
|
|
12
12
|
- Guard ReentrantLock against None task context ([#841](https://github.com/apify/apify-sdk-python/pull/841)) ([193de10](https://github.com/apify/apify-sdk-python/commit/193de10910946ca0ce93bc2fc7c741a26e9f6e9c)) by [@vdusek](https://github.com/vdusek)
|
|
13
|
+
- Isolate cleanup steps in Actor `__aexit__` to prevent cascading failures ([#842](https://github.com/apify/apify-sdk-python/pull/842)) ([68c2acf](https://github.com/apify/apify-sdk-python/commit/68c2acf3dba71b78f893fc6f1e816e3a3148f0c9)) by [@vdusek](https://github.com/vdusek)
|
|
14
|
+
- Handle exceptions in pre-reboot event listeners via `return_exceptions` ([#843](https://github.com/apify/apify-sdk-python/pull/843)) ([ed13597](https://github.com/apify/apify-sdk-python/commit/ed13597d7ce0d1f0c5ff5cd0d6796c96555a55ae)) by [@vdusek](https://github.com/vdusek)
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
<!-- git-cliff-unreleased-end -->
|
|
@@ -249,11 +249,21 @@ class _ActorType:
|
|
|
249
249
|
if self._event_listeners_timeout:
|
|
250
250
|
await self.event_manager.wait_for_all_listeners_to_complete(timeout=self._event_listeners_timeout)
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
try:
|
|
253
|
+
await self.event_manager.__aexit__(None, None, None)
|
|
254
|
+
except Exception:
|
|
255
|
+
self.log.exception('Failed to exit event manager')
|
|
256
|
+
|
|
257
|
+
try:
|
|
258
|
+
await self._charging_manager_implementation.__aexit__(None, None, None)
|
|
259
|
+
except Exception:
|
|
260
|
+
self.log.exception('Failed to exit charging manager')
|
|
254
261
|
|
|
255
262
|
# Persist Actor state
|
|
256
|
-
|
|
263
|
+
try:
|
|
264
|
+
await self._save_actor_state()
|
|
265
|
+
except Exception:
|
|
266
|
+
self.log.exception('Failed to save Actor state')
|
|
257
267
|
|
|
258
268
|
try:
|
|
259
269
|
await asyncio.wait_for(finalize(), self._cleanup_timeout.total_seconds())
|
|
@@ -1194,11 +1204,16 @@ class _ActorType:
|
|
|
1194
1204
|
(self.event_manager._listeners_to_wrappers[Event.MIGRATING] or {}).values() # noqa: SLF001
|
|
1195
1205
|
)
|
|
1196
1206
|
|
|
1197
|
-
await asyncio.gather(
|
|
1207
|
+
results = await asyncio.gather(
|
|
1198
1208
|
*[listener(EventPersistStateData(is_migrating=True)) for listener in persist_state_listeners],
|
|
1199
1209
|
*[listener(EventMigratingData()) for listener in migrating_listeners],
|
|
1210
|
+
return_exceptions=True,
|
|
1200
1211
|
)
|
|
1201
1212
|
|
|
1213
|
+
for result in results:
|
|
1214
|
+
if isinstance(result, Exception):
|
|
1215
|
+
self.log.exception('A pre-reboot event listener failed', exc_info=result)
|
|
1216
|
+
|
|
1202
1217
|
if not self.configuration.actor_run_id:
|
|
1203
1218
|
raise RuntimeError('actor_run_id cannot be None when running on the Apify platform.')
|
|
1204
1219
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
+
import logging
|
|
4
5
|
import warnings
|
|
5
6
|
from datetime import datetime, timedelta, timezone
|
|
6
7
|
from typing import TYPE_CHECKING
|
|
@@ -344,3 +345,57 @@ async def test_get_remaining_time_returns_positive_when_timeout_in_future() -> N
|
|
|
344
345
|
assert result is not None
|
|
345
346
|
assert result > timedelta(0)
|
|
346
347
|
assert result <= timedelta(minutes=5)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
async def test_reboot_runs_all_listeners_even_when_one_fails(
|
|
351
|
+
apify_client_async_patcher: ApifyClientAsyncPatcher,
|
|
352
|
+
caplog: pytest.LogCaptureFixture,
|
|
353
|
+
) -> None:
|
|
354
|
+
"""Test that a failing pre-reboot event listener does not prevent other listeners from running.
|
|
355
|
+
|
|
356
|
+
Directly injects raw async callables into the event manager's _listeners_to_wrappers
|
|
357
|
+
to simulate exceptions escaping the wrapper layer (the scenario return_exceptions=True guards against).
|
|
358
|
+
"""
|
|
359
|
+
apify_client_async_patcher.patch('run', 'reboot', return_value=None)
|
|
360
|
+
|
|
361
|
+
persist_state_called = False
|
|
362
|
+
migrating_called = False
|
|
363
|
+
|
|
364
|
+
async def failing_listener(*_args: object) -> None:
|
|
365
|
+
raise RuntimeError('persist_state listener error')
|
|
366
|
+
|
|
367
|
+
async def successful_persist_state_listener(*_args: object) -> None:
|
|
368
|
+
nonlocal persist_state_called
|
|
369
|
+
persist_state_called = True
|
|
370
|
+
|
|
371
|
+
async def successful_migrating_listener(*_args: object) -> None:
|
|
372
|
+
nonlocal migrating_called
|
|
373
|
+
migrating_called = True
|
|
374
|
+
|
|
375
|
+
async with Actor:
|
|
376
|
+
Actor.configuration.is_at_home = True
|
|
377
|
+
Actor.configuration.actor_run_id = 'some-run-id'
|
|
378
|
+
|
|
379
|
+
# Inject raw listeners directly into the event manager's internal structure,
|
|
380
|
+
# bypassing crawlee's wrapper that would catch exceptions on its own.
|
|
381
|
+
listeners_map = Actor.event_manager._listeners_to_wrappers
|
|
382
|
+
listeners_map[Event.PERSIST_STATE] = {
|
|
383
|
+
failing_listener: [failing_listener],
|
|
384
|
+
successful_persist_state_listener: [successful_persist_state_listener],
|
|
385
|
+
}
|
|
386
|
+
listeners_map[Event.MIGRATING] = {
|
|
387
|
+
successful_migrating_listener: [successful_migrating_listener],
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
with caplog.at_level(logging.ERROR):
|
|
391
|
+
await Actor.reboot(custom_after_sleep=timedelta(milliseconds=1))
|
|
392
|
+
|
|
393
|
+
# All listeners ran despite the failure in one of them.
|
|
394
|
+
assert persist_state_called
|
|
395
|
+
assert migrating_called
|
|
396
|
+
|
|
397
|
+
# The exception was logged.
|
|
398
|
+
assert any('A pre-reboot event listener failed' in r.message for r in caplog.records)
|
|
399
|
+
|
|
400
|
+
# The reboot API call was still made.
|
|
401
|
+
assert len(apify_client_async_patcher.calls['run']['reboot']) == 1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_request_queue_shared_client.py
RENAMED
|
File without changes
|
{apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_apify/_request_queue_single_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apify-3.3.2b3 → apify-3.3.2b5}/src/apify/storage_clients/_file_system/_key_value_store_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|