'''Module containing all custom exceptions used by the package. All exceptions
related to this package has the PCD prefix.

Please, if you used one of our methods and it raised an exception that doesn't
have our PCD prefix **and** it came from inside our files send us a ticket in
this link:
https://github.com/Cerberus1746/PandaCoreData/issues

:author: Leandro (Cerberus1746) <NAME>'''


class PCDException(Exception):
    "Parent exception for all other exceptions"


class PCDNeedsToBeInherited(PCDException):
    """Exception raised if a :class:`~panda_core_data.models.Model` or
    :class:`~panda_core_data.models.Template` would be called without being
    inherited fist"""


class PCDDuplicatedTypeName(PCDException):
    """Exception raised if a :class:`~panda_core_data.models.Model` or
    :class:`~panda_core_data.models.Template` Type already exists with the same
    name"""


class PCDInvalidPath(PCDException):
    "Exception raised if the file is invalid"


class PCDFolderIsEmpty(PCDInvalidPath):
    "Exception raised if the folder is empty"


class PCDDataCoreIsNotUnique(PCDException):
    "Exception raised if the data core is not unique"


class PCDInvalidRaw(PCDException):
    "Exception raised if a raw is invalid"


class PCDDuplicatedModuleName(PCDException):
    "Exception raised if a module with the same name was already imported"


class PCDTypeError(TypeError, PCDException):
    "Exception raised if a invalid type was found"


class PCDInvalidPathType(KeyError, PCDException):
    "Exception raised if a invalid path type was requested"

class PCDKeyError(KeyError, PCDException):
    "Same as :class:`KeyError`, but with :class:`PCDException`"

class PCDInvalidBaseData(PCDTypeError):
    "Exception raised if a base doesn't have a method"


class PCDRawFileNotSupported(PCDTypeError):
    "Exception raised if the package can't read the extension"

'''Module containing all custom exceptions used by the package. All exceptions
related to this package has the PCD prefix.

Please, if you used one of our methods and it raised an exception that doesn't
have our PCD prefix **and** it came from inside our files send us a ticket in
this link:
https://github.com/Cerberus1746/PandaCoreData/issues

:author: Leandro (Cerberus1746) <NAME>'''


class PCDException(Exception):
    "Parent exception for all other exceptions"


class PCDNeedsToBeInherited(PCDException):
    """Exception raised if a :class:`~panda_core_data.models.Model` or
    :class:`~panda_core_data.models.Template` would be called without being
    inherited fist"""


class PCDDuplicatedTypeName(PCDException):
    """Exception raised if a :class:`~panda_core_data.models.Model` or
    :class:`~panda_core_data.models.Template` Type already exists with the same
    name"""


class PCDInvalidPath(PCDException):
    "Exception raised if the file is invalid"


class PCDFolderIsEmpty(PCDInvalidPath):
    "Exception raised if the folder is empty"


class PCDDataCoreIsNotUnique(PCDException):
    "Exception raised if the data core is not unique"


class PCDInvalidRaw(PCDException):
    "Exception raised if a raw is invalid"


class PCDDuplicatedModuleName(PCDException):
    "Exception raised if a module with the same name was already imported"


class PCDTypeError(TypeError, PCDException):
    "Exception raised if a invalid type was found"


class PCDInvalidPathType(KeyError, PCDException):
    "Exception raised if a invalid path type was requested"

class PCDKeyError(KeyError, PCDException):
    "Same as :class:`KeyError`, but with :class:`PCDException`"

class PCDInvalidBaseData(PCDTypeError):
    "Exception raised if a base doesn't have a method"


class PCDRawFileNotSupported(PCDTypeError):
    "Exception raised if the package can't read the extension"

Module containing all custom exceptions used by the package. All exceptions related to this package has the PCD prefix.  Please, if you used one of our methods and it raised an exception that doesn't have our PCD prefix **and** it came from inside our files send us a ticket in this link: https://github.com/Cerberus1746/PandaCoreData/issues  :author: Leandro (Cerberus1746) <NAME> Exception raised if a :class:`~panda_core_data.models.Model` or     :class:`~panda_core_data.models.Template` would be called without being     inherited fist Exception raised if a :class:`~panda_core_data.models.Model` or     :class:`~panda_core_data.models.Template` Type already exists with the same     name