| | from argparse import ArgumentTypeError |
| | import errno |
| | import os |
| |
|
| |
|
| | class Error(Exception): |
| | """Base class for exceptions in this module.""" |
| | pass |
| |
|
| |
|
| | class InputError(Error): |
| | """Exception raised for errors in the input. |
| | |
| | Attributes: |
| | expr # input expression in which the error occurred |
| | msg # explanation of the error |
| | """ |
| |
|
| | def __init__(self, expr, msg): |
| | self.expr = expr |
| | self.msg = msg |
| |
|
| |
|
| | def is_file(f): |
| | try: |
| | open(f, 'r') |
| | except IOError: |
| | raise ArgumentTypeError("{0} does not exist".format(f)) |
| | return f |
| |
|
| |
|
| | def mkdir_p(path): |
| | try: |
| | os.makedirs(path) |
| | except OSError as exc: |
| | if exc.errno == errno.EEXIST and os.path.isdir(path): |
| | pass |
| | else: |
| | raise |
| | return path |
| |
|
| |
|
| | def remove_extension(path): |
| | return os.path.splitext(os.path.basename(path))[0] |
| |
|