1
0
Fork 0
mirror of synced 2024-06-02 18:34:37 +12:00
bulk-downloader-for-reddit/bulkredditdownloader/errors.py

138 lines
2.1 KiB
Python
Raw Normal View History

import sys
def full_exc_info(exc_info):
def current_stack(skip=0):
try:
1 / 0
except ZeroDivisionError:
f = sys.exc_info()[2].tb_frame
for i in range(skip + 2):
f = f.f_back
lst = []
while f is not None:
lst.append((f, f.f_lineno))
f = f.f_back
return lst
def extend_traceback(tb, stack):
class FauxTb():
def __init__(self, tb_frame, tb_lineno, tb_next):
self.tb_frame = tb_frame
self.tb_lineno = tb_lineno
self.tb_next = tb_next
"""Extend traceback with stack info."""
head = tb
for tb_frame, tb_lineno in stack:
head = FauxTb(tb_frame, tb_lineno, head)
return head
"""Like sys.exc_info, but includes the full traceback."""
t, v, tb = exc_info
full_tb = extend_traceback(tb, current_stack(1))
return t, v, full_tb
2018-07-10 07:58:11 +12:00
class RedditLoginFailed(Exception):
pass
2018-07-10 07:58:11 +12:00
class ImgurLoginError(Exception):
pass
2018-07-10 07:58:11 +12:00
class FileAlreadyExistsError(Exception):
pass
2018-07-10 07:58:11 +12:00
class NotADownloadableLinkError(Exception):
pass
2018-07-10 07:58:11 +12:00
class AlbumNotDownloadedCompletely(Exception):
pass
2018-07-10 07:58:11 +12:00
class FileNameTooLong(Exception):
pass
2018-07-10 07:58:11 +12:00
class InvalidRedditLink(Exception):
pass
2018-07-12 04:57:38 +12:00
class ProgramModeError(Exception):
pass
2018-07-12 04:57:38 +12:00
class SearchModeError(Exception):
pass
2018-07-12 04:57:38 +12:00
class RedditorNameError(Exception):
pass
2018-07-10 07:58:11 +12:00
class NoMatchingSubmissionFound(Exception):
pass
2018-07-10 07:58:11 +12:00
class NoPrawSupport(Exception):
pass
2018-08-09 09:17:04 +12:00
class NoRedditSupport(Exception):
2018-07-10 07:58:11 +12:00
pass
2018-07-10 07:58:11 +12:00
class MultiredditNotFound(Exception):
pass
2018-07-10 07:58:11 +12:00
class InsufficientPermission(Exception):
pass
2018-07-10 07:58:11 +12:00
class InvalidSortingType(Exception):
pass
2018-07-24 07:06:33 +12:00
class NoSuitablePost(Exception):
pass
2018-07-24 07:06:33 +12:00
class ImgurLimitError(Exception):
pass
class DirectLinkNotFound(Exception):
pass
class InvalidJSONFile(Exception):
pass
class FailedToDownload(Exception):
pass
class TypeInSkip(Exception):
pass
class DomainInSkip(Exception):
pass
class ImageNotFound(Exception):
pass
class ExtensionError(Exception):
pass