Esempio n. 1
0
    def __init__(self, api_key='kitefront', userid=None, *args, **kw):
        KiteConnect.__init__(self, api_key=api_key, *args, **kw)

        if userid is not None:
            self.user_id = userid

        self._routes.update({
            'api.login': '******',
            'api.twofa': '/api/twofa',
            'api.misdata': '/margins/equity'
        })
Esempio n. 2
0
    def _create(self, *args, **kwargs):
        # pylint: disable=bad-super-call
        #super(self.__class__, self).__init__(*args, **kwargs)
        api_key = kwargs.pop('api_key', None)
        access_token = kwargs.pop('access_token', None)
        root = kwargs.pop('root', None)
        debug = kwargs.pop('debug', False)
        timeout = kwargs.pop('timeout', None)
        proxies = kwargs.pop('proxies', None)
        pool = kwargs.pop('pool', None)
        disable_ssl = kwargs.pop('disable_ssl', False)

        KiteConnect.__init__(self, api_key, access_token, root, debug, timeout,
                             proxies, pool, disable_ssl)
        APIRateLimitMixin.__init__(self, *args, **kwargs)

        # max instruments that can be queried at one call
        self._max_instruments = kwargs.pop("max_instruments", None)
        self._trading_calendar = kwargs.get("trading_calendar", None)

        if not self._rate_limit:
            # Kite has 3 per sec, we are conservative
            self._rate_limit = 2
            self._rate_limit_count = self._rate_limit

        if not self._rate_period:
            self._rate_period = 1

        if not self._max_instruments:
            # max allowed is 500 for current, and one for history
            self._max_instruments = 50

        # we reset this value on first call
        self._rate_limit_since = None

        if not self._trading_calendar:
            raise ValidationError(msg="missing calendar")