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.

Files changed (213) hide show
  1. {apify-2.7.0 → apify-2.7.1b2}/PKG-INFO +1 -1
  2. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/10_logging.mdx +30 -0
  3. apify-2.7.1b2/docs/03_concepts/code/10_redirect_log.py +15 -0
  4. apify-2.7.1b2/docs/03_concepts/code/10_redirect_log_existing_run.py +24 -0
  5. {apify-2.7.0 → apify-2.7.1b2}/pyproject.toml +3 -3
  6. {apify-2.7.0 → apify-2.7.1b2}/uv.lock +47 -37
  7. {apify-2.7.0 → apify-2.7.1b2}/website/package-lock.json +349 -348
  8. apify-2.7.1b2/website/static/img/guides/redirected_logs_example.webp +0 -0
  9. {apify-2.7.0 → apify-2.7.1b2}/.editorconfig +0 -0
  10. {apify-2.7.0 → apify-2.7.1b2}/.github/CODEOWNERS +0 -0
  11. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/build_and_deploy_docs.yaml +0 -0
  12. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/check_pr_title.yaml +0 -0
  13. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/pre_release.yaml +0 -0
  14. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/release.yaml +0 -0
  15. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/run_code_checks.yaml +0 -0
  16. {apify-2.7.0 → apify-2.7.1b2}/.github/workflows/update_new_issue.yaml +0 -0
  17. {apify-2.7.0 → apify-2.7.1b2}/.gitignore +0 -0
  18. {apify-2.7.0 → apify-2.7.1b2}/.markdownlint.yaml +0 -0
  19. {apify-2.7.0 → apify-2.7.1b2}/.pre-commit-config.yaml +0 -0
  20. {apify-2.7.0 → apify-2.7.1b2}/CHANGELOG.md +0 -0
  21. {apify-2.7.0 → apify-2.7.1b2}/CONTRIBUTING.md +0 -0
  22. {apify-2.7.0 → apify-2.7.1b2}/LICENSE +0 -0
  23. {apify-2.7.0 → apify-2.7.1b2}/Makefile +0 -0
  24. {apify-2.7.0 → apify-2.7.1b2}/README.md +0 -0
  25. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/01_introduction.mdx +0 -0
  26. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/02_running_actors_locally.mdx +0 -0
  27. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/03_actor_structure.mdx +0 -0
  28. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/01_introduction.py +0 -0
  29. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/__init__.py +0 -0
  30. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/__main__.py +0 -0
  31. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/main.py +0 -0
  32. {apify-2.7.0 → apify-2.7.1b2}/docs/01_overview/code/actor_structure/py.typed +0 -0
  33. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/01_beautifulsoup_httpx.mdx +0 -0
  34. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/02_crawlee.mdx +0 -0
  35. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/03_playwright.mdx +0 -0
  36. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/04_selenium.mdx +0 -0
  37. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/05_scrapy.mdx +0 -0
  38. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/01_beautifulsoup_httpx.py +0 -0
  39. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
  40. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/02_crawlee_playwright.py +0 -0
  41. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/03_playwright.py +0 -0
  42. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/04_selenium.py +0 -0
  43. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/__init__.py +0 -0
  44. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/__main__.py +0 -0
  45. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/items.py +0 -0
  46. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/main.py +0 -0
  47. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/py.typed +0 -0
  48. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/settings.py +0 -0
  49. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
  50. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
  51. {apify-2.7.0 → apify-2.7.1b2}/docs/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
  52. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/01_actor_lifecycle.mdx +0 -0
  53. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/02_actor_input.mdx +0 -0
  54. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/03_storages.mdx +0 -0
  55. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/04_actor_events.mdx +0 -0
  56. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/05_proxy_management.mdx +0 -0
  57. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/06_interacting_with_other_actors.mdx +0 -0
  58. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/07_webhooks.mdx +0 -0
  59. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/08_access_apify_api.mdx +0 -0
  60. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/09_running_webserver.mdx +0 -0
  61. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/11_configuration.mdx +0 -0
  62. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/12_pay_per_event.mdx +0 -0
  63. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_context_manager.py +0 -0
  64. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_init_exit.py +0 -0
  65. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_reboot.py +0 -0
  66. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/01_status_message.py +0 -0
  67. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/02_input.py +0 -0
  68. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_dataset_exports.py +0 -0
  69. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_dataset_read_write.py +0 -0
  70. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_deleting_storages.py +0 -0
  71. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_iterating.py +0 -0
  72. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_public_url.py +0 -0
  73. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_kvs_read_write.py +0 -0
  74. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_opening_storages.py +0 -0
  75. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/03_rq.py +0 -0
  76. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/04_actor_events.py +0 -0
  77. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_apify_proxy.py +0 -0
  78. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_apify_proxy_config.py +0 -0
  79. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_custom_proxy.py +0 -0
  80. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_custom_proxy_function.py +0 -0
  81. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_actor_input.py +0 -0
  82. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_httpx.py +0 -0
  83. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/05_proxy_rotation.py +0 -0
  84. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_call.py +0 -0
  85. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_call_task.py +0 -0
  86. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_metamorph.py +0 -0
  87. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/06_interacting_start.py +0 -0
  88. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/07_webhook.py +0 -0
  89. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/07_webhook_preventing.py +0 -0
  90. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/08_actor_client.py +0 -0
  91. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/08_actor_new_client.py +0 -0
  92. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/09_webserver.py +0 -0
  93. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/10_log_config.py +0 -0
  94. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/10_logger_usage.py +0 -0
  95. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/11_config.py +0 -0
  96. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/actor_charge.py +0 -0
  97. {apify-2.7.0 → apify-2.7.1b2}/docs/03_concepts/code/conditional_actor_charge.py +0 -0
  98. {apify-2.7.0 → apify-2.7.1b2}/docs/04_upgrading/upgrading_to_v2.md +0 -0
  99. {apify-2.7.0 → apify-2.7.1b2}/docs/pyproject.toml +0 -0
  100. {apify-2.7.0 → apify-2.7.1b2}/renovate.json +0 -0
  101. {apify-2.7.0 → apify-2.7.1b2}/src/apify/__init__.py +0 -0
  102. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_actor.py +0 -0
  103. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_charging.py +0 -0
  104. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_configuration.py +0 -0
  105. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_consts.py +0 -0
  106. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_crypto.py +0 -0
  107. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_models.py +0 -0
  108. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_platform_event_manager.py +0 -0
  109. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_proxy_configuration.py +0 -0
  110. {apify-2.7.0 → apify-2.7.1b2}/src/apify/_utils.py +0 -0
  111. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/__init__.py +0 -0
  112. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_apify_storage_client.py +0 -0
  113. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_dataset_client.py +0 -0
  114. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_dataset_collection_client.py +0 -0
  115. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_key_value_store_client.py +0 -0
  116. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_key_value_store_collection_client.py +0 -0
  117. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_request_queue_client.py +0 -0
  118. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/_request_queue_collection_client.py +0 -0
  119. {apify-2.7.0 → apify-2.7.1b2}/src/apify/apify_storage_client/py.typed +0 -0
  120. {apify-2.7.0 → apify-2.7.1b2}/src/apify/log.py +0 -0
  121. {apify-2.7.0 → apify-2.7.1b2}/src/apify/py.typed +0 -0
  122. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/__init__.py +0 -0
  123. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_actor_runner.py +0 -0
  124. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_async_thread.py +0 -0
  125. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/_logging_config.py +0 -0
  126. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/extensions/__init__.py +0 -0
  127. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/extensions/_httpcache.py +0 -0
  128. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/__init__.py +0 -0
  129. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  130. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/middlewares/py.typed +0 -0
  131. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/__init__.py +0 -0
  132. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  133. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/pipelines/py.typed +0 -0
  134. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/py.typed +0 -0
  135. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/requests.py +0 -0
  136. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/scheduler.py +0 -0
  137. {apify-2.7.0 → apify-2.7.1b2}/src/apify/scrapy/utils.py +0 -0
  138. {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/__init__.py +0 -0
  139. {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/_request_list.py +0 -0
  140. {apify-2.7.0 → apify-2.7.1b2}/src/apify/storages/py.typed +0 -0
  141. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/README.md +0 -0
  142. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/__init__.py +0 -0
  143. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/_utils.py +0 -0
  144. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/Dockerfile +0 -0
  145. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/requirements.txt +0 -0
  146. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/__init__.py +0 -0
  147. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/__main__.py +0 -0
  148. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/actor_source_base/src/main.py +0 -0
  149. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/conftest.py +0 -0
  150. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_api_helpers.py +0 -0
  151. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_call_timeouts.py +0 -0
  152. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_charge.py +0 -0
  153. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
  154. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_dataset.py +0 -0
  155. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_events.py +0 -0
  156. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_key_value_store.py +0 -0
  157. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_lifecycle.py +0 -0
  158. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_log.py +0 -0
  159. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_request_queue.py +0 -0
  160. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_actor_scrapy.py +0 -0
  161. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_fixtures.py +0 -0
  162. {apify-2.7.0 → apify-2.7.1b2}/tests/integration/test_request_queue.py +0 -0
  163. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/__init__.py +0 -0
  164. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/__init__.py +0 -0
  165. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
  166. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_dataset.py +0 -0
  167. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_env_helpers.py +0 -0
  168. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_helpers.py +0 -0
  169. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_key_value_store.py +0 -0
  170. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_lifecycle.py +0 -0
  171. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_log.py +0 -0
  172. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
  173. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_actor_request_queue.py +0 -0
  174. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_configuration.py +0 -0
  175. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/actor/test_request_list.py +0 -0
  176. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/conftest.py +0 -0
  177. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/__init__.py +0 -0
  178. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/extensions/__init__.py +0 -0
  179. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
  180. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/middlewares/__init__.py +0 -0
  181. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
  182. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/pipelines/__init__.py +0 -0
  183. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
  184. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/__init__.py +0 -0
  185. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
  186. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
  187. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/__init__.py +0 -0
  188. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
  189. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
  190. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_crypto.py +0 -0
  191. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_platform_event_manager.py +0 -0
  192. {apify-2.7.0 → apify-2.7.1b2}/tests/unit/test_proxy_configuration.py +0 -0
  193. {apify-2.7.0 → apify-2.7.1b2}/website/.eslintrc.json +0 -0
  194. {apify-2.7.0 → apify-2.7.1b2}/website/babel.config.js +0 -0
  195. {apify-2.7.0 → apify-2.7.1b2}/website/build_api_reference.sh +0 -0
  196. {apify-2.7.0 → apify-2.7.1b2}/website/docusaurus.config.js +0 -0
  197. {apify-2.7.0 → apify-2.7.1b2}/website/generate_module_shortcuts.py +0 -0
  198. {apify-2.7.0 → apify-2.7.1b2}/website/package.json +0 -0
  199. {apify-2.7.0 → apify-2.7.1b2}/website/sidebars.js +0 -0
  200. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/ApiLink.jsx +0 -0
  201. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Gradients.jsx +0 -0
  202. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Highlights.jsx +0 -0
  203. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/Highlights.module.css +0 -0
  204. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/RunnableCodeBlock.jsx +0 -0
  205. {apify-2.7.0 → apify-2.7.1b2}/website/src/components/RunnableCodeBlock.module.css +0 -0
  206. {apify-2.7.0 → apify-2.7.1b2}/website/src/css/custom.css +0 -0
  207. {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/home_page_example.py +0 -0
  208. {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/index.js +0 -0
  209. {apify-2.7.0 → apify-2.7.1b2}/website/src/pages/index.module.css +0 -0
  210. {apify-2.7.0 → apify-2.7.1b2}/website/static/.nojekyll +0 -0
  211. {apify-2.7.0 → apify-2.7.1b2}/website/static/img/docs-og.png +0 -0
  212. {apify-2.7.0 → apify-2.7.1b2}/website/tools/docs-prettier.config.js +0 -0
  213. {apify-2.7.0 → apify-2.7.1b2}/website/tools/utils/externalLink.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apify
3
- Version: 2.7.0
3
+ Version: 2.7.1b2
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
@@ -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
+ ![Console with redirected logs](/img/guides/redirected_logs_example.webp 'Example of console with redirected logs from recursively started actor.')
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.0"
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.16.0",
68
+ "mypy~=1.17.0",
69
69
  "pre-commit~=4.2.0",
70
70
  "pydoc-markdown~=4.8.0",
71
- "pytest-asyncio~=1.0.0",
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.0"
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.16.0" },
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.0.0" },
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.9"
322
+ version = "2025.7.14"
314
323
  source = { registry = "https://pypi.org/simple" }
315
- sdist = { url = "https://files.pythonhosted.org/packages/de/8a/c729b6b60c66a38f590c4e774decc4b2ec7b0576be8f1aa984a53ffa812a/certifi-2025.7.9.tar.gz", hash = "sha256:c1d2ec05395148ee10cf672ffc28cd37ea0ab0d99f9cc74c43e588cbd111b079", size = 160386, upload-time = "2025-07-09T02:13:58.874Z" }
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/66/f3/80a3f974c8b535d394ff960a11ac20368e06b736da395b551a49ce950cce/certifi-2025.7.9-py3-none-any.whl", hash = "sha256:d842783a14f8fdd646895ac26f719a061408834473cfc10203f6a575beb15d39", size = 159230, upload-time = "2025-07-09T02:13:57.007Z" },
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.16.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/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747, upload-time = "2025-06-16T16:51:35.145Z" }
1269
- wheels = [
1270
- { url = "https://files.pythonhosted.org/packages/8e/12/2bf23a80fcef5edb75de9a1e295d778e0f46ea89eb8b115818b663eff42b/mypy-1.16.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b4f0fed1022a63c6fec38f28b7fc77fca47fd490445c69d0a66266c59dd0b88a", size = 10958644, upload-time = "2025-06-16T16:51:11.649Z" },
1271
- { url = "https://files.pythonhosted.org/packages/08/50/bfe47b3b278eacf348291742fd5e6613bbc4b3434b72ce9361896417cfe5/mypy-1.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86042bbf9f5a05ea000d3203cf87aa9d0ccf9a01f73f71c58979eb9249f46d72", size = 10087033, upload-time = "2025-06-16T16:35:30.089Z" },
1272
- { url = "https://files.pythonhosted.org/packages/21/de/40307c12fe25675a0776aaa2cdd2879cf30d99eec91b898de00228dc3ab5/mypy-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea7469ee5902c95542bea7ee545f7006508c65c8c54b06dc2c92676ce526f3ea", size = 11875645, upload-time = "2025-06-16T16:35:48.49Z" },
1273
- { url = "https://files.pythonhosted.org/packages/a6/d8/85bdb59e4a98b7a31495bd8f1a4445d8ffc86cde4ab1f8c11d247c11aedc/mypy-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:352025753ef6a83cb9e7f2427319bb7875d1fdda8439d1e23de12ab164179574", size = 12616986, upload-time = "2025-06-16T16:48:39.526Z" },
1274
- { url = "https://files.pythonhosted.org/packages/0e/d0/bb25731158fa8f8ee9e068d3e94fcceb4971fedf1424248496292512afe9/mypy-1.16.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ff9fa5b16e4c1364eb89a4d16bcda9987f05d39604e1e6c35378a2987c1aac2d", size = 12878632, upload-time = "2025-06-16T16:36:08.195Z" },
1275
- { url = "https://files.pythonhosted.org/packages/2d/11/822a9beb7a2b825c0cb06132ca0a5183f8327a5e23ef89717c9474ba0bc6/mypy-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:1256688e284632382f8f3b9e2123df7d279f603c561f099758e66dd6ed4e8bd6", size = 9484391, upload-time = "2025-06-16T16:37:56.151Z" },
1276
- { url = "https://files.pythonhosted.org/packages/9a/61/ec1245aa1c325cb7a6c0f8570a2eee3bfc40fa90d19b1267f8e50b5c8645/mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc", size = 10890557, upload-time = "2025-06-16T16:37:21.421Z" },
1277
- { url = "https://files.pythonhosted.org/packages/6b/bb/6eccc0ba0aa0c7a87df24e73f0ad34170514abd8162eb0c75fd7128171fb/mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782", size = 10012921, upload-time = "2025-06-16T16:51:28.659Z" },
1278
- { url = "https://files.pythonhosted.org/packages/5f/80/b337a12e2006715f99f529e732c5f6a8c143bb58c92bb142d5ab380963a5/mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507", size = 11802887, upload-time = "2025-06-16T16:50:53.627Z" },
1279
- { url = "https://files.pythonhosted.org/packages/d9/59/f7af072d09793d581a745a25737c7c0a945760036b16aeb620f658a017af/mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca", size = 12531658, upload-time = "2025-06-16T16:33:55.002Z" },
1280
- { url = "https://files.pythonhosted.org/packages/82/c4/607672f2d6c0254b94a646cfc45ad589dd71b04aa1f3d642b840f7cce06c/mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4", size = 12732486, upload-time = "2025-06-16T16:37:03.301Z" },
1281
- { url = "https://files.pythonhosted.org/packages/b6/5e/136555ec1d80df877a707cebf9081bd3a9f397dedc1ab9750518d87489ec/mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6", size = 9479482, upload-time = "2025-06-16T16:47:37.48Z" },
1282
- { url = "https://files.pythonhosted.org/packages/b4/d6/39482e5fcc724c15bf6280ff5806548c7185e0c090712a3736ed4d07e8b7/mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d", size = 11066493, upload-time = "2025-06-16T16:47:01.683Z" },
1283
- { url = "https://files.pythonhosted.org/packages/e6/e5/26c347890efc6b757f4d5bb83f4a0cf5958b8cf49c938ac99b8b72b420a6/mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9", size = 10081687, upload-time = "2025-06-16T16:48:19.367Z" },
1284
- { url = "https://files.pythonhosted.org/packages/44/c7/b5cb264c97b86914487d6a24bd8688c0172e37ec0f43e93b9691cae9468b/mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79", size = 11839723, upload-time = "2025-06-16T16:49:20.912Z" },
1285
- { url = "https://files.pythonhosted.org/packages/15/f8/491997a9b8a554204f834ed4816bda813aefda31cf873bb099deee3c9a99/mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15", size = 12722980, upload-time = "2025-06-16T16:37:40.929Z" },
1286
- { url = "https://files.pythonhosted.org/packages/df/f0/2bd41e174b5fd93bc9de9a28e4fb673113633b8a7f3a607fa4a73595e468/mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd", size = 12903328, upload-time = "2025-06-16T16:34:35.099Z" },
1287
- { url = "https://files.pythonhosted.org/packages/61/81/5572108a7bec2c46b8aff7e9b524f371fe6ab5efb534d38d6b37b5490da8/mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b", size = 9562321, upload-time = "2025-06-16T16:48:58.823Z" },
1288
- { url = "https://files.pythonhosted.org/packages/28/e3/96964af4a75a949e67df4b95318fe2b7427ac8189bbc3ef28f92a1c5bc56/mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438", size = 11063480, upload-time = "2025-06-16T16:47:56.205Z" },
1289
- { url = "https://files.pythonhosted.org/packages/f5/4d/cd1a42b8e5be278fab7010fb289d9307a63e07153f0ae1510a3d7b703193/mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536", size = 10090538, upload-time = "2025-06-16T16:46:43.92Z" },
1290
- { url = "https://files.pythonhosted.org/packages/c9/4f/c3c6b4b66374b5f68bab07c8cabd63a049ff69796b844bc759a0ca99bb2a/mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f", size = 11836839, upload-time = "2025-06-16T16:36:28.039Z" },
1291
- { url = "https://files.pythonhosted.org/packages/b4/7e/81ca3b074021ad9775e5cb97ebe0089c0f13684b066a750b7dc208438403/mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359", size = 12715634, upload-time = "2025-06-16T16:50:34.441Z" },
1292
- { url = "https://files.pythonhosted.org/packages/e9/95/bdd40c8be346fa4c70edb4081d727a54d0a05382d84966869738cfa8a497/mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be", size = 12895584, upload-time = "2025-06-16T16:34:54.857Z" },
1293
- { url = "https://files.pythonhosted.org/packages/5a/fd/d486a0827a1c597b3b48b1bdef47228a6e9ee8102ab8c28f944cb83b65dc/mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee", size = 9573886, upload-time = "2025-06-16T16:36:43.589Z" },
1294
- { url = "https://files.pythonhosted.org/packages/cf/d3/53e684e78e07c1a2bf7105715e5edd09ce951fc3f47cf9ed095ec1b7a037/mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37", size = 2265923, upload-time = "2025-06-16T16:48:02.366Z" },
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.0.0"
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/d0/d4/14f53324cb1a6381bef29d698987625d80052bb33932d8e7cbf9b337b17c/pytest_asyncio-1.0.0.tar.gz", hash = "sha256:d15463d13f4456e1ead2594520216b225a16f781e144f8fdf6c5bb4667c48b3f", size = 46960, upload-time = "2025-05-26T04:54:40.484Z" }
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/30/05/ce271016e351fddc8399e546f6e23761967ee09c8c568bbfbecb0c150171/pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3", size = 15976, upload-time = "2025-05-26T04:54:39.035Z" },
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]]