|
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] |
|
|