apify 2.7.2__tar.gz → 3.0.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of apify might be problematic. Click here for more details.

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