Source code for requirementslib.exceptions

# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function

import errno
import os
import sys

import six
from vistir.compat import FileNotFoundError

if six.PY2:

    class FileExistsError(OSError):
        def __init__(self, *args, **kwargs):
            self.errno = errno.EEXIST
            super(FileExistsError, self).__init__(*args, **kwargs)


else:
    from six.moves.builtins import FileExistsError


[docs]class RequirementError(Exception): pass
[docs]class MissingParameter(Exception): def __init__(self, param): self.message = self.get_message(param) super(MissingParameter, self).__init__(self.message)
[docs] @classmethod def get_message(cls, param): return "Missing Parameter: %s" % param
[docs] def show(self, param): print(self.message, file=sys.stderr, flush=True)
[docs]class FileCorruptException(OSError): def __init__(self, path, *args, **kwargs): path = path backup_path = kwargs.pop("backup_path", None) if not backup_path and args: args = reversed(args) backup_path = args.pop() if not isinstance(backup_path, six.string_types) or not os.path.exists( os.path.abspath(os.path.dirname(backup_path)) ): args.append(backup_path) backup_path = None if args: args = reversed(args) self.message = self.get_message(path, backup_path=backup_path) super(FileCorruptException, self).__init__(self.message)
[docs] def get_message(self, path, backup_path=None): message = "ERROR: Failed to load file at %s" % path if backup_path: msg = "it will be backed up to %s and removed" % backup_path else: msg = "it will be removed and replaced on the next lock." message = "{0}\nYour lockfile is corrupt, {1}".format(message, msg) return message
[docs] def show(self): print(self.message, file=sys.stderr, flush=True)
[docs]class LockfileCorruptException(FileCorruptException): def __init__(self, path, backup_path=None): self.message = self.get_message(path, backup_path=backup_path) super(LockfileCorruptException, self).__init__(self.message)
[docs] def get_message(self, path, backup_path=None): message = "ERROR: Failed to load lockfile at %s" % path if backup_path: msg = "it will be backed up to %s and removed" % backup_path else: msg = "it will be removed and replaced on the next lock." message = "{0}\nYour lockfile is corrupt, {1}".format(message, msg) return message
[docs] def show(self, path, backup_path=None): print(self.message, file=sys.stderr, flush=True)
[docs]class PipfileCorruptException(FileCorruptException): def __init__(self, path, backup_path=None): self.message = self.get_message(path, backup_path=backup_path) super(PipfileCorruptException, self).__init__(self.message)
[docs] def get_message(self, path, backup_path=None): message = "ERROR: Failed to load Pipfile at %s" % path if backup_path: msg = "it will be backed up to %s and removed" % backup_path else: msg = "it will be removed and replaced on the next lock." message = "{0}\nYour Pipfile is corrupt, {1}".format(message, msg) return message
[docs] def show(self, path, backup_path=None): print(self.message, file=sys.stderr, flush=True)
[docs]class PipfileNotFound(FileNotFoundError): def __init__(self, path, *args, **kwargs): self.errno = errno.ENOENT self.filename = path super(PipfileNotFound, self).__init__(self.filename)