Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
integration.py67 linesDownload Raw Back to starlette_client
1import json2import time3from typing import (4    Any,5    Dict,6    Hashable,7    Optional,8)9 10from ..base_client import FrameworkIntegration11 12 13class StarletteIntegration(FrameworkIntegration):14    async def _get_cache_data(self, key: Hashable):15        value = await self.cache.get(key)16        if not value:17            return None18        try:19            return json.loads(value)20        except (TypeError, ValueError):21            return None22 23    async def get_state_data(self, session: Optional[Dict[str, Any]], state: str) -> Dict[str, Any]:24        key = f'_state_{self.name}_{state}'25        if self.cache:26            value = await self._get_cache_data(key)27        elif session is not None:28            value = session.get(key)29        else:30            value = None31 32        if value:33            return value.get('data')34        return None35 36    async def set_state_data(self, session: Optional[Dict[str, Any]], state: str, data: Any):37        key = f'_state_{self.name}_{state}'38        if self.cache:39            await self.cache.set(key, json.dumps({'data': data}), self.expires_in)40        elif session is not None:41            now = time.time()42            session[key] = {'data': data, 'exp': now + self.expires_in}43 44    async def clear_state_data(self, session: Optional[Dict[str, Any]], state: str):45        key = f'_state_{self.name}_{state}'46        if self.cache:47            await self.cache.delete(key)48        elif session is not None:49            session.pop(key, None)50            self._clear_session_state(session)51 52    def update_token(self, token, refresh_token=None, access_token=None):53        pass54 55    @staticmethod56    def load_config(oauth, name, params):57        if not oauth.config:58            return {}59 60        rv = {}61        for k in params:62            conf_key = f'{name}_{k}'.upper()63            v = oauth.config.get(conf_key, default=None)64            if v is not None:65                rv[k] = v66        return rv67 
codekingpro/portable-devtools · Team Ai