Skip to content

Commit a70c973

Browse files
CAIP-119 Fix datahose loop (#376)
* Fix datahose implementation: use datahose api in datahose loop replacing the datafeed api
1 parent 5c67a1d commit a70c973

5 files changed

Lines changed: 14 additions & 10 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "symphony_bdk_python"
3-
version = "2.11.0"
3+
version = "2.11.1"
44
license = "Apache-2.0"
55
description = "Symphony Bot Development Kit for Python"
66
readme = "README.md"

symphony/bdk/core/service/datafeed/abstract_ackId_event_loop.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import logging
22
import time
33
from abc import ABC, abstractmethod
4+
from typing import Union
45

56
from symphony.bdk.core.auth.auth_session import AuthSession
67
from symphony.bdk.core.config.model.bdk_config import BdkConfig
78
from symphony.bdk.core.service.datafeed.abstract_datafeed_loop import AbstractDatafeedLoop
89
from symphony.bdk.core.service.datafeed.exception import EventError
910
from symphony.bdk.core.service.session.session_service import SessionService
1011
from symphony.bdk.gen.agent_api.datafeed_api import DatafeedApi
12+
from symphony.bdk.gen.agent_api.datahose_api import DatahoseApi
1113

1214
EVENT_PROCESSING_MAX_DURATION_SECONDS = 30
1315

@@ -19,14 +21,14 @@ class AbstractAckIdEventLoop(AbstractDatafeedLoop, ABC):
1921

2022
def __init__(
2123
self,
22-
datafeed_api: DatafeedApi,
24+
datafeed_api: Union[DatafeedApi, DatahoseApi],
2325
session_service: SessionService,
2426
auth_session: AuthSession,
2527
config: BdkConfig,
2628
):
2729
"""
2830
29-
:param datafeed_api: DatafeedApi to request the service
31+
:param datafeed_api: DatafeedApi or DatahoseApi to request the service
3032
:param session_service: the SessionService to get user session information
3133
:param auth_session: the AuthSession instance used to get session and key manager tokens
3234
:param config: the bot configuration

symphony/bdk/core/service/datafeed/abstract_datafeed_loop.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
from asyncio import Task
77
from contextvars import ContextVar
88
from enum import Enum
9-
from typing import List
9+
from typing import List, Union
1010

1111
from symphony.bdk.core.auth.auth_session import AuthSession
1212
from symphony.bdk.core.config.model.bdk_config import BdkConfig
1313
from symphony.bdk.core.service.datafeed.real_time_event_listener import RealTimeEventListener
1414
from symphony.bdk.core.service.session.session_service import SessionService
1515
from symphony.bdk.gen.agent_api.datafeed_api import DatafeedApi
16+
from symphony.bdk.gen.agent_api.datahose_api import DatahoseApi
1617
from symphony.bdk.gen.agent_model.v4_event import V4Event
1718

1819
logger = logging.getLogger(__name__)
@@ -72,14 +73,14 @@ class AbstractDatafeedLoop(ABC):
7273

7374
def __init__(
7475
self,
75-
datafeed_api: DatafeedApi,
76+
datafeed_api: Union[DatafeedApi, DatahoseApi],
7677
session_service: SessionService,
7778
auth_session: AuthSession,
7879
config: BdkConfig,
7980
):
8081
"""
8182
82-
:param datafeed_api: DatafeedApi to request the service
83+
:param datafeed_api: DatafeedApi or DatahoseApi to request the service
8384
:param session_service: the SessionService to get user session information
8485
:param auth_session: the AuthSession instance used to get session and key manager tokens
8586
:param config: the bot configuration

symphony/bdk/core/service/datafeed/datahose_loop.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from symphony.bdk.core.service.datafeed.abstract_ackId_event_loop import AbstractAckIdEventLoop
88
from symphony.bdk.core.service.datafeed.abstract_datahose_loop import AbstractDatahoseLoop
99
from symphony.bdk.core.service.session.session_service import SessionService
10-
from symphony.bdk.gen.agent_api.datafeed_api import DatafeedApi
10+
from symphony.bdk.gen.agent_api.datahose_api import DatahoseApi
1111
from symphony.bdk.gen.agent_model.v5_events_read_body import V5EventsReadBody
1212

1313
# DFv2 API authorizes a maximum length for the tag parameter
@@ -30,12 +30,12 @@ class DatahoseLoop(AbstractAckIdEventLoop, AbstractDatahoseLoop):
3030

3131
def __init__(
3232
self,
33-
datafeed_api: DatafeedApi,
33+
datahose_api: DatahoseApi,
3434
session_service: SessionService,
3535
auth_session: AuthSession,
3636
config: BdkConfig,
3737
):
38-
super().__init__(datafeed_api, session_service, auth_session, config)
38+
super().__init__(datahose_api, session_service, auth_session, config)
3939
if config.datahose is not None:
4040
not_truncated_tag = (
4141
config.datahose.tag

symphony/bdk/core/service_factory.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from symphony.bdk.gen.agent_api.attachments_api import AttachmentsApi
3131
from symphony.bdk.gen.agent_api.audit_trail_api import AuditTrailApi
3232
from symphony.bdk.gen.agent_api.datafeed_api import DatafeedApi
33+
from symphony.bdk.gen.agent_api.datahose_api import DatahoseApi
3334
from symphony.bdk.gen.agent_api.share_api import ShareApi
3435
from symphony.bdk.gen.agent_api.signals_api import SignalsApi
3536
from symphony.bdk.gen.agent_api.system_api import SystemApi as AgentSystemApi
@@ -175,7 +176,7 @@ def get_datahose_loop(self) -> AbstractDatahoseLoop:
175176
"""
176177
if self._config.datahose is not None:
177178
return DatahoseLoop(
178-
DatafeedApi(self._agent_client),
179+
DatahoseApi(self._agent_client),
179180
self._session_service,
180181
self._auth_session,
181182
self._config,

0 commit comments

Comments
 (0)