mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-02 19:20:09 +03:00
Make RPCError subclasses unpicklable again
This commit is contained in:
parent
8bd60f7cde
commit
879dcb0a95
|
@ -26,13 +26,16 @@ def generate_errors(errors, f):
|
||||||
|
|
||||||
# Error classes generation
|
# Error classes generation
|
||||||
for error in errors:
|
for error in errors:
|
||||||
f.write('\n\nclass {}({}):\n'
|
f.write('\n\nclass {}({}):\n '.format(error.name, error.subclass))
|
||||||
' def __init__(self, **kwargs):\n'
|
|
||||||
' '.format(error.name, error.subclass))
|
|
||||||
|
|
||||||
if error.has_captures:
|
if error.has_captures:
|
||||||
f.write("self.{} = int(kwargs.get('capture', 0))\n "
|
f.write('def __init__(self, request, capture=0):\n '
|
||||||
|
' self.request = request\n ')
|
||||||
|
f.write(' self.{} = int(capture)\n '
|
||||||
.format(error.capture_name))
|
.format(error.capture_name))
|
||||||
|
else:
|
||||||
|
f.write('def __init__(self, request):\n '
|
||||||
|
' self.request = request\n ')
|
||||||
|
|
||||||
f.write('super(Exception, self).__init__('
|
f.write('super(Exception, self).__init__('
|
||||||
'{}'.format(repr(error.description)))
|
'{}'.format(repr(error.description)))
|
||||||
|
@ -40,7 +43,12 @@ def generate_errors(errors, f):
|
||||||
if error.has_captures:
|
if error.has_captures:
|
||||||
f.write('.format({0}=self.{0})'.format(error.capture_name))
|
f.write('.format({0}=self.{0})'.format(error.capture_name))
|
||||||
|
|
||||||
f.write(" + self._fmt_request(kwargs['request']))\n")
|
f.write(' + self._fmt_request(self.request))\n\n')
|
||||||
|
f.write(' def __reduce__(self):\n ')
|
||||||
|
if error.has_captures:
|
||||||
|
f.write('return type(self), (self.request, self.{})\n'.format(error.capture_name))
|
||||||
|
else:
|
||||||
|
f.write('return type(self), (self.request,)\n')
|
||||||
|
|
||||||
# Create the actual {CODE: ErrorClassName} dict once classes are defined
|
# Create the actual {CODE: ErrorClassName} dict once classes are defined
|
||||||
f.write('\n\nrpc_errors_dict = {\n')
|
f.write('\n\nrpc_errors_dict = {\n')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user