apify 2.7.0__tar.gz → 2.7.1b2__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.0 → apify-2.7.1b2}/PKG-INFO +1 -1
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/10_logging.mdx +30 -0
- apify-2.7.1b2/docs/03_concepts/code/10_redirect_log.py +15 -0
- apify-2.7.1b2/docs/03_concepts/code/10_redirect_log_existing_run.py +24 -0
- {apify-2.7.0 → apify-2.7.1b2}/pyproject.toml +3 -3
- {apify-2.7.0 → apify-2.7.1b2}/uv.lock +47 -37
- {apify-2.7.0 → apify-2.7.1b2}/website/package-lock.json +349 -348
- apify-2.7.1b2/website/static/img/guides/redirected_logs_example.webp +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.editorconfig +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/CODEOWNERS +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/build_and_deploy_docs.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/check_pr_title.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/pre_release.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/release.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/run_code_checks.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/update_new_issue.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.gitignore +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.markdownlint.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/.pre-commit-config.yaml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/CHANGELOG.md +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/CONTRIBUTING.md +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/LICENSE +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/Makefile +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/README.md +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/01_introduction.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/02_running_actors_locally.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/03_actor_structure.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/01_introduction.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/__main__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/main.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/01_beautifulsoup_httpx.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/02_crawlee.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/03_playwright.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/04_selenium.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/05_scrapy.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/01_beautifulsoup_httpx.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/02_crawlee_playwright.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/03_playwright.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/04_selenium.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/__main__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/items.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/main.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/settings.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/01_actor_lifecycle.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/02_actor_input.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/03_storages.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/04_actor_events.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/05_proxy_management.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/06_interacting_with_other_actors.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/07_webhooks.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/08_access_apify_api.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/09_running_webserver.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/11_configuration.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/12_pay_per_event.mdx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_context_manager.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_init_exit.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_reboot.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_status_message.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/02_input.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_dataset_exports.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_dataset_read_write.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_deleting_storages.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_iterating.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_public_url.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_read_write.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_opening_storages.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_rq.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/04_actor_events.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_apify_proxy.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_apify_proxy_config.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_custom_proxy.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_custom_proxy_function.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_actor_input.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_httpx.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_rotation.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_call.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_call_task.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_metamorph.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_start.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/07_webhook.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/07_webhook_preventing.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/08_actor_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/08_actor_new_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/09_webserver.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/10_log_config.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/10_logger_usage.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/11_config.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/actor_charge.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/conditional_actor_charge.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/04_upgrading/upgrading_to_v2.md +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/docs/pyproject.toml +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/renovate.json +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_actor.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_charging.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_consts.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_crypto.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_models.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_platform_event_manager.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_proxy_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/_utils.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_apify_storage_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_dataset_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_dataset_collection_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_key_value_store_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_key_value_store_collection_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_request_queue_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_request_queue_collection_client.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/log.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_actor_runner.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_async_thread.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_logging_config.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/extensions/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/extensions/_httpcache.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/requests.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/scheduler.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/utils.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/_request_list.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/py.typed +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/README.md +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/_utils.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/Dockerfile +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/requirements.txt +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/__main__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/main.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/conftest.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_api_helpers.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_call_timeouts.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_charge.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_dataset.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_events.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_key_value_store.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_lifecycle.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_log.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_request_queue.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_scrapy.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_fixtures.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_request_queue.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_dataset.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_env_helpers.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_helpers.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_key_value_store.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_lifecycle.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_log.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_request_queue.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_request_list.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/conftest.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/extensions/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/middlewares/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/pipelines/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/__init__.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_crypto.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_platform_event_manager.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_proxy_configuration.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/.eslintrc.json +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/babel.config.js +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/build_api_reference.sh +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/docusaurus.config.js +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/generate_module_shortcuts.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/package.json +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/sidebars.js +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/ApiLink.jsx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Gradients.jsx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Highlights.jsx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Highlights.module.css +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/RunnableCodeBlock.jsx +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/components/RunnableCodeBlock.module.css +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/css/custom.css +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/home_page_example.py +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/index.js +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/index.module.css +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/static/.nojekyll +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/static/img/docs-og.png +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/tools/docs-prettier.config.js +0 -0
- {apify-2.7.0 → apify-2.7.1b2}/website/tools/utils/externalLink.js +0 -0
|
@@ -7,6 +7,8 @@ import CodeBlock from '@theme/CodeBlock';
|
|
|
7
7
|
|
|
8
8
|
import LogConfigExample from '!!raw-loader!./code/10_log_config.py';
|
|
9
9
|
import LoggerUsageExample from '!!raw-loader!./code/10_logger_usage.py';
|
|
10
|
+
import RedirectLog from '!!raw-loader!./code/10_redirect_log.py';
|
|
11
|
+
import RedirectLogExistingRun from '!!raw-loader!./code/10_redirect_log_existing_run.py';
|
|
10
12
|
|
|
11
13
|
The Apify SDK is logging useful information through the [`logging`](https://docs.python.org/3/library/logging.html) module from Python's standard library, into the logger with the name `apify`.
|
|
12
14
|
|
|
@@ -82,3 +84,31 @@ Result:
|
|
|
82
84
|
</pre>
|
|
83
85
|
|
|
84
86
|
<!-- markdownlint-enable no-inline-html -->
|
|
87
|
+
|
|
88
|
+
## Redirect logs from other Actor runs
|
|
89
|
+
|
|
90
|
+
In some situations, one Actor is going to start one or more other Actors and wait for them to finish and produce some results. In such cases, you might want to redirect the logs and status messages of the started Actors runs back to the parent Actor run, so that you can see the progress of the started Actors' runs in the parent Actor's logs. This guide will show possibilities on how to do it.
|
|
91
|
+
|
|
92
|
+
### Redirecting logs from Actor.call
|
|
93
|
+
|
|
94
|
+
Typical use case for log redirection is to call another Actor using the [`Actor.call`](../../reference/class/Actor#call) method. This method has an optional `logger` argument, which is by default set to the `default` literal. This means that the logs of the called Actor will be automatically redirected to the parent Actor's logs with default formatting and filtering. If you set the `logger` argument to `None`, then no log redirection happens. The third option is to pass your own `Logger` instance with the possibility to define your own formatter, filter, and handler. Below you can see those three possible ways of log redirection when starting another Actor run through [`Actor.call`](../../reference/class/Actor#call).
|
|
95
|
+
|
|
96
|
+
<CodeBlock className="language-python">
|
|
97
|
+
{RedirectLog}
|
|
98
|
+
</CodeBlock>
|
|
99
|
+
|
|
100
|
+
Each default redirect logger log entry will have a specific format. After the timestamp, it will contain cyan colored text that will contain the redirect information - the other actor's name and the run ID. The rest of the log message will be printed in the same manner as the parent Actor's logger is configured.
|
|
101
|
+
|
|
102
|
+
The log redirection can be deep, meaning that if the other actor also starts another actor and is redirecting logs from it, then in the top-level Actor, you can see it as well. See the following example screenshot of the Apify log console when one actor recursively starts itself (there are 2 levels of recursion in the example).
|
|
103
|
+
|
|
104
|
+

|
|
105
|
+
|
|
106
|
+
### Redirecting logs from already running Actor run
|
|
107
|
+
|
|
108
|
+
In some cases, you might want to connect to an already running Actor run and redirect its logs to your current Actor run. This can be done using the [ApifyClient](../../reference/class/Actor#apify_client) and getting the streamed log from a specific Actor run. You can then use it as a context manager, and the log redirection will be active in the context, or you can control the log redirection manually by explicitly calling `start` and `stop` methods.
|
|
109
|
+
|
|
110
|
+
You can further decide whether you want to redirect just new logs of the ongoing Actor run, or if you also want to redirect historical logs from that Actor's run, so all logs it has produced since it was started. Both options are shown in the example code below.
|
|
111
|
+
|
|
112
|
+
<CodeBlock className="language-python">
|
|
113
|
+
{RedirectLogExistingRun}
|
|
114
|
+
</CodeBlock>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from apify import Actor
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
async def main() -> None:
|
|
7
|
+
async with Actor:
|
|
8
|
+
# Default redirect logger
|
|
9
|
+
await Actor.call(actor_id='some_actor_id')
|
|
10
|
+
# No redirect logger
|
|
11
|
+
await Actor.call(actor_id='some_actor_id', logger=None)
|
|
12
|
+
# Custom redirect logger
|
|
13
|
+
await Actor.call(
|
|
14
|
+
actor_id='some_actor_id', logger=logging.getLogger('custom_logger')
|
|
15
|
+
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from apify import Actor
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
async def main() -> None:
|
|
7
|
+
async with Actor:
|
|
8
|
+
# Lifecycle of redirected logs is handled by the context manager.
|
|
9
|
+
async with await Actor.apify_client.run('some_actor_id').get_streamed_log(
|
|
10
|
+
# Redirect all logs from the start of that run, even the logs from past.
|
|
11
|
+
from_start=True
|
|
12
|
+
):
|
|
13
|
+
await asyncio.sleep(5)
|
|
14
|
+
# Logging will stop out of context
|
|
15
|
+
|
|
16
|
+
# Lifecycle of redirected logs can be handled manually.
|
|
17
|
+
streamed_log = await Actor.apify_client.run('some_id').get_streamed_log(
|
|
18
|
+
# Do not redirect historical logs from this actor run.
|
|
19
|
+
# Redirect only new logs from now on.
|
|
20
|
+
from_start=False
|
|
21
|
+
)
|
|
22
|
+
streamed_log.start()
|
|
23
|
+
await asyncio.sleep(5)
|
|
24
|
+
await streamed_log.stop()
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "apify"
|
|
7
|
-
version = "2.7.
|
|
7
|
+
version = "2.7.1b2"
|
|
8
8
|
description = "Apify SDK for Python"
|
|
9
9
|
authors = [{ name = "Apify Technologies s.r.o.", email = "support@apify.com" }]
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -65,10 +65,10 @@ dev = [
|
|
|
65
65
|
"build~=1.2.0",
|
|
66
66
|
"dycw-pytest-only>=2.1.1",
|
|
67
67
|
"griffe~=1.7.0",
|
|
68
|
-
"mypy~=1.
|
|
68
|
+
"mypy~=1.17.0",
|
|
69
69
|
"pre-commit~=4.2.0",
|
|
70
70
|
"pydoc-markdown~=4.8.0",
|
|
71
|
-
"pytest-asyncio~=1.
|
|
71
|
+
"pytest-asyncio~=1.1.0",
|
|
72
72
|
"pytest-cov~=6.2.0",
|
|
73
73
|
"pytest-timeout>=2.4.0",
|
|
74
74
|
"pytest-xdist~=3.8.0",
|
|
@@ -28,7 +28,7 @@ wheels = [
|
|
|
28
28
|
|
|
29
29
|
[[package]]
|
|
30
30
|
name = "apify"
|
|
31
|
-
version = "2.7.
|
|
31
|
+
version = "2.7.1"
|
|
32
32
|
source = { editable = "." }
|
|
33
33
|
dependencies = [
|
|
34
34
|
{ name = "apify-client" },
|
|
@@ -85,11 +85,11 @@ dev = [
|
|
|
85
85
|
{ name = "build", specifier = "~=1.2.0" },
|
|
86
86
|
{ name = "dycw-pytest-only", specifier = ">=2.1.1" },
|
|
87
87
|
{ name = "griffe", specifier = "~=1.7.0" },
|
|
88
|
-
{ name = "mypy", specifier = "~=1.
|
|
88
|
+
{ name = "mypy", specifier = "~=1.17.0" },
|
|
89
89
|
{ name = "pre-commit", specifier = "~=4.2.0" },
|
|
90
90
|
{ name = "pydoc-markdown", specifier = "~=4.8.0" },
|
|
91
91
|
{ name = "pytest", specifier = "~=8.4.0" },
|
|
92
|
-
{ name = "pytest-asyncio", specifier = "~=1.
|
|
92
|
+
{ name = "pytest-asyncio", specifier = "~=1.1.0" },
|
|
93
93
|
{ name = "pytest-cov", specifier = "~=6.2.0" },
|
|
94
94
|
{ name = "pytest-timeout", specifier = ">=2.4.0" },
|
|
95
95
|
{ name = "pytest-xdist", specifier = "~=3.8.0" },
|
|
@@ -149,6 +149,15 @@ wheels = [
|
|
|
149
149
|
{ url = "https://files.pythonhosted.org/packages/02/ff/1175b0b7371e46244032d43a56862d0af455823b5280a50c63d99cc50f18/automat-25.4.16-py3-none-any.whl", hash = "sha256:04e9bce696a8d5671ee698005af6e5a9fa15354140a87f4870744604dcdd3ba1", size = 42842, upload-time = "2025-04-16T20:12:14.447Z" },
|
|
150
150
|
]
|
|
151
151
|
|
|
152
|
+
[[package]]
|
|
153
|
+
name = "backports-asyncio-runner"
|
|
154
|
+
version = "1.2.0"
|
|
155
|
+
source = { registry = "https://pypi.org/simple" }
|
|
156
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893, upload-time = "2025-07-02T02:27:15.685Z" }
|
|
157
|
+
wheels = [
|
|
158
|
+
{ url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313, upload-time = "2025-07-02T02:27:14.263Z" },
|
|
159
|
+
]
|
|
160
|
+
|
|
152
161
|
[[package]]
|
|
153
162
|
name = "black"
|
|
154
163
|
version = "23.12.1"
|
|
@@ -310,11 +319,11 @@ wheels = [
|
|
|
310
319
|
|
|
311
320
|
[[package]]
|
|
312
321
|
name = "certifi"
|
|
313
|
-
version = "2025.7.
|
|
322
|
+
version = "2025.7.14"
|
|
314
323
|
source = { registry = "https://pypi.org/simple" }
|
|
315
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
324
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995", size = 163981, upload-time = "2025-07-14T03:29:28.449Z" }
|
|
316
325
|
wheels = [
|
|
317
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
326
|
+
{ url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", size = 162722, upload-time = "2025-07-14T03:29:26.863Z" },
|
|
318
327
|
]
|
|
319
328
|
|
|
320
329
|
[[package]]
|
|
@@ -1257,7 +1266,7 @@ wheels = [
|
|
|
1257
1266
|
|
|
1258
1267
|
[[package]]
|
|
1259
1268
|
name = "mypy"
|
|
1260
|
-
version = "1.
|
|
1269
|
+
version = "1.17.0"
|
|
1261
1270
|
source = { registry = "https://pypi.org/simple" }
|
|
1262
1271
|
dependencies = [
|
|
1263
1272
|
{ name = "mypy-extensions" },
|
|
@@ -1265,33 +1274,33 @@ dependencies = [
|
|
|
1265
1274
|
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
1266
1275
|
{ name = "typing-extensions" },
|
|
1267
1276
|
]
|
|
1268
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1269
|
-
wheels = [
|
|
1270
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1271
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1272
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1273
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1274
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1275
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1276
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1277
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1278
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1279
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1280
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1281
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1282
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1283
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1284
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1285
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1286
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1287
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1288
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1289
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1290
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1291
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1292
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1293
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1294
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1277
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1e/e3/034322d5a779685218ed69286c32faa505247f1f096251ef66c8fd203b08/mypy-1.17.0.tar.gz", hash = "sha256:e5d7ccc08ba089c06e2f5629c660388ef1fee708444f1dee0b9203fa031dee03", size = 3352114, upload-time = "2025-07-14T20:34:30.181Z" }
|
|
1278
|
+
wheels = [
|
|
1279
|
+
{ url = "https://files.pythonhosted.org/packages/6a/31/e762baa3b73905c856d45ab77b4af850e8159dffffd86a52879539a08c6b/mypy-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8e08de6138043108b3b18f09d3f817a4783912e48828ab397ecf183135d84d6", size = 10998313, upload-time = "2025-07-14T20:33:24.519Z" },
|
|
1280
|
+
{ url = "https://files.pythonhosted.org/packages/1c/c1/25b2f0d46fb7e0b5e2bee61ec3a47fe13eff9e3c2f2234f144858bbe6485/mypy-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce4a17920ec144647d448fc43725b5873548b1aae6c603225626747ededf582d", size = 10128922, upload-time = "2025-07-14T20:34:06.414Z" },
|
|
1281
|
+
{ url = "https://files.pythonhosted.org/packages/02/78/6d646603a57aa8a2886df1b8881fe777ea60f28098790c1089230cd9c61d/mypy-1.17.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ff25d151cc057fdddb1cb1881ef36e9c41fa2a5e78d8dd71bee6e4dcd2bc05b", size = 11913524, upload-time = "2025-07-14T20:33:19.109Z" },
|
|
1282
|
+
{ url = "https://files.pythonhosted.org/packages/4f/19/dae6c55e87ee426fb76980f7e78484450cad1c01c55a1dc4e91c930bea01/mypy-1.17.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93468cf29aa9a132bceb103bd8475f78cacde2b1b9a94fd978d50d4bdf616c9a", size = 12650527, upload-time = "2025-07-14T20:32:44.095Z" },
|
|
1283
|
+
{ url = "https://files.pythonhosted.org/packages/86/e1/f916845a235235a6c1e4d4d065a3930113767001d491b8b2e1b61ca56647/mypy-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:98189382b310f16343151f65dd7e6867386d3e35f7878c45cfa11383d175d91f", size = 12897284, upload-time = "2025-07-14T20:33:38.168Z" },
|
|
1284
|
+
{ url = "https://files.pythonhosted.org/packages/ae/dc/414760708a4ea1b096bd214d26a24e30ac5e917ef293bc33cdb6fe22d2da/mypy-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:c004135a300ab06a045c1c0d8e3f10215e71d7b4f5bb9a42ab80236364429937", size = 9506493, upload-time = "2025-07-14T20:34:01.093Z" },
|
|
1285
|
+
{ url = "https://files.pythonhosted.org/packages/d4/24/82efb502b0b0f661c49aa21cfe3e1999ddf64bf5500fc03b5a1536a39d39/mypy-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d4fe5c72fd262d9c2c91c1117d16aac555e05f5beb2bae6a755274c6eec42be", size = 10914150, upload-time = "2025-07-14T20:31:51.985Z" },
|
|
1286
|
+
{ url = "https://files.pythonhosted.org/packages/03/96/8ef9a6ff8cedadff4400e2254689ca1dc4b420b92c55255b44573de10c54/mypy-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d96b196e5c16f41b4f7736840e8455958e832871990c7ba26bf58175e357ed61", size = 10039845, upload-time = "2025-07-14T20:32:30.527Z" },
|
|
1287
|
+
{ url = "https://files.pythonhosted.org/packages/df/32/7ce359a56be779d38021d07941cfbb099b41411d72d827230a36203dbb81/mypy-1.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:73a0ff2dd10337ceb521c080d4147755ee302dcde6e1a913babd59473904615f", size = 11837246, upload-time = "2025-07-14T20:32:01.28Z" },
|
|
1288
|
+
{ url = "https://files.pythonhosted.org/packages/82/16/b775047054de4d8dbd668df9137707e54b07fe18c7923839cd1e524bf756/mypy-1.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24cfcc1179c4447854e9e406d3af0f77736d631ec87d31c6281ecd5025df625d", size = 12571106, upload-time = "2025-07-14T20:34:26.942Z" },
|
|
1289
|
+
{ url = "https://files.pythonhosted.org/packages/a1/cf/fa33eaf29a606102c8d9ffa45a386a04c2203d9ad18bf4eef3e20c43ebc8/mypy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56f180ff6430e6373db7a1d569317675b0a451caf5fef6ce4ab365f5f2f6c3", size = 12759960, upload-time = "2025-07-14T20:33:42.882Z" },
|
|
1290
|
+
{ url = "https://files.pythonhosted.org/packages/94/75/3f5a29209f27e739ca57e6350bc6b783a38c7621bdf9cac3ab8a08665801/mypy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:eafaf8b9252734400f9b77df98b4eee3d2eecab16104680d51341c75702cad70", size = 9503888, upload-time = "2025-07-14T20:32:34.392Z" },
|
|
1291
|
+
{ url = "https://files.pythonhosted.org/packages/12/e9/e6824ed620bbf51d3bf4d6cbbe4953e83eaf31a448d1b3cfb3620ccb641c/mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb", size = 11086395, upload-time = "2025-07-14T20:34:11.452Z" },
|
|
1292
|
+
{ url = "https://files.pythonhosted.org/packages/ba/51/a4afd1ae279707953be175d303f04a5a7bd7e28dc62463ad29c1c857927e/mypy-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:51e455a54d199dd6e931cd7ea987d061c2afbaf0960f7f66deef47c90d1b304d", size = 10120052, upload-time = "2025-07-14T20:33:09.897Z" },
|
|
1293
|
+
{ url = "https://files.pythonhosted.org/packages/8a/71/19adfeac926ba8205f1d1466d0d360d07b46486bf64360c54cb5a2bd86a8/mypy-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3204d773bab5ff4ebbd1f8efa11b498027cd57017c003ae970f310e5b96be8d8", size = 11861806, upload-time = "2025-07-14T20:32:16.028Z" },
|
|
1294
|
+
{ url = "https://files.pythonhosted.org/packages/0b/64/d6120eca3835baf7179e6797a0b61d6c47e0bc2324b1f6819d8428d5b9ba/mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1051df7ec0886fa246a530ae917c473491e9a0ba6938cfd0ec2abc1076495c3e", size = 12744371, upload-time = "2025-07-14T20:33:33.503Z" },
|
|
1295
|
+
{ url = "https://files.pythonhosted.org/packages/1f/dc/56f53b5255a166f5bd0f137eed960e5065f2744509dfe69474ff0ba772a5/mypy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f773c6d14dcc108a5b141b4456b0871df638eb411a89cd1c0c001fc4a9d08fc8", size = 12914558, upload-time = "2025-07-14T20:33:56.961Z" },
|
|
1296
|
+
{ url = "https://files.pythonhosted.org/packages/69/ac/070bad311171badc9add2910e7f89271695a25c136de24bbafc7eded56d5/mypy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1619a485fd0e9c959b943c7b519ed26b712de3002d7de43154a489a2d0fd817d", size = 9585447, upload-time = "2025-07-14T20:32:20.594Z" },
|
|
1297
|
+
{ url = "https://files.pythonhosted.org/packages/be/7b/5f8ab461369b9e62157072156935cec9d272196556bdc7c2ff5f4c7c0f9b/mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06", size = 11070019, upload-time = "2025-07-14T20:32:07.99Z" },
|
|
1298
|
+
{ url = "https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a", size = 10114457, upload-time = "2025-07-14T20:33:47.285Z" },
|
|
1299
|
+
{ url = "https://files.pythonhosted.org/packages/89/0c/fb3f9c939ad9beed3e328008b3fb90b20fda2cddc0f7e4c20dbefefc3b33/mypy-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03ba330b76710f83d6ac500053f7727270b6b8553b0423348ffb3af6f2f7b889", size = 11857838, upload-time = "2025-07-14T20:33:14.462Z" },
|
|
1300
|
+
{ url = "https://files.pythonhosted.org/packages/4c/66/85607ab5137d65e4f54d9797b77d5a038ef34f714929cf8ad30b03f628df/mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037bc0f0b124ce46bfde955c647f3e395c6174476a968c0f22c95a8d2f589bba", size = 12731358, upload-time = "2025-07-14T20:32:25.579Z" },
|
|
1301
|
+
{ url = "https://files.pythonhosted.org/packages/73/d0/341dbbfb35ce53d01f8f2969facbb66486cee9804048bf6c01b048127501/mypy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c38876106cb6132259683632b287238858bd58de267d80defb6f418e9ee50658", size = 12917480, upload-time = "2025-07-14T20:34:21.868Z" },
|
|
1302
|
+
{ url = "https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c", size = 9589666, upload-time = "2025-07-14T20:34:16.841Z" },
|
|
1303
|
+
{ url = "https://files.pythonhosted.org/packages/e3/fc/ee058cc4316f219078464555873e99d170bde1d9569abd833300dbeb484a/mypy-1.17.0-py3-none-any.whl", hash = "sha256:15d9d0018237ab058e5de3d8fce61b6fa72cc59cc78fd91f1b474bce12abf496", size = 2283195, upload-time = "2025-07-14T20:31:54.753Z" },
|
|
1295
1304
|
]
|
|
1296
1305
|
|
|
1297
1306
|
[[package]]
|
|
@@ -1772,14 +1781,15 @@ wheels = [
|
|
|
1772
1781
|
|
|
1773
1782
|
[[package]]
|
|
1774
1783
|
name = "pytest-asyncio"
|
|
1775
|
-
version = "1.
|
|
1784
|
+
version = "1.1.0"
|
|
1776
1785
|
source = { registry = "https://pypi.org/simple" }
|
|
1777
1786
|
dependencies = [
|
|
1787
|
+
{ name = "backports-asyncio-runner", marker = "python_full_version < '3.11'" },
|
|
1778
1788
|
{ name = "pytest" },
|
|
1779
1789
|
]
|
|
1780
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1790
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4e/51/f8794af39eeb870e87a8c8068642fc07bce0c854d6865d7dd0f2a9d338c2/pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea", size = 46652, upload-time = "2025-07-16T04:29:26.393Z" }
|
|
1781
1791
|
wheels = [
|
|
1782
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1792
|
+
{ url = "https://files.pythonhosted.org/packages/c7/9d/bf86eddabf8c6c9cb1ea9a869d6873b46f105a5d292d3a6f7071f5b07935/pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf", size = 15157, upload-time = "2025-07-16T04:29:24.929Z" },
|
|
1783
1793
|
]
|
|
1784
1794
|
|
|
1785
1795
|
[[package]]
|