/usr/share/pyshared/zope/site/folder.py is in python-zope.site 3.9.2-0ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #############################################################################
#
# Copyright (c) 2009 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (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.
#
##############################################################################
import zope.component.interfaces
import zope.container.folder
from zope.interface import implements, directlyProvides
from zope.site.interfaces import IFolder, IRootFolder
from zope.site.site import SiteManagerContainer
class Folder(zope.container.folder.Folder, SiteManagerContainer):
implements(IFolder)
def rootFolder():
f = Folder()
directlyProvides(f, IRootFolder)
return f
class FolderSublocations(object):
"""Get the sublocations of a folder
The subobjects of a folder include it's contents and it's site manager if
it is a site.
>>> from zope.container.contained import Contained
>>> folder = Folder()
>>> folder['ob1'] = Contained()
>>> folder['ob2'] = Contained()
>>> folder['ob3'] = Contained()
>>> subs = list(FolderSublocations(folder).sublocations())
>>> subs.remove(folder['ob1'])
>>> subs.remove(folder['ob2'])
>>> subs.remove(folder['ob3'])
>>> subs
[]
>>> sm = Contained()
>>> from zope.interface import directlyProvides
>>> from zope.component.interfaces import IComponentLookup
>>> directlyProvides(sm, IComponentLookup)
>>> folder.setSiteManager(sm)
>>> directlyProvides(folder, zope.component.interfaces.ISite)
>>> subs = list(FolderSublocations(folder).sublocations())
>>> subs.remove(folder['ob1'])
>>> subs.remove(folder['ob2'])
>>> subs.remove(folder['ob3'])
>>> subs.remove(sm)
>>> subs
[]
"""
def __init__(self, folder):
self.folder = folder
def sublocations(self):
folder = self.folder
for key in folder:
yield folder[key]
if zope.component.interfaces.ISite.providedBy(folder):
yield folder.getSiteManager()
|