/usr/lib/python3/dist-packages/zope/location/interfaces.py is in python3-zope.location 4.0.3-1.
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | ##############################################################################
#
# Copyright (c) 2003-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.
#
##############################################################################
"""Location framework interfaces
"""
__docformat__ = 'restructuredtext'
from zope.interface import Interface
from zope.interface import Attribute
from zope.schema import TextLine
from zope.location._compat import u
class ILocation(Interface):
"""Objects that can be located in a hierachy.
Given a parent and a name an object can be located within that parent. The
locatable object's `__name__` and `__parent__` attributes store this
information.
Located objects form a hierarchy that can be used to build file-system-like
structures. For example in Zope `ILocation` is used to build URLs and to
support security machinery.
To retrieve an object from its parent using its name, the `ISublocation`
interface provides the `sublocations` method to iterate over all objects
located within the parent. The object searched for can be found by reading
each sublocation's __name__ attribute.
"""
__parent__ = Attribute("The parent in the location hierarchy.")
__name__ = TextLine(
title=u("The name within the parent"),
description=u("The object can be looked up from the parent's "
"sublocations using this name."),
required=False,
default=None)
# The IContained interface was moved from zope.container to here in
# zope.container 3.8.2 to break dependency cycles. It is not actually
# used within this package, but is depended upon by external
# consumers.
class IContained(ILocation):
"""Objects contained in containers."""
class ILocationInfo(Interface):
"""Provides supplemental information for located objects.
Requires that the object has been given a location in a hierarchy.
"""
def getRoot():
"""Return the root object of the hierarchy."""
def getPath():
"""Return the physical path to the object as a string.
Uses '/' as the path segment separator.
"""
def getParent():
"""Returns the container the object was traversed via.
Returns None if the object is a containment root.
Raises TypeError if the object doesn't have enough context to get the
parent.
"""
def getParents():
"""Returns a list starting with the object's parent followed by
each of its parents.
Raises a TypeError if the object is not connected to a containment
root.
"""
def getName():
"""Return the last segment of the physical path."""
def getNearestSite():
"""Return the site the object is contained in
If the object is a site, the object itself is returned.
"""
class ISublocations(Interface):
"""Provide access to sublocations of an object.
All objects with the same parent object are called the ``sublocations`` of
that parent.
"""
def sublocations():
"""Return an iterable of the object's sublocations."""
class IRoot(Interface):
"""Marker interface to designate root objects within a location hierarchy.
"""
class LocationError(KeyError, LookupError):
"""There is no object for a given location."""
# Soft dependency on zope.component.
#
# Also, these interfaces used to be defined here directly, so this provides
# backwardc-comppatibiltiy
try:
from zope.component.interfaces import ISite
except ImportError: #pragma NO COVER
class ISite(Interface):
pass
|