From e125e74281832f75e22994ed226acab61bed73db Mon Sep 17 00:00:00 2001 From: chensgit169 Date: Wed, 26 Jul 2023 15:23:21 +0800 Subject: [PATCH 1/2] fix error due to api-token missing --- src/quafu/users/_quafu_url.py | 1 - src/quafu/users/userapi.py | 31 +++++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) delete mode 100644 src/quafu/users/_quafu_url.py diff --git a/src/quafu/users/_quafu_url.py b/src/quafu/users/_quafu_url.py deleted file mode 100644 index 076cf401..00000000 --- a/src/quafu/users/_quafu_url.py +++ /dev/null @@ -1 +0,0 @@ -QUAFU_URL = "https://quafu.baqis.ac.cn/" diff --git a/src/quafu/users/userapi.py b/src/quafu/users/userapi.py index 6f464340..d056c64b 100644 --- a/src/quafu/users/userapi.py +++ b/src/quafu/users/userapi.py @@ -3,7 +3,7 @@ import requests -from .exceptions import UserError +from .exceptions import UserError, APITokenNotFound from ..utils.platform import get_homedir @@ -15,7 +15,7 @@ class User(object): exec_async_api = url + "qbackend/scq_kit_asyc/" exec_recall_api = url + "qbackend/scq_task_recall/" - def __init__(self, api_token: str = None, token_dir: str = None): + def __init__(self, api_token: str = '', token_dir: str = None): """ Initialize user account and load backend information. @@ -29,13 +29,20 @@ def __init__(self, api_token: str = None, token_dir: str = None): else: self.token_dir = token_dir - if api_token is None: - self.api_token = self._load_account_token() + if api_token == '': + self._api_token = self._load_account_token() else: - self.api_token = api_token + self._api_token = api_token self.priority = 2 + @property + def api_token(self): + if self._api_token == '': + raise APITokenNotFound(f"API token not set, neither found at dir: '{self.token_dir}'. " + "Please set up by providing api_token/token_dir when initializing User.") + return self._api_token + def save_apitoken(self, apitoken=None): """ Save api-token associate your Quafu account. @@ -46,7 +53,7 @@ def save_apitoken(self, apitoken=None): "in the future, please set api token by providing 'api_token' " "or 'token_dir' when initialize User()." ) - self.api_token = apitoken + self._api_token = apitoken file_dir = self.token_dir if not os.path.exists(file_dir): @@ -61,12 +68,12 @@ def _load_account_token(self): TODO: expand to load more user information """ - try: - f = open(self.token_dir + "api", "r") - token = f.readline() - except FileNotFoundError: - raise UserError(f"API token file not found at: '{self.token_dir}'. " - "Please set up by providing api_token/token_dir when initializing User.") + file_dir = self.token_dir + "api" + if not os.path.exists(file_dir): + return '' + else: + f = open(file_dir, "r") + token = f.readline().strip() return token def _get_backends_info(self): From 3a108ad13bca77df1c574c6fef9eab8225962ce9 Mon Sep 17 00:00:00 2001 From: chensgit169 Date: Wed, 26 Jul 2023 15:42:57 +0800 Subject: [PATCH 2/2] fix error due to api-token missing --- src/quafu/users/userapi.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quafu/users/userapi.py b/src/quafu/users/userapi.py index d056c64b..6d68108f 100644 --- a/src/quafu/users/userapi.py +++ b/src/quafu/users/userapi.py @@ -15,7 +15,7 @@ class User(object): exec_async_api = url + "qbackend/scq_kit_asyc/" exec_recall_api = url + "qbackend/scq_task_recall/" - def __init__(self, api_token: str = '', token_dir: str = None): + def __init__(self, api_token: str = None, token_dir: str = None): """ Initialize user account and load backend information. @@ -29,7 +29,7 @@ def __init__(self, api_token: str = '', token_dir: str = None): else: self.token_dir = token_dir - if api_token == '': + if api_token is None: self._api_token = self._load_account_token() else: self._api_token = api_token @@ -38,7 +38,7 @@ def __init__(self, api_token: str = '', token_dir: str = None): @property def api_token(self): - if self._api_token == '': + if self._api_token is None: raise APITokenNotFound(f"API token not set, neither found at dir: '{self.token_dir}'. " "Please set up by providing api_token/token_dir when initializing User.") return self._api_token @@ -70,7 +70,7 @@ def _load_account_token(self): """ file_dir = self.token_dir + "api" if not os.path.exists(file_dir): - return '' + return None else: f = open(file_dir, "r") token = f.readline().strip()