Commit ecdb05ba authored by Jim Fulton's avatar Jim Fulton

As a small convenience (mainly for tests), you can now specify

initial data as a string argument to the Blob constructor.
parent 42b20433
...@@ -63,12 +63,14 @@ class Blob(persistent.Persistent): ...@@ -63,12 +63,14 @@ class Blob(persistent.Persistent):
readers = writers = None readers = writers = None
def __init__(self): def __init__(self, data=None):
# Raise exception if Blobs are getting subclassed # Raise exception if Blobs are getting subclassed
# refer to ZODB-Bug No.127182 by Jim Fulton on 2007-07-20 # refer to ZODB-Bug No.127182 by Jim Fulton on 2007-07-20
if (self.__class__ is not Blob): if (self.__class__ is not Blob):
raise TypeError('Blobs do not support subclassing.') raise TypeError('Blobs do not support subclassing.')
self.__setstate__() self.__setstate__()
if data is not None:
self.open('w').write(data)
def __setstate__(self, state=None): def __setstate__(self, state=None):
# we use lists here because it will allow us to add and remove # we use lists here because it will allow us to add and remove
......
...@@ -173,3 +173,12 @@ Blobs are not subclassable:: ...@@ -173,3 +173,12 @@ Blobs are not subclassable::
... ...
TypeError: Blobs do not support subclassing. TypeError: Blobs do not support subclassing.
Passing data to the blob constructor
------------------------------------
If you have a small amount of data, you can pass it to the blob
constructor. (This is a convenience, mostly for writing tests.)
>>> myblob = Blob('some data')
>>> myblob.open().read()
'some data'
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