class MwClientError(RuntimeError):
	pass

class MediaWikiVersionError(MwClientError):
	pass

class APIDisabledError(MwClientError):
	pass

class HTTPError(MwClientError):
	pass
class HTTPStatusError(MwClientError):
	pass
class HTTPRedirectError(HTTPError):
	pass

class MaximumRetriesExceeded(MwClientError):
	pass
	
class APIError(MwClientError):
	def __init__(self, code, info, kwargs):
		self.code = code
		self.info = info
		MwClientError.__init__(self, code, info, kwargs)
	
class InsufficientPermission(MwClientError):
	pass
class UserBlocked(InsufficientPermission):
	pass

class EditError(MwClientError):
	pass
class ProtectedPageError(EditError, InsufficientPermission):
	pass
class FileExists(EditError):
	pass
	

class LoginError(MwClientError):
	pass

class EmailError(MwClientError):
	pass
class NoSpecifiedEmail(EmailError):
	pass