Example #1
0
 def __init__(self, corpus, loc):
   from email.Parser import FeedParser
   p = FeedParser()
   fp = corpus.loc_fp(loc)
   p.feed(fp.read(self.MAX_MESSAGE_SIZE))
   fp.close()
   EMailMessageDocument.__init__(self, corpus, loc, p.close(), corpus.loc_mtime(loc))
   return
 def truncate(self, size=None):
     if (size is None and self._written != 0) and size != 0:
         raise NotImplementedError(
             "The 'size' argument to truncate() must be 0 - partial truncation is not supported"
         )
     if self._closed:
         raise ValueError("File is closed")
     self._parser = FeedParser()
     self._written = 0
    def __init__(self, context):
        self.context = context

        self._mimeType = None
        self._encoding = 'utf-8'
        self._closed = False
        self._name = None
        self._written = 0
        self._parser = FeedParser()
        self._message = None
 def truncate(self, size=None):
     if (size is None and self._written != 0) and size != 0:
         raise NotImplementedError("The 'size' argument to truncate() must be 0 - partial truncation is not supported")
     if self._closed:
         raise ValueError("File is closed")
     self._parser = FeedParser()
     self._written = 0
 def __init__(self, context):
     self.context = context
     
     self._mimeType = None
     self._encoding = 'utf-8'
     self._closed = False
     self._name = None
     self._written = 0
     self._parser = FeedParser()
     self._message = None
class DefaultWriteFile(object):
    """IRawWriteFile file adapter for Dexterity objects.
    
    Uses RFC822 marshaler.
    """
    
    implements(IRawWriteFile)
    adapts(IDexterityContent)
    
    def __init__(self, context):
        self.context = context
        
        self._mimeType = None
        self._encoding = 'utf-8'
        self._closed = False
        self._name = None
        self._written = 0
        self._parser = FeedParser()
        self._message = None
    
    @getproperty
    def mimeType(self):
        if self._message is None:
            return self._mimeType
        elif not self._message.is_multipart():
            return 'text/plain'
        else:
            return 'message/rfc822'
    
    @setproperty
    def mimeType(self, value):
        self._mimeType = value
    
    @getproperty
    def encoding(self):
        if self._message is not None:
            return self._message.get_charset() or self._encoding
        return self._encoding
    
    @setproperty
    def encoding(self, value):
        self._encoding = value
    
    @property
    def closed(self):
        return self._closed
    
    @getproperty
    def name(self):
        if self._message is not None:
            return self._message.get_filename(self._name)
        return self._name
    
    @setproperty
    def name(self, value):
        self._name = value
    
    def seek(self, offset, whence=None):
        raise NotImplementedError("Seeking is not supported")
    
    def tell(self):
        return self._written
    
    def close(self):
        self._message = self._parser.close()
        self._closed = True
        initializeObjectFromSchemata(self.context, iterSchemata(self.context), self._message, self._encoding)
    
    def write(self, data):
        if self._closed:
            raise ValueError("File is closed")
        self._written += len(data)
        self._parser.feed(data)
    
    def writelines(self, sequence):
        for item in sequence:
            self.write(item)
    
    def truncate(self, size=None):
        if (size is None and self._written != 0) and size != 0:
            raise NotImplementedError("The 'size' argument to truncate() must be 0 - partial truncation is not supported")
        if self._closed:
            raise ValueError("File is closed")
        self._parser = FeedParser()
        self._written = 0
    
    def flush(self):
        pass
class DefaultWriteFile(object):
    """IRawWriteFile file adapter for Dexterity objects.
    
    Uses RFC822 marshaler.
    """

    implements(IRawWriteFile)
    adapts(IDexterityContent)

    def __init__(self, context):
        self.context = context

        self._mimeType = None
        self._encoding = 'utf-8'
        self._closed = False
        self._name = None
        self._written = 0
        self._parser = FeedParser()
        self._message = None

    @property
    def mimeType(self):
        if self._message is None:
            return self._mimeType
        elif not self._message.is_multipart():
            return 'text/plain'
        else:
            return 'message/rfc822'

    @mimeType.setter
    def mimeType(self, value):
        self._mimeType = value

    @property
    def encoding(self):
        if self._message is not None:
            return self._message.get_charset() or self._encoding
        return self._encoding

    @encoding.setter
    def encoding(self, value):
        self._encoding = value

    @property
    def closed(self):
        return self._closed

    @property
    def name(self):
        if self._message is not None:
            return self._message.get_filename(self._name)
        return self._name

    @name.setter
    def name(self, value):
        self._name = value

    def seek(self, offset, whence=None):
        raise NotImplementedError("Seeking is not supported")

    def tell(self):
        return self._written

    def close(self):
        self._message = self._parser.close()
        self._closed = True
        initializeObjectFromSchemata(self.context, iterSchemata(self.context),
                                     self._message, self._encoding)

    def write(self, data):
        if self._closed:
            raise ValueError("File is closed")
        self._written += len(data)
        self._parser.feed(data)

    def writelines(self, sequence):
        for item in sequence:
            self.write(item)

    def truncate(self, size=None):
        if (size is None and self._written != 0) and size != 0:
            raise NotImplementedError(
                "The 'size' argument to truncate() must be 0 - partial truncation is not supported"
            )
        if self._closed:
            raise ValueError("File is closed")
        self._parser = FeedParser()
        self._written = 0

    def flush(self):
        pass