[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Container/Views/VFS - VFSContainerView.py:1.1.2.4

Shane Hathaway shane@cvs.zope.org
Fri, 12 Apr 2002 17:04:41 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Container/Views/VFS
In directory cvs.zope.org:/tmp/cvs-serv12365/lib/python/Zope/App/OFS/Container/Views/VFS

Modified Files:
      Tag: Zope3-Server-Branch
	VFSContainerView.py 
Log Message:
Added a cheesy check_writable() and stripped CRs


=== Zope3/lib/python/Zope/App/OFS/Container/Views/VFS/VFSContainerView.py 1.1.2.3 => 1.1.2.4 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id$
-"""
-import fnmatch
-import time
-
-from Zope.ComponentArchitecture import getView
-from Zope.Publisher.VFS.IVFSPublisher import IVFSPublisher
-
-from Zope.Publisher.VFS.IVFSDirectoryPublisher import IVFSDirectoryPublisher
-from Zope.App.OFS.Container.IContainer import IContainer 
-
-# XXX hard coded object types.
-from Zope.App.OFS.Content.File.File import File
-from Zope.App.OFS.Folder.Folder import Folder
-
-class VFSContainerView:
-
-    __implements__ =  IVFSDirectoryPublisher
-
-
-    def __init__(self, context):
-        """ """
-        self._container = context
-
-
-    ############################################################
-    # Implementation methods for interface
-    # Zope.Publisher.VFS.IVFSDirectoryPublisher
-
-    def exists(self, name):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        return self._container.hasObject(name)
-    
-
-    def listdir(self, with_stats=0, pattern='*'):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        t = time.time()
-        file_list = self._container.objectIds()
-        # filter them using the pattern
-        file_list = list(
-            filter(lambda f, p=pattern, fnm=fnmatch.fnmatch: fnm(f, p),
-                   file_list))
-        # sort them alphabetically
-        file_list.sort()
-        if not with_stats:
-            result = file_list
-        else:
-            result = []
-            for file in file_list:
-                obj = self._container.getObject(file)
-                size = 0
-                # XXX Should be much nicer
-                if IContainer.isImplementedBy(obj):
-                    dir_mode = 16384
-                else:
-                    dir_mode = 0
-                if hasattr(obj, 'getSize'):
-                    size = obj.getSize()
-                stat = (dir_mode, 0, 0, 0, 0, 0, size, t, t, t)
-                if stat is not None:
-                    result.append((file, stat))
-        return result
-    
-
-    def mkdir(self, name, mode=777):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        if not self._container.hasObject(name):
-            obj = Folder()
-            self._container.setObject(name, obj)
-
-    def remove(self, name):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        return self._container.delObject(name)
-
-    def rmdir(self, name):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        return self._container.delObject(name)
-
-    def rename(self, old, new):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        obj = self._container.getObject(old)
-        self._container.delObject(old)
-        self._container.setObject(new, obj)        
-
-
-    def writefile(self, name, mode, instream, start=0):
-        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
-        # XXX This should become much, much smarter later. Based on the
-        # data and the file ending, it should pick the right object type. 
-        # *** Waiting for Jim's file extension proposal and code to land ***
-        if not self._container.hasObject(name):
-            obj = File()
-            self._container.setObject(name, obj)
-        else:
-            obj = self._container.getObject(name)
-
-        vfs_view = getView(obj, 'vfs', IVFSPublisher)
-        vfs_view.write(mode, instream, start)
-
-
-    ######################################
-    # from: Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher
-
-    def isdir(self):
-        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
-        return 1
-
-    def isfile(self):
-        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
-        return 0
-
-    def stat(self):
-        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
-        dir_mode = 16384
-        t = time.time()
-        uid = 0
-        gid = 0
-        return (dir_mode+0, 0, 0, 0, uid, gid, 4096, t, t, t)
-
-
-    ######################################
-    # from: Zope.Publisher.VFS.IVFSPublisher.IVFSPublisher
-
-    def publishTraverse(self, request, name):
-        'See Zope.Publisher.VFS.IVFSPublisher.IVFSPublisher'
-        return getattr(self, name)
-
-    #
-    ############################################################
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+import fnmatch
+import time
+
+from Zope.ComponentArchitecture import getView
+from Zope.Publisher.VFS.IVFSPublisher import IVFSPublisher
+
+from Zope.Publisher.VFS.IVFSDirectoryPublisher import IVFSDirectoryPublisher
+from Zope.App.OFS.Container.IContainer import IContainer 
+
+# XXX hard coded object types.
+from Zope.App.OFS.Content.File.File import File
+from Zope.App.OFS.Folder.Folder import Folder
+
+class VFSContainerView:
+
+    __implements__ =  IVFSDirectoryPublisher
+
+
+    def __init__(self, context):
+        """ """
+        self._container = context
+
+
+    ############################################################
+    # Implementation methods for interface
+    # Zope.Publisher.VFS.IVFSDirectoryPublisher
+
+    def exists(self, name):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        return self._container.hasObject(name)
+    
+
+    def listdir(self, with_stats=0, pattern='*'):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        t = time.time()
+        file_list = self._container.objectIds()
+        # filter them using the pattern
+        file_list = list(
+            filter(lambda f, p=pattern, fnm=fnmatch.fnmatch: fnm(f, p),
+                   file_list))
+        # sort them alphabetically
+        file_list.sort()
+        if not with_stats:
+            result = file_list
+        else:
+            result = []
+            for file in file_list:
+                obj = self._container.getObject(file)
+                size = 0
+                # XXX Should be much nicer
+                if IContainer.isImplementedBy(obj):
+                    dir_mode = 16384
+                else:
+                    dir_mode = 0
+                if hasattr(obj, 'getSize'):
+                    size = obj.getSize()
+                stat = (dir_mode, 0, 0, 0, 0, 0, size, t, t, t)
+                if stat is not None:
+                    result.append((file, stat))
+        return result
+    
+
+    def mkdir(self, name, mode=777):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        if not self._container.hasObject(name):
+            obj = Folder()
+            self._container.setObject(name, obj)
+
+    def remove(self, name):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        return self._container.delObject(name)
+
+    def rmdir(self, name):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        return self._container.delObject(name)
+
+    def rename(self, old, new):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        obj = self._container.getObject(old)
+        self._container.delObject(old)
+        self._container.setObject(new, obj)        
+
+
+    def writefile(self, name, mode, instream, start=0):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        # XXX This should become much, much smarter later. Based on the
+        # data and the file ending, it should pick the right object type. 
+        # *** Waiting for Jim's file extension proposal and code to land ***
+        if not self._container.hasObject(name):
+            obj = File()
+            self._container.setObject(name, obj)
+        else:
+            obj = self._container.getObject(name)
+
+        vfs_view = getView(obj, 'vfs', IVFSPublisher)
+        vfs_view.write(mode, instream, start)
+
+    def check_writable(self, name):
+        'See Zope.Publisher.VFS.IVFSDirectoryPublisher.IVFSDirectoryPublisher'
+        # XXX Cheesy band aid :-)
+        return 1
+
+
+    ######################################
+    # from: Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher
+
+    def isdir(self):
+        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
+        return 1
+
+    def isfile(self):
+        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
+        return 0
+
+    def stat(self):
+        'See Zope.Publisher.VFS.IVFSObjectPublisher.IVFSObjectPublisher'
+        dir_mode = 16384
+        t = time.time()
+        uid = 0
+        gid = 0
+        return (dir_mode+0, 0, 0, 0, uid, gid, 4096, t, t, t)
+
+
+    ######################################
+    # from: Zope.Publisher.VFS.IVFSPublisher.IVFSPublisher
+
+    def publishTraverse(self, request, name):
+        'See Zope.Publisher.VFS.IVFSPublisher.IVFSPublisher'
+        return getattr(self, name)
+
+    #
+    ############################################################