diff --git a/telebot/apihelper.py b/telebot/apihelper.py index ae72e37..a5e1df3 100644 --- a/telebot/apihelper.py +++ b/telebot/apihelper.py @@ -27,8 +27,8 @@ CONNECT_TIMEOUT = 3.5 READ_TIMEOUT = 9999 -def _get_req_session(): - return util.per_thread('req_session', lambda: requests.session()) +def _get_req_session(reset=False): + return util.per_thread('req_session', lambda: requests.session(), reset) def _make_request(token, method_name, method='get', params=None, files=None, base_url=API_URL): diff --git a/telebot/util.py b/telebot/util.py index f448d78..e16ebb5 100644 --- a/telebot/util.py +++ b/telebot/util.py @@ -248,13 +248,12 @@ def extract_arguments(text): return result.group(2) if is_command(text) else None -def per_thread(key, construct_value): - try: - return getattr(thread_local, key) - except AttributeError: +def per_thread(key, construct_value, reset=False): + if reset or not hasattr(thread_local, key): value = construct_value() setattr(thread_local, key, value) - return value + + return getattr(thread_local, key) def generate_random_token():