[Checkins] SVN: zope.file/branches/0.6/ Merge changes from 0.6.1 to 0.6.2.

Ulrich Fouquet cvs-admin at zope.org
Mon Jun 4 16:29:54 UTC 2012


Log message for revision 126570:
  Merge changes from 0.6.1 to 0.6.2.
  
  Not sure, whether this is really neccessary.
  
  

Changed:
  U   zope.file/branches/0.6/CHANGES.txt
  U   zope.file/branches/0.6/setup.py
  U   zope.file/branches/0.6/src/zope/file/README.txt
  A   zope.file/branches/0.6/src/zope/file/adapters.txt
  U   zope.file/branches/0.6/src/zope/file/browser.zcml
  A   zope.file/branches/0.6/src/zope/file/menus.zcml
  U   zope.file/branches/0.6/src/zope/file/tests.py

-=-
Modified: zope.file/branches/0.6/CHANGES.txt
===================================================================
--- zope.file/branches/0.6/CHANGES.txt	2012-06-04 15:54:22 UTC (rev 126569)
+++ zope.file/branches/0.6/CHANGES.txt	2012-06-04 16:29:49 UTC (rev 126570)
@@ -2,6 +2,14 @@
 CHANGES
 =======
 
+0.6.2 (2012-06-04)
+------------------
+
+- Moved menu-oriented registrations into new menus.zcml. This is now
+  loaded if zope.app.zcmlfiles is available only.
+
+- Increase test coverage.
+
 0.6.1 (2012-01-26)
 ------------------
 

Modified: zope.file/branches/0.6/setup.py
===================================================================
--- zope.file/branches/0.6/setup.py	2012-06-04 15:54:22 UTC (rev 126569)
+++ zope.file/branches/0.6/setup.py	2012-06-04 16:29:49 UTC (rev 126570)
@@ -22,7 +22,7 @@
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
 setup(name='zope.file',
-      version='0.6.1',
+      version='0.6.2',
       author='Zope Corporation and Contributors',
       author_email='zope-dev at zope.org',
       description='Efficient File Implementation for Zope Applications',

Modified: zope.file/branches/0.6/src/zope/file/README.txt
===================================================================
--- zope.file/branches/0.6/src/zope/file/README.txt	2012-06-04 15:54:22 UTC (rev 126569)
+++ zope.file/branches/0.6/src/zope/file/README.txt	2012-06-04 16:29:49 UTC (rev 126570)
@@ -33,6 +33,17 @@
   >>> f.parameters["charset"]
   'us-ascii'
 
+Both, `parameters` and `mimeType` can optionally also be set when
+creating a `File` object:
+
+  >>> f2 = File(mimeType = "application/octet-stream",
+  ...           parameters = dict(charset = "utf-8"))
+  >>> f2.mimeType
+  'application/octet-stream'
+
+  >>> f2.parameters["charset"]
+  'utf-8'
+
 File objects also sport a `size` attribute that provides the number of
 bytes in the file:
 

Copied: zope.file/branches/0.6/src/zope/file/adapters.txt (from rev 126566, zope.file/trunk/src/zope/file/adapters.txt)
===================================================================
--- zope.file/branches/0.6/src/zope/file/adapters.txt	                        (rev 0)
+++ zope.file/branches/0.6/src/zope/file/adapters.txt	2012-06-04 16:29:49 UTC (rev 126570)
@@ -0,0 +1,54 @@
+========
+Adapters
+========
+
+The `zope.file` package provides some adapters to adapt file-like
+objects to `zope.filerepresentation` conform objects. There is a
+read-file adapter and a write-file adapter available. We start with a
+regular `File` object:
+
+   >>> from zope.file.file import File
+   >>> f = File(parameters=dict(charset='utf-8'))
+   >>> f.open('w').write("hello")
+
+Now we can turn this file into a read-only file which we can read and
+whose size we can get:
+
+   >>> from zope.filerepresentation.interfaces import IReadFile, IWriteFile
+   >>> r = IReadFile(f)
+   >>> r.read()
+   'hello'
+
+   >>> r.size()
+   5
+
+Writing to this read-only file is impossible, as the interface does
+not require it:
+
+   >>> r.write("some more content")
+   Traceback (most recent call last):
+   AttributeError: 'ReadFileAdapter' object has no attribute 'write'
+
+With a write-file the opposite happens. We can write but not read:
+
+   >>> w = IWriteFile(f)
+   >>> w.write("some more content")
+   >>> w.read()
+   Traceback (most recent call last):
+   AttributeError: 'WriteFileAdapter' object has no attribute 'read'
+
+The delivered adapters really comply with the promised interfaces:
+
+   >>> from zope.interface.verify import verifyClass, verifyObject
+   >>> from zope.file.adapters import ReadFileAdapter, WriteFileAdapter
+   >>> verifyClass(IReadFile, ReadFileAdapter)
+   True
+
+   >>> verifyObject(IReadFile, r)
+   True
+
+   >>> verifyClass(IWriteFile, WriteFileAdapter)
+   True
+
+   >>> verifyObject(IWriteFile, w)
+   True

Modified: zope.file/branches/0.6/src/zope/file/browser.zcml
===================================================================
--- zope.file/branches/0.6/src/zope/file/browser.zcml	2012-06-04 15:54:22 UTC (rev 126569)
+++ zope.file/branches/0.6/src/zope/file/browser.zcml	2012-06-04 16:29:49 UTC (rev 126570)
@@ -1,6 +1,7 @@
 <configure
     xmlns="http://namespaces.zope.org/zope"
     xmlns:browser="http://namespaces.zope.org/browser"
+    xmlns:zcml="http://namespaces.zope.org/zcml"
     i18n_domain="zope.file"
     >
 
@@ -26,33 +27,17 @@
       />
 
   <browser:view
-      for=".interfaces.IFile"
-      menu="zmi_views" title="Upload"
-      name="edit.html"
-      class=".upload.Reupload"
-      permission="zope.ManageContent"
-      />
-
-  <browser:view
-      for=".interfaces.IFile"
-      menu="zmi_views" title="Content Type"
-      name="contenttype.html"
-      class=".contenttype.ContentTypeForm"
-      permission="zope.ManageContent"
-      />
-
-  <browser:view
       for="zope.browser.interfaces.IAdding"
       name="zope.file.File"
       class=".upload.Upload"
       permission="zope.ManageContent"
       />
 
-  <browser:addMenuItem
-      for="zope.browser.interfaces.IAdding"
-      view="zope.file.File"
-      title="Zope File"
-      class="zope.file.file.File"
-      permission="zope.ManageContent"
+  <!-- Register menu related stuff if z.a.zcmlfiles is available only -->
+  <include
+      zcml:condition="installed zope.app.zcmlfiles"
+      package="zope.file"
+      file="menus.zcml"
       />
+
 </configure>

Copied: zope.file/branches/0.6/src/zope/file/menus.zcml (from rev 126566, zope.file/trunk/src/zope/file/menus.zcml)
===================================================================
--- zope.file/branches/0.6/src/zope/file/menus.zcml	                        (rev 0)
+++ zope.file/branches/0.6/src/zope/file/menus.zcml	2012-06-04 16:29:49 UTC (rev 126570)
@@ -0,0 +1,35 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    i18n_domain="zope.file"
+    >
+
+  <!--
+      Menu related configuration.
+      Loaded from configure.zcml only if zope.app.zcmlfiles is available.
+  -->
+  <browser:view
+      for=".interfaces.IFile"
+      menu="zmi_views" title="Upload"
+      name="edit.html"
+      class=".upload.Reupload"
+      permission="zope.ManageContent"
+      />
+
+  <browser:view
+      for=".interfaces.IFile"
+      menu="zmi_views" title="Content Type"
+      name="contenttype.html"
+      class=".contenttype.ContentTypeForm"
+      permission="zope.ManageContent"
+      />
+
+  <browser:addMenuItem
+      for="zope.browser.interfaces.IAdding"
+      view="zope.file.File"
+      title="Zope File"
+      class="zope.file.file.File"
+      permission="zope.ManageContent"
+      />
+
+</configure>

Modified: zope.file/branches/0.6/src/zope/file/tests.py
===================================================================
--- zope.file/branches/0.6/src/zope/file/tests.py	2012-06-04 15:54:22 UTC (rev 126569)
+++ zope.file/branches/0.6/src/zope/file/tests.py	2012-06-04 16:29:49 UTC (rev 126570)
@@ -28,6 +28,7 @@
     return unittest.TestSuite((
         doctest.DocFileSuite("README.txt"),
         doctest.DocFileSuite("browser.txt"),
+        fromDocFile("adapters.txt"),
         fromDocFile("contenttype.txt"),
         fromDocFile("download.txt"),
         fromDocFile("upload.txt"),



More information about the checkins mailing list