apify 2.7.1b12__tar.gz → 2.7.1b14__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 (232) hide show
  1. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/update_new_issue.yaml +1 -1
  2. {apify-2.7.1b12 → apify-2.7.1b14}/CHANGELOG.md +24 -0
  3. {apify-2.7.1b12 → apify-2.7.1b14}/PKG-INFO +2 -2
  4. {apify-2.7.1b12 → apify-2.7.1b14}/pyproject.toml +4 -6
  5. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_helpers.py +0 -5
  6. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_log.py +4 -3
  7. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/conftest.py +25 -1
  8. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/events/test_apify_event_manager.py +0 -1
  9. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/test_proxy_configuration.py +0 -7
  10. {apify-2.7.1b12 → apify-2.7.1b14}/uv.lock +132 -117
  11. {apify-2.7.1b12 → apify-2.7.1b14}/website/package-lock.json +3 -3
  12. {apify-2.7.1b12 → apify-2.7.1b14}/.editorconfig +0 -0
  13. {apify-2.7.1b12 → apify-2.7.1b14}/.github/CODEOWNERS +0 -0
  14. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/build_and_deploy_docs.yaml +0 -0
  15. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/check_pr_title.yaml +0 -0
  16. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/pre_release.yaml +0 -0
  17. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/release.yaml +0 -0
  18. {apify-2.7.1b12 → apify-2.7.1b14}/.github/workflows/run_code_checks.yaml +0 -0
  19. {apify-2.7.1b12 → apify-2.7.1b14}/.gitignore +0 -0
  20. {apify-2.7.1b12 → apify-2.7.1b14}/.markdownlint.yaml +0 -0
  21. {apify-2.7.1b12 → apify-2.7.1b14}/.pre-commit-config.yaml +0 -0
  22. {apify-2.7.1b12 → apify-2.7.1b14}/CONTRIBUTING.md +0 -0
  23. {apify-2.7.1b12 → apify-2.7.1b14}/LICENSE +0 -0
  24. {apify-2.7.1b12 → apify-2.7.1b14}/Makefile +0 -0
  25. {apify-2.7.1b12 → apify-2.7.1b14}/README.md +0 -0
  26. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/01_introduction.mdx +0 -0
  27. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/02_running_actors_locally.mdx +0 -0
  28. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/03_actor_structure.mdx +0 -0
  29. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/code/01_introduction.py +0 -0
  30. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/code/actor_structure/__init__.py +0 -0
  31. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/code/actor_structure/__main__.py +0 -0
  32. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/code/actor_structure/main.py +0 -0
  33. {apify-2.7.1b12 → apify-2.7.1b14}/docs/01_overview/code/actor_structure/py.typed +0 -0
  34. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/01_actor_lifecycle.mdx +0 -0
  35. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/02_actor_input.mdx +0 -0
  36. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/03_storages.mdx +0 -0
  37. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/04_actor_events.mdx +0 -0
  38. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/05_proxy_management.mdx +0 -0
  39. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/06_interacting_with_other_actors.mdx +0 -0
  40. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/07_webhooks.mdx +0 -0
  41. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/08_access_apify_api.mdx +0 -0
  42. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/09_running_webserver.mdx +0 -0
  43. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/10_logging.mdx +0 -0
  44. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/11_configuration.mdx +0 -0
  45. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/12_pay_per_event.mdx +0 -0
  46. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/01_context_manager.py +0 -0
  47. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/01_init_exit.py +0 -0
  48. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/01_reboot.py +0 -0
  49. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/01_status_message.py +0 -0
  50. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/02_input.py +0 -0
  51. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_dataset_exports.py +0 -0
  52. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_dataset_read_write.py +0 -0
  53. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_deleting_storages.py +0 -0
  54. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_kvs_iterating.py +0 -0
  55. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_kvs_public_url.py +0 -0
  56. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_kvs_read_write.py +0 -0
  57. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_opening_storages.py +0 -0
  58. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/03_rq.py +0 -0
  59. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/04_actor_events.py +0 -0
  60. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_apify_proxy.py +0 -0
  61. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_apify_proxy_config.py +0 -0
  62. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_custom_proxy.py +0 -0
  63. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_custom_proxy_function.py +0 -0
  64. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_proxy_actor_input.py +0 -0
  65. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_proxy_httpx.py +0 -0
  66. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/05_proxy_rotation.py +0 -0
  67. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/06_interacting_call.py +0 -0
  68. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/06_interacting_call_task.py +0 -0
  69. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/06_interacting_metamorph.py +0 -0
  70. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/06_interacting_start.py +0 -0
  71. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/07_webhook.py +0 -0
  72. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/07_webhook_preventing.py +0 -0
  73. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/08_actor_client.py +0 -0
  74. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/08_actor_new_client.py +0 -0
  75. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/09_webserver.py +0 -0
  76. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/10_log_config.py +0 -0
  77. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/10_logger_usage.py +0 -0
  78. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/10_redirect_log.py +0 -0
  79. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/10_redirect_log_existing_run.py +0 -0
  80. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/11_config.py +0 -0
  81. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/actor_charge.py +0 -0
  82. {apify-2.7.1b12 → apify-2.7.1b14}/docs/02_concepts/code/conditional_actor_charge.py +0 -0
  83. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/01_beautifulsoup_httpx.mdx +0 -0
  84. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/02_parsel_impit.mdx +0 -0
  85. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/03_playwright.mdx +0 -0
  86. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/04_selenium.mdx +0 -0
  87. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/05_crawlee.mdx +0 -0
  88. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/06_scrapy.mdx +0 -0
  89. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/01_beautifulsoup_httpx.py +0 -0
  90. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/02_parsel_impit.py +0 -0
  91. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/03_playwright.py +0 -0
  92. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/04_selenium.py +0 -0
  93. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/05_crawlee_beautifulsoup.py +0 -0
  94. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/05_crawlee_parsel.py +0 -0
  95. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/05_crawlee_playwright.py +0 -0
  96. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/__init__.py +0 -0
  97. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/__main__.py +0 -0
  98. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/items.py +0 -0
  99. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/main.py +0 -0
  100. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/py.typed +0 -0
  101. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/settings.py +0 -0
  102. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
  103. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/spiders/py.typed +0 -0
  104. {apify-2.7.1b12 → apify-2.7.1b14}/docs/03_guides/code/scrapy_project/src/spiders/title.py +0 -0
  105. {apify-2.7.1b12 → apify-2.7.1b14}/docs/04_upgrading/upgrading_to_v2.md +0 -0
  106. {apify-2.7.1b12 → apify-2.7.1b14}/docs/04_upgrading/upgrading_to_v3.md +0 -0
  107. {apify-2.7.1b12 → apify-2.7.1b14}/docs/pyproject.toml +0 -0
  108. {apify-2.7.1b12 → apify-2.7.1b14}/renovate.json +0 -0
  109. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/__init__.py +0 -0
  110. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_actor.py +0 -0
  111. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_charging.py +0 -0
  112. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_configuration.py +0 -0
  113. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_consts.py +0 -0
  114. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_crypto.py +0 -0
  115. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_models.py +0 -0
  116. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_proxy_configuration.py +0 -0
  117. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/_utils.py +0 -0
  118. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/events/__init__.py +0 -0
  119. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/events/_apify_event_manager.py +0 -0
  120. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/events/_types.py +0 -0
  121. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/events/py.typed +0 -0
  122. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/log.py +0 -0
  123. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/py.typed +0 -0
  124. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/request_loaders/__init__.py +0 -0
  125. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/request_loaders/_apify_request_list.py +0 -0
  126. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/request_loaders/py.typed +0 -0
  127. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/__init__.py +0 -0
  128. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/_actor_runner.py +0 -0
  129. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/_async_thread.py +0 -0
  130. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/_logging_config.py +0 -0
  131. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/extensions/__init__.py +0 -0
  132. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/extensions/_httpcache.py +0 -0
  133. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/middlewares/__init__.py +0 -0
  134. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  135. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/middlewares/py.typed +0 -0
  136. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/pipelines/__init__.py +0 -0
  137. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  138. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/pipelines/py.typed +0 -0
  139. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/py.typed +0 -0
  140. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/requests.py +0 -0
  141. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/scheduler.py +0 -0
  142. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/scrapy/utils.py +0 -0
  143. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/__init__.py +0 -0
  144. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/__init__.py +0 -0
  145. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/_dataset_client.py +0 -0
  146. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/_key_value_store_client.py +0 -0
  147. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/_models.py +0 -0
  148. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/_request_queue_client.py +0 -0
  149. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/_storage_client.py +0 -0
  150. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_apify/py.typed +0 -0
  151. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_file_system/__init__.py +0 -0
  152. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_file_system/_key_value_store_client.py +0 -0
  153. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/_file_system/_storage_client.py +0 -0
  154. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storage_clients/py.typed +0 -0
  155. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storages/__init__.py +0 -0
  156. {apify-2.7.1b12 → apify-2.7.1b14}/src/apify/storages/py.typed +0 -0
  157. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/README.md +0 -0
  158. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/__init__.py +0 -0
  159. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/_utils.py +0 -0
  160. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/Dockerfile +0 -0
  161. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/requirements.txt +0 -0
  162. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/server.py +0 -0
  163. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/src/__init__.py +0 -0
  164. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/src/__main__.py +0 -0
  165. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/actor_source_base/src/main.py +0 -0
  166. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/conftest.py +0 -0
  167. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_api_helpers.py +0 -0
  168. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_call_timeouts.py +0 -0
  169. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_charge.py +0 -0
  170. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
  171. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_dataset.py +0 -0
  172. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_events.py +0 -0
  173. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_key_value_store.py +0 -0
  174. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_lifecycle.py +0 -0
  175. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_log.py +0 -0
  176. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_request_queue.py +0 -0
  177. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_actor_scrapy.py +0 -0
  178. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_crawlers_with_storages.py +0 -0
  179. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_fixtures.py +0 -0
  180. {apify-2.7.1b12 → apify-2.7.1b14}/tests/integration/test_request_queue.py +0 -0
  181. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/__init__.py +0 -0
  182. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/__init__.py +0 -0
  183. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
  184. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_dataset.py +0 -0
  185. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_env_helpers.py +0 -0
  186. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_key_value_store.py +0 -0
  187. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_lifecycle.py +0 -0
  188. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
  189. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_actor_request_queue.py +0 -0
  190. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_configuration.py +0 -0
  191. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/actor/test_request_list.py +0 -0
  192. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/events/__init__.py +0 -0
  193. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/__init__.py +0 -0
  194. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/extensions/__init__.py +0 -0
  195. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
  196. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/middlewares/__init__.py +0 -0
  197. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
  198. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/pipelines/__init__.py +0 -0
  199. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
  200. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/requests/__init__.py +0 -0
  201. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
  202. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
  203. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/utils/__init__.py +0 -0
  204. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
  205. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
  206. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/storage_clients/__init__.py +0 -0
  207. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/storage_clients/test_apify_request_queue_client.py +0 -0
  208. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/storage_clients/test_file_system.py +0 -0
  209. {apify-2.7.1b12 → apify-2.7.1b14}/tests/unit/test_crypto.py +0 -0
  210. {apify-2.7.1b12 → apify-2.7.1b14}/website/.eslintrc.json +0 -0
  211. {apify-2.7.1b12 → apify-2.7.1b14}/website/babel.config.js +0 -0
  212. {apify-2.7.1b12 → apify-2.7.1b14}/website/build_api_reference.sh +0 -0
  213. {apify-2.7.1b12 → apify-2.7.1b14}/website/docusaurus.config.js +0 -0
  214. {apify-2.7.1b12 → apify-2.7.1b14}/website/generate_module_shortcuts.py +0 -0
  215. {apify-2.7.1b12 → apify-2.7.1b14}/website/package.json +0 -0
  216. {apify-2.7.1b12 → apify-2.7.1b14}/website/sidebars.js +0 -0
  217. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/ApiLink.jsx +0 -0
  218. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/Gradients.jsx +0 -0
  219. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/Highlights.jsx +0 -0
  220. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/Highlights.module.css +0 -0
  221. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/RunnableCodeBlock.jsx +0 -0
  222. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/components/RunnableCodeBlock.module.css +0 -0
  223. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/css/custom.css +0 -0
  224. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/pages/home_page_example.py +0 -0
  225. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/pages/index.js +0 -0
  226. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/pages/index.module.css +0 -0
  227. {apify-2.7.1b12 → apify-2.7.1b14}/website/src/theme/DocItem/Content/index.js +0 -0
  228. {apify-2.7.1b12 → apify-2.7.1b14}/website/static/.nojekyll +0 -0
  229. {apify-2.7.1b12 → apify-2.7.1b14}/website/static/img/docs-og.png +0 -0
  230. {apify-2.7.1b12 → apify-2.7.1b14}/website/static/img/guides/redirected_logs_example.webp +0 -0
  231. {apify-2.7.1b12 → apify-2.7.1b14}/website/tools/docs-prettier.config.js +0 -0
  232. {apify-2.7.1b12 → apify-2.7.1b14}/website/tools/utils/externalLink.js +0 -0
@@ -14,7 +14,7 @@ jobs:
14
14
 
15
15
  steps:
16
16
  # Add the "t-tooling" label to all new issues
17
- - uses: actions/github-script@v7
17
+ - uses: actions/github-script@v8
18
18
  with:
19
19
  script: |
20
20
  github.rest.issues.addLabels({
@@ -77,6 +77,30 @@ All notable changes to this project will be documented in this file.
77
77
  - 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)
78
78
 
79
79
 
80
+ ## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
81
+
82
+ ### 🚀 Features
83
+
84
+ - **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)
85
+
86
+ ### 🐛 Bug Fixes
87
+
88
+ - 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)
89
+ - 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)
90
+
91
+
92
+ ## [2.7.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.0) (2025-07-14)
93
+
94
+ ### 🚀 Features
95
+
96
+ - **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)
97
+
98
+ ### 🐛 Bug Fixes
99
+
100
+ - 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)
101
+ - 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)
102
+
103
+
80
104
 
81
105
  ## [2.7.3](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3) (2025-08-11)
82
106
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apify
3
- Version: 2.7.1b12
3
+ Version: 2.7.1b14
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
@@ -231,7 +231,7 @@ Requires-Dist: cachetools>=5.5.0
231
231
  Requires-Dist: crawlee==1.0.0rc1
232
232
  Requires-Dist: cryptography>=42.0.0
233
233
  Requires-Dist: impit>=0.5.3
234
- Requires-Dist: lazy-object-proxy<1.11.0
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "apify"
7
- version = "2.7.1b12"
7
+ version = "2.7.1b14"
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" }
@@ -39,10 +39,8 @@ dependencies = [
39
39
  "crawlee==1.0.0rc1",
40
40
  "cachetools>=5.5.0",
41
41
  "cryptography>=42.0.0",
42
- # TODO: ensure compatibility with the latest version of lazy-object-proxy
43
- # https://github.com/apify/apify-sdk-python/issues/460
44
42
  "impit>=0.5.3",
45
- "lazy-object-proxy<1.11.0",
43
+ "lazy-object-proxy>=1.11.0",
46
44
  "more_itertools>=10.2.0",
47
45
  "typing-extensions>=4.1.0",
48
46
  "websockets>=14.0",
@@ -67,12 +65,12 @@ dev = [
67
65
  "build~=1.3.0",
68
66
  "crawlee[parsel]",
69
67
  "dycw-pytest-only~=2.1.0",
70
- "griffe~=1.13.0",
68
+ "griffe",
71
69
  "mypy~=1.17.0",
72
70
  "pre-commit~=4.3.0",
73
71
  "pydoc-markdown~=4.8.0",
74
72
  "pytest-asyncio~=1.1.0",
75
- "pytest-cov~=6.2.0",
73
+ "pytest-cov~=7.0.0",
76
74
  "pytest-httpserver~=1.1.0",
77
75
  "pytest-timeout~=2.4.0",
78
76
  "pytest-xdist~=3.8.0",
@@ -122,7 +122,6 @@ async def test_abort_actor_run(apify_client_async_patcher: ApifyClientAsyncPatch
122
122
  # NOTE: The following methods are properly tested using integrations tests.
123
123
 
124
124
 
125
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
126
125
  async def test_metamorph_fails_locally(caplog: pytest.LogCaptureFixture) -> None:
127
126
  caplog.set_level('WARNING')
128
127
  async with Actor:
@@ -133,7 +132,6 @@ async def test_metamorph_fails_locally(caplog: pytest.LogCaptureFixture) -> None
133
132
  assert 'Actor.metamorph() is only supported when running on the Apify platform.' in caplog.records[0].message
134
133
 
135
134
 
136
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
137
135
  async def test_reboot_fails_locally(caplog: pytest.LogCaptureFixture) -> None:
138
136
  caplog.set_level('WARNING')
139
137
  async with Actor:
@@ -144,7 +142,6 @@ async def test_reboot_fails_locally(caplog: pytest.LogCaptureFixture) -> None:
144
142
  assert 'Actor.reboot() is only supported when running on the Apify platform.' in caplog.records[0].message
145
143
 
146
144
 
147
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
148
145
  async def test_add_webhook_fails_locally(caplog: pytest.LogCaptureFixture) -> None:
149
146
  caplog.set_level('WARNING')
150
147
  async with Actor:
@@ -157,7 +154,6 @@ async def test_add_webhook_fails_locally(caplog: pytest.LogCaptureFixture) -> No
157
154
  assert 'Actor.add_webhook() is only supported when running on the Apify platform.' in caplog.records[0].message
158
155
 
159
156
 
160
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
161
157
  async def test_set_status_message_locally(caplog: pytest.LogCaptureFixture) -> None:
162
158
  caplog.set_level('INFO')
163
159
  async with Actor:
@@ -169,7 +165,6 @@ async def test_set_status_message_locally(caplog: pytest.LogCaptureFixture) -> N
169
165
  assert '[Status message]: test-status-message' in matching_records[0].message
170
166
 
171
167
 
172
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
173
168
  async def test_set_terminal_status_message_locally(caplog: pytest.LogCaptureFixture) -> None:
174
169
  caplog.set_level('INFO')
175
170
  async with Actor:
@@ -2,14 +2,15 @@ from __future__ import annotations
2
2
 
3
3
  import contextlib
4
4
  import logging
5
-
6
- import pytest
5
+ from typing import TYPE_CHECKING
7
6
 
8
7
  from apify import Actor
9
8
  from apify.log import logger
10
9
 
10
+ if TYPE_CHECKING:
11
+ import pytest
12
+
11
13
 
12
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
13
14
  async def test_actor_logs_messages_correctly(caplog: pytest.LogCaptureFixture) -> None:
14
15
  caplog.set_level(logging.DEBUG, logger='apify')
15
16
 
@@ -16,12 +16,33 @@ from apify_shared.consts import ApifyEnvVars
16
16
  from crawlee import service_locator
17
17
 
18
18
  import apify._actor
19
+ import apify.log
19
20
 
20
21
  if TYPE_CHECKING:
21
22
  from collections.abc import Callable, Iterator
23
+ from logging import Logger
22
24
  from pathlib import Path
23
25
 
24
26
 
27
+ @pytest.fixture
28
+ def _patch_propagate_logger(monkeypatch: pytest.MonkeyPatch) -> Iterator[None]:
29
+ """Patch enabling `propagate` for the crawlee logger.
30
+
31
+ This is necessary for tests requiring log interception using `caplog`.
32
+ """
33
+
34
+ original_configure_logger = apify.log.configure_logger
35
+
36
+ def propagate_logger(logger: Logger, **kwargs: Any) -> None:
37
+ original_configure_logger(logger, **kwargs)
38
+ logger.propagate = True
39
+
40
+ monkeypatch.setattr('crawlee._log_config.configure_logger', propagate_logger)
41
+ monkeypatch.setattr(apify.log, 'configure_logger', propagate_logger)
42
+ yield
43
+ monkeypatch.undo()
44
+
45
+
25
46
  @pytest.fixture
26
47
  def prepare_test_env(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> Callable[[], None]:
27
48
  """Prepare the testing environment by resetting the global state before each test.
@@ -66,7 +87,10 @@ def prepare_test_env(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> Callabl
66
87
 
67
88
 
68
89
  @pytest.fixture(autouse=True)
69
- def _isolate_test_environment(prepare_test_env: Callable[[], None]) -> None:
90
+ def _isolate_test_environment(
91
+ prepare_test_env: Callable[[], None],
92
+ _patch_propagate_logger: None,
93
+ ) -> None:
70
94
  """Isolate the testing environment by resetting global state before and after each test.
71
95
 
72
96
  This fixture ensures that each test starts with a clean slate and that any modifications during the test
@@ -22,7 +22,6 @@ if TYPE_CHECKING:
22
22
  from collections.abc import Callable
23
23
 
24
24
 
25
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
26
25
  async def test_lifecycle_local(caplog: pytest.LogCaptureFixture) -> None:
27
26
  caplog.set_level(logging.DEBUG, logger='apify')
28
27
  config = Configuration.get_global_configuration()
@@ -472,10 +472,8 @@ async def test_initialize_prefering_password_from_env_over_calling_api(
472
472
 
473
473
 
474
474
  @pytest.mark.usefixtures('patched_impit_client')
475
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
476
475
  async def test_initialize_with_manual_password_different_than_user_one(
477
476
  monkeypatch: pytest.MonkeyPatch,
478
- caplog: pytest.LogCaptureFixture,
479
477
  httpserver: HTTPServer,
480
478
  patched_apify_client: ApifyClientAsync,
481
479
  ) -> None:
@@ -501,10 +499,6 @@ async def test_initialize_with_manual_password_different_than_user_one(
501
499
  assert proxy_configuration._password == different_dummy_password
502
500
  assert proxy_configuration.is_man_in_the_middle is True
503
501
 
504
- assert len(caplog.records) == 1
505
- assert caplog.records[0].levelname == 'WARNING'
506
- assert 'The Apify Proxy password you provided belongs to a different user' in caplog.records[0].message
507
-
508
502
 
509
503
  @pytest.mark.usefixtures('patched_impit_client')
510
504
  async def test_initialize_when_not_connected(monkeypatch: pytest.MonkeyPatch, httpserver: HTTPServer) -> None:
@@ -526,7 +520,6 @@ async def test_initialize_when_not_connected(monkeypatch: pytest.MonkeyPatch, ht
526
520
  await proxy_configuration.initialize()
527
521
 
528
522
 
529
- @pytest.mark.skip(reason='There are issues with log propagation to caplog, see issue #462.')
530
523
  async def test_initialize_when_status_page_unavailable(
531
524
  monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture, httpserver: HTTPServer
532
525
  ) -> None: