Skip to content

Commit

Permalink
Add intermediate error, simplify error yaml file
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrunner committed Nov 18, 2018
1 parent 64af45a commit 753d096
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 18 deletions.
32 changes: 22 additions & 10 deletions postprocess
Expand Up @@ -22,6 +22,17 @@ mogrify = ['gm', 'mogrify']
convert = ['gm', 'convert']


def add_intermediate_error(config, config_file_name, error, tb):
if 'intermediate_error' not in config:
config['intermediate_error'] = []
config['intermediate_error'].append({
'error': e,
'traceback': tb,
})
with open(config_file_name, 'w') as config_file:
config_file.write(yaml.dump(config))


def call(cmd, cmd2=None, **kwargs):
print(' '.join(cmd) if isinstance(cmd, list) else cmd)
subprocess.check_output(cmd, stderr=subprocess.PIPE, **kwargs)
Expand Down Expand Up @@ -81,8 +92,14 @@ def transform(config, root_folder):
crop(img, round(marging_horizontal/10/2.51*300), round(maring_vertical/10/2.51*300))
save(root_folder, img, '2-precrop')

call(['/opt/Deskew/Bin/deskew', '-b', 'FFFFFF', '-o', img, img])
save(root_folder, img, '3-deskew')
try:
call(['/opt/Deskew/Bin/deskew', '-b', 'FFFFFF', '-o', img, img])
save(root_folder, img, '3-deskew')
except subprocess.CalledProcessError as e:
print(e)
add_intermediate_error(
config, config_file_name, e, traceback.format_exc().split('\n')
)

# Margin in mm
marging_horizontal=10
Expand All @@ -106,7 +123,9 @@ def transform(config, root_folder):
call(mogrify + ['-rotate', orientation, img])
save(root_folder, img, '6-autorotate')
except subprocess.CalledProcessError as e:
print(e)
add_intermediate_error(
config, config_file_name, e, traceback.format_exc().split('\n')
)

# is empty ?
w, h = [int(e) for e in output(convert + [img, '-format', '%w %h', 'info:-']).split(b' ')]
Expand Down Expand Up @@ -217,13 +236,6 @@ while True:
with open(os.path.join(root_folder, 'waiting'), 'w') as waiting_file:
pass

except subprocess.CalledProcessError as e:
print(e)
with open(os.path.join(root_folder, 'error.yaml'), 'w') as error_file:
error_file.write(yaml.dump({
'subproceesserror': e,
'traceback': traceback.format_exc().split('\n'),
}))
except Exception as e:
print(e)
with open(os.path.join(root_folder, 'error.yaml'), 'w') as error_file:
Expand Down
16 changes: 8 additions & 8 deletions status
Expand Up @@ -4,6 +4,7 @@
import os
import glob
import re
import subprocess
import yaml

for folder in glob.glob('/home/sbrunner/dsl/paperless/scan/*/'):
Expand All @@ -19,15 +20,14 @@ for folder in glob.glob('/home/sbrunner/dsl/paperless/scan/*/'):
if os.path.exists(os.path.join(folder, 'error.yaml')):
with open(os.path.join(folder, 'error.yaml')) as error_file:
error = yaml.load(error_file.read())
if 'subproceesserror' in error:
print("Subprocess error")
e = error['subproceesserror']
print(e)
print(e.output.decode())
if e.stderr:
print(e.stderr)
elif 'error' in error:
if 'error' in error:
print(error['error'])
if isinstance(error, subprocess.CalledProcessError):
print(e.output.decode())
if e.stderr:
print(e.stderr)
if 'traceback' in error:
print('\n'.join(error['traceback']))
else:
print('Unknown error')
print(error)
Expand Down

0 comments on commit 753d096

Please sign in to comment.