solve assorted issue with newer pylint versions

Includes more use of 'with', adding encodings to open statements
and a couple of issues with parameter renaming.
This commit is contained in:
Sarah Hoffmann
2022-05-11 10:22:14 +02:00
parent 5d5f40a82f
commit 7f7a7df3a2
4 changed files with 23 additions and 22 deletions

View File

@@ -25,7 +25,8 @@ class _Cursor(psycopg2.extras.DictCursor):
execution functions. execution functions.
""" """
def execute(self, query, args=None): # pylint: disable=W0221 # pylint: disable=arguments-renamed,arguments-differ
def execute(self, query, args=None):
""" Query execution that logs the SQL query when debugging is enabled. """ Query execution that logs the SQL query when debugging is enabled.
""" """
LOG.debug(self.mogrify(query, args).decode('utf-8')) LOG.debug(self.mogrify(query, args).decode('utf-8'))

View File

@@ -40,27 +40,27 @@ def execute_file(dsn, fname, ignore_errors=False, pre_code=None, post_code=None)
cmd.extend(('-v', 'ON_ERROR_STOP=1')) cmd.extend(('-v', 'ON_ERROR_STOP=1'))
if not LOG.isEnabledFor(logging.INFO): if not LOG.isEnabledFor(logging.INFO):
cmd.append('--quiet') cmd.append('--quiet')
proc = subprocess.Popen(cmd, env=get_pg_env(dsn), stdin=subprocess.PIPE)
try: with subprocess.Popen(cmd, env=get_pg_env(dsn), stdin=subprocess.PIPE) as proc:
if not LOG.isEnabledFor(logging.INFO): try:
proc.stdin.write('set client_min_messages to WARNING;'.encode('utf-8')) if not LOG.isEnabledFor(logging.INFO):
proc.stdin.write('set client_min_messages to WARNING;'.encode('utf-8'))
if pre_code: if pre_code:
proc.stdin.write((pre_code + ';').encode('utf-8')) proc.stdin.write((pre_code + ';').encode('utf-8'))
if fname.suffix == '.gz': if fname.suffix == '.gz':
with gzip.open(str(fname), 'rb') as fdesc: with gzip.open(str(fname), 'rb') as fdesc:
remain = _pipe_to_proc(proc, fdesc) remain = _pipe_to_proc(proc, fdesc)
else: else:
with fname.open('rb') as fdesc: with fname.open('rb') as fdesc:
remain = _pipe_to_proc(proc, fdesc) remain = _pipe_to_proc(proc, fdesc)
if remain == 0 and post_code: if remain == 0 and post_code:
proc.stdin.write((';' + post_code).encode('utf-8')) proc.stdin.write((';' + post_code).encode('utf-8'))
finally: finally:
proc.stdin.close() proc.stdin.close()
ret = proc.wait() ret = proc.wait()
if ret != 0 or remain > 0: if ret != 0 or remain > 0:
raise UsageError("Failed to execute SQL file.") raise UsageError("Failed to execute SQL file.")

View File

@@ -36,7 +36,7 @@ class _CountryPostcodesCollector:
def __init__(self, country): def __init__(self, country):
self.country = country self.country = country
self.collected = dict() self.collected = {}
def add(self, postcode, x, y): def add(self, postcode, x, y):
@@ -140,7 +140,7 @@ class _CountryPostcodesCollector:
if fname.is_file(): if fname.is_file():
LOG.info("Using external postcode file '%s'.", fname) LOG.info("Using external postcode file '%s'.", fname)
return open(fname, 'r') return open(fname, 'r', encoding='utf-8')
fname = project_dir / f'{self.country}_postcodes.csv.gz' fname = project_dir / f'{self.country}_postcodes.csv.gz'

View File

@@ -39,8 +39,8 @@ class SPCsvLoader(Iterator):
""" """
phrases = set() phrases = set()
with open(self.csv_path) as file: with open(self.csv_path, encoding='utf-8') as fd:
reader = csv.DictReader(file, delimiter=',') reader = csv.DictReader(fd, delimiter=',')
for row in reader: for row in reader:
phrases.add( phrases.add(
SpecialPhrase(row['phrase'], row['class'], row['type'], row['operator']) SpecialPhrase(row['phrase'], row['class'], row['type'], row['operator'])