Example #1
0
    def demarshall(self, instance, data, **kwargs):
        # We don't want to pass file forward.
        if 'file' in kwargs:
            if not data:
                # TODO Yuck! Shouldn't read the whole file, never.
                # OTOH, if you care about large files, you should be
                # using the PrimaryFieldMarshaller or something
                # similar.
                data = kwargs['file'].read()
            del kwargs['file']
        headers, body = parseRFC822(data)

        query = {}
        for k, v in headers.items():
            if not k.startswith("query"):
                continue
            else:
                index = int(k[5])
                sub_key = k.split("_")[1]
                query_part = query.get(index, {})
                query_part[sub_key] = v
                query[index] = query_part
                del headers[k]
        query = [facet[1] for facet in sorted(query.items())]

        header = formatRFC822Headers(headers.items())
        data = '%s\n\n%s' % (header, body)

        try:
            return RFC822Marshaller.demarshall(self, instance, data, **kwargs)
        finally:
            instance.query = query
 def demarshall(self, instance, data, **kwargs):
     # We don't want to pass file forward.
     if 'file' in kwargs:
         if not data:
             # TODO Yuck! Shouldn't read the whole file, never.
             # OTOH, if you care about large files, you should be
             # using the PrimaryFieldMarshaller or something
             # similar.
             data = kwargs['file'].read()
         del kwargs['file']
     headers, body = parseRFC822(data)
     
     query = {}
     for k, v in headers.items():
         if not k.startswith("query"):
             continue
         else:
             index = int(k[5])
             sub_key = k.split("_")[1]
             query_part = query.get(index, {})
             query_part[sub_key] = v
             query[index] = query_part
             del headers[k]
     query = [facet[1] for facet in sorted(query.items())]
     
     header = formatRFC822Headers(headers.items())
     data = '%s\n\n%s' % (header, body)
     
     try:
         return RFC822Marshaller.demarshall(self, instance, data, **kwargs)
     finally:
         instance.query = query
 def marshall(self, instance, **kwargs):
     content_type, length, data = RFC822Marshaller.marshall(self, instance, **kwargs)
     headers, body = parseRFC822(data)
     
     headers = headers.items()
     for i, query in enumerate(instance.query):
         for key, value in query.items():
             if isinstance(value, list):
                 value = "\n".join(value)
             header_key = 'query%d_%s' % (i, key)
             headers.append((header_key, value))
     
     header = formatRFC822Headers(headers)
     data = '%s\n\n%s' % (header, body)
     length = len(data)
     return (content_type, length, data)
Example #4
0
 def marshall(self, instance, **kwargs):
     content_type, length, data = RFC822Marshaller.marshall(self, instance, **kwargs)
     headers, body = parseRFC822(data)
     
     headers = headers.items()
     for i, query in enumerate(instance.query):
         for key, value in query.items():
             if isinstance(value, list):
                 value = "\n".join(value)
             header_key = 'query%d_%s' % (i, key)
             headers.append((header_key, value))
     
     header = formatRFC822Headers(headers)
     data = '%s\n\n%s' % (header, body)
     length = len(data)
     return (content_type, length, data)
Example #5
0
    ),

    StringField(
        name='title',
        required=1,
        searchable=1,
        default='',
        accessor='Title',
        widget=StringWidget(
            label_msgid='label_title',
            visible={'view': 'invisible'},
            i18n_domain='plone',
        ),
    ),

), marshall=RFC822Marshaller())


class BaseObject(Referenceable):

    security = ClassSecurityInfo()

    # Protect AttributeStorage-based attributes. See the docstring of
    # AttributeValidator for the low-down.
    if ATTRIBUTE_SECURITY:
        attr_security = AttributeValidator()
        security.setDefaultAccess(attr_security)
        # Delete so it cannot be accessed anymore.
        del attr_security

    schema = content_type