apify 1.7.1b3__tar.gz → 1.7.1b5__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 (47) hide show
  1. {apify-1.7.1b3 → apify-1.7.1b5}/PKG-INFO +18 -18
  2. {apify-1.7.1b3 → apify-1.7.1b5}/pyproject.toml +18 -18
  3. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/actor.py +17 -11
  4. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify.egg-info/PKG-INFO +18 -18
  5. apify-1.7.1b5/src/apify.egg-info/requires.txt +34 -0
  6. apify-1.7.1b3/src/apify.egg-info/requires.txt +0 -34
  7. {apify-1.7.1b3 → apify-1.7.1b5}/LICENSE +0 -0
  8. {apify-1.7.1b3 → apify-1.7.1b5}/README.md +0 -0
  9. {apify-1.7.1b3 → apify-1.7.1b5}/setup.cfg +0 -0
  10. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/__init__.py +0 -0
  11. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_crypto.py +0 -0
  12. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/__init__.py +0 -0
  13. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/file_storage_utils.py +0 -0
  14. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/memory_storage_client.py +0 -0
  15. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/__init__.py +0 -0
  16. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/base_resource_client.py +0 -0
  17. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/base_resource_collection_client.py +0 -0
  18. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/dataset.py +0 -0
  19. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/dataset_collection.py +0 -0
  20. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/key_value_store.py +0 -0
  21. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/key_value_store_collection.py +0 -0
  22. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/request_queue.py +0 -0
  23. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_memory_storage/resource_clients/request_queue_collection.py +0 -0
  24. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/_utils.py +0 -0
  25. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/config.py +0 -0
  26. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/consts.py +0 -0
  27. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/event_manager.py +0 -0
  28. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/log.py +0 -0
  29. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/proxy_configuration.py +0 -0
  30. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/py.typed +0 -0
  31. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/__init__.py +0 -0
  32. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/middlewares/__init__.py +0 -0
  33. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/middlewares/apify_proxy.py +0 -0
  34. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/pipelines/__init__.py +0 -0
  35. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/pipelines/actor_dataset_push.py +0 -0
  36. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/requests.py +0 -0
  37. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/scheduler.py +0 -0
  38. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/scrapy/utils.py +0 -0
  39. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/__init__.py +0 -0
  40. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/base_storage.py +0 -0
  41. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/dataset.py +0 -0
  42. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/key_value_store.py +0 -0
  43. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/request_queue.py +0 -0
  44. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify/storages/storage_client_manager.py +0 -0
  45. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify.egg-info/SOURCES.txt +0 -0
  46. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify.egg-info/dependency_links.txt +0 -0
  47. {apify-1.7.1b3 → apify-1.7.1b5}/src/apify.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apify
3
- Version: 1.7.1b3
3
+ Version: 1.7.1b5
4
4
  Summary: Apify SDK for Python
5
5
  Author-email: "Apify Technologies s.r.o." <support@apify.com>
6
6
  License: Apache Software License
@@ -37,23 +37,23 @@ Requires-Dist: sortedcollections>=2.0.1
37
37
  Requires-Dist: typing-extensions>=4.1.0
38
38
  Requires-Dist: websockets>=10.1
39
39
  Provides-Extra: dev
40
- Requires-Dist: build~=1.0.3; extra == "dev"
41
- Requires-Dist: filelock~=3.12.4; extra == "dev"
42
- Requires-Dist: mypy~=1.7.1; extra == "dev"
43
- Requires-Dist: pre-commit~=3.4.0; extra == "dev"
44
- Requires-Dist: pydoc-markdown~=4.8.2; extra == "dev"
45
- Requires-Dist: pytest~=7.4.2; extra == "dev"
46
- Requires-Dist: pytest-asyncio~=0.21.0; extra == "dev"
47
- Requires-Dist: pytest-cov~=4.1.0; extra == "dev"
48
- Requires-Dist: pytest-only~=2.0.0; extra == "dev"
49
- Requires-Dist: pytest-timeout~=2.2.0; extra == "dev"
50
- Requires-Dist: pytest-xdist~=3.3.1; extra == "dev"
51
- Requires-Dist: respx~=0.20.1; extra == "dev"
52
- Requires-Dist: ruff~=0.1.13; extra == "dev"
53
- Requires-Dist: twine~=4.0.2; extra == "dev"
54
- Requires-Dist: types-aiofiles~=23.2.0.0; extra == "dev"
55
- Requires-Dist: types-colorama~=0.4.15.12; extra == "dev"
56
- Requires-Dist: types-psutil~=5.9.5.17; extra == "dev"
40
+ Requires-Dist: build~=1.2.0; extra == "dev"
41
+ Requires-Dist: filelock~=3.14.0; extra == "dev"
42
+ Requires-Dist: mypy~=1.10.0; extra == "dev"
43
+ Requires-Dist: pre-commit~=3.5.0; extra == "dev"
44
+ Requires-Dist: pydoc-markdown~=4.8.0; extra == "dev"
45
+ Requires-Dist: pytest~=8.2.0; extra == "dev"
46
+ Requires-Dist: pytest-asyncio~=0.23.0; extra == "dev"
47
+ Requires-Dist: pytest-cov~=5.0.0; extra == "dev"
48
+ Requires-Dist: pytest-only~=2.1.0; extra == "dev"
49
+ Requires-Dist: pytest-timeout~=2.3.0; extra == "dev"
50
+ Requires-Dist: pytest-xdist~=3.6.0; extra == "dev"
51
+ Requires-Dist: respx~=0.21.0; extra == "dev"
52
+ Requires-Dist: ruff~=0.4.0; extra == "dev"
53
+ Requires-Dist: twine~=5.1.0; extra == "dev"
54
+ Requires-Dist: types-aiofiles~=23.2.0.20240403; extra == "dev"
55
+ Requires-Dist: types-colorama~=0.4.15.20240311; extra == "dev"
56
+ Requires-Dist: types-psutil~=5.9.5.20240516; extra == "dev"
57
57
  Provides-Extra: scrapy
58
58
  Requires-Dist: scrapy>=2.11.0; extra == "scrapy"
59
59
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "apify"
3
- version = "1.7.1b3"
3
+ version = "1.7.1b5"
4
4
  description = "Apify SDK for Python"
5
5
  readme = "README.md"
6
6
  license = { text = "Apache Software License" }
@@ -42,23 +42,23 @@ dependencies = [
42
42
 
43
43
  [project.optional-dependencies]
44
44
  dev = [
45
- "build ~= 1.0.3",
46
- "filelock ~= 3.12.4",
47
- "mypy ~= 1.7.1",
48
- "pre-commit ~= 3.4.0",
49
- "pydoc-markdown ~= 4.8.2",
50
- "pytest ~= 7.4.2",
51
- "pytest-asyncio ~= 0.21.0",
52
- "pytest-cov ~= 4.1.0",
53
- "pytest-only ~= 2.0.0",
54
- "pytest-timeout ~= 2.2.0",
55
- "pytest-xdist ~= 3.3.1",
56
- "respx ~= 0.20.1",
57
- "ruff ~= 0.1.13",
58
- "twine ~= 4.0.2",
59
- "types-aiofiles ~= 23.2.0.0",
60
- "types-colorama ~= 0.4.15.12",
61
- "types-psutil ~= 5.9.5.17",
45
+ "build ~= 1.2.0",
46
+ "filelock ~= 3.14.0",
47
+ "mypy ~= 1.10.0",
48
+ "pre-commit ~= 3.5.0",
49
+ "pydoc-markdown ~= 4.8.0",
50
+ "pytest ~= 8.2.0",
51
+ "pytest-asyncio ~= 0.23.0",
52
+ "pytest-cov ~= 5.0.0",
53
+ "pytest-only ~= 2.1.0",
54
+ "pytest-timeout ~= 2.3.0",
55
+ "pytest-xdist ~= 3.6.0",
56
+ "respx ~= 0.21.0",
57
+ "ruff ~= 0.4.0",
58
+ "twine ~= 5.1.0",
59
+ "types-aiofiles ~= 23.2.0.20240403",
60
+ "types-colorama ~= 0.4.15.20240311",
61
+ "types-psutil ~= 5.9.5.20240516",
62
62
  ]
63
63
  scrapy = [
64
64
  "scrapy >= 2.11.0",
@@ -5,7 +5,7 @@ import contextlib
5
5
  import inspect
6
6
  import os
7
7
  import sys
8
- from datetime import datetime, timezone
8
+ from datetime import datetime, timedelta, timezone
9
9
  from typing import TYPE_CHECKING, Any, Awaitable, Callable, TypeVar, cast
10
10
 
11
11
  from apify_client import ApifyClientAsync
@@ -301,6 +301,7 @@ class Actor(metaclass=_ActorContextManager):
301
301
  exit_code: int = 0,
302
302
  event_listeners_timeout_secs: float | None = EVENT_LISTENERS_TIMEOUT_SECS,
303
303
  status_message: str | None = None,
304
+ cleanup_timeout: timedelta = timedelta(seconds=30),
304
305
  ) -> None:
305
306
  """Exit the actor instance.
306
307
 
@@ -314,11 +315,13 @@ class Actor(metaclass=_ActorContextManager):
314
315
  exit_code (int, optional): The exit code with which the actor should fail (defaults to `0`).
315
316
  event_listeners_timeout_secs (float, optional): How long should the actor wait for actor event listeners to finish before exiting.
316
317
  status_message (str, optional): The final status message that the actor should display.
318
+ cleanup_timeout (timedelta, optional): How long we should wait for event listeners.
317
319
  """
318
320
  return await cls._get_default_instance().exit(
319
321
  exit_code=exit_code,
320
322
  event_listeners_timeout_secs=event_listeners_timeout_secs,
321
323
  status_message=status_message,
324
+ cleanup_timeout=cleanup_timeout,
322
325
  )
323
326
 
324
327
  async def _exit_internal(
@@ -327,6 +330,7 @@ class Actor(metaclass=_ActorContextManager):
327
330
  exit_code: int = 0,
328
331
  event_listeners_timeout_secs: float | None = EVENT_LISTENERS_TIMEOUT_SECS,
329
332
  status_message: str | None = None,
333
+ cleanup_timeout: timedelta = timedelta(seconds=30),
330
334
  ) -> None:
331
335
  self._raise_if_not_initialized()
332
336
 
@@ -336,21 +340,23 @@ class Actor(metaclass=_ActorContextManager):
336
340
 
337
341
  self.log.info('Exiting actor', extra={'exit_code': exit_code})
338
342
 
339
- await self._cancel_event_emitting_intervals()
343
+ async def finalize() -> None:
344
+ await self._cancel_event_emitting_intervals()
340
345
 
341
- # Send final persist state event
342
- if not self._was_final_persist_state_emitted:
343
- self._event_manager.emit(ActorEventTypes.PERSIST_STATE, {'isMigrating': False})
344
- self._was_final_persist_state_emitted = True
346
+ # Send final persist state event
347
+ if not self._was_final_persist_state_emitted:
348
+ self._event_manager.emit(ActorEventTypes.PERSIST_STATE, {'isMigrating': False})
349
+ self._was_final_persist_state_emitted = True
345
350
 
346
- if status_message is not None:
347
- await self.set_status_message(status_message, is_terminal=True)
351
+ if status_message is not None:
352
+ await self.set_status_message(status_message, is_terminal=True)
348
353
 
349
- # Sleep for a bit so that the listeners have a chance to trigger
350
- await asyncio.sleep(0.1)
354
+ # Sleep for a bit so that the listeners have a chance to trigger
355
+ await asyncio.sleep(0.1)
351
356
 
352
- await self._event_manager.close(event_listeners_timeout_secs=event_listeners_timeout_secs)
357
+ await self._event_manager.close(event_listeners_timeout_secs=event_listeners_timeout_secs)
353
358
 
359
+ await asyncio.wait_for(finalize(), cleanup_timeout.total_seconds())
354
360
  self._is_initialized = False
355
361
 
356
362
  if is_running_in_ipython():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apify
3
- Version: 1.7.1b3
3
+ Version: 1.7.1b5
4
4
  Summary: Apify SDK for Python
5
5
  Author-email: "Apify Technologies s.r.o." <support@apify.com>
6
6
  License: Apache Software License
@@ -37,23 +37,23 @@ Requires-Dist: sortedcollections>=2.0.1
37
37
  Requires-Dist: typing-extensions>=4.1.0
38
38
  Requires-Dist: websockets>=10.1
39
39
  Provides-Extra: dev
40
- Requires-Dist: build~=1.0.3; extra == "dev"
41
- Requires-Dist: filelock~=3.12.4; extra == "dev"
42
- Requires-Dist: mypy~=1.7.1; extra == "dev"
43
- Requires-Dist: pre-commit~=3.4.0; extra == "dev"
44
- Requires-Dist: pydoc-markdown~=4.8.2; extra == "dev"
45
- Requires-Dist: pytest~=7.4.2; extra == "dev"
46
- Requires-Dist: pytest-asyncio~=0.21.0; extra == "dev"
47
- Requires-Dist: pytest-cov~=4.1.0; extra == "dev"
48
- Requires-Dist: pytest-only~=2.0.0; extra == "dev"
49
- Requires-Dist: pytest-timeout~=2.2.0; extra == "dev"
50
- Requires-Dist: pytest-xdist~=3.3.1; extra == "dev"
51
- Requires-Dist: respx~=0.20.1; extra == "dev"
52
- Requires-Dist: ruff~=0.1.13; extra == "dev"
53
- Requires-Dist: twine~=4.0.2; extra == "dev"
54
- Requires-Dist: types-aiofiles~=23.2.0.0; extra == "dev"
55
- Requires-Dist: types-colorama~=0.4.15.12; extra == "dev"
56
- Requires-Dist: types-psutil~=5.9.5.17; extra == "dev"
40
+ Requires-Dist: build~=1.2.0; extra == "dev"
41
+ Requires-Dist: filelock~=3.14.0; extra == "dev"
42
+ Requires-Dist: mypy~=1.10.0; extra == "dev"
43
+ Requires-Dist: pre-commit~=3.5.0; extra == "dev"
44
+ Requires-Dist: pydoc-markdown~=4.8.0; extra == "dev"
45
+ Requires-Dist: pytest~=8.2.0; extra == "dev"
46
+ Requires-Dist: pytest-asyncio~=0.23.0; extra == "dev"
47
+ Requires-Dist: pytest-cov~=5.0.0; extra == "dev"
48
+ Requires-Dist: pytest-only~=2.1.0; extra == "dev"
49
+ Requires-Dist: pytest-timeout~=2.3.0; extra == "dev"
50
+ Requires-Dist: pytest-xdist~=3.6.0; extra == "dev"
51
+ Requires-Dist: respx~=0.21.0; extra == "dev"
52
+ Requires-Dist: ruff~=0.4.0; extra == "dev"
53
+ Requires-Dist: twine~=5.1.0; extra == "dev"
54
+ Requires-Dist: types-aiofiles~=23.2.0.20240403; extra == "dev"
55
+ Requires-Dist: types-colorama~=0.4.15.20240311; extra == "dev"
56
+ Requires-Dist: types-psutil~=5.9.5.20240516; extra == "dev"
57
57
  Provides-Extra: scrapy
58
58
  Requires-Dist: scrapy>=2.11.0; extra == "scrapy"
59
59
 
@@ -0,0 +1,34 @@
1
+ apify-client~=1.6.2
2
+ apify-shared~=1.1.1
3
+ aiofiles>=22.1.0
4
+ aioshutil>=1.0
5
+ colorama>=0.4.6
6
+ cryptography>=39.0.0
7
+ httpx>=0.24.1
8
+ psutil>=5.9.5
9
+ pyee>=11.0.1
10
+ sortedcollections>=2.0.1
11
+ typing-extensions>=4.1.0
12
+ websockets>=10.1
13
+
14
+ [dev]
15
+ build~=1.2.0
16
+ filelock~=3.14.0
17
+ mypy~=1.10.0
18
+ pre-commit~=3.5.0
19
+ pydoc-markdown~=4.8.0
20
+ pytest~=8.2.0
21
+ pytest-asyncio~=0.23.0
22
+ pytest-cov~=5.0.0
23
+ pytest-only~=2.1.0
24
+ pytest-timeout~=2.3.0
25
+ pytest-xdist~=3.6.0
26
+ respx~=0.21.0
27
+ ruff~=0.4.0
28
+ twine~=5.1.0
29
+ types-aiofiles~=23.2.0.20240403
30
+ types-colorama~=0.4.15.20240311
31
+ types-psutil~=5.9.5.20240516
32
+
33
+ [scrapy]
34
+ scrapy>=2.11.0
@@ -1,34 +0,0 @@
1
- apify-client~=1.6.2
2
- apify-shared~=1.1.1
3
- aiofiles>=22.1.0
4
- aioshutil>=1.0
5
- colorama>=0.4.6
6
- cryptography>=39.0.0
7
- httpx>=0.24.1
8
- psutil>=5.9.5
9
- pyee>=11.0.1
10
- sortedcollections>=2.0.1
11
- typing-extensions>=4.1.0
12
- websockets>=10.1
13
-
14
- [dev]
15
- build~=1.0.3
16
- filelock~=3.12.4
17
- mypy~=1.7.1
18
- pre-commit~=3.4.0
19
- pydoc-markdown~=4.8.2
20
- pytest~=7.4.2
21
- pytest-asyncio~=0.21.0
22
- pytest-cov~=4.1.0
23
- pytest-only~=2.0.0
24
- pytest-timeout~=2.2.0
25
- pytest-xdist~=3.3.1
26
- respx~=0.20.1
27
- ruff~=0.1.13
28
- twine~=4.0.2
29
- types-aiofiles~=23.2.0.0
30
- types-colorama~=0.4.15.12
31
- types-psutil~=5.9.5.17
32
-
33
- [scrapy]
34
- scrapy>=2.11.0
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