diff options
author | Guido van Rossum <guido@python.org> | 1998-12-09 22:16:46 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-12-09 22:16:46 (GMT) |
commit | 030d2ec16c547d97abb3367e658faf92147c8d00 (patch) | |
tree | fc15b8f8c5045b5ac8580d147ec7dcf4ed108926 /Lib | |
parent | f8b3b944aa748be7689109c353e990e8a25c684f (diff) | |
download | cpython-030d2ec16c547d97abb3367e658faf92147c8d00.zip cpython-030d2ec16c547d97abb3367e658faf92147c8d00.tar.gz cpython-030d2ec16c547d97abb3367e658faf92147c8d00.tar.bz2 |
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).
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/cgi.py | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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() |