apify 3.4.2b1__tar.gz → 3.4.2b2__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.
Files changed (64) hide show
  1. {apify-3.4.2b1 → apify-3.4.2b2}/CHANGELOG.md +13 -0
  2. {apify-3.4.2b1 → apify-3.4.2b2}/PKG-INFO +1 -1
  3. {apify-3.4.2b1 → apify-3.4.2b2}/pyproject.toml +1 -1
  4. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_actor.py +11 -29
  5. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_configuration.py +1 -26
  6. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_dataset_client.py +0 -11
  7. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_key_value_store_client.py +0 -11
  8. {apify-3.4.2b1 → apify-3.4.2b2}/.gitignore +0 -0
  9. {apify-3.4.2b1 → apify-3.4.2b2}/CONTRIBUTING.md +0 -0
  10. {apify-3.4.2b1 → apify-3.4.2b2}/LICENSE +0 -0
  11. {apify-3.4.2b1 → apify-3.4.2b2}/README.md +0 -0
  12. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/__init__.py +0 -0
  13. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_charging.py +0 -0
  14. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_consts.py +0 -0
  15. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_crypto.py +0 -0
  16. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_models.py +0 -0
  17. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_proxy_configuration.py +0 -0
  18. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/_utils.py +0 -0
  19. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/events/__init__.py +0 -0
  20. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/events/_apify_event_manager.py +0 -0
  21. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/events/_types.py +0 -0
  22. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/events/py.typed +0 -0
  23. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/log.py +0 -0
  24. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/py.typed +0 -0
  25. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/request_loaders/__init__.py +0 -0
  26. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/request_loaders/_apify_request_list.py +0 -0
  27. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/request_loaders/py.typed +0 -0
  28. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/__init__.py +0 -0
  29. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/_actor_runner.py +0 -0
  30. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/_async_thread.py +0 -0
  31. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/_logging_config.py +0 -0
  32. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/extensions/__init__.py +0 -0
  33. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/extensions/_httpcache.py +0 -0
  34. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/middlewares/__init__.py +0 -0
  35. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  36. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/middlewares/py.typed +0 -0
  37. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/pipelines/__init__.py +0 -0
  38. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  39. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/pipelines/py.typed +0 -0
  40. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/py.typed +0 -0
  41. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/requests.py +0 -0
  42. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/scheduler.py +0 -0
  43. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/scrapy/utils.py +0 -0
  44. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/__init__.py +0 -0
  45. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/__init__.py +0 -0
  46. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_alias_resolving.py +0 -0
  47. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_api_client_creation.py +0 -0
  48. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_models.py +0 -0
  49. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_request_queue_client.py +0 -0
  50. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_request_queue_shared_client.py +0 -0
  51. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_request_queue_single_client.py +0 -0
  52. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_storage_client.py +0 -0
  53. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/_utils.py +0 -0
  54. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_apify/py.typed +0 -0
  55. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_file_system/__init__.py +0 -0
  56. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_file_system/_dataset_client.py +0 -0
  57. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_file_system/_key_value_store_client.py +0 -0
  58. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_file_system/_storage_client.py +0 -0
  59. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_ppe_dataset_mixin.py +0 -0
  60. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_smart_apify/__init__.py +0 -0
  61. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/_smart_apify/_storage_client.py +0 -0
  62. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storage_clients/py.typed +0 -0
  63. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storages/__init__.py +0 -0
  64. {apify-3.4.2b1 → apify-3.4.2b2}/src/apify/storages/py.typed +0 -0
@@ -5,12 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  <!-- git-cliff-unreleased-start -->
6
6
  ## 3.4.2 - **not yet released**
7
7
 
8
+ ### 🚜 Refactor
9
+
10
+ - [**breaking**] Remove deprecated APIs ([#918](https://github.com/apify/apify-sdk-python/pull/918)) ([3e5728d](https://github.com/apify/apify-sdk-python/commit/3e5728d94cb8fd879d5a76e33a03d55792d835d5)) by [@vdusek](https://github.com/vdusek), closes [#635](https://github.com/apify/apify-sdk-python/issues/635)
11
+
8
12
  ### ⚙️ Miscellaneous Tasks
9
13
 
10
14
  - [**breaking**] Drop Python 3.10 support ([#908](https://github.com/apify/apify-sdk-python/pull/908)) ([a67788e](https://github.com/apify/apify-sdk-python/commit/a67788e4d7845445a3e80a30af70580d2ab84f32)) by [@vdusek](https://github.com/vdusek), closes [#757](https://github.com/apify/apify-sdk-python/issues/757)
11
15
 
12
16
 
13
17
  <!-- git-cliff-unreleased-end -->
18
+
19
+ ## [3.4.1](https://github.com/apify/apify-sdk-python/releases/tag/v3.4.1) (2026-05-29)
20
+
21
+ ### 🐛 Bug Fixes
22
+
23
+ - Forward missing run kwargs in Actor.start&#x2F;call&#x2F;call_task ([#906](https://github.com/apify/apify-sdk-python/pull/906)) ([7a13809](https://github.com/apify/apify-sdk-python/commit/7a13809898f5579138febbb077f7ab7e4e72cbe1)) by [@vdusek](https://github.com/vdusek)
24
+ - Update `push_data` annotation with `JsonSerializable` instead of Any ([#899](https://github.com/apify/apify-sdk-python/pull/899)) ([b4f5485](https://github.com/apify/apify-sdk-python/commit/b4f5485175cfd248893bc8a2b3017fa797d1000e)) by [@Mantisus](https://github.com/Mantisus)
25
+
26
+
14
27
  ## [3.4.0](https://github.com/apify/apify-sdk-python/releases/tag/v3.4.0) (2026-05-05)
15
28
 
16
29
  ### 🚀 Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apify
3
- Version: 3.4.2b1
3
+ Version: 3.4.2b2
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "apify"
7
- version = "3.4.2b1"
7
+ version = "3.4.2b2"
8
8
  description = "Apify SDK for Python"
9
9
  authors = [{ name = "Apify Technologies s.r.o.", email = "support@apify.com" }]
10
10
  license = { file = "LICENSE" }
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import asyncio
4
4
  import sys
5
- import warnings
6
5
  from contextlib import suppress
7
6
  from datetime import UTC, datetime, timedelta
8
7
  from functools import cached_property
@@ -867,7 +866,7 @@ class _ActorType:
867
866
  max_total_charge_usd: Decimal | None = None,
868
867
  restart_on_error: bool | None = None,
869
868
  memory_mbytes: int | None = None,
870
- timeout: timedelta | None | Literal['inherit', 'RemainingTime'] = None,
869
+ timeout: timedelta | None | Literal['inherit'] = None,
871
870
  force_permission_level: ActorPermissionLevel | None = None,
872
871
  wait_for_finish: int | None = None,
873
872
  webhooks: list[Webhook] | None = None,
@@ -889,8 +888,8 @@ class _ActorType:
889
888
  memory_mbytes: Memory limit for the run, in megabytes. By default, the run uses a memory limit specified
890
889
  in the default run configuration for the Actor.
891
890
  timeout: Optional timeout for the run, in seconds. By default, the run uses timeout specified in
892
- the default run configuration for the Actor. Using `inherit` or `RemainingTime` will set timeout of the
893
- other Actor to the time remaining from this Actor timeout.
891
+ the default run configuration for the Actor. Using `inherit` will set timeout of the other Actor
892
+ to the time remaining from this Actor timeout.
894
893
  force_permission_level: Override the Actor's permissions for this run. If not set, the Actor will run
895
894
  with permissions configured in the Actor settings.
896
895
  wait_for_finish: The maximum number of seconds the server waits for the run to finish. By default,
@@ -911,22 +910,14 @@ class _ActorType:
911
910
  else:
912
911
  serialized_webhooks = None
913
912
 
914
- if timeout in {'inherit', 'RemainingTime'}:
915
- if timeout == 'RemainingTime':
916
- warnings.warn(
917
- '`RemainingTime` is deprecated and will be removed in version 4.0.0. Use `inherit` instead.',
918
- DeprecationWarning,
919
- stacklevel=2,
920
- )
913
+ if timeout == 'inherit':
921
914
  actor_start_timeout = self._get_remaining_time()
922
915
  elif timeout is None:
923
916
  actor_start_timeout = None
924
917
  elif isinstance(timeout, timedelta):
925
918
  actor_start_timeout = timeout
926
919
  else:
927
- raise ValueError(
928
- f'Invalid timeout {timeout!r}: expected `None`, `"inherit"`, `"RemainingTime"`, or a `timedelta`.'
929
- )
920
+ raise ValueError(f'Invalid timeout {timeout!r}: expected `None`, `"inherit"`, or a `timedelta`.')
930
921
 
931
922
  api_result = await client.actor(actor_id).start(
932
923
  run_input=run_input,
@@ -988,7 +979,7 @@ class _ActorType:
988
979
  max_total_charge_usd: Decimal | None = None,
989
980
  restart_on_error: bool | None = None,
990
981
  memory_mbytes: int | None = None,
991
- timeout: timedelta | None | Literal['inherit', 'RemainingTime'] = None,
982
+ timeout: timedelta | None | Literal['inherit'] = None,
992
983
  force_permission_level: ActorPermissionLevel | None = None,
993
984
  webhooks: list[Webhook] | None = None,
994
985
  wait: timedelta | None = None,
@@ -1011,8 +1002,8 @@ class _ActorType:
1011
1002
  memory_mbytes: Memory limit for the run, in megabytes. By default, the run uses a memory limit specified
1012
1003
  in the default run configuration for the Actor.
1013
1004
  timeout: Optional timeout for the run, in seconds. By default, the run uses timeout specified in
1014
- the default run configuration for the Actor. Using `inherit` or `RemainingTime` will set timeout of the
1015
- other Actor to the time remaining from this Actor timeout.
1005
+ the default run configuration for the Actor. Using `inherit` will set timeout of the other Actor
1006
+ to the time remaining from this Actor timeout.
1016
1007
  force_permission_level: Override the Actor's permissions for this run. If not set, the Actor will run
1017
1008
  with permissions configured in the Actor settings.
1018
1009
  webhooks: Optional webhooks (https://docs.apify.com/webhooks) associated with the Actor run, which can
@@ -1036,23 +1027,14 @@ class _ActorType:
1036
1027
  else:
1037
1028
  serialized_webhooks = None
1038
1029
 
1039
- if timeout in {'inherit', 'RemainingTime'}:
1040
- if timeout == 'RemainingTime':
1041
- warnings.warn(
1042
- '`RemainingTime` is deprecated and will be removed in version 4.0.0. Use `inherit` instead.',
1043
- DeprecationWarning,
1044
- stacklevel=2,
1045
- )
1046
-
1030
+ if timeout == 'inherit':
1047
1031
  actor_call_timeout = self._get_remaining_time()
1048
1032
  elif timeout is None:
1049
1033
  actor_call_timeout = None
1050
1034
  elif isinstance(timeout, timedelta):
1051
1035
  actor_call_timeout = timeout
1052
1036
  else:
1053
- raise ValueError(
1054
- f'Invalid timeout {timeout!r}: expected `None`, `"inherit"`, `"RemainingTime"`, or a `timedelta`.'
1055
- )
1037
+ raise ValueError(f'Invalid timeout {timeout!r}: expected `None`, `"inherit"`, or a `timedelta`.')
1056
1038
 
1057
1039
  api_result = await client.actor(actor_id).call(
1058
1040
  run_input=run_input,
@@ -1450,7 +1432,7 @@ class _ActorType:
1450
1432
  return max(self.configuration.timeout_at - datetime.now(tz=UTC), timedelta(0))
1451
1433
 
1452
1434
  self.log.warning(
1453
- 'Using `inherit` or `RemainingTime` argument is only possible when the Actor'
1435
+ 'Using `inherit` argument is only possible when the Actor'
1454
1436
  ' is running on the Apify platform and when the timeout for the Actor run is set. '
1455
1437
  f'{self.is_at_home()=}, {self.configuration.timeout_at=}'
1456
1438
  )
@@ -8,7 +8,7 @@ from pathlib import Path
8
8
  from typing import Annotated, Any, Self
9
9
 
10
10
  from pydantic import AliasChoices, BeforeValidator, Field, model_validator
11
- from typing_extensions import TypedDict, deprecated
11
+ from typing_extensions import TypedDict
12
12
 
13
13
  from crawlee import service_locator
14
14
  from crawlee._utils.models import timedelta_ms
@@ -273,22 +273,6 @@ class Configuration(CrawleeConfiguration):
273
273
  ),
274
274
  ] = False
275
275
 
276
- latest_sdk_version: Annotated[
277
- str | None,
278
- Field(
279
- alias='apify_sdk_latest_version',
280
- description='Specifies the most recent release version of the Apify SDK for Javascript. Used for '
281
- 'checking for updates.',
282
- ),
283
- deprecated('SDK version checking is not supported for the Python SDK'),
284
- ] = None
285
-
286
- log_format: Annotated[
287
- str | None,
288
- Field(alias='apify_log_format'),
289
- deprecated('Adjust the log format in code instead'),
290
- ] = None
291
-
292
276
  max_paid_dataset_items: Annotated[
293
277
  int | None,
294
278
  Field(
@@ -386,15 +370,6 @@ class Configuration(CrawleeConfiguration):
386
370
  BeforeValidator(lambda val: val if val != '' else None), # We should accept empty environment variables as well
387
371
  ] = None
388
372
 
389
- standby_port: Annotated[
390
- int,
391
- Field(
392
- alias='actor_standby_port',
393
- description='TCP port for the Actor to start an HTTP server to receive messages in the Actor Standby mode',
394
- ),
395
- deprecated('Use `web_server_port` instead'),
396
- ] = 4321
397
-
398
373
  standby_url: Annotated[
399
374
  str,
400
375
  BeforeValidator(validate_http_url),
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import asyncio
4
- import warnings
5
4
  from logging import getLogger
6
5
  from typing import TYPE_CHECKING
7
6
 
@@ -42,7 +41,6 @@ class ApifyDatasetClient(DatasetClient, DatasetClientPpeMixin):
42
41
  self,
43
42
  *,
44
43
  api_client: DatasetClientAsync,
45
- api_public_base_url: str,
46
44
  lock: asyncio.Lock,
47
45
  ) -> None:
48
46
  """Initialize a new instance.
@@ -58,14 +56,6 @@ class ApifyDatasetClient(DatasetClient, DatasetClientPpeMixin):
58
56
  self._lock = lock
59
57
  """A lock to ensure that only one operation is performed at a time."""
60
58
 
61
- if api_public_base_url:
62
- # Remove in version 4.0, https://github.com/apify/apify-sdk-python/issues/635
63
- warnings.warn(
64
- 'api_public_base_url argument is deprecated and will be removed in version 4.0.0',
65
- DeprecationWarning,
66
- stacklevel=2,
67
- )
68
-
69
59
  @override
70
60
  async def get_metadata(self) -> DatasetMetadata:
71
61
  metadata = await self._api_client.get()
@@ -114,7 +104,6 @@ class ApifyDatasetClient(DatasetClient, DatasetClientPpeMixin):
114
104
 
115
105
  dataset_client = cls(
116
106
  api_client=api_client,
117
- api_public_base_url='', # Remove in version 4.0, https://github.com/apify/apify-sdk-python/issues/635
118
107
  lock=asyncio.Lock(),
119
108
  )
120
109
 
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import asyncio
4
- import warnings
5
4
  from logging import getLogger
6
5
  from typing import TYPE_CHECKING, Any
7
6
 
@@ -30,7 +29,6 @@ class ApifyKeyValueStoreClient(KeyValueStoreClient):
30
29
  self,
31
30
  *,
32
31
  api_client: KeyValueStoreClientAsync,
33
- api_public_base_url: str,
34
32
  lock: asyncio.Lock,
35
33
  ) -> None:
36
34
  """Initialize a new instance.
@@ -43,14 +41,6 @@ class ApifyKeyValueStoreClient(KeyValueStoreClient):
43
41
  self._lock = lock
44
42
  """A lock to ensure that only one operation is performed at a time."""
45
43
 
46
- if api_public_base_url:
47
- # Remove in version 4.0, https://github.com/apify/apify-sdk-python/issues/635
48
- warnings.warn(
49
- 'api_public_base_url argument is deprecated and will be removed in version 4.0.0',
50
- DeprecationWarning,
51
- stacklevel=2,
52
- )
53
-
54
44
  @override
55
45
  async def get_metadata(self) -> ApifyKeyValueStoreMetadata:
56
46
  metadata = await self._api_client.get()
@@ -98,7 +88,6 @@ class ApifyKeyValueStoreClient(KeyValueStoreClient):
98
88
  )
99
89
  return cls(
100
90
  api_client=api_client,
101
- api_public_base_url='', # Remove in version 4.0, https://github.com/apify/apify-sdk-python/issues/635
102
91
  lock=asyncio.Lock(),
103
92
  )
104
93
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes