User buffer for binary fields
issue2316 review192001
This commit is contained in:
+9
-1
@@ -92,6 +92,14 @@ class CharDescriptor(FieldDescriptor):
|
||||
super(CharDescriptor, self).__set__(instance, value or '')
|
||||
|
||||
|
||||
class BinaryDescriptor(FieldDescriptor):
|
||||
default = None
|
||||
|
||||
def __set__(self, instance, value):
|
||||
assert isinstance(value, (basestring, buffer)) or value in (None, False)
|
||||
super(BinaryDescriptor, self).__set__(instance, value or '')
|
||||
|
||||
|
||||
class IntegerDescriptor(FieldDescriptor):
|
||||
default = 0
|
||||
|
||||
@@ -296,7 +304,7 @@ class MetaModelFactory(object):
|
||||
'char': CharDescriptor,
|
||||
'text': CharDescriptor,
|
||||
'sha': CharDescriptor,
|
||||
'binary': CharDescriptor,
|
||||
'binary': BinaryDescriptor,
|
||||
'selection': CharDescriptor, # TODO implement its own descriptor
|
||||
'integer': IntegerDescriptor,
|
||||
'biginteger': IntegerDescriptor,
|
||||
|
||||
@@ -17,10 +17,17 @@ def dump_decimal(self, value, write):
|
||||
write(str(value))
|
||||
write("</double></value>\n")
|
||||
|
||||
def dump_buffer(self, value, write):
|
||||
self.write = write
|
||||
value = xmlrpclib.Binary(value)
|
||||
value.encode(self)
|
||||
del self.write
|
||||
|
||||
xmlrpclib.Marshaller.dispatch[Decimal] = dump_decimal
|
||||
xmlrpclib.Marshaller.dispatch[datetime.date] = \
|
||||
lambda self, value, write: self.dump_datetime(
|
||||
datetime.datetime.combine(value, datetime.time()), write)
|
||||
xmlrpclib.Marshaller.dispatch[buffer] = dump_buffer
|
||||
|
||||
|
||||
def _end_double(self, data):
|
||||
|
||||
Reference in New Issue
Block a user