apify 2.7.3__tar.gz → 3.0.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of apify might be problematic. Click here for more details.
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/build_and_deploy_docs.yaml +1 -1
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/pre_release.yaml +9 -5
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/release.yaml +8 -11
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/run_code_checks.yaml +9 -5
- {apify-2.7.3 → apify-3.0.0rc1}/CHANGELOG.md +339 -7
- {apify-2.7.3 → apify-3.0.0rc1}/CONTRIBUTING.md +1 -1
- {apify-2.7.3 → apify-3.0.0rc1}/Makefile +3 -3
- {apify-2.7.3 → apify-3.0.0rc1}/PKG-INFO +8 -7
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/02_running_actors_locally.mdx +1 -1
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/10_logging.mdx +30 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_dataset_exports.py +2 -2
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_rq.py +1 -4
- apify-3.0.0rc1/docs/03_concepts/code/10_redirect_log.py +15 -0
- apify-3.0.0rc1/docs/03_concepts/code/10_redirect_log_existing_run.py +24 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/conditional_actor_charge.py +2 -2
- {apify-2.7.3 → apify-3.0.0rc1}/docs/04_upgrading/upgrading_to_v2.md +2 -2
- apify-3.0.0rc1/docs/04_upgrading/upgrading_to_v3.md +18 -0
- {apify-2.7.3 → apify-3.0.0rc1}/pyproject.toml +31 -23
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_actor.py +47 -12
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_charging.py +15 -9
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_configuration.py +34 -1
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_crypto.py +0 -6
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_models.py +7 -7
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_proxy_configuration.py +10 -10
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_utils.py +25 -2
- apify-3.0.0rc1/src/apify/events/__init__.py +5 -0
- apify-3.0.0rc1/src/apify/events/_apify_event_manager.py +140 -0
- apify-3.0.0rc1/src/apify/events/_types.py +102 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/log.py +0 -9
- apify-3.0.0rc1/src/apify/request_loaders/__init__.py +18 -0
- apify-2.7.3/src/apify/storages/_request_list.py → apify-3.0.0rc1/src/apify/request_loaders/_apify_request_list.py +25 -18
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_logging_config.py +1 -4
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/extensions/_httpcache.py +9 -5
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/requests.py +3 -3
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/scheduler.py +8 -5
- apify-3.0.0rc1/src/apify/storage_clients/__init__.py +10 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/__init__.py +11 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/_dataset_client.py +304 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/_key_value_store_client.py +241 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/_models.py +107 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/_request_queue_client.py +787 -0
- apify-3.0.0rc1/src/apify/storage_clients/_apify/_storage_client.py +80 -0
- apify-3.0.0rc1/src/apify/storage_clients/_file_system/__init__.py +2 -0
- apify-3.0.0rc1/src/apify/storage_clients/_file_system/_key_value_store_client.py +36 -0
- apify-3.0.0rc1/src/apify/storage_clients/_file_system/_storage_client.py +35 -0
- apify-3.0.0rc1/src/apify/storages/__init__.py +3 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/README.md +23 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/Dockerfile +5 -1
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/requirements.txt +2 -0
- apify-3.0.0rc1/tests/integration/actor_source_base/server.py +101 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/conftest.py +9 -23
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_api_helpers.py +4 -6
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_dataset.py +4 -3
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_events.py +3 -1
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_key_value_store.py +17 -15
- apify-3.0.0rc1/tests/integration/test_actor_request_queue.py +320 -0
- apify-3.0.0rc1/tests/integration/test_crawlers_with_storages.py +112 -0
- apify-3.0.0rc1/tests/integration/test_request_queue.py +1194 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_create_proxy_configuration.py +37 -28
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_dataset.py +5 -30
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_env_helpers.py +3 -27
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_key_value_store.py +25 -45
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_lifecycle.py +4 -2
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_request_queue.py +3 -4
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_request_list.py +42 -28
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/conftest.py +42 -43
- apify-2.7.3/tests/unit/test_platform_event_manager.py → apify-3.0.0rc1/tests/unit/events/test_apify_event_manager.py +12 -8
- apify-3.0.0rc1/tests/unit/scrapy/pipelines/__init__.py +0 -0
- apify-3.0.0rc1/tests/unit/scrapy/requests/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -2
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/requests/test_to_scrapy_request.py +6 -10
- apify-3.0.0rc1/tests/unit/scrapy/utils/__init__.py +0 -0
- apify-3.0.0rc1/tests/unit/storage_clients/__init__.py +0 -0
- apify-3.0.0rc1/tests/unit/storage_clients/test_apify_request_queue_client.py +38 -0
- apify-3.0.0rc1/tests/unit/storage_clients/test_file_system.py +55 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/test_proxy_configuration.py +80 -70
- {apify-2.7.3 → apify-3.0.0rc1}/uv.lock +754 -1020
- apify-3.0.0rc1/website/docusaurus.config.js +289 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/package-lock.json +1202 -1229
- {apify-2.7.3 → apify-3.0.0rc1}/website/package.json +7 -6
- {apify-2.7.3 → apify-3.0.0rc1}/website/sidebars.js +4 -4
- apify-3.0.0rc1/website/src/components/RunnableCodeBlock.jsx +46 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/pages/index.module.css +1 -1
- apify-3.0.0rc1/website/static/.nojekyll +0 -0
- apify-3.0.0rc1/website/static/img/guides/redirected_logs_example.webp +0 -0
- apify-2.7.3/src/apify/_platform_event_manager.py +0 -231
- apify-2.7.3/src/apify/apify_storage_client/__init__.py +0 -3
- apify-2.7.3/src/apify/apify_storage_client/_apify_storage_client.py +0 -72
- apify-2.7.3/src/apify/apify_storage_client/_dataset_client.py +0 -190
- apify-2.7.3/src/apify/apify_storage_client/_dataset_collection_client.py +0 -51
- apify-2.7.3/src/apify/apify_storage_client/_key_value_store_client.py +0 -109
- apify-2.7.3/src/apify/apify_storage_client/_key_value_store_collection_client.py +0 -51
- apify-2.7.3/src/apify/apify_storage_client/_request_queue_client.py +0 -176
- apify-2.7.3/src/apify/apify_storage_client/_request_queue_collection_client.py +0 -51
- apify-2.7.3/src/apify/storages/__init__.py +0 -5
- apify-2.7.3/tests/integration/test_actor_request_queue.py +0 -88
- apify-2.7.3/tests/integration/test_request_queue.py +0 -113
- apify-2.7.3/website/docusaurus.config.js +0 -145
- apify-2.7.3/website/src/components/RunnableCodeBlock.jsx +0 -44
- {apify-2.7.3 → apify-3.0.0rc1}/.editorconfig +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.github/CODEOWNERS +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/check_pr_title.yaml +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/update_new_issue.yaml +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.gitignore +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.markdownlint.yaml +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/.pre-commit-config.yaml +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/LICENSE +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/README.md +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/01_introduction.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/03_actor_structure.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/01_introduction.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/__main__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/main.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/01_beautifulsoup_httpx.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/02_crawlee.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/03_playwright.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/04_selenium.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/05_scrapy.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/02_crawlee_playwright.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/03_playwright.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/04_selenium.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/items.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/main.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/02_actor_input.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/03_storages.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/04_actor_events.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/05_proxy_management.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/07_webhooks.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/08_access_apify_api.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/09_running_webserver.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/11_configuration.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/12_pay_per_event.mdx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_context_manager.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_init_exit.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_reboot.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_status_message.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/02_input.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_dataset_read_write.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_deleting_storages.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_iterating.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_public_url.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_read_write.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_opening_storages.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/04_actor_events.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_apify_proxy.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_custom_proxy.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_httpx.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_rotation.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_call.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_call_task.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_start.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/07_webhook.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/07_webhook_preventing.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/08_actor_client.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/08_actor_new_client.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/09_webserver.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/10_log_config.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/10_logger_usage.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/11_config.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/actor_charge.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/docs/pyproject.toml +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/renovate.json +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_consts.py +0 -0
- {apify-2.7.3/src/apify/apify_storage_client → apify-3.0.0rc1/src/apify/events}/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/py.typed +0 -0
- {apify-2.7.3/src/apify/scrapy/middlewares → apify-3.0.0rc1/src/apify/request_loaders}/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_actor_runner.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_async_thread.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/extensions/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/middlewares/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
- {apify-2.7.3/src/apify/scrapy/pipelines → apify-3.0.0rc1/src/apify/scrapy/middlewares}/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/pipelines/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
- {apify-2.7.3/src/apify/scrapy → apify-3.0.0rc1/src/apify/scrapy/pipelines}/py.typed +0 -0
- {apify-2.7.3/src/apify/storages → apify-3.0.0rc1/src/apify/scrapy}/py.typed +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/utils.py +0 -0
- /apify-2.7.3/tests/integration/__init__.py → /apify-3.0.0rc1/src/apify/storage_clients/_apify/py.typed +0 -0
- /apify-2.7.3/tests/integration/actor_source_base/src/__init__.py → /apify-3.0.0rc1/src/apify/storage_clients/py.typed +0 -0
- /apify-2.7.3/tests/unit/__init__.py → /apify-3.0.0rc1/src/apify/storages/py.typed +0 -0
- {apify-2.7.3/tests/unit/actor → apify-3.0.0rc1/tests/integration}/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/_utils.py +0 -0
- {apify-2.7.3/tests/unit/scrapy → apify-3.0.0rc1/tests/integration/actor_source_base/src}/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/src/__main__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/src/main.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_call_timeouts.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_charge.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_lifecycle.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_log.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_scrapy.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_fixtures.py +0 -0
- {apify-2.7.3/tests/unit/scrapy/extensions → apify-3.0.0rc1/tests/unit}/__init__.py +0 -0
- {apify-2.7.3/tests/unit/scrapy/middlewares → apify-3.0.0rc1/tests/unit/actor}/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_helpers.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_log.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_configuration.py +0 -0
- {apify-2.7.3/tests/unit/scrapy/pipelines → apify-3.0.0rc1/tests/unit/events}/__init__.py +0 -0
- {apify-2.7.3/tests/unit/scrapy/requests → apify-3.0.0rc1/tests/unit/scrapy}/__init__.py +0 -0
- {apify-2.7.3/tests/unit/scrapy/utils → apify-3.0.0rc1/tests/unit/scrapy/extensions}/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
- /apify-2.7.3/website/static/.nojekyll → /apify-3.0.0rc1/tests/unit/scrapy/middlewares/__init__.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/test_crypto.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/.eslintrc.json +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/babel.config.js +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/build_api_reference.sh +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/generate_module_shortcuts.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/ApiLink.jsx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Gradients.jsx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Highlights.jsx +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Highlights.module.css +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/RunnableCodeBlock.module.css +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/css/custom.css +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/pages/home_page_example.py +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/src/pages/index.js +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/static/img/docs-og.png +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/tools/docs-prettier.config.js +0 -0
- {apify-2.7.3 → apify-3.0.0rc1}/website/tools/utils/externalLink.js +0 -0
|
@@ -11,6 +11,10 @@ on:
|
|
|
11
11
|
# Or it can be triggered manually.
|
|
12
12
|
workflow_dispatch:
|
|
13
13
|
|
|
14
|
+
concurrency:
|
|
15
|
+
group: release
|
|
16
|
+
cancel-in-progress: false
|
|
17
|
+
|
|
14
18
|
jobs:
|
|
15
19
|
release_metadata:
|
|
16
20
|
if: "!startsWith(github.event.head_commit.message, 'docs') && !startsWith(github.event.head_commit.message, 'ci') && startsWith(github.repository, 'apify/')"
|
|
@@ -20,38 +24,38 @@ jobs:
|
|
|
20
24
|
version_number: ${{ steps.release_metadata.outputs.version_number }}
|
|
21
25
|
tag_name: ${{ steps.release_metadata.outputs.tag_name }}
|
|
22
26
|
changelog: ${{ steps.release_metadata.outputs.changelog }}
|
|
23
|
-
existing_changelog_path: CHANGELOG.md
|
|
24
27
|
steps:
|
|
25
28
|
- uses: apify/workflows/git-cliff-release@main
|
|
26
29
|
id: release_metadata
|
|
27
30
|
name: Prepare release metadata
|
|
28
31
|
with:
|
|
29
32
|
release_type: prerelease
|
|
33
|
+
existing_changelog_path: CHANGELOG.md
|
|
30
34
|
|
|
31
35
|
lint_check:
|
|
32
36
|
name: Lint check
|
|
33
37
|
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
|
|
34
38
|
with:
|
|
35
|
-
python-versions: '["3.
|
|
39
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
36
40
|
|
|
37
41
|
type_check:
|
|
38
42
|
name: Type check
|
|
39
43
|
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
|
|
40
44
|
with:
|
|
41
|
-
python-versions: '["3.
|
|
45
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
42
46
|
|
|
43
47
|
unit_tests:
|
|
44
48
|
name: Unit tests
|
|
45
49
|
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
|
|
46
50
|
with:
|
|
47
|
-
python-versions: '["3.
|
|
51
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
48
52
|
|
|
49
53
|
integration_tests:
|
|
50
54
|
name: Integration tests
|
|
51
55
|
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
|
|
52
56
|
secrets: inherit
|
|
53
57
|
with:
|
|
54
|
-
python-versions: '["3.
|
|
58
|
+
python-versions: '["3.10", "3.13"]'
|
|
55
59
|
|
|
56
60
|
update_changelog:
|
|
57
61
|
name: Update changelog
|
|
@@ -21,6 +21,10 @@ on:
|
|
|
21
21
|
type: string
|
|
22
22
|
default: ""
|
|
23
23
|
|
|
24
|
+
concurrency:
|
|
25
|
+
group: release
|
|
26
|
+
cancel-in-progress: false
|
|
27
|
+
|
|
24
28
|
jobs:
|
|
25
29
|
release_metadata:
|
|
26
30
|
name: Prepare release metadata
|
|
@@ -43,30 +47,23 @@ jobs:
|
|
|
43
47
|
name: Lint check
|
|
44
48
|
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
|
|
45
49
|
with:
|
|
46
|
-
python-versions: '["3.
|
|
50
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
47
51
|
|
|
48
52
|
type_check:
|
|
49
53
|
name: Type check
|
|
50
54
|
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
|
|
51
55
|
with:
|
|
52
|
-
python-versions: '["3.
|
|
56
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
53
57
|
|
|
54
58
|
unit_tests:
|
|
55
59
|
name: Unit tests
|
|
56
60
|
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
|
|
57
61
|
with:
|
|
58
|
-
python-versions: '["3.
|
|
59
|
-
|
|
60
|
-
integration_tests:
|
|
61
|
-
name: Integration tests
|
|
62
|
-
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
|
|
63
|
-
secrets: inherit
|
|
64
|
-
with:
|
|
65
|
-
python-versions: '["3.9", "3.13"]'
|
|
62
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
66
63
|
|
|
67
64
|
update_changelog:
|
|
68
65
|
name: Update changelog
|
|
69
|
-
needs: [release_metadata, lint_check, type_check, unit_tests
|
|
66
|
+
needs: [release_metadata, lint_check, type_check, unit_tests]
|
|
70
67
|
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
|
|
71
68
|
with:
|
|
72
69
|
version_number: ${{ needs.release_metadata.outputs.version_number }}
|
|
@@ -6,24 +6,29 @@ on:
|
|
|
6
6
|
# step required for PRs from forks. This prevents their potential exposure.
|
|
7
7
|
pull_request:
|
|
8
8
|
|
|
9
|
+
# Trigger for pushing to the master branch is handled by the pre-release workflow.
|
|
10
|
+
|
|
11
|
+
# It should also be possible to trigger checks manually
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
9
14
|
jobs:
|
|
10
15
|
lint_check:
|
|
11
16
|
name: Lint check
|
|
12
17
|
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
|
|
13
18
|
with:
|
|
14
|
-
python-versions: '["3.
|
|
19
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
15
20
|
|
|
16
21
|
type_check:
|
|
17
22
|
name: Type check
|
|
18
23
|
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
|
|
19
24
|
with:
|
|
20
|
-
python-versions: '["3.
|
|
25
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
21
26
|
|
|
22
27
|
unit_tests:
|
|
23
28
|
name: Unit tests
|
|
24
29
|
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
|
|
25
30
|
with:
|
|
26
|
-
python-versions: '["3.
|
|
31
|
+
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
|
|
27
32
|
|
|
28
33
|
docs_check:
|
|
29
34
|
name: Docs check
|
|
@@ -31,8 +36,7 @@ jobs:
|
|
|
31
36
|
|
|
32
37
|
integration_tests:
|
|
33
38
|
name: Integration tests
|
|
34
|
-
needs: [lint_check, type_check, unit_tests]
|
|
35
39
|
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
|
|
36
40
|
secrets: inherit
|
|
37
41
|
with:
|
|
38
|
-
python-versions: '["3.
|
|
42
|
+
python-versions: '["3.10", "3.13"]'
|
|
@@ -2,6 +2,161 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [3.0.0rc1](https://github.com/apify/apify-sdk-python/releases/tag/v3.0.0rc1) (2025-08-22)
|
|
6
|
+
|
|
7
|
+
### 🚀 Features
|
|
8
|
+
|
|
9
|
+
- Add deduplication to `add_batch_of_requests` ([#534](https://github.com/apify/apify-sdk-python/pull/534)) ([dd03c4d](https://github.com/apify/apify-sdk-python/commit/dd03c4d446f611492adf35f1b5738648ee5a66f7)) by [@Pijukatel](https://github.com/Pijukatel), closes [#514](https://github.com/apify/apify-sdk-python/issues/514)
|
|
10
|
+
|
|
11
|
+
### 🐛 Bug Fixes
|
|
12
|
+
|
|
13
|
+
- Restrict apify-shared and apify-client versions ([#523](https://github.com/apify/apify-sdk-python/pull/523)) ([b3ae5a9](https://github.com/apify/apify-sdk-python/commit/b3ae5a972a65454a4998eda59c9fcc3f6b7e8579)) by [@vdusek](https://github.com/vdusek)
|
|
14
|
+
- Expose `APIFY_USER_IS_PAYING` env var to the configuration ([#507](https://github.com/apify/apify-sdk-python/pull/507)) ([0801e54](https://github.com/apify/apify-sdk-python/commit/0801e54887317c1280cc6828ecd3f2cc53287e76)) by [@stepskop](https://github.com/stepskop)
|
|
15
|
+
- Resolve DeprecationWarning in ApifyEventManager ([#555](https://github.com/apify/apify-sdk-python/pull/555)) ([0c5111d](https://github.com/apify/apify-sdk-python/commit/0c5111dafe19796ec1fb9652a44c031bed9758df)) by [@vdusek](https://github.com/vdusek), closes [#343](https://github.com/apify/apify-sdk-python/issues/343)
|
|
16
|
+
|
|
17
|
+
### Chore
|
|
18
|
+
|
|
19
|
+
- [**breaking**] Update apify-client and apify-shared to v2.0 ([#548](https://github.com/apify/apify-sdk-python/pull/548)) ([8ba084d](https://github.com/apify/apify-sdk-python/commit/8ba084ded6cd018111343f2219260b481c8d4e35)) by [@vdusek](https://github.com/vdusek)
|
|
20
|
+
|
|
21
|
+
### Refactor
|
|
22
|
+
|
|
23
|
+
- [**breaking**] Adapt to the Crawlee v1.0 ([#470](https://github.com/apify/apify-sdk-python/pull/470)) ([f7e3320](https://github.com/apify/apify-sdk-python/commit/f7e33206cf3e4767faacbdc43511b45b6785f929)) by [@vdusek](https://github.com/vdusek), closes [#469](https://github.com/apify/apify-sdk-python/issues/469), [#540](https://github.com/apify/apify-sdk-python/issues/540)
|
|
24
|
+
- [**breaking**] Replace `httpx` with `impit` ([#560](https://github.com/apify/apify-sdk-python/pull/560)) ([cca3869](https://github.com/apify/apify-sdk-python/commit/cca3869e85968865e56aafcdcb36fbccba27aef0)) by [@Mantisus](https://github.com/Mantisus), closes [#558](https://github.com/apify/apify-sdk-python/issues/558)
|
|
25
|
+
- [**breaking**] Remove `Request.id` field ([#553](https://github.com/apify/apify-sdk-python/pull/553)) ([445ab5d](https://github.com/apify/apify-sdk-python/commit/445ab5d752b785fc2018b35c8adbe779253d7acd)) by [@Pijukatel](https://github.com/Pijukatel)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
29
|
+
|
|
30
|
+
### 🚀 Features
|
|
31
|
+
|
|
32
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
33
|
+
|
|
34
|
+
### 🐛 Bug Fixes
|
|
35
|
+
|
|
36
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
37
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
41
|
+
|
|
42
|
+
### 🚀 Features
|
|
43
|
+
|
|
44
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
45
|
+
|
|
46
|
+
### 🐛 Bug Fixes
|
|
47
|
+
|
|
48
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
49
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
53
|
+
|
|
54
|
+
### 🚀 Features
|
|
55
|
+
|
|
56
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
57
|
+
|
|
58
|
+
### 🐛 Bug Fixes
|
|
59
|
+
|
|
60
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
61
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
65
|
+
|
|
66
|
+
### 🚀 Features
|
|
67
|
+
|
|
68
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
69
|
+
|
|
70
|
+
### 🐛 Bug Fixes
|
|
71
|
+
|
|
72
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
73
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
77
|
+
|
|
78
|
+
### 🚀 Features
|
|
79
|
+
|
|
80
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
81
|
+
|
|
82
|
+
### 🐛 Bug Fixes
|
|
83
|
+
|
|
84
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
85
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
89
|
+
|
|
90
|
+
### 🚀 Features
|
|
91
|
+
|
|
92
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
93
|
+
|
|
94
|
+
### 🐛 Bug Fixes
|
|
95
|
+
|
|
96
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
97
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
101
|
+
|
|
102
|
+
### 🚀 Features
|
|
103
|
+
|
|
104
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
105
|
+
|
|
106
|
+
### 🐛 Bug Fixes
|
|
107
|
+
|
|
108
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
109
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
113
|
+
|
|
114
|
+
### 🚀 Features
|
|
115
|
+
|
|
116
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
117
|
+
|
|
118
|
+
### 🐛 Bug Fixes
|
|
119
|
+
|
|
120
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
121
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
125
|
+
|
|
126
|
+
### 🚀 Features
|
|
127
|
+
|
|
128
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
129
|
+
|
|
130
|
+
### 🐛 Bug Fixes
|
|
131
|
+
|
|
132
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
133
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
137
|
+
|
|
138
|
+
### 🚀 Features
|
|
139
|
+
|
|
140
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
141
|
+
|
|
142
|
+
### 🐛 Bug Fixes
|
|
143
|
+
|
|
144
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
145
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
|
|
149
|
+
|
|
150
|
+
### 🚀 Features
|
|
151
|
+
|
|
152
|
+
- **crypto:** Decrypt secret objects ([#482](https://github.com/apify/apify-sdk-python/pull/482)) ([ce9daf7](https://github.com/apify/apify-sdk-python/commit/ce9daf7381212b8dc194e8a643e5ca0dedbc0078)) by [@MFori](https://github.com/MFori)
|
|
153
|
+
|
|
154
|
+
### 🐛 Bug Fixes
|
|
155
|
+
|
|
156
|
+
- Sync `@docusaurus` theme version [internal] ([#500](https://github.com/apify/apify-sdk-python/pull/500)) ([a7485e7](https://github.com/apify/apify-sdk-python/commit/a7485e7d2276fde464ce862573d5b95e7d4d836a)) by [@katzino](https://github.com/katzino)
|
|
157
|
+
- Tagline overlap ([#501](https://github.com/apify/apify-sdk-python/pull/501)) ([bae8340](https://github.com/apify/apify-sdk-python/commit/bae8340c46fea756ea35ea4d591da84c09d478e2)) by [@katzino](https://github.com/katzino)
|
|
158
|
+
|
|
159
|
+
|
|
5
160
|
## [2.7.3](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3) (2025-08-11)
|
|
6
161
|
|
|
7
162
|
### 🐛 Bug Fixes
|
|
@@ -13,7 +168,7 @@ All notable changes to this project will be documented in this file.
|
|
|
13
168
|
|
|
14
169
|
### 🐛 Bug Fixes
|
|
15
170
|
|
|
16
|
-
- Restrict apify-shared and apify-client versions (#523) ([581ebae](https://github.com/apify/apify-sdk-python/commit/581ebae5752a984a34cbabc02c49945ae392db00))
|
|
171
|
+
- Restrict apify-shared and apify-client versions ([#523](https://github.com/apify/apify-sdk-python/pull/523)) ([581ebae](https://github.com/apify/apify-sdk-python/commit/581ebae5752a984a34cbabc02c49945ae392db00)) by [@vdusek](https://github.com/vdusek)
|
|
17
172
|
|
|
18
173
|
|
|
19
174
|
## [2.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.1) (2025-07-24)
|
|
@@ -159,33 +314,210 @@ All notable changes to this project will be documented in this file.
|
|
|
159
314
|
|
|
160
315
|
- [**breaking**] Preparation for v2 release ([#210](https://github.com/apify/apify-sdk-python/pull/210)) ([2f9dcc5](https://github.com/apify/apify-sdk-python/commit/2f9dcc559414f31e3f4fc87e72417a36494b9c84)) by [@janbuchar](https://github.com/janbuchar), closes [#135](https://github.com/apify/apify-sdk-python/issues/135), [#137](https://github.com/apify/apify-sdk-python/issues/137), [#138](https://github.com/apify/apify-sdk-python/issues/138), [#147](https://github.com/apify/apify-sdk-python/issues/147), [#149](https://github.com/apify/apify-sdk-python/issues/149), [#237](https://github.com/apify/apify-sdk-python/issues/237)
|
|
161
316
|
|
|
317
|
+
### Chore
|
|
318
|
+
|
|
319
|
+
- [**breaking**] Drop support for Python 3.8
|
|
320
|
+
|
|
162
321
|
|
|
163
322
|
## [1.7.2](https://github.com/apify/apify-sdk-python/releases/tag/v1.7.2) (2024-07-08)
|
|
164
323
|
|
|
324
|
+
- Add Actor Standby port
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
## [1.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v1.7.1) (2024-05-23)
|
|
328
|
+
|
|
329
|
+
### 🐛 Bug Fixes
|
|
330
|
+
|
|
331
|
+
- Set a timeout for Actor cleanup
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
## [1.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.7.0) (2024-03-12)
|
|
335
|
+
|
|
165
336
|
### 🚀 Features
|
|
166
337
|
|
|
167
|
-
- Add
|
|
338
|
+
- Add a new way of generating the `uniqueKey` field of the request, aligning it with the Crawlee.
|
|
168
339
|
|
|
340
|
+
### 🐛 Bug Fixes
|
|
341
|
+
|
|
342
|
+
- Improve error handling for `to_apify_request` serialization failures
|
|
343
|
+
- Scrapy's `Request.dont_filter` works.
|
|
169
344
|
|
|
170
|
-
|
|
345
|
+
|
|
346
|
+
## [1.6.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.6.0) (2024-02-23)
|
|
171
347
|
|
|
172
348
|
### 🐛 Bug Fixes
|
|
173
349
|
|
|
174
|
-
-
|
|
350
|
+
- Update of Scrapy integration, fixes in `ApifyScheduler`, `to_apify_request` and `apply_apify_settings`.
|
|
175
351
|
|
|
352
|
+
### Chore
|
|
176
353
|
|
|
177
|
-
|
|
354
|
+
- Remove `ApifyRetryMiddleware` and stay with the Scrapy's default one
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
## [1.5.5](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.5) (2024-02-01)
|
|
358
|
+
|
|
359
|
+
### 🐛 Bug Fixes
|
|
360
|
+
|
|
361
|
+
- Fix conversion of `headers` fields in Apify <--> Scrapy request translation
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
## [1.5.4](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.4) (2024-01-24)
|
|
365
|
+
|
|
366
|
+
### 🐛 Bug Fixes
|
|
367
|
+
|
|
368
|
+
- Fix conversion of `userData` and `headers` fields in Apify <--> Scrapy request translation
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
## [1.5.3](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.3) (2024-01-23)
|
|
178
372
|
|
|
179
373
|
### 🚀 Features
|
|
180
374
|
|
|
181
|
-
-
|
|
375
|
+
- Add `apply_apify_settings` function to Scrapy subpackage
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
## [1.5.2](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.2) (2024-01-19)
|
|
379
|
+
|
|
380
|
+
### 🐛 Bug Fixes
|
|
381
|
+
|
|
382
|
+
- Add missing import check to `ApifyHttpProxyMiddleware`
|
|
383
|
+
|
|
384
|
+
### Chore
|
|
385
|
+
|
|
386
|
+
- Create a new subpackage for Scrapy pipelines
|
|
387
|
+
- Remove some noqas thanks to the new Ruff release
|
|
388
|
+
- Replace relative imports with absolute imports
|
|
389
|
+
- Replace asserts with custom checks in Scrapy subpackage
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
## [1.5.1](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.1) (2024-01-10)
|
|
393
|
+
|
|
394
|
+
### Chore
|
|
395
|
+
|
|
396
|
+
- Allowed running integration tests from PRs from forks, after maintainer approval
|
|
397
|
+
- Do not close `nested_event_loop` in the `Scheduler.__del__`
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
## [1.5.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.5.0) (2024-01-03)
|
|
401
|
+
|
|
402
|
+
### 🚀 Features
|
|
403
|
+
|
|
404
|
+
- Add `ApifyHttpProxyMiddleware`
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
## [1.4.1](https://github.com/apify/apify-sdk-python/releases/tag/v1.4.1) (2023-12-21)
|
|
408
|
+
|
|
409
|
+
### 🐛 Bug Fixes
|
|
410
|
+
|
|
411
|
+
- Resolve issue in `ApifyRetryMiddleware.process_exception()`, where requests were getting stuck in the request queue
|
|
412
|
+
|
|
413
|
+
### Chore
|
|
414
|
+
|
|
415
|
+
- Fix type hint problems for resource clients
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
## [1.4.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.4.0) (2023-12-05)
|
|
419
|
+
|
|
420
|
+
### Chore
|
|
421
|
+
|
|
422
|
+
- Migrate from Autopep8 and Flake8 to Ruff
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
## [1.3.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.3.0) (2023-11-15)
|
|
426
|
+
|
|
427
|
+
### 🚀 Features
|
|
428
|
+
|
|
429
|
+
- Add `scrapy` extra
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
## [1.2.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.2.0) (2023-10-23)
|
|
433
|
+
|
|
434
|
+
### 🚀 Features
|
|
435
|
+
|
|
436
|
+
- Add support for Python 3.12
|
|
437
|
+
|
|
438
|
+
### Chore
|
|
439
|
+
|
|
440
|
+
- Fix lint error (E721) in unit tests (for instance checks use `isinstance()`)
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
## [1.1.5](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.5) (2023-10-03)
|
|
444
|
+
|
|
445
|
+
### 🚀 Features
|
|
446
|
+
|
|
447
|
+
- Update the Apify log formatter to contain an option for adding the logger name
|
|
448
|
+
|
|
449
|
+
### Chore
|
|
450
|
+
|
|
451
|
+
- Rewrite documentation publication to use Docusaurus
|
|
452
|
+
- Remove PR Toolkit workflow
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
## [1.1.4](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.4) (2023-09-06)
|
|
456
|
+
|
|
457
|
+
### 🐛 Bug Fixes
|
|
458
|
+
|
|
459
|
+
- Resolve issue with querying request queue head multiple times in parallel
|
|
460
|
+
|
|
461
|
+
### Chore
|
|
462
|
+
|
|
463
|
+
- Fix integration tests for Actor logger
|
|
464
|
+
- Remove `pytest-randomly` Pytest plugin
|
|
465
|
+
- Unpin `apify-client` and `apify-shared` to improve compatibility with their newer versions
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
## [1.1.3](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.3) (2023-08-25)
|
|
469
|
+
|
|
470
|
+
### Chore
|
|
471
|
+
|
|
472
|
+
- Unify indentation in configuration files
|
|
473
|
+
- Update the `Actor.reboot` method to use the new reboot endpoint
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
## [1.1.2](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.2) (2023-08-02)
|
|
477
|
+
|
|
478
|
+
### Chore
|
|
479
|
+
|
|
480
|
+
- Start importing general constants and utilities from the `apify-shared` library
|
|
481
|
+
- Simplify code via `flake8-simplify`
|
|
482
|
+
- Start using environment variables with prefix `ACTOR_` instead of some with prefix `APIFY_`
|
|
483
|
+
- Pin `apify-client` and `apify-shared` to prevent their implicit updates from breaking SDK
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
## [1.1.1](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.1) (2023-05-23)
|
|
487
|
+
|
|
488
|
+
### 🐛 Bug Fixes
|
|
489
|
+
|
|
490
|
+
- Relax dependency requirements to improve compatibility with other libraries
|
|
182
491
|
|
|
183
492
|
|
|
184
493
|
## [1.1.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.0) (2023-05-23)
|
|
185
494
|
|
|
186
495
|
### 🚀 Features
|
|
187
496
|
|
|
188
|
-
-
|
|
497
|
+
- Add option to add event handlers which accept no arguments
|
|
498
|
+
- Add support for `is_terminal` flag in status message update
|
|
499
|
+
- Add option to set status message along with `Actor.exit()`
|
|
500
|
+
|
|
501
|
+
### 🐛 Bug Fixes
|
|
502
|
+
|
|
503
|
+
- Start enforcing local storage to always use the UTF-8 encoding
|
|
504
|
+
- Fix saving key-value store values to local storage with the right extension for a given content type
|
|
505
|
+
|
|
506
|
+
### Chore
|
|
507
|
+
|
|
508
|
+
- Switch from `setup.py` to `pyproject.toml` for specifying project setup
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
## [1.0.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.0.0) (2023-03-13)
|
|
512
|
+
|
|
513
|
+
### 🐛 Bug Fixes
|
|
514
|
+
|
|
515
|
+
- Fix `RequestQueue` not loading requests from an existing queue properly
|
|
516
|
+
|
|
517
|
+
### Chore
|
|
518
|
+
|
|
519
|
+
- Update to `apify-client` 1.0.0
|
|
520
|
+
- Start triggering base Docker image builds when releasing a new version
|
|
189
521
|
|
|
190
522
|
|
|
191
523
|
## [0.2.0](https://github.com/apify/apify-sdk-python/releases/tag/v0.2.0) (2023-03-06)
|
|
@@ -4,7 +4,7 @@ Here you'll find a contributing guide to get started with development.
|
|
|
4
4
|
|
|
5
5
|
## Environment
|
|
6
6
|
|
|
7
|
-
For local development, it is required to have Python 3.
|
|
7
|
+
For local development, it is required to have Python 3.10 (or a later version) installed.
|
|
8
8
|
|
|
9
9
|
We use [uv](https://docs.astral.sh/uv/) for project management. Install it and set up your IDE accordingly.
|
|
10
10
|
|
|
@@ -26,13 +26,13 @@ type-check:
|
|
|
26
26
|
uv run mypy
|
|
27
27
|
|
|
28
28
|
unit-tests:
|
|
29
|
-
uv run pytest --numprocesses=auto
|
|
29
|
+
uv run pytest --numprocesses=auto -vv --cov=src/apify tests/unit
|
|
30
30
|
|
|
31
31
|
unit-tests-cov:
|
|
32
|
-
uv run pytest --numprocesses=auto
|
|
32
|
+
uv run pytest --numprocesses=auto -vv --cov=src/apify --cov-report=html tests/unit
|
|
33
33
|
|
|
34
34
|
integration-tests:
|
|
35
|
-
uv run pytest --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY)
|
|
35
|
+
uv run pytest --numprocesses=$(INTEGRATION_TESTS_CONCURRENCY) -vv tests/integration
|
|
36
36
|
|
|
37
37
|
format:
|
|
38
38
|
uv run ruff check --fix
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apify
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0rc1
|
|
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
|
|
@@ -219,22 +219,23 @@ Classifier: Environment :: Console
|
|
|
219
219
|
Classifier: Intended Audience :: Developers
|
|
220
220
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
221
221
|
Classifier: Operating System :: OS Independent
|
|
222
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
223
222
|
Classifier: Programming Language :: Python :: 3.10
|
|
224
223
|
Classifier: Programming Language :: Python :: 3.11
|
|
225
224
|
Classifier: Programming Language :: Python :: 3.12
|
|
226
225
|
Classifier: Programming Language :: Python :: 3.13
|
|
227
226
|
Classifier: Topic :: Software Development :: Libraries
|
|
228
|
-
Requires-Python: >=3.
|
|
229
|
-
Requires-Dist: apify-client<2.0.0
|
|
230
|
-
Requires-Dist: apify-shared<2.0.0
|
|
231
|
-
Requires-Dist:
|
|
227
|
+
Requires-Python: >=3.10
|
|
228
|
+
Requires-Dist: apify-client<3.0.0,>=2.0.0
|
|
229
|
+
Requires-Dist: apify-shared<3.0.0,>=2.0.0
|
|
230
|
+
Requires-Dist: cachetools>=5.5.0
|
|
231
|
+
Requires-Dist: crawlee==1.0.0rc1
|
|
232
232
|
Requires-Dist: cryptography>=42.0.0
|
|
233
|
-
Requires-Dist:
|
|
233
|
+
Requires-Dist: impit>=0.5.3
|
|
234
234
|
Requires-Dist: lazy-object-proxy<1.11.0
|
|
235
235
|
Requires-Dist: more-itertools>=10.2.0
|
|
236
236
|
Requires-Dist: typing-extensions>=4.1.0
|
|
237
237
|
Requires-Dist: websockets>=14.0
|
|
238
|
+
Requires-Dist: yarl>=1.18.0
|
|
238
239
|
Provides-Extra: scrapy
|
|
239
240
|
Requires-Dist: scrapy>=2.11.0; extra == 'scrapy'
|
|
240
241
|
Description-Content-Type: text/markdown
|
|
@@ -11,7 +11,7 @@ In this page, you'll learn how to create and run Apify Actors locally on your co
|
|
|
11
11
|
|
|
12
12
|
## Requirements
|
|
13
13
|
|
|
14
|
-
The Apify SDK requires Python version 3.
|
|
14
|
+
The Apify SDK requires Python version 3.10 or above to run Python Actors locally.
|
|
15
15
|
|
|
16
16
|
## Creating your first Actor
|
|
17
17
|
|