Add parameter to fs_cleanup function to close a file descriptor before closing it. GitLab issue #309.
This commit is contained in:
@@ -45,10 +45,13 @@ def encapsulate(function):
|
|||||||
return lambda: function
|
return lambda: function
|
||||||
|
|
||||||
|
|
||||||
def fs_cleanup(filename, suppress_exceptions=True):
|
def fs_cleanup(filename, file_descriptor=None, suppress_exceptions=True):
|
||||||
"""
|
"""
|
||||||
Tries to remove the given filename. Ignores non-existent files
|
Tries to remove the given filename. Ignores non-existent files
|
||||||
"""
|
"""
|
||||||
|
if file_descriptor:
|
||||||
|
os.close(file_descriptor)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
except OSError:
|
except OSError:
|
||||||
|
|||||||
@@ -155,12 +155,12 @@ class PopplerParser(Parser):
|
|||||||
return_code = proc.wait()
|
return_code = proc.wait()
|
||||||
if return_code != 0:
|
if return_code != 0:
|
||||||
logger.error(proc.stderr.readline())
|
logger.error(proc.stderr.readline())
|
||||||
fs_cleanup(temp_filepath)
|
fs_cleanup(temp_filepath, file_descriptor=destination_descriptor)
|
||||||
|
|
||||||
raise ParserError
|
raise ParserError
|
||||||
|
|
||||||
output = proc.stdout.read()
|
output = proc.stdout.read()
|
||||||
fs_cleanup(temp_filepath)
|
fs_cleanup(temp_filepath, file_descriptor=destination_descriptor)
|
||||||
|
|
||||||
if output == b'\x0c':
|
if output == b'\x0c':
|
||||||
logger.debug('Parser didn\'t return any output')
|
logger.debug('Parser didn\'t return any output')
|
||||||
|
|||||||
Reference in New Issue
Block a user