示例#1
0
文件: BaseUnit.py 项目: dtgit/dtedu
 def __setstate__(self, dict):
     mimetype = dict.get('mimetype', None)
     if IMimetype.isImplementedBy(mimetype):
         dict['mimetype'] = str(mimetype)
         dict['binary'] = not not mimetype.binary
     assert(dict.has_key('mimetype'), 'no mimetype in setstate dict')
     File.__setstate__(self, dict)
示例#2
0
    def register(self, mimetype):
        """ Register a new mimetype

        mimetype must implement IMimetype
        """
        mimetype = aq_base(mimetype)
        assert IMimetype.providedBy(mimetype)
        for t in mimetype.mimetypes:
            self.register_mimetype(t, mimetype)
        for extension in mimetype.extensions:
            self.register_extension(extension, mimetype)
        for glob in mimetype.globs:
            self.register_glob(glob, mimetype)
    def register(self, mimetype):
        """ Register a new mimetype

        mimetype must implement IMimetype
        """
        mimetype = aq_base(mimetype)
        assert IMimetype.providedBy(mimetype)
        for t in mimetype.mimetypes:
            self.register_mimetype(t, mimetype)
        for extension in mimetype.extensions:
            self.register_extension(extension, mimetype)
        for glob in mimetype.globs:
            self.register_glob(glob, mimetype)
    def testInstallation(self):
        """Checking installation of our Mime types"""

        mtr = self.mtr
        for mt_dict in office_mimetypes:
            mt_string = mt_dict['mimetypes'][0]
            mimetype = mtr.lookup(mt_string)
            self.failUnless(
                len(mimetype) > 0,
                "Didn't find MimeType obj for %s" % mt_string)
            if len(mimetype) > 0:
                self.failUnless(
                    IMimetype.isImplementedBy(mtr.lookup(mt_string)[0]),
                    "Didn't find MimeType obj for %s" % mt_string)
        return
示例#5
0
    def testInstallation(self):
        """Checking installation of our Mime types"""

        mtr = self.mtr
        for mt_dict in office_mimetypes:
            mt_string = mt_dict['mimetypes'][0]
            mimetype = mtr.lookup(mt_string)
            self.failUnless(
                len(mimetype) > 0,
                "Didn't find MimeType obj for %s" % mt_string)
            if len(mimetype) > 0:
                self.failUnless(
                    IMimetype.isImplementedBy(mtr.lookup(mt_string)[0]),
                    "Didn't find MimeType obj for %s" % mt_string)
        return
示例#6
0
def mimetype_lookup(mtr, contenttype):
    """Reimplemented as case insensitive from Products.MimetypesRegistry."""
    __traceback_info__ = (repr(contenttype), str(contenttype))
    mapping = mtr._mimetypes
    contenttype = contenttype.lower()
    if IMimetype.providedBy(contenttype):
        return (aq_base(contenttype), )
    try:
        major, minor = contenttype.split('/', 1)
    except ValueError:
        raise MimeTypeException('Malformed MIME type ({})'.format(contenttype))
    mapping = {k.lower(): v for k, v in mapping.items()}
    group = {k.lower(): v for k, v in mapping.get(major, {}).items()}
    if not minor or minor == '*':
        res = group.values()
    else:
        res = group.get(minor)
        if res:
            res = (res,)
        else:
            return ()
    return tuple(aq_base(mtitem) for mtitem in res)
示例#7
0
    def unregister(self, mimetype):
        """ Unregister a new mimetype

        mimetype must implement IMimetype
        """
        assert IMimetype.providedBy(mimetype)
        for t in mimetype.mimetypes:
            major, minor = split(t)
            group = self._mimetypes.get(major, {})
            if group.get(minor) == mimetype:
                del group[minor]
        for e in mimetype.extensions:
            if self.extensions.get(e) == mimetype:
                del self.extensions[e]
        globs = getattr(self, 'globs', None)
        if globs is not None:
            for glob in mimetype.globs:
                existing = globs.get(glob)
                if existing is None:
                    continue
                regex, mt = existing
                if mt == mimetype:
                    del globs[glob]
    def unregister(self, mimetype):
        """ Unregister a new mimetype

        mimetype must implement IMimetype
        """
        assert IMimetype.providedBy(mimetype)
        for t in mimetype.mimetypes:
            major, minor = split(t)
            group = self._mimetypes.get(major, {})
            if group.get(minor) == mimetype:
                del group[minor]
        for e in mimetype.extensions:
            if self.extensions.get(e) == mimetype:
                del self.extensions[e]
        globs = getattr(self, 'globs', None)
        if globs is not None:
            for glob in mimetype.globs:
                existing = globs.get(glob)
                if existing is None:
                    continue
                regex, mt = existing
                if mt == mimetype:
                    del globs[glob]
示例#9
0
    def lookup(self, mimetypestring):
        """Lookup for IMimetypes object matching mimetypestring

        mimetypestring may have an empty minor part or containing a
        wildcard (*) mimetypestring may and IMimetype object (in this
        case it will be returned unchanged

        Return a list of mimetypes objects associated with the
        RFC-2046 name return an empty list if no one is known.
        """
        if IMimetype.providedBy(mimetypestring):
            return (aq_base(mimetypestring), )
        __traceback_info__ = (repr(mimetypestring), str(mimetypestring))
        major, minor = split(str(mimetypestring))
        group = self._mimetypes.get(major, {})
        if not minor or minor == '*':
            res = group.values()
        else:
            res = group.get(minor)
            if res:
                res = (res, )
            else:
                return ()
        return tuple([aq_base(mtitem) for mtitem in res])
    def lookup(self, mimetypestring):
        """Lookup for IMimetypes object matching mimetypestring

        mimetypestring may have an empty minor part or containing a
        wildcard (*) mimetypestring may and IMimetype object (in this
        case it will be returned unchanged

        Return a list of mimetypes objects associated with the
        RFC-2046 name return an empty list if no one is known.
        """
        if IMimetype.providedBy(mimetypestring):
            return (aq_base(mimetypestring), )
        __traceback_info__ = (repr(mimetypestring), str(mimetypestring))
        major, minor = split(str(mimetypestring))
        group = self._mimetypes.get(major, {})
        if not minor or minor == '*':
            res = group.values()
        else:
            res = group.get(minor)
            if res:
                res = (res,)
            else:
                return ()
        return tuple([aq_base(mtitem) for mtitem in res])
示例#11
0
 def __cmp__(self, other):
     if IMimetype.providedBy(other):
         other = other.normalized()
     return not (other in self.mimetypes)
示例#12
0
 def __setstate__(self, dict):
     mimetype = dict.get('mimetype', None)
     if IMimetype.providedBy(mimetype):
         dict['mimetype'] = str(mimetype)
         dict['binary'] = not not mimetype.binary
     File.__setstate__(self, dict)
示例#13
0
 def __setstate__(self, dict):
     mimetype = dict.get('mimetype', None)
     if IMimetype.providedBy(mimetype):
         dict['mimetype'] = str(mimetype)
         dict['binary'] = not not mimetype.binary
     File.__setstate__(self, dict)
示例#14
0
 def __cmp__(self, other):
     if IMimetype.providedBy(other):
         other = other.normalized()
     return not (other in self.mimetypes)
示例#15
0
 def __cmp__(self, other):
     if IMimetype.isImplementedBy(other):
         other = other.normalized()
     return not (other in self.mimetypes)
示例#16
0
 def __setstate__(self, dict):
     mimetype = dict.get("mimetype", None)
     if IMimetype.providedBy(mimetype):
         dict["mimetype"] = str(mimetype)
         dict["binary"] = not not mimetype.binary
     File.__setstate__(self, dict)