apify 3.3.2b5__tar.gz → 3.3.3__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.2b5/.github/workflows/_release_docs.yaml → apify-3.3.3/.github/workflows/manual_release_docs.yaml +12 -12
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/manual_release_stable.yaml +8 -63
- apify-3.3.3/.github/workflows/manual_version_docs.yaml +119 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/on_master.yaml +2 -2
- {apify-3.3.2b5 → apify-3.3.3}/.gitignore +2 -0
- {apify-3.3.2b5 → apify-3.3.3}/.rules.md +7 -0
- {apify-3.3.2b5 → apify-3.3.3}/CHANGELOG.md +13 -3
- {apify-3.3.2b5 → apify-3.3.3}/PKG-INFO +5 -4
- {apify-3.3.2b5 → apify-3.3.3}/README.md +4 -3
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/01_introduction/index.mdx +8 -14
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/01_introduction/quick-start.mdx +31 -39
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/01_actor_lifecycle.mdx +11 -4
- apify-3.3.3/docs/02_concepts/02_actor_input.mdx +37 -0
- apify-3.3.3/docs/02_concepts/03_storages.mdx +188 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/04_actor_events.mdx +28 -3
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/02_concepts/05_proxy_management.mdx +20 -5
- apify-3.3.3/docs/02_concepts/06_interacting_with_other_actors.mdx +66 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/07_webhooks.mdx +5 -1
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/02_concepts/08_access_apify_api.mdx +7 -5
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/09_logging.mdx +8 -6
- apify-3.3.3/docs/02_concepts/10_configuration.mdx +54 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/11_pay_per_event.mdx +11 -0
- apify-3.3.3/docs/02_concepts/code/02_request_list.py +29 -0
- apify-3.3.3/docs/02_concepts/code/03_opening_storages_alias.py +20 -0
- apify-3.3.3/docs/02_concepts/code/04_use_state.py +24 -0
- apify-3.3.3/docs/02_concepts/code/05_tiered_proxy.py +26 -0
- apify-3.3.3/docs/02_concepts/code/06_interacting_abort.py +30 -0
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/02_concepts/code/07_webhook.py +2 -2
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/07_webhook_preventing.py +2 -2
- apify-3.3.3/docs/02_concepts/code/10_get_env.py +17 -0
- apify-3.3.3/docs/02_concepts/code/10_platform_detection.py +15 -0
- apify-3.3.3/docs/02_concepts/code/11_advanced_charging.py +34 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/01_beautifulsoup_httpx.mdx +8 -1
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/02_parsel_impit.mdx +8 -1
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/03_guides/03_playwright.mdx +17 -7
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/03_guides/04_selenium.mdx +16 -12
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/05_crawlee.mdx +15 -5
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/06_scrapy.mdx +7 -2
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/03_guides/07_running_webserver.mdx +16 -3
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/07_webserver.py +3 -4
- {apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/04_upgrading/upgrading_to_v2.md +1 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/04_upgrading/upgrading_to_v3.md +1 -0
- {apify-3.3.2b5 → apify-3.3.3}/pyproject.toml +6 -2
- {apify-3.3.2b5 → apify-3.3.3}/renovate.json +2 -1
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_actor.py +13 -6
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_charging.py +13 -3
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/events/_apify_event_manager.py +1 -1
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/request_loaders/_apify_request_list.py +40 -24
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_alias_resolving.py +8 -3
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_request_queue_shared_client.py +1 -1
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_request_queue_single_client.py +9 -2
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_charge.py +8 -4
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/_utils.py +28 -1
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/test_request_queue.py +68 -34
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_helpers.py +30 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_charging_manager.py +30 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_request_list.py +16 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/conftest.py +1 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/events/test_apify_event_manager.py +40 -7
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_alias_resolver.py +36 -0
- apify-3.3.3/tests/unit/storage_clients/test_apify_request_queue_client.py +86 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/test_utils.py +2 -2
- {apify-3.3.2b5 → apify-3.3.3}/typos.toml +2 -1
- {apify-3.3.2b5 → apify-3.3.3}/uv.lock +574 -578
- {apify-3.3.2b5 → apify-3.3.3}/website/package.json +1 -1
- apify-3.3.3/website/versioned_docs/version-0.2/01-introduction/index.mdx +67 -0
- apify-3.3.3/website/versioned_docs/version-0.2/01-introduction/quick-start.mdx +87 -0
- apify-3.3.3/website/versioned_docs/version-0.2/02-concepts/01-actor-lifecycle.mdx +81 -0
- apify-3.3.3/website/versioned_docs/version-0.2/02-concepts/02-storages.mdx +40 -0
- apify-3.3.3/website/versioned_docs/version-0.2/02-concepts/03-proxy-management.mdx +45 -0
- apify-3.3.3/website/versioned_docs/version-0.2/02-concepts/04-actor-events.mdx +52 -0
- apify-3.3.3/website/versioned_docs/version-0.2/02-concepts/05-access-apify-api.mdx +21 -0
- apify-3.3.3/website/versioned_docs/version-0.2/api-typedoc.json +6356 -0
- apify-3.3.3/website/versioned_docs/version-1.7/01-introduction/code/01_introduction.py +12 -0
- apify-3.3.3/website/versioned_docs/version-1.7/01-introduction/code/actor_structure/__main__.py +15 -0
- apify-3.3.3/website/versioned_docs/version-1.7/01-introduction/code/actor_structure/main.py +7 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/01-introduction/index.mdx +7 -12
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/01-introduction/quick-start.mdx +27 -36
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/02-guides/01-requests-and-httpx.mdx +14 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/02-guides/02-beautiful-soup.mdx +13 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/02-guides/03-playwright.mdx +13 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/02-guides/04-selenium.mdx +13 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/02-guides/05-scrapy.mdx +14 -2
- apify-3.3.3/website/versioned_docs/version-1.7/02-guides/06-running-webserver.mdx +38 -0
- apify-3.3.3/website/versioned_docs/version-1.7/02-guides/code/06_webserver.py +43 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/quick-start.mdx +17 -9
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/01_beautifulsoup_httpx.mdx +6 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/02_crawlee.mdx +9 -1
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/03_playwright.mdx +10 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/04_selenium.mdx +9 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/05_scrapy.mdx +4 -0
- apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/09_running_webserver.mdx → apify-3.3.3/website/versioned_docs/version-2.7/02_guides/06_running_webserver.mdx +16 -4
- apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/code/09_webserver.py → apify-3.3.3/website/versioned_docs/version-2.7/02_guides/code/06_webserver.py +3 -4
- apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/10_logging.mdx → apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/09_logging.mdx +2 -2
- apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/11_configuration.mdx → apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/10_configuration.mdx +1 -1
- apify-3.3.3/website/versioned_docs/version-2.7/api-packages.json +1 -0
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/01_introduction/index.mdx +8 -14
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/01_introduction/quick-start.mdx +31 -39
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/01_actor_lifecycle.mdx +11 -4
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/02_actor_input.mdx +37 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/03_storages.mdx +188 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/04_actor_events.mdx +28 -3
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/02_concepts/05_proxy_management.mdx +20 -5
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/06_interacting_with_other_actors.mdx +66 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/07_webhooks.mdx +5 -1
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/02_concepts/08_access_apify_api.mdx +7 -5
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/09_logging.mdx +8 -6
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/10_configuration.mdx +54 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/11_pay_per_event.mdx +11 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/02_request_list.py +29 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/03_opening_storages_alias.py +20 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/04_use_state.py +24 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/05_tiered_proxy.py +26 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_abort.py +30 -0
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/02_concepts/code/07_webhook.py +2 -2
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/07_webhook_preventing.py +2 -2
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/10_get_env.py +17 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/10_platform_detection.py +15 -0
- apify-3.3.3/website/versioned_docs/version-3.3/02_concepts/code/11_advanced_charging.py +34 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/01_beautifulsoup_httpx.mdx +8 -1
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/02_parsel_impit.mdx +8 -1
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/03_guides/03_playwright.mdx +17 -7
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/03_guides/04_selenium.mdx +16 -12
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/05_crawlee.mdx +15 -5
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/06_scrapy.mdx +7 -2
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/03_guides/07_running_webserver.mdx +16 -3
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/07_webserver.py +3 -4
- {apify-3.3.2b5/docs → apify-3.3.3/website/versioned_docs/version-3.3}/04_upgrading/upgrading_to_v2.md +1 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/04_upgrading/upgrading_to_v3.md +1 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/api-typedoc.json +27081 -27032
- apify-3.3.3/website/versioned_sidebars/version-0.2-sidebars.json +27 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versions.json +2 -1
- {apify-3.3.2b5 → apify-3.3.3}/website/yarn.lock +5 -5
- apify-3.3.2b5/docs/02_concepts/02_actor_input.mdx +0 -18
- apify-3.3.2b5/docs/02_concepts/03_storages.mdx +0 -173
- apify-3.3.2b5/docs/02_concepts/06_interacting_with_other_actors.mdx +0 -51
- apify-3.3.2b5/docs/02_concepts/10_configuration.mdx +0 -34
- apify-3.3.2b5/tests/unit/storage_clients/test_apify_request_queue_client.py +0 -38
- apify-3.3.2b5/website/versioned_docs/version-1.7/.gitignore +0 -1
- apify-3.3.2b5/website/versioned_docs/version-1.7/03-concepts/09-running-webserver.mdx +0 -66
- apify-3.3.2b5/website/versioned_docs/version-2.7/.gitignore +0 -1
- apify-3.3.2b5/website/versioned_docs/version-3.3/.gitignore +0 -1
- apify-3.3.2b5/website/versioned_docs/version-3.3/02_concepts/02_actor_input.mdx +0 -18
- apify-3.3.2b5/website/versioned_docs/version-3.3/02_concepts/03_storages.mdx +0 -173
- apify-3.3.2b5/website/versioned_docs/version-3.3/02_concepts/06_interacting_with_other_actors.mdx +0 -51
- apify-3.3.2b5/website/versioned_docs/version-3.3/02_concepts/10_configuration.mdx +0 -34
- {apify-3.3.2b5 → apify-3.3.3}/.editorconfig +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/CODEOWNERS +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/_check_code.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/_check_docs.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/_tests.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/on_issue.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.github/workflows/on_pull_request.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.markdownlint.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/.pre-commit-config.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/AGENTS.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/CLAUDE.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/CONTRIBUTING.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/GEMINI.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/LICENSE +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/codecov.yaml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/01_introduction/images/apify-create.gif +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_class_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_class_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_error_handling_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_error_handling_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_instance_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_instance_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/02_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/08_actor_new_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/09_log_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/09_logger_usage.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/09_redirect_log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/09_redirect_log_existing_run.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/10_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/11_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/11_charge_limit_check.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/02_concepts/code/11_conditional_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/02_parsel_impit.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/05_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/05_crawlee_parsel.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/05_crawlee_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/03_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/docs/pyproject.toml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_consts.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_crypto.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_models.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_proxy_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/_utils.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/events/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/events/_types.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/events/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/request_loaders/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/request_loaders/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/_actor_runner.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/_async_thread.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/_logging_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/extensions/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/extensions/_httpcache.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/middlewares/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/middlewares/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/pipelines/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/pipelines/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/requests.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/scheduler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/scrapy/utils.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_api_client_creation.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_dataset_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_key_value_store_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_models.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_request_queue_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_storage_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/_utils.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_apify/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_file_system/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_file_system/_dataset_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_file_system/_key_value_store_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_file_system/_storage_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_ppe_dataset_mixin.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_smart_apify/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/_smart_apify/_storage_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storage_clients/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storages/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/src/apify/storages/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/README.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/_utils.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/Dockerfile +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/requirements.txt +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/server.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/src/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/src/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/actor_source_base/src/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/conftest.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_api_helpers.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_call_timeouts.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_create_proxy_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_dataset.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_events.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_key_value_store.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_lifecycle.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_request_queue.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_actor_scrapy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_apify_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_adaptive_playwright_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_basic_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_beautifulsoup_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_http_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_parsel_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/main_playwright_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/actor_source/playwright.Dockerfile +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/conftest.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_adaptive_playwright_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_basic_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_beautifulsoup_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_http_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_parsel_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_crawlee/test_playwright_crawler.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_fixtures.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_schema_storages/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_schema_storages/actor_source/actor.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_schema_storages/actor_source/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_schema_storages/test_schema_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/items.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/main_custom_pipeline.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/pipelines.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/settings.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/settings_custom_pipeline.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/spider_basic.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/spider_cb_kwargs.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/spider_crawl.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/spider_custom_pipeline.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/actor_source/spider_itemloader.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/conftest.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/test_basic_spider.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/test_cb_kwargs_spider.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/test_crawl_spider.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/test_custom_pipeline_spider.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/e2e/test_scrapy/test_itemloader_spider.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/README.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/conftest.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/test_dataset.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/test_key_value_store.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/integration/test_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/README.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_dataset.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_env_helpers.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_key_value_store.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_lifecycle.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_actor_request_queue.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/actor/test_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/events/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/extensions/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/middlewares/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/pipelines/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/requests/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/utils/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_api_client_creation.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_apify_dataset_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_apify_kvs_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_file_system.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/storage_clients/test_smart_apify_storage_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/test_apify_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/test_crypto.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/test_log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/tests/unit/test_proxy_configuration.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/.eslintrc.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/.yarnrc.yml +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/babel.config.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/build_api_reference.sh +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/docusaurus.config.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/generate_module_shortcuts.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/roa-loader/index.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/roa-loader/package.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/sidebars.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/ApiLink.jsx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/Gradients.jsx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/Highlights.jsx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/Highlights.module.css +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/RunnableCodeBlock.jsx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/components/RunnableCodeBlock.module.css +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/css/custom.css +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/pages/index.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/plugins/docusaurus-plugin-segment/index.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/plugins/docusaurus-plugin-segment/segment.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/theme/DocItem/Content/index.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/theme/NavbarItem/ComponentTypes.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/src/theme/NavbarItem/VersionedReferenceNavbarItem.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/static/.nojekyll +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/static/img/docs-og.png +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/static/img/guides/redirected_logs_example.webp +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/tools/docs-prettier.config.js +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/tools/utils/externalLink.js +0 -0
- {apify-3.3.2b5/website/versioned_docs/version-1.7 → apify-3.3.3/website/versioned_docs/version-0.2}/api-packages.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/01-actor-lifecycle.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/02-actor-input.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/03-storages.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/04-actor-events.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/05-proxy-management.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/06-interacting-with-other-actors.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/07-webhooks.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/03-concepts/08-access-apify-api.mdx +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-1.7/03-concepts/10-logging.mdx → /apify-3.3.3/website/versioned_docs/version-1.7/03-concepts/09-logging.mdx +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-1.7/03-concepts/11-configuration.mdx → /apify-3.3.3/website/versioned_docs/version-1.7/03-concepts/10-configuration.mdx +0 -0
- {apify-3.3.2b5/website/versioned_docs/version-2.7 → apify-3.3.3/website/versioned_docs/version-1.7}/api-packages.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-1.7/api-typedoc.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/01_introduction/index.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/02_crawlee_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/02_actor_input.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/03_storages.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/04_actor_events.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/05_proxy_management.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/07_webhooks.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/08_access_apify_api.mdx +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/12_pay_per_event.mdx → /apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/11_pay_per_event.mdx +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/02_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/07_webhook.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/07_webhook_preventing.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/08_actor_new_client.py +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/code/10_log_config.py → /apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/code/09_log_config.py +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/code/10_logger_usage.py → /apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/code/09_logger_usage.py +0 -0
- /apify-3.3.2b5/website/versioned_docs/version-2.7/03_concepts/code/11_config.py → /apify-3.3.3/website/versioned_docs/version-2.7/03_concepts/code/10_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/03_concepts/code/conditional_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/04_upgrading/upgrading_to_v2.md +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-2.7/api-typedoc.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/code/01_introduction.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/code/actor_structure/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/01_introduction/images/apify-create.gif +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_class_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_class_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_context_manager.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_error_handling_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_error_handling_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_init_exit.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_instance_context.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_instance_manual.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_reboot.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/01_status_message.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/02_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_dataset_exports.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_dataset_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_deleting_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_iterating.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_public_url.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_kvs_read_write.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_opening_storages.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/03_rq.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/04_actor_events.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_apify_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_custom_proxy.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/05_proxy_rotation.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_call.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_call_task.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/06_interacting_start.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/08_actor_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/08_actor_new_client.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/09_log_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/09_logger_usage.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/09_redirect_log.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/09_redirect_log_existing_run.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/10_config.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/11_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/11_charge_limit_check.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/02_concepts/code/11_conditional_actor_charge.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/02_parsel_impit.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/03_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/04_selenium.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_beautifulsoup.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_parsel.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/05_crawlee_playwright.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/items.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/main.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/03_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_docs/version-3.3/api-packages.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_sidebars/version-1.7-sidebars.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_sidebars/version-2.7-sidebars.json +0 -0
- {apify-3.3.2b5 → apify-3.3.3}/website/versioned_sidebars/version-3.3-sidebars.json +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Release docs
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
# Runs when manually triggered from the GitHub UI.
|
|
@@ -8,6 +8,7 @@ on:
|
|
|
8
8
|
workflow_call:
|
|
9
9
|
inputs:
|
|
10
10
|
ref:
|
|
11
|
+
description: Git ref to checkout.
|
|
11
12
|
required: true
|
|
12
13
|
type: string
|
|
13
14
|
|
|
@@ -17,11 +18,10 @@ permissions:
|
|
|
17
18
|
env:
|
|
18
19
|
NODE_VERSION: 22
|
|
19
20
|
PYTHON_VERSION: 3.14
|
|
20
|
-
CHECKOUT_REF: ${{ github.event_name == 'workflow_call' && inputs.ref || github.ref }}
|
|
21
21
|
|
|
22
22
|
jobs:
|
|
23
23
|
release_docs:
|
|
24
|
-
name:
|
|
24
|
+
name: Release docs
|
|
25
25
|
environment:
|
|
26
26
|
name: github-pages
|
|
27
27
|
permissions:
|
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
uses: actions/checkout@v6
|
|
36
36
|
with:
|
|
37
37
|
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
38
|
-
ref: ${{
|
|
38
|
+
ref: ${{ inputs.ref || github.event.repository.default_branch }}
|
|
39
39
|
|
|
40
40
|
- name: Set up Node
|
|
41
41
|
uses: actions/setup-node@v6
|
|
@@ -59,13 +59,13 @@ jobs:
|
|
|
59
59
|
run: uv run poe update-docs-theme
|
|
60
60
|
|
|
61
61
|
- name: Commit the updated package.json and lockfile
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
uses: EndBug/add-and-commit@v10
|
|
63
|
+
with:
|
|
64
|
+
add: website/package.json website/yarn.lock
|
|
65
|
+
message: "chore: Automatic docs theme update [skip ci]"
|
|
66
|
+
default_author: github_actions
|
|
67
|
+
# `actions/checkout` detaches HEAD on SHA refs; EndBug needs a branch to push.
|
|
68
|
+
new_branch: ${{ github.event.repository.default_branch }}
|
|
69
69
|
|
|
70
70
|
- name: Build docs
|
|
71
71
|
run: uv run poe build-docs
|
|
@@ -74,7 +74,7 @@ jobs:
|
|
|
74
74
|
SEGMENT_TOKEN: ${{ secrets.SEGMENT_TOKEN }}
|
|
75
75
|
|
|
76
76
|
- name: Set up GitHub Pages
|
|
77
|
-
uses: actions/configure-pages@
|
|
77
|
+
uses: actions/configure-pages@v6
|
|
78
78
|
|
|
79
79
|
- name: Upload GitHub Pages artifact
|
|
80
80
|
uses: actions/upload-pages-artifact@v4
|
|
@@ -98,75 +98,20 @@ jobs:
|
|
|
98
98
|
version_number: ${{ needs.release_prepare.outputs.version_number }}
|
|
99
99
|
ref: ${{ needs.changelog_update.outputs.changelog_commitish }}
|
|
100
100
|
|
|
101
|
-
#
|
|
101
|
+
# Publish the package to PyPI using PyPA official GitHub action with OIDC authentication.
|
|
102
102
|
- name: Publish package to PyPI
|
|
103
103
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
104
104
|
|
|
105
105
|
version_docs:
|
|
106
106
|
name: Version docs
|
|
107
107
|
needs: [release_prepare, changelog_update, pypi_publish]
|
|
108
|
-
runs-on: ubuntu-latest
|
|
109
|
-
outputs:
|
|
110
|
-
version_docs_commitish: ${{ steps.commit_versioned_docs.outputs.commit_long_sha }}
|
|
111
108
|
permissions:
|
|
112
109
|
contents: write
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
- name: Checkout repository
|
|
119
|
-
uses: actions/checkout@v6
|
|
120
|
-
with:
|
|
121
|
-
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
122
|
-
ref: ${{ needs.changelog_update.outputs.changelog_commitish }}
|
|
123
|
-
|
|
124
|
-
- name: Set up Node
|
|
125
|
-
uses: actions/setup-node@v6
|
|
126
|
-
with:
|
|
127
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
128
|
-
|
|
129
|
-
- name: Set up Python
|
|
130
|
-
uses: actions/setup-python@v6
|
|
131
|
-
with:
|
|
132
|
-
python-version: ${{ env.PYTHON_VERSION }}
|
|
133
|
-
|
|
134
|
-
- name: Set up uv package manager
|
|
135
|
-
uses: astral-sh/setup-uv@v7
|
|
136
|
-
with:
|
|
137
|
-
python-version: ${{ env.PYTHON_VERSION }}
|
|
138
|
-
|
|
139
|
-
- name: Install Python dependencies
|
|
140
|
-
run: uv run poe install-dev
|
|
141
|
-
|
|
142
|
-
- name: Install website dependencies
|
|
143
|
-
run: |
|
|
144
|
-
cd website
|
|
145
|
-
corepack enable
|
|
146
|
-
yarn install
|
|
147
|
-
|
|
148
|
-
- name: Snapshot the current version
|
|
149
|
-
run: |
|
|
150
|
-
cd website
|
|
151
|
-
VERSION="$(python -c "import tomllib, pathlib; print(tomllib.loads(pathlib.Path('../pyproject.toml').read_text())['project']['version'])")"
|
|
152
|
-
MAJOR_MINOR="$(echo "$VERSION" | cut -d. -f1-2)"
|
|
153
|
-
export MAJOR_MINOR
|
|
154
|
-
# Remove existing version if present (patch releases override)
|
|
155
|
-
rm -rf "versioned_docs/version-${MAJOR_MINOR}"
|
|
156
|
-
rm -rf "versioned_sidebars/version-${MAJOR_MINOR}-sidebars.json"
|
|
157
|
-
jq 'map(select(. != env.MAJOR_MINOR))' versions.json > tmp.json && mv tmp.json versions.json
|
|
158
|
-
# Build API reference and create version snapshots
|
|
159
|
-
bash build_api_reference.sh
|
|
160
|
-
npx docusaurus docs:version "$MAJOR_MINOR"
|
|
161
|
-
npx docusaurus api:version "$MAJOR_MINOR"
|
|
162
|
-
|
|
163
|
-
- name: Commit and push versioned docs
|
|
164
|
-
id: commit_versioned_docs
|
|
165
|
-
uses: EndBug/add-and-commit@v10
|
|
166
|
-
with:
|
|
167
|
-
add: "website/versioned_docs website/versioned_sidebars website/versions.json"
|
|
168
|
-
message: "docs: version ${{ needs.release_prepare.outputs.version_number }} docs [skip ci]"
|
|
169
|
-
default_author: github_actions
|
|
110
|
+
uses: ./.github/workflows/manual_version_docs.yaml
|
|
111
|
+
with:
|
|
112
|
+
# Commit the version docs changes on top of the changelog commit.
|
|
113
|
+
ref: ${{ needs.changelog_update.outputs.changelog_commitish }}
|
|
114
|
+
secrets: inherit
|
|
170
115
|
|
|
171
116
|
doc_release:
|
|
172
117
|
name: Doc release
|
|
@@ -175,9 +120,9 @@ jobs:
|
|
|
175
120
|
contents: write
|
|
176
121
|
pages: write
|
|
177
122
|
id-token: write
|
|
178
|
-
uses: ./.github/workflows/
|
|
123
|
+
uses: ./.github/workflows/manual_release_docs.yaml
|
|
179
124
|
with:
|
|
180
|
-
#
|
|
125
|
+
# Commit the docs release changes on top of the version docs commit.
|
|
181
126
|
ref: ${{ needs.version_docs.outputs.version_docs_commitish }}
|
|
182
127
|
secrets: inherit
|
|
183
128
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
name: Version docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Runs when manually triggered from the GitHub UI.
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
# Runs when invoked by another workflow.
|
|
8
|
+
workflow_call:
|
|
9
|
+
inputs:
|
|
10
|
+
ref:
|
|
11
|
+
description: Git ref to checkout.
|
|
12
|
+
required: true
|
|
13
|
+
type: string
|
|
14
|
+
outputs:
|
|
15
|
+
version_docs_commitish:
|
|
16
|
+
description: The commit SHA of the versioned docs commit.
|
|
17
|
+
value: ${{ jobs.version_docs.outputs.version_docs_commitish }}
|
|
18
|
+
|
|
19
|
+
concurrency:
|
|
20
|
+
group: version-docs
|
|
21
|
+
cancel-in-progress: false
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: read
|
|
25
|
+
|
|
26
|
+
env:
|
|
27
|
+
NODE_VERSION: "22"
|
|
28
|
+
PYTHON_VERSION: "3.14"
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
version_docs:
|
|
32
|
+
name: Version docs
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
outputs:
|
|
35
|
+
version_docs_commitish: ${{ steps.resolve_commitish.outputs.commitish }}
|
|
36
|
+
permissions:
|
|
37
|
+
contents: write
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v6
|
|
42
|
+
with:
|
|
43
|
+
token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
|
|
44
|
+
ref: ${{ inputs.ref || github.event.repository.default_branch }}
|
|
45
|
+
|
|
46
|
+
- name: Set up Node
|
|
47
|
+
uses: actions/setup-node@v6
|
|
48
|
+
with:
|
|
49
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
50
|
+
|
|
51
|
+
- name: Set up Python
|
|
52
|
+
uses: actions/setup-python@v6
|
|
53
|
+
with:
|
|
54
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
55
|
+
|
|
56
|
+
- name: Set up uv package manager
|
|
57
|
+
uses: astral-sh/setup-uv@v7
|
|
58
|
+
with:
|
|
59
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
60
|
+
|
|
61
|
+
- name: Install Python dependencies
|
|
62
|
+
run: uv run poe install-dev
|
|
63
|
+
|
|
64
|
+
- name: Snapshot the current version
|
|
65
|
+
id: snapshot
|
|
66
|
+
run: |
|
|
67
|
+
cd website
|
|
68
|
+
corepack enable
|
|
69
|
+
yarn install
|
|
70
|
+
|
|
71
|
+
# Extract version from pyproject.toml.
|
|
72
|
+
FULL_VERSION="$(uv version --short)"
|
|
73
|
+
MAJOR_MINOR_VERSION="$(echo "$FULL_VERSION" | cut -d. -f1-2)"
|
|
74
|
+
MAJOR_VERSION="$(echo "$FULL_VERSION" | cut -d. -f1)"
|
|
75
|
+
echo "version=$FULL_VERSION" >> "$GITHUB_OUTPUT"
|
|
76
|
+
echo "Version: $FULL_VERSION, Major.Minor: $MAJOR_MINOR_VERSION, Major: $MAJOR_VERSION"
|
|
77
|
+
|
|
78
|
+
# Find the existing versions for this major in versions.json (if any).
|
|
79
|
+
if [[ -f versions.json ]]; then
|
|
80
|
+
OLD_VERSIONS="$(jq -r --arg major "$MAJOR_VERSION" '.[] | select(startswith($major + "."))' versions.json)"
|
|
81
|
+
else
|
|
82
|
+
OLD_VERSIONS=""
|
|
83
|
+
echo "[]" > versions.json
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
# Remove all old versions for this major (if found).
|
|
87
|
+
if [[ -n "$OLD_VERSIONS" ]]; then
|
|
88
|
+
while IFS= read -r OLD_VERSION; do
|
|
89
|
+
[[ -z "$OLD_VERSION" ]] && continue
|
|
90
|
+
echo "Removing old version $OLD_VERSION for major $MAJOR_VERSION"
|
|
91
|
+
rm -rf "versioned_docs/version-${OLD_VERSION}"
|
|
92
|
+
rm -f "versioned_sidebars/version-${OLD_VERSION}-sidebars.json"
|
|
93
|
+
done <<< "$OLD_VERSIONS"
|
|
94
|
+
jq --arg major "$MAJOR_VERSION" 'map(select(startswith($major + ".") | not))' versions.json > tmp.json && mv tmp.json versions.json
|
|
95
|
+
else
|
|
96
|
+
echo "No existing versions found for major $MAJOR_VERSION, nothing to remove"
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
# Build API reference and create Docusaurus version snapshots.
|
|
100
|
+
bash build_api_reference.sh
|
|
101
|
+
uv run npx docusaurus docs:version "$MAJOR_MINOR_VERSION"
|
|
102
|
+
uv run npx docusaurus api:version "$MAJOR_MINOR_VERSION"
|
|
103
|
+
|
|
104
|
+
- name: Commit and push versioned docs
|
|
105
|
+
id: commit_versioned_docs
|
|
106
|
+
uses: EndBug/add-and-commit@v10
|
|
107
|
+
with:
|
|
108
|
+
add: website/versioned_docs website/versioned_sidebars website/versions.json
|
|
109
|
+
message: "docs: Version docs for v${{ steps.snapshot.outputs.version }} [skip ci]"
|
|
110
|
+
default_author: github_actions
|
|
111
|
+
# `actions/checkout` detaches HEAD on SHA refs; EndBug needs a branch to push.
|
|
112
|
+
new_branch: ${{ github.event.repository.default_branch }}
|
|
113
|
+
|
|
114
|
+
- name: Resolve output commitish
|
|
115
|
+
id: resolve_commitish
|
|
116
|
+
env:
|
|
117
|
+
COMMIT_SHA: ${{ steps.commit_versioned_docs.outputs.commit_long_sha }}
|
|
118
|
+
run: |
|
|
119
|
+
echo "commitish=${COMMIT_SHA:-$(git rev-parse HEAD)}" >> "$GITHUB_OUTPUT"
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
contents: write
|
|
29
29
|
pages: write
|
|
30
30
|
id-token: write
|
|
31
|
-
uses: ./.github/workflows/
|
|
31
|
+
uses: ./.github/workflows/manual_release_docs.yaml
|
|
32
32
|
with:
|
|
33
33
|
# Use the same ref as the one that triggered the workflow.
|
|
34
34
|
ref: ${{ github.ref }}
|
|
@@ -108,7 +108,7 @@ jobs:
|
|
|
108
108
|
contents: write
|
|
109
109
|
pages: write
|
|
110
110
|
id-token: write
|
|
111
|
-
uses: ./.github/workflows/
|
|
111
|
+
uses: ./.github/workflows/manual_release_docs.yaml
|
|
112
112
|
with:
|
|
113
113
|
# Use the ref from the changelog update to include the updated changelog.
|
|
114
114
|
ref: ${{ needs.changelog_update.outputs.changelog_commitish }}
|
|
@@ -51,6 +51,13 @@ uv run poe e2e-tests
|
|
|
51
51
|
- Tests are exempt from docstring rules (`D`), assert warnings (`S101`), and private member access (`SLF001`)
|
|
52
52
|
- Unused imports are allowed in `__init__.py` files (re-exports)
|
|
53
53
|
- **Pre-commit hooks**: lint check + type check run automatically on commit
|
|
54
|
+
- **Commits**: [Conventional Commits](https://www.conventionalcommits.org/) format. Choose the type based on *what* changed, not just *why*:
|
|
55
|
+
- `feat:` / `fix:` / `perf:` / `refactor:` / `style:` — **source code only**; these trigger a release and appear in the changelog
|
|
56
|
+
- `test:` — test additions or changes (no release triggered)
|
|
57
|
+
- `docs:` — documentation changes; also triggers a doc release on master
|
|
58
|
+
- `ci:` — CI/workflow changes
|
|
59
|
+
- `chore:` — dependency bumps, tooling, and other housekeeping
|
|
60
|
+
- `build:` — build system changes
|
|
54
61
|
|
|
55
62
|
## Architecture
|
|
56
63
|
|
|
@@ -2,8 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
## [3.3.3](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.3) (2026-04-21)
|
|
6
|
+
|
|
7
|
+
### 🐛 Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Cap `_list_head` request limit at `_MAX_HEAD_ITEMS` ([#869](https://github.com/apify/apify-sdk-python/pull/869)) ([1716a2a](https://github.com/apify/apify-sdk-python/commit/1716a2aa55e86769cf9deb665c02c4ba176067d7)) by [@vdusek](https://github.com/vdusek)
|
|
10
|
+
- Preserve `max_total_charge_usd=0` instead of treating it as unlimited ([#870](https://github.com/apify/apify-sdk-python/pull/870)) ([714334c](https://github.com/apify/apify-sdk-python/commit/714334c00df91bf4526de26b14ecdfea05464268)) by [@vdusek](https://github.com/vdusek)
|
|
11
|
+
- Avoid InvalidStateError on mid-stream platform websocket disconnect ([#867](https://github.com/apify/apify-sdk-python/pull/867)) ([4dbbd3f](https://github.com/apify/apify-sdk-python/commit/4dbbd3f82dd45c26ca6f53d16f60b3b3e045bbc6)) by [@vdusek](https://github.com/vdusek)
|
|
12
|
+
- Tolerate non-UTF-8 bodies in ApifyRequestList remote sources ([#871](https://github.com/apify/apify-sdk-python/pull/871)) ([737b0dd](https://github.com/apify/apify-sdk-python/commit/737b0ddbfdd3277a01fa24c3215ddf4572bf1121)) by [@vdusek](https://github.com/vdusek)
|
|
13
|
+
- Use load sentinel and injected config in AliasResolver ([#874](https://github.com/apify/apify-sdk-python/pull/874)) ([2d129ad](https://github.com/apify/apify-sdk-python/commit/2d129adafe1005fb987bf19614fc22009cb39140)) by [@vdusek](https://github.com/vdusek)
|
|
14
|
+
- Honor `event_listeners_timeout` in `Actor.reboot` ([#872](https://github.com/apify/apify-sdk-python/pull/872)) ([03e73d3](https://github.com/apify/apify-sdk-python/commit/03e73d3885030d63795063a4d1acd8abad11cd19)) by [@vdusek](https://github.com/vdusek)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [3.3.2](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.2) (2026-03-27)
|
|
7
18
|
|
|
8
19
|
### 🐛 Bug Fixes
|
|
9
20
|
|
|
@@ -14,7 +25,6 @@ All notable changes to this project will be documented in this file.
|
|
|
14
25
|
- 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)
|
|
15
26
|
|
|
16
27
|
|
|
17
|
-
<!-- git-cliff-unreleased-end -->
|
|
18
28
|
## [3.3.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.3.1) (2026-03-11)
|
|
19
29
|
|
|
20
30
|
### 🐛 Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apify
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.3
|
|
4
4
|
Summary: Apify SDK for Python
|
|
5
5
|
Project-URL: Apify Homepage, https://apify.com
|
|
6
6
|
Project-URL: Changelog, https://docs.apify.com/sdk/python/docs/changelog
|
|
@@ -321,7 +321,7 @@ async def main() -> None:
|
|
|
321
321
|
|
|
322
322
|
# Extract the desired data.
|
|
323
323
|
data = {
|
|
324
|
-
'url':
|
|
324
|
+
'url': request.url,
|
|
325
325
|
'title': soup.title.string,
|
|
326
326
|
'h1s': [h1.text for h1 in soup.find_all('h1')],
|
|
327
327
|
'h2s': [h2.text for h2 in soup.find_all('h2')],
|
|
@@ -409,10 +409,11 @@ To create and run Python Actors locally, check the documentation for
|
|
|
409
409
|
|
|
410
410
|
To see how you can use the Apify SDK with other popular libraries used for web scraping,
|
|
411
411
|
check out our guides for using
|
|
412
|
-
[
|
|
413
|
-
[
|
|
412
|
+
[BeautifulSoup with HTTPX](https://docs.apify.com/sdk/python/docs/guides/beautifulsoup-httpx),
|
|
413
|
+
[Parsel with Impit](https://docs.apify.com/sdk/python/docs/guides/parsel-impit),
|
|
414
414
|
[Playwright](https://docs.apify.com/sdk/python/docs/guides/playwright),
|
|
415
415
|
[Selenium](https://docs.apify.com/sdk/python/docs/guides/selenium),
|
|
416
|
+
[Crawlee](https://docs.apify.com/sdk/python/docs/guides/crawlee),
|
|
416
417
|
or [Scrapy](https://docs.apify.com/sdk/python/docs/guides/scrapy).
|
|
417
418
|
|
|
418
419
|
## Usage concepts
|
|
@@ -77,7 +77,7 @@ async def main() -> None:
|
|
|
77
77
|
|
|
78
78
|
# Extract the desired data.
|
|
79
79
|
data = {
|
|
80
|
-
'url':
|
|
80
|
+
'url': request.url,
|
|
81
81
|
'title': soup.title.string,
|
|
82
82
|
'h1s': [h1.text for h1 in soup.find_all('h1')],
|
|
83
83
|
'h2s': [h2.text for h2 in soup.find_all('h2')],
|
|
@@ -165,10 +165,11 @@ To create and run Python Actors locally, check the documentation for
|
|
|
165
165
|
|
|
166
166
|
To see how you can use the Apify SDK with other popular libraries used for web scraping,
|
|
167
167
|
check out our guides for using
|
|
168
|
-
[
|
|
169
|
-
[
|
|
168
|
+
[BeautifulSoup with HTTPX](https://docs.apify.com/sdk/python/docs/guides/beautifulsoup-httpx),
|
|
169
|
+
[Parsel with Impit](https://docs.apify.com/sdk/python/docs/guides/parsel-impit),
|
|
170
170
|
[Playwright](https://docs.apify.com/sdk/python/docs/guides/playwright),
|
|
171
171
|
[Selenium](https://docs.apify.com/sdk/python/docs/guides/selenium),
|
|
172
|
+
[Crawlee](https://docs.apify.com/sdk/python/docs/guides/crawlee),
|
|
172
173
|
or [Scrapy](https://docs.apify.com/sdk/python/docs/guides/scrapy).
|
|
173
174
|
|
|
174
175
|
## Usage concepts
|
{apify-3.3.2b5/website/versioned_docs/version-3.3 → apify-3.3.3/docs}/01_introduction/index.mdx
RENAMED
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: introduction
|
|
3
3
|
title: Overview
|
|
4
|
-
sidebar_label: Overview
|
|
5
4
|
slug: /overview
|
|
6
|
-
description:
|
|
5
|
+
description: The official library for creating Apify Actors in Python, providing tools for web scraping, automation, and data storage integration.
|
|
7
6
|
---
|
|
8
7
|
|
|
8
|
+
import CodeBlock from '@theme/CodeBlock';
|
|
9
|
+
|
|
10
|
+
import IntroductionExample from '!!raw-loader!./code/01_introduction.py';
|
|
11
|
+
|
|
9
12
|
The Apify SDK for Python is the official library for creating [Apify Actors](https://docs.apify.com/platform/actors) in Python. It provides useful features like Actor lifecycle management, local storage emulation, and Actor event handling.
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import requests
|
|
15
|
-
|
|
16
|
-
async def main():
|
|
17
|
-
async with Actor:
|
|
18
|
-
input = await Actor.get_input()
|
|
19
|
-
response = requests.get(input['url'])
|
|
20
|
-
soup = BeautifulSoup(response.content, 'html.parser')
|
|
21
|
-
await Actor.push_data({ 'url': input['url'], 'title': soup.title.string })
|
|
22
|
-
```
|
|
14
|
+
<CodeBlock className="language-python">
|
|
15
|
+
{IntroductionExample}
|
|
16
|
+
</CodeBlock>
|
|
23
17
|
|
|
24
18
|
## What are Actors
|
|
25
19
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: quick-start
|
|
3
3
|
title: Quick start
|
|
4
|
-
|
|
5
|
-
description: 'Get started with the Apify SDK for Python by creating your first Actor and learning the basics.'
|
|
4
|
+
description: Get started with the Apify SDK for Python by creating your first Actor and learning the basics.
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
Learn how to create and run Actors using the Apify SDK for Python.
|
|
@@ -13,6 +12,9 @@ import Tabs from '@theme/Tabs';
|
|
|
13
12
|
import TabItem from '@theme/TabItem';
|
|
14
13
|
import CodeBlock from '@theme/CodeBlock';
|
|
15
14
|
|
|
15
|
+
import MainExample from '!!raw-loader!./code/actor_structure/main.py';
|
|
16
|
+
import UnderscoreMainExample from '!!raw-loader!./code/actor_structure/__main__.py';
|
|
17
|
+
|
|
16
18
|
## Step 1: Create Actors
|
|
17
19
|
|
|
18
20
|
To create and run Actors in Apify Console, refer to the [Console documentation](/platform/actors/development/quick-start/web-ide).
|
|
@@ -61,33 +63,14 @@ The Actor's source code is in the `src` folder. This folder contains two importa
|
|
|
61
63
|
|
|
62
64
|
<Tabs>
|
|
63
65
|
<TabItem value="main.py" label="main.py" default>
|
|
64
|
-
<CodeBlock
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
async def main():
|
|
68
|
-
async with Actor:
|
|
69
|
-
Actor.log.info('Actor input:', await Actor.get_input())
|
|
70
|
-
await Actor.set_value('OUTPUT', 'Hello, world!')`
|
|
71
|
-
}</CodeBlock>
|
|
66
|
+
<CodeBlock className="language-python">
|
|
67
|
+
{MainExample}
|
|
68
|
+
</CodeBlock>
|
|
72
69
|
</TabItem>
|
|
73
70
|
<TabItem value="__main__.py" label="__main.py__">
|
|
74
|
-
<CodeBlock
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
${''}
|
|
78
|
-
from apify.log import ActorLogFormatter
|
|
79
|
-
${''}
|
|
80
|
-
from .main import main
|
|
81
|
-
${''}
|
|
82
|
-
handler = logging.StreamHandler()
|
|
83
|
-
handler.setFormatter(ActorLogFormatter())
|
|
84
|
-
${''}
|
|
85
|
-
apify_logger = logging.getLogger('apify')
|
|
86
|
-
apify_logger.setLevel(logging.DEBUG)
|
|
87
|
-
apify_logger.addHandler(handler)
|
|
88
|
-
${''}
|
|
89
|
-
asyncio.run(main())`
|
|
90
|
-
}</CodeBlock>
|
|
71
|
+
<CodeBlock className="language-python">
|
|
72
|
+
{UnderscoreMainExample}
|
|
73
|
+
</CodeBlock>
|
|
91
74
|
</TabItem>
|
|
92
75
|
</Tabs>
|
|
93
76
|
|
|
@@ -96,21 +79,30 @@ We recommend keeping the entrypoint for the Actor in the `src/__main__.py` file.
|
|
|
96
79
|
|
|
97
80
|
## Next steps
|
|
98
81
|
|
|
82
|
+
### Concepts
|
|
83
|
+
|
|
84
|
+
To learn more about the features of the Apify SDK and how to use them, check out the Concepts section in the sidebar:
|
|
85
|
+
|
|
86
|
+
- [Actor lifecycle](../concepts/actor-lifecycle)
|
|
87
|
+
- [Actor input](../concepts/actor-input)
|
|
88
|
+
- [Working with storages](../concepts/storages)
|
|
89
|
+
- [Actor events & state persistence](../concepts/actor-events)
|
|
90
|
+
- [Proxy management](../concepts/proxy-management)
|
|
91
|
+
- [Interacting with other Actors](../concepts/interacting-with-other-actors)
|
|
92
|
+
- [Creating webhooks](../concepts/webhooks)
|
|
93
|
+
- [Accessing Apify API](../concepts/access-apify-api)
|
|
94
|
+
- [Logging](../concepts/logging)
|
|
95
|
+
- [Actor configuration](../concepts/actor-configuration)
|
|
96
|
+
- [Pay-per-event monetization](../concepts/pay-per-event)
|
|
97
|
+
|
|
99
98
|
### Guides
|
|
100
99
|
|
|
101
|
-
To see how you can integrate the Apify SDK with
|
|
100
|
+
To see how you can integrate the Apify SDK with popular web scraping libraries, check out our guides:
|
|
102
101
|
|
|
103
|
-
- [
|
|
104
|
-
- [
|
|
102
|
+
- [BeautifulSoup with HTTPX](../guides/beautifulsoup-httpx)
|
|
103
|
+
- [Parsel with Impit](../guides/parsel-impit)
|
|
105
104
|
- [Playwright](../guides/playwright)
|
|
106
105
|
- [Selenium](../guides/selenium)
|
|
106
|
+
- [Crawlee](../guides/crawlee)
|
|
107
107
|
- [Scrapy](../guides/scrapy)
|
|
108
|
-
|
|
109
|
-
### Usage concepts
|
|
110
|
-
|
|
111
|
-
To learn more about the features of the Apify SDK and how to use them, check out the Usage Concepts section in the sidebar, especially the guides for:
|
|
112
|
-
|
|
113
|
-
- [Actor lifecycle](../concepts/actor-lifecycle)
|
|
114
|
-
- [Working with storages](../concepts/storages)
|
|
115
|
-
- [Handling Actor events](../concepts/actor-events)
|
|
116
|
-
- [How to use proxies](../concepts/proxy-management)
|
|
108
|
+
- [Running webserver](../guides/running-webserver)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: actor-lifecycle
|
|
3
3
|
title: Actor lifecycle
|
|
4
|
+
description: How an Apify Actor starts, runs, and shuts down, including context manager and manual control patterns.
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';
|
|
@@ -42,7 +43,15 @@ When the Actor exits, either normally or due to an exception, the SDK performs a
|
|
|
42
43
|
</TabItem>
|
|
43
44
|
</Tabs>
|
|
44
45
|
|
|
45
|
-
You can also create an [`Actor`](https://docs.apify.com/sdk/python/reference/class/Actor) instance directly. This does not change its capabilities but allows you to specify optional parameters during initialization
|
|
46
|
+
You can also create an [`Actor`](https://docs.apify.com/sdk/python/reference/class/Actor) instance directly. This does not change its capabilities but allows you to specify optional parameters during initialization. The key parameters are:
|
|
47
|
+
|
|
48
|
+
- `configuration` — a custom [`Configuration`](https://docs.apify.com/sdk/python/reference/class/Configuration) instance to control storage paths, API URLs, and other settings.
|
|
49
|
+
- `configure_logging` — whether to set up default logging configuration (default `True`). Set to `False` if you configure logging yourself.
|
|
50
|
+
- `exit_process` — whether the Actor calls `sys.exit()` when the context manager exits. Defaults to `True`, except in IPython, Pytest, and Scrapy environments.
|
|
51
|
+
- `event_listeners_timeout` — maximum time to wait for Actor event listeners to complete before exiting.
|
|
52
|
+
- `cleanup_timeout` — maximum time to wait for cleanup tasks to finish (default 30 seconds).
|
|
53
|
+
|
|
54
|
+
The choice between using a context manager or manual initialization depends on how much control you require over the Actor's startup and shutdown sequence.
|
|
46
55
|
|
|
47
56
|
<Tabs groupId="request_queue">
|
|
48
57
|
<TabItem value="actor_instance_with_context_manager" label="Actor instance with context manager" default>
|
|
@@ -88,12 +97,10 @@ Before triggering a reboot, persist any essential state externally (e.g., to the
|
|
|
88
97
|
|
|
89
98
|
## Status message
|
|
90
99
|
|
|
91
|
-
[Status messages](https://docs.apify.com/platform/actors/development/programming-interface/status-messages) are lightweight, human-readable progress indicators displayed with the Actor run
|
|
100
|
+
[Status messages](https://docs.apify.com/platform/actors/development/programming-interface/status-messages) are lightweight, human-readable progress indicators displayed with the Actor run in Apify Console. Use them to communicate high-level phases or milestones, such as "Fetching list", "Processed 120/500 pages", or "Uploading results". When running locally, the SDK logs the status message instead of sending it to the platform.
|
|
92
101
|
|
|
93
102
|
Update the status only when the user's understanding of progress changes - avoid frequent updates for every processed item. Detailed information should go to logs or storages (dataset, key-value store) instead.
|
|
94
103
|
|
|
95
|
-
The SDK optimizes updates by sending an API request only when the message text changes, so repeating the same message incurs no additional cost.
|
|
96
|
-
|
|
97
104
|
<RunnableCodeBlock className="language-python" language="python">{StatusMessageExample}</RunnableCodeBlock>
|
|
98
105
|
|
|
99
106
|
## Conclusion
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: actor-input
|
|
3
|
+
title: Actor input
|
|
4
|
+
description: Read and validate input data passed to your Actor at runtime.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock';
|
|
8
|
+
|
|
9
|
+
import InputExample from '!!raw-loader!roa-loader!./code/02_input.py';
|
|
10
|
+
import RequestListExample from '!!raw-loader!roa-loader!./code/02_request_list.py';
|
|
11
|
+
import ApiLink from '@site/src/components/ApiLink';
|
|
12
|
+
|
|
13
|
+
The Actor gets its [input](https://docs.apify.com/platform/actors/running/input) from the input record in its default [key-value store](https://docs.apify.com/platform/storage/key-value-store).
|
|
14
|
+
|
|
15
|
+
To access it, instead of reading the record manually, you can use the <ApiLink to="class/Actor#get_input">`Actor.get_input`</ApiLink> convenience method. It will get the input record key from the Actor configuration, read the record from the default key-value store,and decrypt any [secret input fields](https://docs.apify.com/platform/actors/development/secret-input).
|
|
16
|
+
|
|
17
|
+
For example, if an Actor received a JSON input with two fields, `{ "firstNumber": 1, "secondNumber": 2 }`, this is how you might process it:
|
|
18
|
+
|
|
19
|
+
<RunnableCodeBlock className="language-python" language="python">
|
|
20
|
+
{InputExample}
|
|
21
|
+
</RunnableCodeBlock>
|
|
22
|
+
|
|
23
|
+
## Loading URLs from Actor input
|
|
24
|
+
|
|
25
|
+
Actors commonly receive a list of URLs to process via their input. The <ApiLink to="class/ApifyRequestList">`ApifyRequestList`</ApiLink> class (from `apify.request_loaders`) can parse the standard Apify input format for URL sources. It supports both direct URL objects (`{"url": "https://example.com"}`) and remote URL lists (`{"requestsFromUrl": "https://example.com/urls.txt"}`), where the remote file contains one URL per line.
|
|
26
|
+
|
|
27
|
+
<RunnableCodeBlock className="language-python" language="python">
|
|
28
|
+
{RequestListExample}
|
|
29
|
+
</RunnableCodeBlock>
|
|
30
|
+
|
|
31
|
+
## Secret input fields
|
|
32
|
+
|
|
33
|
+
The Apify platform supports [secret input fields](https://docs.apify.com/platform/actors/development/secret-input) that are encrypted before being stored. When you mark an input field as `"isSecret": true` in your Actor's [input schema](https://docs.apify.com/platform/actors/development/input-schema), the platform encrypts the value with the Actor's public key.
|
|
34
|
+
|
|
35
|
+
No special handling is needed in your code — when you call <ApiLink to="class/Actor#get_input">`Actor.get_input`</ApiLink>, encrypted fields are automatically decrypted using the Actor's private key, which is provided by the platform via environment variables. You receive the plaintext values directly.
|
|
36
|
+
|
|
37
|
+
For more details on Actor input and how to define input schemas, see the [Actor input](https://docs.apify.com/platform/actors/running/input) and [input schema](https://docs.apify.com/platform/actors/development/input-schema) documentation on the Apify platform.
|