apify 2.5.0b4__tar.gz → 2.5.0b6__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 (209) hide show
  1. {apify-2.5.0b4 → apify-2.5.0b6}/CHANGELOG.md +5 -3
  2. {apify-2.5.0b4 → apify-2.5.0b6}/PKG-INFO +1 -1
  3. {apify-2.5.0b4 → apify-2.5.0b6}/pyproject.toml +2 -2
  4. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_configuration.py +15 -2
  5. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_platform_event_manager.py +3 -3
  6. apify-2.5.0b6/tests/unit/actor/test_configuration.py +21 -0
  7. {apify-2.5.0b4 → apify-2.5.0b6}/uv.lock +4 -4
  8. {apify-2.5.0b4 → apify-2.5.0b6}/.editorconfig +0 -0
  9. {apify-2.5.0b4 → apify-2.5.0b6}/.github/CODEOWNERS +0 -0
  10. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/build_and_deploy_docs.yaml +0 -0
  11. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/check_pr_title.yaml +0 -0
  12. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/pre_release.yaml +0 -0
  13. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/release.yaml +0 -0
  14. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/run_code_checks.yaml +0 -0
  15. {apify-2.5.0b4 → apify-2.5.0b6}/.github/workflows/update_new_issue.yaml +0 -0
  16. {apify-2.5.0b4 → apify-2.5.0b6}/.gitignore +0 -0
  17. {apify-2.5.0b4 → apify-2.5.0b6}/.markdownlint.yaml +0 -0
  18. {apify-2.5.0b4 → apify-2.5.0b6}/.pre-commit-config.yaml +0 -0
  19. {apify-2.5.0b4 → apify-2.5.0b6}/CONTRIBUTING.md +0 -0
  20. {apify-2.5.0b4 → apify-2.5.0b6}/LICENSE +0 -0
  21. {apify-2.5.0b4 → apify-2.5.0b6}/Makefile +0 -0
  22. {apify-2.5.0b4 → apify-2.5.0b6}/README.md +0 -0
  23. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/01_introduction.mdx +0 -0
  24. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/02_running_actors_locally.mdx +0 -0
  25. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/03_actor_structure.mdx +0 -0
  26. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/code/01_introduction.py +0 -0
  27. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/code/actor_structure/__init__.py +0 -0
  28. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/code/actor_structure/__main__.py +0 -0
  29. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/code/actor_structure/main.py +0 -0
  30. {apify-2.5.0b4 → apify-2.5.0b6}/docs/01_overview/code/actor_structure/py.typed +0 -0
  31. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/01_beautifulsoup_httpx.mdx +0 -0
  32. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/02_crawlee.mdx +0 -0
  33. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/03_playwright.mdx +0 -0
  34. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/04_selenium.mdx +0 -0
  35. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/05_scrapy.mdx +0 -0
  36. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/01_beautifulsoup_httpx.py +0 -0
  37. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
  38. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/02_crawlee_playwright.py +0 -0
  39. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/03_playwright.py +0 -0
  40. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/04_selenium.py +0 -0
  41. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/__init__.py +0 -0
  42. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/__main__.py +0 -0
  43. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/items.py +0 -0
  44. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/main.py +0 -0
  45. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/py.typed +0 -0
  46. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/settings.py +0 -0
  47. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
  48. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
  49. {apify-2.5.0b4 → apify-2.5.0b6}/docs/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
  50. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/01_actor_lifecycle.mdx +0 -0
  51. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/02_actor_input.mdx +0 -0
  52. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/03_storages.mdx +0 -0
  53. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/04_actor_events.mdx +0 -0
  54. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/05_proxy_management.mdx +0 -0
  55. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/06_interacting_with_other_actors.mdx +0 -0
  56. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/07_webhooks.mdx +0 -0
  57. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/08_access_apify_api.mdx +0 -0
  58. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/09_running_webserver.mdx +0 -0
  59. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/10_logging.mdx +0 -0
  60. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/11_configuration.mdx +0 -0
  61. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/12_pay_per_event.mdx +0 -0
  62. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/01_context_manager.py +0 -0
  63. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/01_init_exit.py +0 -0
  64. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/01_reboot.py +0 -0
  65. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/01_status_message.py +0 -0
  66. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/02_input.py +0 -0
  67. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_dataset_exports.py +0 -0
  68. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_dataset_read_write.py +0 -0
  69. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_deleting_storages.py +0 -0
  70. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_kvs_iterating.py +0 -0
  71. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_kvs_public_url.py +0 -0
  72. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_kvs_read_write.py +0 -0
  73. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_opening_storages.py +0 -0
  74. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/03_rq.py +0 -0
  75. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/04_actor_events.py +0 -0
  76. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_apify_proxy.py +0 -0
  77. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_apify_proxy_config.py +0 -0
  78. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_custom_proxy.py +0 -0
  79. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_custom_proxy_function.py +0 -0
  80. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_proxy_actor_input.py +0 -0
  81. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_proxy_httpx.py +0 -0
  82. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/05_proxy_rotation.py +0 -0
  83. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/06_interacting_call.py +0 -0
  84. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/06_interacting_call_task.py +0 -0
  85. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/06_interacting_metamorph.py +0 -0
  86. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/06_interacting_start.py +0 -0
  87. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/07_webhook.py +0 -0
  88. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/07_webhook_preventing.py +0 -0
  89. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/08_actor_client.py +0 -0
  90. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/08_actor_new_client.py +0 -0
  91. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/09_webserver.py +0 -0
  92. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/10_log_config.py +0 -0
  93. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/10_logger_usage.py +0 -0
  94. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/11_config.py +0 -0
  95. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/actor_charge.py +0 -0
  96. {apify-2.5.0b4 → apify-2.5.0b6}/docs/03_concepts/code/conditional_actor_charge.py +0 -0
  97. {apify-2.5.0b4 → apify-2.5.0b6}/docs/04_upgrading/upgrading_to_v2.md +0 -0
  98. {apify-2.5.0b4 → apify-2.5.0b6}/docs/pyproject.toml +0 -0
  99. {apify-2.5.0b4 → apify-2.5.0b6}/renovate.json +0 -0
  100. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/__init__.py +0 -0
  101. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_actor.py +0 -0
  102. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_charging.py +0 -0
  103. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_consts.py +0 -0
  104. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_crypto.py +0 -0
  105. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_models.py +0 -0
  106. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_proxy_configuration.py +0 -0
  107. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/_utils.py +0 -0
  108. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/__init__.py +0 -0
  109. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_apify_storage_client.py +0 -0
  110. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_dataset_client.py +0 -0
  111. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_dataset_collection_client.py +0 -0
  112. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_key_value_store_client.py +0 -0
  113. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_key_value_store_collection_client.py +0 -0
  114. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_request_queue_client.py +0 -0
  115. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/_request_queue_collection_client.py +0 -0
  116. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/apify_storage_client/py.typed +0 -0
  117. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/log.py +0 -0
  118. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/py.typed +0 -0
  119. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/__init__.py +0 -0
  120. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/_actor_runner.py +0 -0
  121. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/_async_thread.py +0 -0
  122. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/_logging_config.py +0 -0
  123. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/extensions/__init__.py +0 -0
  124. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/extensions/_httpcache.py +0 -0
  125. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/middlewares/__init__.py +0 -0
  126. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  127. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/middlewares/py.typed +0 -0
  128. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/pipelines/__init__.py +0 -0
  129. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  130. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/pipelines/py.typed +0 -0
  131. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/py.typed +0 -0
  132. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/requests.py +0 -0
  133. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/scheduler.py +0 -0
  134. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/scrapy/utils.py +0 -0
  135. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/storages/__init__.py +0 -0
  136. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/storages/_request_list.py +0 -0
  137. {apify-2.5.0b4 → apify-2.5.0b6}/src/apify/storages/py.typed +0 -0
  138. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/README.md +0 -0
  139. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/__init__.py +0 -0
  140. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/_utils.py +0 -0
  141. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/actor_source_base/Dockerfile +0 -0
  142. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/actor_source_base/requirements.txt +0 -0
  143. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/actor_source_base/src/__init__.py +0 -0
  144. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/actor_source_base/src/__main__.py +0 -0
  145. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/actor_source_base/src/main.py +0 -0
  146. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/conftest.py +0 -0
  147. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_api_helpers.py +0 -0
  148. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_charge.py +0 -0
  149. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
  150. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_dataset.py +0 -0
  151. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_events.py +0 -0
  152. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_key_value_store.py +0 -0
  153. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_lifecycle.py +0 -0
  154. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_log.py +0 -0
  155. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_request_queue.py +0 -0
  156. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_actor_scrapy.py +0 -0
  157. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_fixtures.py +0 -0
  158. {apify-2.5.0b4 → apify-2.5.0b6}/tests/integration/test_request_queue.py +0 -0
  159. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/__init__.py +0 -0
  160. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/__init__.py +0 -0
  161. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_create_proxy_configuration.py +0 -0
  162. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_dataset.py +0 -0
  163. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_env_helpers.py +0 -0
  164. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_helpers.py +0 -0
  165. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_key_value_store.py +0 -0
  166. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_lifecycle.py +0 -0
  167. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_log.py +0 -0
  168. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
  169. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_actor_request_queue.py +0 -0
  170. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/actor/test_request_list.py +0 -0
  171. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/conftest.py +0 -0
  172. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/__init__.py +0 -0
  173. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/extensions/__init__.py +0 -0
  174. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
  175. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/middlewares/__init__.py +0 -0
  176. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
  177. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/pipelines/__init__.py +0 -0
  178. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
  179. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/requests/__init__.py +0 -0
  180. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -0
  181. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/requests/test_to_scrapy_request.py +0 -0
  182. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/utils/__init__.py +0 -0
  183. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
  184. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
  185. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/test_crypto.py +0 -0
  186. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/test_platform_event_manager.py +0 -0
  187. {apify-2.5.0b4 → apify-2.5.0b6}/tests/unit/test_proxy_configuration.py +0 -0
  188. {apify-2.5.0b4 → apify-2.5.0b6}/website/.eslintrc.json +0 -0
  189. {apify-2.5.0b4 → apify-2.5.0b6}/website/babel.config.js +0 -0
  190. {apify-2.5.0b4 → apify-2.5.0b6}/website/build_api_reference.sh +0 -0
  191. {apify-2.5.0b4 → apify-2.5.0b6}/website/docusaurus.config.js +0 -0
  192. {apify-2.5.0b4 → apify-2.5.0b6}/website/generate_module_shortcuts.py +0 -0
  193. {apify-2.5.0b4 → apify-2.5.0b6}/website/package-lock.json +0 -0
  194. {apify-2.5.0b4 → apify-2.5.0b6}/website/package.json +0 -0
  195. {apify-2.5.0b4 → apify-2.5.0b6}/website/sidebars.js +0 -0
  196. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/ApiLink.jsx +0 -0
  197. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/Gradients.jsx +0 -0
  198. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/Highlights.jsx +0 -0
  199. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/Highlights.module.css +0 -0
  200. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/RunnableCodeBlock.jsx +0 -0
  201. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/components/RunnableCodeBlock.module.css +0 -0
  202. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/css/custom.css +0 -0
  203. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/pages/home_page_example.py +0 -0
  204. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/pages/index.js +0 -0
  205. {apify-2.5.0b4 → apify-2.5.0b6}/website/src/pages/index.module.css +0 -0
  206. {apify-2.5.0b4 → apify-2.5.0b6}/website/static/.nojekyll +0 -0
  207. {apify-2.5.0b4 → apify-2.5.0b6}/website/static/img/docs-og.png +0 -0
  208. {apify-2.5.0b4 → apify-2.5.0b6}/website/tools/docs-prettier.config.js +0 -0
  209. {apify-2.5.0b4 → apify-2.5.0b6}/website/tools/utils/externalLink.js +0 -0
@@ -2,15 +2,17 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- <!-- git-cliff-unreleased-start -->
6
- ## 2.5.0 - **not yet released**
5
+ ## [2.5.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.5.0) (2025-03-27)
7
6
 
8
7
  ### 🚀 Features
9
8
 
10
9
  - Implement Scrapy HTTP cache backend ([#403](https://github.com/apify/apify-sdk-python/pull/403)) ([137e3c8](https://github.com/apify/apify-sdk-python/commit/137e3c8d5c6b28cf6935cfb742b5f072cd2e0a02)) by [@honzajavorek](https://github.com/honzajavorek)
11
10
 
11
+ ### 🐛 Bug Fixes
12
+
13
+ - Fix calculation of CPU utilization from SystemInfo events ([#447](https://github.com/apify/apify-sdk-python/pull/447)) ([eb4c8e4](https://github.com/apify/apify-sdk-python/commit/eb4c8e4e498e23f573b9e2d4c7dbd8e2ecc277d9)) by [@janbuchar](https://github.com/janbuchar)
14
+
12
15
 
13
- <!-- git-cliff-unreleased-end -->
14
16
  ## [2.4.0](https://github.com/apify/apify-sdk-python/releases/tag/v2.4.0) (2025-03-07)
15
17
 
16
18
  ### 🚀 Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apify
3
- Version: 2.5.0b4
3
+ Version: 2.5.0b6
4
4
  Summary: Apify SDK for Python
5
5
  Project-URL: Homepage, https://docs.apify.com/sdk/python/
6
6
  Project-URL: Apify homepage, https://apify.com
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "apify"
7
- version = "2.5.0b4"
7
+ version = "2.5.0b6"
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" }
@@ -59,7 +59,7 @@ scrapy = ["scrapy>=2.11.0"]
59
59
  [dependency-groups]
60
60
  dev = [
61
61
  "build~=1.2.0",
62
- "griffe~=1.6.0",
62
+ "griffe~=1.7.0",
63
63
  "mypy~=1.15.0",
64
64
  "pre-commit~=4.2.0",
65
65
  "pydoc-markdown~=4.8.0",
@@ -5,8 +5,8 @@ from decimal import Decimal
5
5
  from logging import getLogger
6
6
  from typing import Annotated, Any
7
7
 
8
- from pydantic import AliasChoices, BeforeValidator, Field
9
- from typing_extensions import deprecated
8
+ from pydantic import AliasChoices, BeforeValidator, Field, model_validator
9
+ from typing_extensions import Self, deprecated
10
10
 
11
11
  from crawlee._utils.models import timedelta_ms
12
12
  from crawlee._utils.urls import validate_http_url
@@ -365,6 +365,19 @@ class Configuration(CrawleeConfiguration):
365
365
  ),
366
366
  ] = None
367
367
 
368
+ @model_validator(mode='after')
369
+ def disable_browser_sandbox_on_platform(self) -> Self:
370
+ """Disable the browser sandbox mode when running on the Apify platform.
371
+
372
+ Running in environment where `is_at_home` is True does not benefit from browser sandbox as it is already running
373
+ in a container. It can be on the contrary undesired as the process in the container might be running as root and
374
+ this will crash chromium that was started with browser sandbox mode.
375
+ """
376
+ if self.is_at_home and not self.disable_browser_sandbox:
377
+ self.disable_browser_sandbox = True
378
+ logger.warning('Actor is running on the Apify platform, `disable_browser_sandbox` was changed to True.')
379
+ return self
380
+
368
381
  @classmethod
369
382
  def get_global_configuration(cls) -> Configuration:
370
383
  """Retrieve the global instance of the configuration.
@@ -48,11 +48,11 @@ class SystemInfoEventData(BaseModel):
48
48
  is_cpu_overloaded: Annotated[bool, Field(alias='isCpuOverloaded')]
49
49
  created_at: Annotated[datetime, Field(alias='createdAt')]
50
50
 
51
- def to_crawlee_format(self) -> EventSystemInfoData:
51
+ def to_crawlee_format(self, dedicated_cpus: float) -> EventSystemInfoData:
52
52
  return EventSystemInfoData.model_validate(
53
53
  {
54
54
  'cpu_info': {
55
- 'used_ratio': self.cpu_current_usage / 100,
55
+ 'used_ratio': (self.cpu_current_usage / 100) / dedicated_cpus,
56
56
  'created_at': self.created_at,
57
57
  },
58
58
  'memory_info': {
@@ -218,7 +218,7 @@ class PlatformEventManager(EventManager):
218
218
  event=parsed_message.name,
219
219
  event_data=parsed_message.data
220
220
  if not isinstance(parsed_message.data, SystemInfoEventData)
221
- else parsed_message.data.to_crawlee_format(),
221
+ else parsed_message.data.to_crawlee_format(self._config.dedicated_cpus or 1),
222
222
  )
223
223
 
224
224
  if parsed_message.name == Event.MIGRATING:
@@ -0,0 +1,21 @@
1
+ import pytest
2
+
3
+ from apify import Configuration
4
+
5
+
6
+ @pytest.mark.parametrize(
7
+ ('is_at_home', 'disable_browser_sandbox_in', 'disable_browser_sandbox_out'),
8
+ [
9
+ (False, False, False),
10
+ (False, True, True),
11
+ (True, False, True),
12
+ (True, True, True),
13
+ ],
14
+ )
15
+ def test_disable_browser_sandbox(
16
+ *, is_at_home: bool, disable_browser_sandbox_in: bool, disable_browser_sandbox_out: bool
17
+ ) -> None:
18
+ assert (
19
+ Configuration(is_at_home=is_at_home, disable_browser_sandbox=disable_browser_sandbox_in).disable_browser_sandbox
20
+ == disable_browser_sandbox_out
21
+ )
@@ -82,7 +82,7 @@ provides-extras = ["scrapy"]
82
82
  [package.metadata.requires-dev]
83
83
  dev = [
84
84
  { name = "build", specifier = "~=1.2.0" },
85
- { name = "griffe", specifier = "~=1.6.0" },
85
+ { name = "griffe", specifier = "~=1.7.0" },
86
86
  { name = "mypy", specifier = "~=1.15.0" },
87
87
  { name = "pre-commit", specifier = "~=4.2.0" },
88
88
  { name = "pydoc-markdown", specifier = "~=4.8.0" },
@@ -824,14 +824,14 @@ wheels = [
824
824
 
825
825
  [[package]]
826
826
  name = "griffe"
827
- version = "1.6.2"
827
+ version = "1.7.0"
828
828
  source = { registry = "https://pypi.org/simple" }
829
829
  dependencies = [
830
830
  { name = "colorama" },
831
831
  ]
832
- sdist = { url = "https://files.pythonhosted.org/packages/2f/f2/b00eb72b853ecb5bf31dd47857cdf6767e380ca24ec2910d43b3fa7cc500/griffe-1.6.2.tar.gz", hash = "sha256:3a46fa7bd83280909b63c12b9a975732a927dd97809efe5b7972290b606c5d91", size = 392836 }
832
+ sdist = { url = "https://files.pythonhosted.org/packages/cc/e1/7dded768fe1adf67879bcd86cf83476e7b19f13d95e6504b6c2b91092f8c/griffe-1.7.0.tar.gz", hash = "sha256:72e9c1593c7af92a387906293fc4a318c2e8e8aef501c64678c809794b4bdca4", size = 394351 }
833
833
  wheels = [
834
- { url = "https://files.pythonhosted.org/packages/4e/bc/bd8b7de5e748e078b6be648e76b47189a9182b1ac1eb7791ff7969f39f27/griffe-1.6.2-py3-none-any.whl", hash = "sha256:6399f7e663150e4278a312a8e8a14d2f3d7bd86e2ef2f8056a1058e38579c2ee", size = 128638 },
834
+ { url = "https://files.pythonhosted.org/packages/66/b3/6201c5dc97ed76398eb419d17fe18db6b4b3ffb2baa2bae91b4c65126096/griffe-1.7.0-py3-none-any.whl", hash = "sha256:6b44efc53a3f290d42c4da521f42235177b3bd107877dd55955318a37930c572", size = 129118 },
835
835
  ]
836
836
 
837
837
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes