[Checkins] SVN: Sandbox/nadako/z3c.sharedmimeinfo/trunk/ Don't register "global" mime info utility, use it directly instead.

Dan Korostelev nadako at gmail.com
Tue Sep 8 13:18:30 EDT 2009


Log message for revision 103652:
  Don't register "global" mime info utility, use it directly instead.
  Add a TODO note about info data pluggability.

Changed:
  A   Sandbox/nadako/z3c.sharedmimeinfo/trunk/TODO.txt
  U   Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/README.txt
  U   Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/__init__.py
  U   Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/configure.zcml
  U   Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/tests/test_doc.py
  U   Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/utility.py

-=-
Added: Sandbox/nadako/z3c.sharedmimeinfo/trunk/TODO.txt
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/TODO.txt	                        (rev 0)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/TODO.txt	2009-09-08 17:18:29 UTC (rev 103652)
@@ -0,0 +1,2 @@
+- Think about MIME info data path pluggability, so for instance one could
+  install shared-mime-info as a python egg and use it with z3c.sharedmimeinfo.

Modified: Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/README.txt
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/README.txt	2009-09-08 17:06:03 UTC (rev 103651)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/README.txt	2009-09-08 17:18:29 UTC (rev 103652)
@@ -24,14 +24,13 @@
 MIME type detection utility
 ---------------------------
 
-The core of this package is the global IMIMETypesUtility component::
+The core of this package is the IMIMETypesUtility component::
 
-  >>> from zope.component import getUtility
   >>> from zope.interface.verify import verifyObject
   >>> from z3c.sharedmimeinfo.interfaces import IMIMETypesUtility
+  >>> from z3c.sharedmimeinfo.utility import mimeTypesUtility
 
-  >>> util = getUtility(IMIMETypesUtility)
-  >>> verifyObject(IMIMETypesUtility, util)
+  >>> verifyObject(IMIMETypesUtility, mimeTypesUtility)
   True
 
 It has three methods for getting mime type. Those three methods are
@@ -45,7 +44,7 @@
 The simpliest method is ``getTypeByFileName`` that looks up the type by
 filename::
 
-  >>> mt = util.getTypeByFileName('example.doc')
+  >>> mt = mimeTypesUtility.getTypeByFileName('example.doc')
 
 The mime type is the object implementing IMIMEType interface::
 
@@ -76,21 +75,21 @@
 Shared-Mime-Info is nice, it can even detect mime type for file names like
 ``Makefile``::
 
-  >>> print util.getTypeByFileName('Makefile')
+  >>> print mimeTypesUtility.getTypeByFileName('Makefile')
   text/x-makefile
 
 Also, it know the difference in extension letter case. For example the ``.C``
 should be detected as C++ file, when ``.c`` is plain C file::
 
-  >>> print util.getTypeByFileName('hello.C')
+  >>> print mimeTypesUtility.getTypeByFileName('hello.C')
   text/x-c++src
   
-  >>> print util.getTypeByFileName('main.c')
+  >>> print mimeTypesUtility.getTypeByFileName('main.c')
   text/x-csrc
 
 The method returns ``None`` if it can determine type from file name::
 
-  >>> print util.getTypeByFileName('somefilename')
+  >>> print mimeTypesUtility.getTypeByFileName('somefilename')
   None
 
 Detection by contents
@@ -107,25 +106,25 @@
   ...     return open(os.path.join(SAMPLE_DATA_DIR, 'sample.' + extension))
 
   >>> fdoc = openSample('doc')
-  >>> print util.getTypeByContents(fdoc)
+  >>> print mimeTypesUtility.getTypeByContents(fdoc)
   application/msword
 
   >>> fhtml = openSample('html')
-  >>> print util.getTypeByContents(fhtml)
+  >>> print mimeTypesUtility.getTypeByContents(fhtml)
   text/html
   
   >>> fpdf = openSample('pdf')
-  >>> print util.getTypeByContents(fpdf)
+  >>> print mimeTypesUtility.getTypeByContents(fpdf)
   application/pdf
 
   >>> fpng = openSample('png')
-  >>> print util.getTypeByContents(fpng)
+  >>> print mimeTypesUtility.getTypeByContents(fpng)
   image/png
 
 If we pass the file without any magic bytes, it will return ``None``::
 
   >>> funknown = openSample('unknown')
-  >>> print util.getTypeByContents(funknown)
+  >>> print mimeTypesUtility.getTypeByContents(funknown)
   None
 
 Detection by both file name and contents
@@ -140,26 +139,26 @@
 
 It needs at least one argument, so you can't call it with no arguments::
 
-  >>> util.getType()
+  >>> mimeTypesUtility.getType()
   Traceback (most recent call last):
   ...
   TypeError: Either filename or file should be provided or both of them
 
-  >>> print util.getType(filename='wrong.doc')
+  >>> print mimeTypesUtility.getType(filename='wrong.doc')
   application/msword
 
-  >>> print util.getType(file=fpng)
+  >>> print mimeTypesUtility.getType(file=fpng)
   image/png
 
 If type cannot be detected, it WILL return either ``text/plain`` or
 ``application/octet-stream`` mime type. It will try to guess is it text
 or binary by checking first 32 bytes:: 
 
-  >>> print util.getType(filename='somefile', file=funknown)
+  >>> print mimeTypesUtility.getType(filename='somefile', file=funknown)
   text/plain
 
   >>> funknownbinary = openSample('binary')
-  >>> print util.getType(filename='somefile2', file=funknownbinary)
+  >>> print mimeTypesUtility.getType(filename='somefile2', file=funknownbinary)
   application/octet-stream
 
 Let's close files, because we won't need them anymore::
@@ -175,7 +174,7 @@
 
 Let's get some mime type to play with::
 
-  >>> mt = util.getTypeByFileName('example.png')
+  >>> mt = mimeTypesUtility.getTypeByFileName('example.png')
 
 By default, mimetype title message id is its media/subtype form::
 
@@ -216,7 +215,7 @@
   image/png
 
   >>> funknownbinary = openSample('binary')
-  >>> print util.getType(filename='somefile2.txt', file=funknownbinary)
+  >>> print mimeTypesUtility.getType(filename='somefile2.txt', file=funknownbinary)
   text/plain
 
   >>> del fpng, funknownbinary

Modified: Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/__init__.py
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/__init__.py	2009-09-08 17:06:03 UTC (rev 103651)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/__init__.py	2009-09-08 17:18:29 UTC (rev 103652)
@@ -14,7 +14,4 @@
 """
 $Id$
 """
-from z3c.sharedmimeinfo.utility import globalMIMETypesUtility
-
-def getType(filename=None, file=None):
-    return globalMIMETypesUtility.getType(filename, file)
+from z3c.sharedmimeinfo.utility import getType

Modified: Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/configure.zcml
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/configure.zcml	2009-09-08 17:06:03 UTC (rev 103651)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/configure.zcml	2009-09-08 17:18:29 UTC (rev 103652)
@@ -1,7 +1,5 @@
 <configure xmlns="http://namespaces.zope.org/zope">
 
-  <utility component=".utility.globalMIMETypesUtility" />
-  
   <utility
       component=".mimetype.mimeTypesTranslationDomain"
       name="shared-mime-info"

Modified: Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/tests/test_doc.py
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/tests/test_doc.py	2009-09-08 17:06:03 UTC (rev 103651)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/tests/test_doc.py	2009-09-08 17:18:29 UTC (rev 103652)
@@ -21,12 +21,10 @@
 from zope.testing import doctest
 from zope.component import provideUtility
 
-from z3c.sharedmimeinfo.utility import globalMIMETypesUtility
 from z3c.sharedmimeinfo.mimetype import mimeTypesTranslationDomain
 
 
 def setUp(test):
-    provideUtility(globalMIMETypesUtility)
     provideUtility(mimeTypesTranslationDomain, name='shared-mime-info')
     test.globs['SAMPLE_DATA_DIR'] = os.path.join(os.path.dirname(__file__), 'sample_data')
 

Modified: Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/utility.py
===================================================================
--- Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/utility.py	2009-09-08 17:06:03 UTC (rev 103651)
+++ Sandbox/nadako/z3c.sharedmimeinfo/trunk/src/z3c/sharedmimeinfo/utility.py	2009-09-08 17:18:29 UTC (rev 103652)
@@ -141,4 +141,5 @@
         return type
 
 
-globalMIMETypesUtility = MIMETypesUtility()
+mimeTypesUtility = MIMETypesUtility()
+getType = mimeTypesUtility.getType



More information about the checkins mailing list