From: Guido van Rossum Date: Wed, 9 Dec 1998 22:16:46 +0000 (+0000) Subject: In read_multi, allow a subclass to override the class we instantiate X-Git-Tag: v1.5.2b1~98 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=030d2ec16c547d97abb3367e658faf92147c8d00;p=python In read_multi, allow a subclass to override the class we instantiate when we create a recursive instance, by setting the class variable 'FieldStorageClass' to the desired class. By default, this is set to None, in which case we use self.__class__ (as before). --- diff --git a/Lib/cgi.py b/Lib/cgi.py index aaaded529b..108310ebd5 100755 --- a/Lib/cgi.py +++ b/Lib/cgi.py @@ -919,16 +919,19 @@ class FieldStorage: self.list.append(MiniFieldStorage(key, value)) self.skip_lines() + FieldStorageClass = None + def read_multi(self, environ, keep_blank_values, strict_parsing): """Internal: read a part that is itself multipart.""" self.list = [] - part = self.__class__(self.fp, {}, self.innerboundary, - environ, keep_blank_values, strict_parsing) + klass = self.FieldStorageClass or self.__class__ + part = klass(self.fp, {}, self.innerboundary, + environ, keep_blank_values, strict_parsing) # Throw first part away while not part.done: headers = rfc822.Message(self.fp) - part = self.__class__(self.fp, headers, self.innerboundary, - environ, keep_blank_values, strict_parsing) + part = klass(self.fp, headers, self.innerboundary, + environ, keep_blank_values, strict_parsing) self.list.append(part) self.skip_lines()