apify-sdk-python
apify-sdk-python copied to clipboard
The Apify SDK for Python is the official library for creating Apify Actors in Python. It provides useful features like actor lifecycle management, local storage emulation, and actor event handling.
Setting `logger.propagate` to `False` in [@apify/crawlee-python PR #1156](https://github.com/apify/crawlee-python/pull/1156) causes caplog to stop capturing logs. This is known pytest behavior ([pytest-dev/pytest#3697](https://github.com/pytest-dev/pytest/issues/3697)). This leads to failing log-related tests when using Crawlee v0.6.7...
Example of broken job https://github.com/apify/apify-sdk-python/actions/runs/14596645969/job/40944164914?pr=459 : ``` ERROR tests/unit/actor/test_request_list.py::test_url_no_commas_regex_true_positives[https_with_hyphen] - KeyError: '__wrapped__' ERROR tests/unit/actor/test_request_list.py::test_url_no_commas_regex_true_positives[http_with_number_in_domain] - KeyError: '__wrapped__' ERROR tests/unit/actor/test_request_list.py::test_url_no_commas_regex_true_positives[http_with_subdomains_and_numbers] - KeyError: '__wrapped__' ERROR tests/unit/actor/test_request_list.py::test_url_no_commas_regex_true_positives[http_with_multiple_subdomains] - KeyError: '__wrapped__' ERROR tests/unit/actor/test_request_list.py::test_url_no_commas_regex_true_positives[http_short_domain] -...
- The result should match the behavior on the Crawlee website - see [apify/crawlee-python#1121](https://github.com/apify/crawlee-python/issues/1121). - Idea: Update [example-code-runner-py](https://github.com/apify/example-code-runner-py) to include a flag for entering the Actor context.
Utilize `ensure_context` decorator from Crawlee rather than calling `raise_if_...` method in the Actor class.
When running my scrapers with the latest Apify SDK (meaning https://github.com/apify/apify-sdk-python/commit/fd7650a5d5c6845bf90e7d48c31d5a9ff56fcc5f), I get timeouts on the following lines of code. These timeouts don't crash the scraper immediately, but they corrupt...
E.g. https://github.com/apify/apify-sdk-python/pull/425, https://github.com/apify/apify-sdk-python/pull/403
- Sync code from [docs guide](https://github.com/apify/apify-sdk-python/tree/master/docs/02-guides/code) to [apify/actor-templates](https://github.com/apify/actor-templates/tree/master/templates) on stable release. - As part of the github action stable release.
We should probably not do this: ```python class PlatformEventManager(EventManager): _connected_to_platform_websocket: asyncio.Future = asyncio.Future() ``` Warning: ``` apify/_platform_event_manager.py:138 /home/vdusek/Projects/crawlee-python/.venv/lib/python3.13/site-packages/apify/_platform_event_manager.py:138: DeprecationWarning: There is no current event loop _connected_to_platform_websocket: asyncio.Future = asyncio.Future() ```...
_ActorType aliased as Actor is very big class with many methods. https://github.com/apify/apify-sdk-python/blob/master/src/apify/_actor.py#L42 It is entry point of SDK and it would be nice if it was nicely structured. Having too...
Use `ApifyStorageClient(request_queue_access='shared')` for `test_concurrent_processing_simulation`. This is the expected usage for concurrent access. And fix the error in the test ### Issues Closes: #529