def create_subscription(self, event_type: str, date_time: Union[str, datetime] = None): """ Method creates certain event type subscription and returns Subscription class Parameters ---------- event_type: str One of possible event types: 'Trade', 'Quote', 'Summary', 'Profile', 'Order', 'TimeAndSale', 'Candle', 'TradeETH', 'SpreadOrder', 'Greeks', 'TheoPrice', 'Underlying', 'Series', 'Configuration' or '' date_time: str or datetime.datetime If present timed subscription will be created (conflated stream). For sting date format is following: %Y-%m-%d %H:%M:%S.%f. If None - stream subscription will be created. Default - None. Note ---- Some event types (e.g. Candle) support only timed subscription. Returns ------- subscription: Subscription Subscription class related to current connection """ con_status = dxp.dxf_get_current_connection_status(self.__connection, return_str=False) if con_status == 0 or con_status == 2: raise ValueError('Connection is not established') subscription = Subscription(connection=self.__connection, event_type=event_type, date_time=date_time) return subscription
def connect(self, reconnect: bool = True): """ Creates connection. If connection status differs from "Not connected" and `reconnect` is False, does nothing Parameters ---------- reconnect: bool When True closes previous connection. Default - True Returns ------- self: Endpoint """ if reconnect: dxp.dxf_close_connection(self.__connection) con_status = dxp.dxf_get_current_connection_status(self.__connection, return_str=True) if con_status == 'Not connected': self.__connection = dxp.dxf_create_connection(self.address) return self
def connection_status(self): return dxp.dxf_get_current_connection_status(self.__connection, return_str=True)
def test_connection_status(connection): exp_status = 'Connected' act_status = dxc.dxf_get_current_connection_status(connection) assert exp_status == act_status