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' })
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")