This field represents a layer.
Besides being able to look up the layer by importing it, we also try to look up the name in the site manager.
>>> from zope.interface import directlyProvides >>> from zope.interface.interface import InterfaceClass
>>> layer1 = InterfaceClass('layer1', (),
... __doc__='Layer: layer1',
... __module__='zope.app.layers')
>>> directlyProvides(layer1, ILayer)
>>> layers = None
>>> class Resolver(object):
... def resolve(self, path):
... if '..' in path:
... raise ValueError('Empty module name')
... if (path.startswith('zope.app.layers') and
... hasattr(layers, 'layer1') or
... path == 'zope.app.component.fields.layer1' or
... path == '.fields.layer1'):
... return layer1
... raise ConfigurationError('layer1')
>>> field = LayerField() >>> field = field.bind(Resolver())
>>> field.fromUnicode('zope.app.component.fields.layer1') is layer1
True
>>> from types import ModuleType as module
>>> import sys
>>> layers = module('layers')
>>> import zope.app.layers
>>> old = sys.modules['zope.app.layers']
>>> sys.modules['zope.app.layers'] = layers
>>> setattr(layers, 'layer1', layer1)
>>> field.fromUnicode('layer1') is layer1
True
>>> sys.modules['zope.app.layers'] = old
>>> from zope.app.testing import ztapi >>> ztapi.provideUtility(ILayer, layer1, 'layer1')
>>> field.fromUnicode('layer1') is layer1
True
>>> field.fromUnicode('.fields.layer1') is layer1
True
context
(type: NoneType)
Nonedefault
(type:
ValidatedProperty)
<zope.schema._bootstrapfields.ValidatedProperty object at 0x2aaab2b29710>description
(type:
FieldProperty)
<zope.schema.fieldproperty.FieldProperty object at 0x2aaab2b14b50>interface
(type: NoneType)
Nonemissing_value
(type: NoneType)
Noneorder
(type:
int)
632readonly
(type:
FieldProperty)
<zope.schema.fieldproperty.FieldProperty object at 0x2aaab2d47110>required
(type:
FieldProperty)
<zope.schema.fieldproperty.FieldProperty object at 0x2aaab2b14b10>title
(type:
FieldProperty)
<zope.schema.fieldproperty.FieldProperty object at 0x2aaab2b14ad0>bind(object)
constraint(value)
fromUnicode(u)
get(object)
getDoc()
Returns the documentation for the object.
getName()
Returns the name of the object.
getTaggedValue(tag)
Returns the value associated with tag.
getTaggedValueTags()
Returns a list of all tags.
query(object, default=None)
queryTaggedValue(tag, default=None)
Returns the value associated with tag.
set(object, value)
setTaggedValue(tag, value)
Associates value with key.
validate(value)
There are no known subclasses.