[utils] Improve performance using functools.cache

Closes #3786
This commit is contained in:
pukkandan
2022-05-19 19:36:31 +05:30
parent 2f97cc615b
commit 0b9c08b47b
3 changed files with 19 additions and 3 deletions

View File

@@ -11,7 +11,6 @@ import datetime
import email.header
import email.utils
import errno
import functools
import gzip
import hashlib
import hmac
@@ -39,8 +38,8 @@ import urllib.parse
import xml.etree.ElementTree
import zlib
from .compat import asyncio, functools # Modules
from .compat import (
asyncio,
compat_chr,
compat_cookiejar,
compat_etree_fromstring,
@@ -248,6 +247,7 @@ JSON_LD_RE = r'(?is)<script[^>]+type=(["\']?)application/ld\+json\1[^>]*>(?P<jso
NUMBER_RE = r'\d+(?:\.\d+)?'
@functools.cache
def preferredencoding():
"""Get preferred encoding.
@@ -1883,6 +1883,7 @@ def platform_name():
return res
@functools.cache
def get_windows_version():
''' Get Windows version. None if it's not running on Windows '''
if compat_os_name == 'nt':
@@ -2079,6 +2080,7 @@ class locked_file:
return iter(self.f)
@functools.cache
def get_filesystem_encoding():
encoding = sys.getfilesystemencoding()
return encoding if encoding is not None else 'utf-8'
@@ -5092,6 +5094,7 @@ def jwt_decode_hs256(jwt):
return payload_data
@functools.cache
def supports_terminal_sequences(stream):
if compat_os_name == 'nt':
from .compat import WINDOWS_VT_MODE # Must be imported locally