apify 2.7.3__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.3 → apify-3.0.0rc1}/.github/workflows/build_and_deploy_docs.yaml +1 -1
  2. {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/pre_release.yaml +9 -5
  3. {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/release.yaml +8 -11
  4. {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/run_code_checks.yaml +9 -5
  5. {apify-2.7.3 → apify-3.0.0rc1}/CHANGELOG.md +339 -7
  6. {apify-2.7.3 → apify-3.0.0rc1}/CONTRIBUTING.md +1 -1
  7. {apify-2.7.3 → apify-3.0.0rc1}/Makefile +3 -3
  8. {apify-2.7.3 → apify-3.0.0rc1}/PKG-INFO +8 -7
  9. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/02_running_actors_locally.mdx +1 -1
  10. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/10_logging.mdx +30 -0
  11. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_dataset_exports.py +2 -2
  12. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/docs/03_concepts/code/conditional_actor_charge.py +2 -2
  16. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/pyproject.toml +31 -23
  19. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_actor.py +47 -12
  20. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_charging.py +15 -9
  21. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_configuration.py +34 -1
  22. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_crypto.py +0 -6
  23. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_models.py +7 -7
  24. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_proxy_configuration.py +10 -10
  25. {apify-2.7.3 → 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.3 → 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.3/src/apify/storages/_request_list.py → apify-3.0.0rc1/src/apify/request_loaders/_apify_request_list.py +25 -18
  32. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_logging_config.py +1 -4
  33. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/extensions/_httpcache.py +9 -5
  34. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/requests.py +3 -3
  35. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/tests/integration/README.md +23 -0
  48. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/Dockerfile +5 -1
  49. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/tests/integration/conftest.py +9 -23
  52. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_api_helpers.py +4 -6
  53. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_dataset.py +4 -3
  54. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_events.py +3 -1
  55. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_create_proxy_configuration.py +37 -28
  60. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_dataset.py +5 -30
  61. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_env_helpers.py +3 -27
  62. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_key_value_store.py +25 -45
  63. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_lifecycle.py +4 -2
  64. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_request_queue.py +3 -4
  65. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_request_list.py +42 -28
  66. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/conftest.py +42 -43
  67. apify-2.7.3/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.3 → apify-3.0.0rc1}/tests/unit/scrapy/requests/test_to_apify_request.py +0 -2
  71. {apify-2.7.3 → 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.3 → apify-3.0.0rc1}/tests/unit/test_proxy_configuration.py +80 -70
  77. {apify-2.7.3 → apify-3.0.0rc1}/uv.lock +754 -1020
  78. apify-3.0.0rc1/website/docusaurus.config.js +289 -0
  79. {apify-2.7.3 → apify-3.0.0rc1}/website/package-lock.json +1202 -1229
  80. {apify-2.7.3 → apify-3.0.0rc1}/website/package.json +7 -6
  81. {apify-2.7.3 → 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.3 → 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.3/src/apify/_platform_event_manager.py +0 -231
  87. apify-2.7.3/src/apify/apify_storage_client/__init__.py +0 -3
  88. apify-2.7.3/src/apify/apify_storage_client/_apify_storage_client.py +0 -72
  89. apify-2.7.3/src/apify/apify_storage_client/_dataset_client.py +0 -190
  90. apify-2.7.3/src/apify/apify_storage_client/_dataset_collection_client.py +0 -51
  91. apify-2.7.3/src/apify/apify_storage_client/_key_value_store_client.py +0 -109
  92. apify-2.7.3/src/apify/apify_storage_client/_key_value_store_collection_client.py +0 -51
  93. apify-2.7.3/src/apify/apify_storage_client/_request_queue_client.py +0 -176
  94. apify-2.7.3/src/apify/apify_storage_client/_request_queue_collection_client.py +0 -51
  95. apify-2.7.3/src/apify/storages/__init__.py +0 -5
  96. apify-2.7.3/tests/integration/test_actor_request_queue.py +0 -88
  97. apify-2.7.3/tests/integration/test_request_queue.py +0 -113
  98. apify-2.7.3/website/docusaurus.config.js +0 -145
  99. apify-2.7.3/website/src/components/RunnableCodeBlock.jsx +0 -44
  100. {apify-2.7.3 → apify-3.0.0rc1}/.editorconfig +0 -0
  101. {apify-2.7.3 → apify-3.0.0rc1}/.github/CODEOWNERS +0 -0
  102. {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/check_pr_title.yaml +0 -0
  103. {apify-2.7.3 → apify-3.0.0rc1}/.github/workflows/update_new_issue.yaml +0 -0
  104. {apify-2.7.3 → apify-3.0.0rc1}/.gitignore +0 -0
  105. {apify-2.7.3 → apify-3.0.0rc1}/.markdownlint.yaml +0 -0
  106. {apify-2.7.3 → apify-3.0.0rc1}/.pre-commit-config.yaml +0 -0
  107. {apify-2.7.3 → apify-3.0.0rc1}/LICENSE +0 -0
  108. {apify-2.7.3 → apify-3.0.0rc1}/README.md +0 -0
  109. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/01_introduction.mdx +0 -0
  110. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/03_actor_structure.mdx +0 -0
  111. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/01_introduction.py +0 -0
  112. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/__init__.py +0 -0
  113. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/__main__.py +0 -0
  114. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/main.py +0 -0
  115. {apify-2.7.3 → apify-3.0.0rc1}/docs/01_overview/code/actor_structure/py.typed +0 -0
  116. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/01_beautifulsoup_httpx.mdx +0 -0
  117. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/02_crawlee.mdx +0 -0
  118. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/03_playwright.mdx +0 -0
  119. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/04_selenium.mdx +0 -0
  120. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/05_scrapy.mdx +0 -0
  121. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/01_beautifulsoup_httpx.py +0 -0
  122. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/02_crawlee_beautifulsoup.py +0 -0
  123. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/02_crawlee_playwright.py +0 -0
  124. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/03_playwright.py +0 -0
  125. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/04_selenium.py +0 -0
  126. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/__init__.py +0 -0
  127. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/__main__.py +0 -0
  128. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/items.py +0 -0
  129. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/main.py +0 -0
  130. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/py.typed +0 -0
  131. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/settings.py +0 -0
  132. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/__init__.py +0 -0
  133. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/py.typed +0 -0
  134. {apify-2.7.3 → apify-3.0.0rc1}/docs/02_guides/code/scrapy_project/src/spiders/title.py +0 -0
  135. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/01_actor_lifecycle.mdx +0 -0
  136. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/02_actor_input.mdx +0 -0
  137. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/03_storages.mdx +0 -0
  138. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/04_actor_events.mdx +0 -0
  139. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/05_proxy_management.mdx +0 -0
  140. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/06_interacting_with_other_actors.mdx +0 -0
  141. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/07_webhooks.mdx +0 -0
  142. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/08_access_apify_api.mdx +0 -0
  143. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/09_running_webserver.mdx +0 -0
  144. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/11_configuration.mdx +0 -0
  145. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/12_pay_per_event.mdx +0 -0
  146. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_context_manager.py +0 -0
  147. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_init_exit.py +0 -0
  148. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_reboot.py +0 -0
  149. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/01_status_message.py +0 -0
  150. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/02_input.py +0 -0
  151. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_dataset_read_write.py +0 -0
  152. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_deleting_storages.py +0 -0
  153. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_iterating.py +0 -0
  154. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_public_url.py +0 -0
  155. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_kvs_read_write.py +0 -0
  156. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/03_opening_storages.py +0 -0
  157. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/04_actor_events.py +0 -0
  158. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_apify_proxy.py +0 -0
  159. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_apify_proxy_config.py +0 -0
  160. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_custom_proxy.py +0 -0
  161. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_custom_proxy_function.py +0 -0
  162. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_actor_input.py +0 -0
  163. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_httpx.py +0 -0
  164. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/05_proxy_rotation.py +0 -0
  165. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_call.py +0 -0
  166. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_call_task.py +0 -0
  167. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_metamorph.py +0 -0
  168. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/06_interacting_start.py +0 -0
  169. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/07_webhook.py +0 -0
  170. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/07_webhook_preventing.py +0 -0
  171. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/08_actor_client.py +0 -0
  172. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/08_actor_new_client.py +0 -0
  173. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/09_webserver.py +0 -0
  174. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/10_log_config.py +0 -0
  175. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/10_logger_usage.py +0 -0
  176. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/11_config.py +0 -0
  177. {apify-2.7.3 → apify-3.0.0rc1}/docs/03_concepts/code/actor_charge.py +0 -0
  178. {apify-2.7.3 → apify-3.0.0rc1}/docs/pyproject.toml +0 -0
  179. {apify-2.7.3 → apify-3.0.0rc1}/renovate.json +0 -0
  180. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/__init__.py +0 -0
  181. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/_consts.py +0 -0
  182. {apify-2.7.3/src/apify/apify_storage_client → apify-3.0.0rc1/src/apify/events}/py.typed +0 -0
  183. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/py.typed +0 -0
  184. {apify-2.7.3/src/apify/scrapy/middlewares → apify-3.0.0rc1/src/apify/request_loaders}/py.typed +0 -0
  185. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/__init__.py +0 -0
  186. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_actor_runner.py +0 -0
  187. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/_async_thread.py +0 -0
  188. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/extensions/__init__.py +0 -0
  189. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/middlewares/__init__.py +0 -0
  190. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  191. {apify-2.7.3/src/apify/scrapy/pipelines → apify-3.0.0rc1/src/apify/scrapy/middlewares}/py.typed +0 -0
  192. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/pipelines/__init__.py +0 -0
  193. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  194. {apify-2.7.3/src/apify/scrapy → apify-3.0.0rc1/src/apify/scrapy/pipelines}/py.typed +0 -0
  195. {apify-2.7.3/src/apify/storages → apify-3.0.0rc1/src/apify/scrapy}/py.typed +0 -0
  196. {apify-2.7.3 → apify-3.0.0rc1}/src/apify/scrapy/utils.py +0 -0
  197. /apify-2.7.3/tests/integration/__init__.py → /apify-3.0.0rc1/src/apify/storage_clients/_apify/py.typed +0 -0
  198. /apify-2.7.3/tests/integration/actor_source_base/src/__init__.py → /apify-3.0.0rc1/src/apify/storage_clients/py.typed +0 -0
  199. /apify-2.7.3/tests/unit/__init__.py → /apify-3.0.0rc1/src/apify/storages/py.typed +0 -0
  200. {apify-2.7.3/tests/unit/actor → apify-3.0.0rc1/tests/integration}/__init__.py +0 -0
  201. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/_utils.py +0 -0
  202. {apify-2.7.3/tests/unit/scrapy → apify-3.0.0rc1/tests/integration/actor_source_base/src}/__init__.py +0 -0
  203. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/src/__main__.py +0 -0
  204. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/actor_source_base/src/main.py +0 -0
  205. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_call_timeouts.py +0 -0
  206. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_charge.py +0 -0
  207. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_create_proxy_configuration.py +0 -0
  208. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_lifecycle.py +0 -0
  209. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_log.py +0 -0
  210. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_actor_scrapy.py +0 -0
  211. {apify-2.7.3 → apify-3.0.0rc1}/tests/integration/test_fixtures.py +0 -0
  212. {apify-2.7.3/tests/unit/scrapy/extensions → apify-3.0.0rc1/tests/unit}/__init__.py +0 -0
  213. {apify-2.7.3/tests/unit/scrapy/middlewares → apify-3.0.0rc1/tests/unit/actor}/__init__.py +0 -0
  214. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_helpers.py +0 -0
  215. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_log.py +0 -0
  216. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_actor_non_default_instance.py +0 -0
  217. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/actor/test_configuration.py +0 -0
  218. {apify-2.7.3/tests/unit/scrapy/pipelines → apify-3.0.0rc1/tests/unit/events}/__init__.py +0 -0
  219. {apify-2.7.3/tests/unit/scrapy/requests → apify-3.0.0rc1/tests/unit/scrapy}/__init__.py +0 -0
  220. {apify-2.7.3/tests/unit/scrapy/utils → apify-3.0.0rc1/tests/unit/scrapy/extensions}/__init__.py +0 -0
  221. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/extensions/test_httpcache.py +0 -0
  222. /apify-2.7.3/website/static/.nojekyll → /apify-3.0.0rc1/tests/unit/scrapy/middlewares/__init__.py +0 -0
  223. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/middlewares/test_apify_proxy.py +0 -0
  224. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/pipelines/test_actor_dataset_push.py +0 -0
  225. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/utils/test_apply_apify_settings.py +0 -0
  226. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/scrapy/utils/test_get_basic_auth_header.py +0 -0
  227. {apify-2.7.3 → apify-3.0.0rc1}/tests/unit/test_crypto.py +0 -0
  228. {apify-2.7.3 → apify-3.0.0rc1}/website/.eslintrc.json +0 -0
  229. {apify-2.7.3 → apify-3.0.0rc1}/website/babel.config.js +0 -0
  230. {apify-2.7.3 → apify-3.0.0rc1}/website/build_api_reference.sh +0 -0
  231. {apify-2.7.3 → apify-3.0.0rc1}/website/generate_module_shortcuts.py +0 -0
  232. {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/ApiLink.jsx +0 -0
  233. {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Gradients.jsx +0 -0
  234. {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Highlights.jsx +0 -0
  235. {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/Highlights.module.css +0 -0
  236. {apify-2.7.3 → apify-3.0.0rc1}/website/src/components/RunnableCodeBlock.module.css +0 -0
  237. {apify-2.7.3 → apify-3.0.0rc1}/website/src/css/custom.css +0 -0
  238. {apify-2.7.3 → apify-3.0.0rc1}/website/src/pages/home_page_example.py +0 -0
  239. {apify-2.7.3 → apify-3.0.0rc1}/website/src/pages/index.js +0 -0
  240. {apify-2.7.3 → apify-3.0.0rc1}/website/static/img/docs-og.png +0 -0
  241. {apify-2.7.3 → apify-3.0.0rc1}/website/tools/docs-prettier.config.js +0 -0
  242. {apify-2.7.3 → 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,6 +2,161 @@
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
+
5
160
  ## [2.7.3](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.3) (2025-08-11)
6
161
 
7
162
  ### 🐛 Bug Fixes
@@ -13,7 +168,7 @@ All notable changes to this project will be documented in this file.
13
168
 
14
169
  ### 🐛 Bug Fixes
15
170
 
16
- - 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)
17
172
 
18
173
 
19
174
  ## [2.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v2.7.1) (2025-07-24)
@@ -159,33 +314,210 @@ All notable changes to this project will be documented in this file.
159
314
 
160
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)
161
316
 
317
+ ### Chore
318
+
319
+ - [**breaking**] Drop support for Python 3.8
320
+
162
321
 
163
322
  ## [1.7.2](https://github.com/apify/apify-sdk-python/releases/tag/v1.7.2) (2024-07-08)
164
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
+
165
336
  ### 🚀 Features
166
337
 
167
- - 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.
168
339
 
340
+ ### 🐛 Bug Fixes
341
+
342
+ - Improve error handling for `to_apify_request` serialization failures
343
+ - Scrapy's `Request.dont_filter` works.
169
344
 
170
- ## [1.7.1](https://github.com/apify/apify-sdk-python/releases/tag/v1.7.1) (2024-05-23)
345
+
346
+ ## [1.6.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.6.0) (2024-02-23)
171
347
 
172
348
  ### 🐛 Bug Fixes
173
349
 
174
- - 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`.
175
351
 
352
+ ### Chore
176
353
 
177
- ## [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)
178
372
 
179
373
  ### 🚀 Features
180
374
 
181
- - 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
182
491
 
183
492
 
184
493
  ## [1.1.0](https://github.com/apify/apify-sdk-python/releases/tag/v1.1.0) (2023-05-23)
185
494
 
186
495
  ### 🚀 Features
187
496
 
188
- - 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
189
521
 
190
522
 
191
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.3
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