Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 def connection_status(self):
     return dxp.dxf_get_current_connection_status(self.__connection, return_str=True)
Ejemplo n.º 4
0
def test_connection_status(connection):
    exp_status = 'Connected'
    act_status = dxc.dxf_get_current_connection_status(connection)
    assert exp_status == act_status