Kaydet (Commit) 030d2ec1 authored tarafından Guido van Rossum's avatar Guido van Rossum

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).
üst f8b3b944
......@@ -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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment