Because ruffus doesn’t handle exceptions well I tended to call sys.exit to make sure we got out of dodge when needed. However, sys.exit is not ideal for the Python API this is moving towards, so this introduces proper exceptions for the various cases that retain suggested error codes. Only __main__.py should call sys.exit now, everyone else has to throw an exception. For now the worker raising a fatal exception is logging messages rather than passing an exception object with the fatal error message, mainly because ruffus doesn’t properly marshall the exception object so we just check “what is the name of the exception class that caused ruffus to thrown an RethrownJobError”? Also fixed along the way was the wrong return code being shown for encrypted PDF checking, and incorrect use of str.find (e.output.find) in boolean logic (str.find returns -1 on failure to find, which is True).
11 lines
201 B
Python
11 lines
201 B
Python
import os
|
|
import pkg_resources
|
|
|
|
PROGRAM_NAME = 'ocrmypdf'
|
|
|
|
VERSION = pkg_resources.get_distribution('ocrmypdf').version
|
|
|
|
|
|
def page_number(input_file):
|
|
return int(os.path.basename(input_file)[0:6])
|