[Checkins] SVN: z3c.filetype/trunk/src/z3c/filetype/ added filetype
adapter
Bernd Dorn
bernd.dorn at fhv.at
Mon Aug 14 09:44:50 EDT 2006
Log message for revision 69470:
added filetype adapter
Changed:
U z3c.filetype/trunk/src/z3c/filetype/README.txt
A z3c.filetype/trunk/src/z3c/filetype/adapters.py
U z3c.filetype/trunk/src/z3c/filetype/configure.zcml
D z3c.filetype/trunk/src/z3c/filetype/guess.py
U z3c.filetype/trunk/src/z3c/filetype/interfaces/__init__.py
U z3c.filetype/trunk/src/z3c/filetype/interfaces/filetypes.py
-=-
Modified: z3c.filetype/trunk/src/z3c/filetype/README.txt
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/README.txt 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/README.txt 2006-08-14 13:44:49 UTC (rev 69470)
@@ -157,3 +157,13 @@
[<InterfaceClass z3c.filetype.interfaces.filetypes.IHTMLFile>]
+There is also an adapter from ITypedFile to IFileType, which can be
+used to get the default content type for the interface.
+
+ >>> from z3c.filetype import adapters
+ >>> component.provideAdapter(adapters.TypedFileType)
+ >>> ft = interfaces.IFileType(foo)
+ >>> ft.contentType
+ 'text/html'
+
+
Added: z3c.filetype/trunk/src/z3c/filetype/adapters.py
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/adapters.py 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/adapters.py 2006-08-14 13:44:49 UTC (rev 69470)
@@ -0,0 +1,31 @@
+from zope.cachedescriptors.property import Lazy
+import interfaces
+from interfaces import filetypes
+from zope import interface
+from zope import component
+
+class TypedFileType(object):
+
+ interface.implements(interfaces.IFileType)
+ component.adapts(filetypes.ITypedFile)
+
+ def __init__(self, context):
+ self.context = context
+
+ @property
+ def contentType(self):
+ decl = interface.Declaration(
+ *interface.directlyProvidedBy(self.context))
+ for iface in decl.flattened():
+ if not issubclass(iface, filetypes.ITypedFile):
+ continue
+ mt = iface.queryTaggedValue(filetypes.MT)
+ if mt is not None:
+ return mt
+
+
+
+
+
+
+
Property changes on: z3c.filetype/trunk/src/z3c/filetype/adapters.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Modified: z3c.filetype/trunk/src/z3c/filetype/configure.zcml
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/configure.zcml 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/configure.zcml 2006-08-14 13:44:49 UTC (rev 69470)
@@ -6,5 +6,6 @@
<subscriber for=".interfaces.ITypeableFile
zope.lifecycleevent.interfaces.IObjectModifiedEvent"
handler=".api.handleModified"/>
-
+
+ <adapter factory=".adapters.TypedFileType"/>
</configure>
Deleted: z3c.filetype/trunk/src/z3c/filetype/guess.py
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/guess.py 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/guess.py 2006-08-14 13:44:49 UTC (rev 69470)
@@ -1,9 +0,0 @@
-
-def getInterfacesFor(data=None, filename=None, mimeType=None):
-
- """returns a sequence of interfaces that are provided by files
- having data as content, filename as name and mimeType as
- mime-type
- """
- raise NotImplementedError
-
Modified: z3c.filetype/trunk/src/z3c/filetype/interfaces/__init__.py
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/interfaces/__init__.py 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/interfaces/__init__.py 2006-08-14 13:44:49 UTC (rev 69470)
@@ -1,6 +1,10 @@
from zope.lifecycleevent.interfaces import IObjectModifiedEvent
-from zope import interface
+from zope import interface, schema
+class IFileType(interface.Interface):
+
+ contentType = schema.TextLine(title = u'Content Type')
+
class IFileTypeModifiedEvent(IObjectModifiedEvent):
"""This event is fired when the filetypes change on an object"""
Modified: z3c.filetype/trunk/src/z3c/filetype/interfaces/filetypes.py
===================================================================
--- z3c.filetype/trunk/src/z3c/filetype/interfaces/filetypes.py 2006-08-14 13:40:51 UTC (rev 69469)
+++ z3c.filetype/trunk/src/z3c/filetype/interfaces/filetypes.py 2006-08-14 13:44:49 UTC (rev 69470)
@@ -20,7 +20,7 @@
ITARFile.setTaggedValue(MTM,re.compile('application/x-tar'))
ITARFile.setTaggedValue(MT,'application/x-tar')
-class IGZIPFile(ITypedFile):
+class IGZIPFile(IBinaryFile):
"""Binary file"""
IGZIPFile.setTaggedValue(MTM,re.compile('application/x-gzip'))
IGZIPFile.setTaggedValue(MT,'application/x-gzip')
More information about the Checkins
mailing list