Browse Source

Merge pull request #325 from searxng/dependabot/pip/master/pylint-2.11.1

Bump pylint from 2.10.2 to 2.11.1
Alexandre Flament 3 years ago
parent
commit
0d9959e649

+ 1 - 0
.pylintrc

@@ -62,6 +62,7 @@ confidence=
 disable=bad-whitespace,
 disable=bad-whitespace,
         duplicate-code,
         duplicate-code,
         missing-function-docstring,
         missing-function-docstring,
+        consider-using-f-string,
 
 
 # Enable the message, report, category or checker with the given id(s). You can
 # Enable the message, report, category or checker with the given id(s). You can
 # either give multiple identifier separated by comma (,) or put this option
 # either give multiple identifier separated by comma (,) or put this option

+ 1 - 1
requirements-dev.txt

@@ -2,7 +2,7 @@ mock==4.0.3
 nose2[coverage_plugin]==0.10.0
 nose2[coverage_plugin]==0.10.0
 cov-core==1.15.0
 cov-core==1.15.0
 pycodestyle==2.7.0
 pycodestyle==2.7.0
-pylint==2.10.2
+pylint==2.11.1
 splinter==0.15.0
 splinter==0.15.0
 selenium==3.141.0
 selenium==3.141.0
 twine==3.4.2
 twine==3.4.2

+ 1 - 1
searx/engines/command.py

@@ -35,7 +35,7 @@ def init(engine_settings):
     if 'command' not in engine_settings:
     if 'command' not in engine_settings:
         raise ValueError('engine command : missing configuration key: command')
         raise ValueError('engine command : missing configuration key: command')
 
 
-    global command, working_dir, result_template, delimiter, parse_regex, timeout, environment_variables
+    global command, working_dir, delimiter, parse_regex, environment_variables
 
 
     command = engine_settings['command']
     command = engine_settings['command']
 
 

+ 0 - 1
searx/engines/demo_offline.py

@@ -56,7 +56,6 @@ def search(query, request_params):
     results.
     results.
 
 
     """
     """
-    global _my_offline_engine  # pylint: disable=global-statement
     ret_val = []
     ret_val = []
 
 
     result_list = json.loads(_my_offline_engine)
     result_list = json.loads(_my_offline_engine)

+ 0 - 4
searx/engines/redis_server.py

@@ -31,8 +31,6 @@ def init(_engine_settings):
     )
     )
 
 
 def search(query, _params):
 def search(query, _params):
-    global _redis_client  # pylint: disable=global-statement
-
     if not exact_match_only:
     if not exact_match_only:
         return search_keys(query)
         return search_keys(query)
 
 
@@ -55,8 +53,6 @@ def search(query, _params):
     return []
     return []
 
 
 def search_keys(query):
 def search_keys(query):
-    global _redis_client  # pylint: disable=global-statement
-
     ret = []
     ret = []
     for key in _redis_client.scan_iter(
     for key in _redis_client.scan_iter(
             match='*{}*'.format(query)
             match='*{}*'.format(query)

+ 0 - 2
searx/engines/sqlite.py

@@ -35,7 +35,6 @@ def sqlite_cursor():
     * https://docs.python.org/3/library/sqlite3.html#sqlite3.connect
     * https://docs.python.org/3/library/sqlite3.html#sqlite3.connect
     * https://www.sqlite.org/uri.html
     * https://www.sqlite.org/uri.html
     """
     """
-    global database  # pylint: disable=global-statement
     uri = 'file:' + database + '?mode=ro'
     uri = 'file:' + database + '?mode=ro'
     with contextlib.closing(sqlite3.connect(uri, uri=True)) as connect:
     with contextlib.closing(sqlite3.connect(uri, uri=True)) as connect:
         connect.row_factory = sqlite3.Row
         connect.row_factory = sqlite3.Row
@@ -44,7 +43,6 @@ def sqlite_cursor():
 
 
 
 
 def search(query, params):
 def search(query, params):
-    global query_str, result_template  # pylint: disable=global-statement
     results = []
     results = []
 
 
     query_params = {
     query_params = {

+ 0 - 1
searx/engines/yggtorrent.py

@@ -37,7 +37,6 @@ cookies = dict()
 
 
 
 
 def init(engine_settings=None):
 def init(engine_settings=None):
-    global cookies
     # initial cookies
     # initial cookies
     resp = http_get(url, allow_redirects=False)
     resp = http_get(url, allow_redirects=False)
     if resp.ok:
     if resp.ok:

+ 0 - 2
searx/external_bang.py

@@ -45,7 +45,6 @@ def resolve_bang_definition(bang_definition, query):
 
 
 
 
 def get_bang_definition_and_autocomplete(bang, external_bangs_db=None):
 def get_bang_definition_and_autocomplete(bang, external_bangs_db=None):
-    global EXTERNAL_BANGS
     if external_bangs_db is None:
     if external_bangs_db is None:
         external_bangs_db = EXTERNAL_BANGS
         external_bangs_db = EXTERNAL_BANGS
 
 
@@ -78,7 +77,6 @@ def get_bang_url(search_query, external_bangs_db=None):
     :param search_query: This is a search_query object which contains preferences and the submitted queries.
     :param search_query: This is a search_query object which contains preferences and the submitted queries.
     :return: None if the bang was invalid, else a string of the redirect url.
     :return: None if the bang was invalid, else a string of the redirect url.
     """
     """
-    global EXTERNAL_BANGS
     if external_bangs_db is None:
     if external_bangs_db is None:
         external_bangs_db = EXTERNAL_BANGS
         external_bangs_db = EXTERNAL_BANGS
 
 

+ 1 - 1
searx/locales.py

@@ -57,7 +57,7 @@ def initialize_locales(directory):
     """Initialize global names :py:obj:`LOCALE_NAMES`, :py:obj:`UI_LOCALE_CODES` and
     """Initialize global names :py:obj:`LOCALE_NAMES`, :py:obj:`UI_LOCALE_CODES` and
     :py:obj:`RTL_LOCALES`.
     :py:obj:`RTL_LOCALES`.
     """
     """
-    global LOCALE_NAMES, UI_LOCALE_CODES, RTL_LOCALES  # pylint: disable=global-statement
+    global UI_LOCALE_CODES  # pylint: disable=global-statement
     for dirname in sorted(os.listdir(directory)):
     for dirname in sorted(os.listdir(directory)):
         # Based on https://flask-babel.tkte.ch/_modules/flask_babel.html#Babel.list_translations
         # Based on https://flask-babel.tkte.ch/_modules/flask_babel.html#Babel.list_translations
         if not os.path.isdir( os.path.join(directory, dirname, 'LC_MESSAGES') ):
         if not os.path.isdir( os.path.join(directory, dirname, 'LC_MESSAGES') ):

+ 0 - 6
searx/network/__init__.py

@@ -43,24 +43,20 @@ THREADLOCAL = threading.local()
 """Thread-local data is data for thread specific values."""
 """Thread-local data is data for thread specific values."""
 
 
 def reset_time_for_thread():
 def reset_time_for_thread():
-    global THREADLOCAL
     THREADLOCAL.total_time = 0
     THREADLOCAL.total_time = 0
 
 
 
 
 def get_time_for_thread():
 def get_time_for_thread():
     """returns thread's total time or None"""
     """returns thread's total time or None"""
-    global THREADLOCAL
     return THREADLOCAL.__dict__.get('total_time')
     return THREADLOCAL.__dict__.get('total_time')
 
 
 
 
 def set_timeout_for_thread(timeout, start_time=None):
 def set_timeout_for_thread(timeout, start_time=None):
-    global THREADLOCAL
     THREADLOCAL.timeout = timeout
     THREADLOCAL.timeout = timeout
     THREADLOCAL.start_time = start_time
     THREADLOCAL.start_time = start_time
 
 
 
 
 def set_context_network_name(network_name):
 def set_context_network_name(network_name):
-    global THREADLOCAL
     THREADLOCAL.network = get_network(network_name)
     THREADLOCAL.network = get_network(network_name)
 
 
 
 
@@ -69,13 +65,11 @@ def get_context_network():
 
 
     If unset, return value from :py:obj:`get_network`.
     If unset, return value from :py:obj:`get_network`.
     """
     """
-    global THREADLOCAL
     return THREADLOCAL.__dict__.get('network') or get_network()
     return THREADLOCAL.__dict__.get('network') or get_network()
 
 
 
 
 def request(method, url, **kwargs):
 def request(method, url, **kwargs):
     """same as requests/requests/api.py request(...)"""
     """same as requests/requests/api.py request(...)"""
-    global THREADLOCAL
     time_before_request = default_timer()
     time_before_request = default_timer()
 
 
     # timeout (httpx)
     # timeout (httpx)

+ 0 - 4
searx/network/client.py

@@ -53,7 +53,6 @@ async def close_connections_for_url(
 
 
 
 
 def get_sslcontexts(proxy_url=None, cert=None, verify=True, trust_env=True, http2=False):
 def get_sslcontexts(proxy_url=None, cert=None, verify=True, trust_env=True, http2=False):
-    global SSLCONTEXTS
     key = (proxy_url, cert, verify, trust_env, http2)
     key = (proxy_url, cert, verify, trust_env, http2)
     if key not in SSLCONTEXTS:
     if key not in SSLCONTEXTS:
         SSLCONTEXTS[key] = httpx.create_ssl_context(cert, verify, trust_env, http2)
         SSLCONTEXTS[key] = httpx.create_ssl_context(cert, verify, trust_env, http2)
@@ -137,7 +136,6 @@ class AsyncHTTPTransportFixed(httpx.AsyncHTTPTransport):
 
 
 
 
 def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit, retries):
 def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit, retries):
-    global TRANSPORT_KWARGS
     # support socks5h (requests compatibility):
     # support socks5h (requests compatibility):
     # https://requests.readthedocs.io/en/master/user/advanced/#socks
     # https://requests.readthedocs.io/en/master/user/advanced/#socks
     # socks5://   hostname is resolved on client side
     # socks5://   hostname is resolved on client side
@@ -167,7 +165,6 @@ def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit
 
 
 
 
 def get_transport(verify, http2, local_address, proxy_url, limit, retries):
 def get_transport(verify, http2, local_address, proxy_url, limit, retries):
-    global TRANSPORT_KWARGS
     verify = get_sslcontexts(None, None, True, False, http2) if verify is True else verify
     verify = get_sslcontexts(None, None, True, False, http2) if verify is True else verify
     return AsyncHTTPTransportFixed(
     return AsyncHTTPTransportFixed(
         # pylint: disable=protected-access
         # pylint: disable=protected-access
@@ -235,7 +232,6 @@ def new_client(
 
 
 
 
 def get_loop():
 def get_loop():
-    global LOOP
     return LOOP
     return LOOP
 
 
 
 

+ 0 - 5
searx/network/network.py

@@ -225,12 +225,10 @@ class Network:
 
 
     @classmethod
     @classmethod
     async def aclose_all(cls):
     async def aclose_all(cls):
-        global NETWORKS
         await asyncio.gather(*[network.aclose() for network in NETWORKS.values()], return_exceptions=False)
         await asyncio.gather(*[network.aclose() for network in NETWORKS.values()], return_exceptions=False)
 
 
 
 
 def get_network(name=None):
 def get_network(name=None):
-    global NETWORKS
     return NETWORKS.get(name or DEFAULT_NAME)
     return NETWORKS.get(name or DEFAULT_NAME)
 
 
 
 
@@ -240,8 +238,6 @@ def initialize(settings_engines=None, settings_outgoing=None):
     from searx import settings
     from searx import settings
     # pylint: enable=import-outside-toplevel)
     # pylint: enable=import-outside-toplevel)
 
 
-    global NETWORKS
-
     settings_engines = settings_engines or settings['engines']
     settings_engines = settings_engines or settings['engines']
     settings_outgoing = settings_outgoing or settings['outgoing']
     settings_outgoing = settings_outgoing or settings['outgoing']
 
 
@@ -328,7 +324,6 @@ def done():
     Note: since Network.aclose has to be async, it is not possible to call this method on Network.__del__
     Note: since Network.aclose has to be async, it is not possible to call this method on Network.__del__
     So Network.aclose is called here using atexit.register
     So Network.aclose is called here using atexit.register
     """
     """
-    global NETWORKS
     try:
     try:
         loop = get_loop()
         loop = get_loop()
         if loop:
         if loop:

+ 0 - 2
searx/search/processors/online_currency.py

@@ -18,7 +18,6 @@ def normalize_name(name):
     return unicodedata.normalize('NFKD', name).lower()
     return unicodedata.normalize('NFKD', name).lower()
 
 
 def name_to_iso4217(name):
 def name_to_iso4217(name):
-    global CURRENCIES  # pylint: disable=global-statement
     name = normalize_name(name)
     name = normalize_name(name)
     currency = CURRENCIES['names'].get(name, [name])
     currency = CURRENCIES['names'].get(name, [name])
     if isinstance(currency, str):
     if isinstance(currency, str):
@@ -26,7 +25,6 @@ def name_to_iso4217(name):
     return currency[0]
     return currency[0]
 
 
 def iso4217_to_name(iso4217, language):
 def iso4217_to_name(iso4217, language):
-    global CURRENCIES  # pylint: disable=global-statement
     return CURRENCIES['iso4217'].get(iso4217, {}).get(language, iso4217)
     return CURRENCIES['iso4217'].get(iso4217, {}).get(language, iso4217)
 
 
 class OnlineCurrencyProcessor(OnlineProcessor):
 class OnlineCurrencyProcessor(OnlineProcessor):

+ 0 - 6
tests/unit/test_external_bangs.py

@@ -72,31 +72,26 @@ class TestResolveBangDefinition(SearxTestCase):
 class TestGetBangDefinitionAndAutocomplete(SearxTestCase):
 class TestGetBangDefinitionAndAutocomplete(SearxTestCase):
 
 
     def test_found(self):
     def test_found(self):
-        global TEST_DB
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('exam', external_bangs_db=TEST_DB)
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('exam', external_bangs_db=TEST_DB)
         self.assertEqual(bang_definition, TEST_DB['trie']['exam']['*'])
         self.assertEqual(bang_definition, TEST_DB['trie']['exam']['*'])
         self.assertEqual(new_autocomplete, ['example'])
         self.assertEqual(new_autocomplete, ['example'])
 
 
     def test_found_optimized(self):
     def test_found_optimized(self):
-        global TEST_DB
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('example', external_bangs_db=TEST_DB)
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('example', external_bangs_db=TEST_DB)
         self.assertEqual(bang_definition, TEST_DB['trie']['exam']['ple'])
         self.assertEqual(bang_definition, TEST_DB['trie']['exam']['ple'])
         self.assertEqual(new_autocomplete, [])
         self.assertEqual(new_autocomplete, [])
 
 
     def test_partial(self):
     def test_partial(self):
-        global TEST_DB
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('examp', external_bangs_db=TEST_DB)
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('examp', external_bangs_db=TEST_DB)
         self.assertEqual(bang_definition, None)
         self.assertEqual(bang_definition, None)
         self.assertEqual(new_autocomplete, ['example'])
         self.assertEqual(new_autocomplete, ['example'])
 
 
     def test_partial2(self):
     def test_partial2(self):
-        global TEST_DB
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('sea', external_bangs_db=TEST_DB)
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('sea', external_bangs_db=TEST_DB)
         self.assertEqual(bang_definition, TEST_DB['trie']['sea']['*'])
         self.assertEqual(bang_definition, TEST_DB['trie']['sea']['*'])
         self.assertEqual(new_autocomplete, ['search', 'searching', 'seascapes', 'season'])
         self.assertEqual(new_autocomplete, ['search', 'searching', 'seascapes', 'season'])
 
 
     def test_error(self):
     def test_error(self):
-        global TEST_DB
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('error', external_bangs_db=TEST_DB)
         bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('error', external_bangs_db=TEST_DB)
         self.assertEqual(bang_definition, None)
         self.assertEqual(bang_definition, None)
         self.assertEqual(new_autocomplete, [])
         self.assertEqual(new_autocomplete, [])
@@ -114,7 +109,6 @@ class TestExternalBangJson(SearxTestCase):
         self.assertEqual(result, None)
         self.assertEqual(result, None)
 
 
     def test_get_bang_url(self):
     def test_get_bang_url(self):
-        global TEST_DB
         url = get_bang_url(SearchQuery('test', engineref_list=[], external_bang='example'), external_bangs_db=TEST_DB)
         url = get_bang_url(SearchQuery('test', engineref_list=[], external_bang='example'), external_bangs_db=TEST_DB)
         self.assertEqual(url, 'https://example.com/test')
         self.assertEqual(url, 'https://example.com/test')