Skip to content

Commit 2674cf2

Browse files
committed
Remove unnecessary actor_name argument
1 parent 02a1eb2 commit 2674cf2

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

src/apify_client/clients/resource_clients/actor.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,7 @@ def call(
337337

338338
run_client = self.root_client.run(run_id=started_run['id'])
339339
if logger == 'default':
340-
actor_data = self.get()
341-
actor_name = actor_data.get('name', '') if actor_data else ''
342-
log_context = run_client.get_streamed_log(actor_name=actor_name)
340+
log_context = run_client.get_streamed_log()
343341
else:
344342
log_context = run_client.get_streamed_log(to_logger=logger)
345343

@@ -745,9 +743,7 @@ async def call(
745743

746744
run_client = self.root_client.run(run_id=started_run['id'])
747745
if logger == 'default':
748-
actor_data = await self.get()
749-
actor_name = actor_data.get('name', '') if actor_data else ''
750-
log_context = await run_client.get_streamed_log(actor_name=actor_name)
746+
log_context = await run_client.get_streamed_log()
751747
else:
752748
log_context = await run_client.get_streamed_log(to_logger=logger)
753749

src/apify_client/clients/resource_clients/run.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,16 +255,13 @@ def log(self) -> LogClient:
255255
**self._sub_resource_init_options(resource_path='log'),
256256
)
257257

258-
def get_streamed_log(
259-
self, to_logger: logging.Logger | None = None, *, actor_name: str = '', from_start: bool = True
260-
) -> StreamedLogSync:
258+
def get_streamed_log(self, to_logger: logging.Logger | None = None, *, from_start: bool = True) -> StreamedLogSync:
261259
"""Get `StreamedLog` instance that can be used to redirect logs.
262260
263261
`StreamedLog` can be directly called or used as a context manager.
264262
265263
Args:
266264
to_logger: `Logger` used for logging the redirected messages. If not provided, a new logger is created
267-
actor_name: Optional component of default logger name.
268265
from_start: If `True`, all logs from the start of the actor run will be redirected. If `False`, only newly
269266
arrived logs will be redirected. This can be useful for redirecting only a small portion of relevant
270267
logs for long-running actors in stand-by.
@@ -275,6 +272,10 @@ def get_streamed_log(
275272
run_data = self.get()
276273
run_id = run_data.get('id', '') if run_data else ''
277274

275+
actor_id = run_data.get('actId', '') if run_data else ''
276+
actor_data = self.root_client.actor(actor_id=actor_id).get() or {}
277+
actor_name = actor_data.get('name', '') if run_data else ''
278+
278279
if not to_logger:
279280
name = '-'.join(part for part in (actor_name, run_id) if part)
280281
to_logger = create_redirect_logger(f'apify.{name}')
@@ -549,15 +550,14 @@ def log(self) -> LogClientAsync:
549550
)
550551

551552
async def get_streamed_log(
552-
self, to_logger: logging.Logger | None = None, *, actor_name: str = '', from_start: bool = True
553+
self, to_logger: logging.Logger | None = None, *, from_start: bool = True
553554
) -> StreamedLogAsync:
554555
"""Get `StreamedLog` instance that can be used to redirect logs.
555556
556557
`StreamedLog` can be directly called or used as a context manager.
557558
558559
Args:
559560
to_logger: `Logger` used for logging the redirected messages. If not provided, a new logger is created
560-
actor_name: Optional component of default logger name.
561561
from_start: If `True`, all logs from the start of the actor run will be redirected. If `False`, only newly
562562
arrived logs will be redirected. This can be useful for redirecting only a small portion of relevant
563563
logs for long-running actors in stand-by.
@@ -568,6 +568,10 @@ async def get_streamed_log(
568568
run_data = await self.get()
569569
run_id = run_data.get('id', '') if run_data else ''
570570

571+
actor_id = run_data.get('actId', '') if run_data else ''
572+
actor_data = await self.root_client.actor(actor_id=actor_id).get() or {}
573+
actor_name = actor_data.get('name', '') if run_data else ''
574+
571575
if not to_logger:
572576
name = '-'.join(part for part in (actor_name, run_id) if part)
573577
to_logger = create_redirect_logger(f'apify.{name}')

tests/unit/test_logging.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,21 @@ def mock_api() -> None:
5353
actor_runs_responses = iter(
5454
(
5555
httpx.Response(
56-
content=json.dumps({'data': {'id': _MOCKED_RUN_ID, 'status': ActorJobStatus.RUNNING}}), status_code=200
56+
content=json.dumps(
57+
{'data': {'id': _MOCKED_RUN_ID, 'actId': _MOCKED_ACTOR_ID, 'status': ActorJobStatus.RUNNING}}
58+
),
59+
status_code=200,
5760
),
5861
httpx.Response(
59-
content=json.dumps({'data': {'id': _MOCKED_RUN_ID, 'status': ActorJobStatus.RUNNING}}), status_code=200
62+
content=json.dumps(
63+
{'data': {'id': _MOCKED_RUN_ID, 'actId': _MOCKED_ACTOR_ID, 'status': ActorJobStatus.RUNNING}}
64+
),
65+
status_code=200,
6066
),
6167
httpx.Response(
62-
content=json.dumps({'data': {'id': _MOCKED_RUN_ID, 'status': ActorJobStatus.SUCCEEDED}}),
68+
content=json.dumps(
69+
{'data': {'id': _MOCKED_RUN_ID, 'actId': _MOCKED_ACTOR_ID, 'status': ActorJobStatus.SUCCEEDED}}
70+
),
6371
status_code=200,
6472
),
6573
)
@@ -137,15 +145,15 @@ async def test_redirected_logs_async(
137145
with patch('apify_client.clients.resource_clients.log.datetime') as mocked_datetime:
138146
# Mock `now()` so that it has timestamp bigger than the first 3 logs
139147
mocked_datetime.now.return_value = datetime.fromisoformat('2025-05-13T07:24:14.132+00:00')
140-
streamed_log = await run_client.get_streamed_log(actor_name=_MOCKED_ACTOR_NAME, from_start=log_from_start)
148+
streamed_log = await run_client.get_streamed_log(from_start=log_from_start)
141149

142150
# Set `propagate=True` during the tests, so that caplog can see the logs..
143151
logger_name = f'apify.{_MOCKED_ACTOR_NAME}-{_MOCKED_RUN_ID}'
144152

145153
with caplog.at_level(logging.DEBUG, logger=logger_name):
146154
async with streamed_log:
147155
# Do stuff while the log from the other actor is being redirected to the logs.
148-
await asyncio.sleep(1)
156+
await asyncio.sleep(2)
149157

150158
assert len(caplog.records) == expected_log_count
151159
for expected_message_and_level, record in zip(_EXPECTED_MESSAGES_AND_LEVELS[-expected_log_count:], caplog.records):
@@ -172,14 +180,14 @@ def test_redirected_logs_sync(
172180
with patch('apify_client.clients.resource_clients.log.datetime') as mocked_datetime:
173181
# Mock `now()` so that it has timestamp bigger than the first 3 logs
174182
mocked_datetime.now.return_value = datetime.fromisoformat('2025-05-13T07:24:14.132+00:00')
175-
streamed_log = run_client.get_streamed_log(actor_name=_MOCKED_ACTOR_NAME, from_start=log_from_start)
183+
streamed_log = run_client.get_streamed_log(from_start=log_from_start)
176184

177185
# Set `propagate=True` during the tests, so that caplog can see the logs..
178186
logger_name = f'apify.{_MOCKED_ACTOR_NAME}-{_MOCKED_RUN_ID}'
179187

180188
with caplog.at_level(logging.DEBUG, logger=logger_name), streamed_log:
181189
# Do stuff while the log from the other actor is being redirected to the logs.
182-
time.sleep(1)
190+
time.sleep(2)
183191

184192
assert len(caplog.records) == expected_log_count
185193
for expected_message_and_level, record in zip(_EXPECTED_MESSAGES_AND_LEVELS[-expected_log_count:], caplog.records):

0 commit comments

Comments
 (0)