/usr/share/pyshared/lazr/restful/fields.py is in python-lazr.restful 0.9.29-0ubuntu2.
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 | # Copyright 2008 Canonical Ltd.  All rights reserved.
"""LAZR zope.schema.IField implementation."""
__metaclass__ = type
__all__ = [
    'CollectionField',
    'Reference',
    'ReferenceChoice',
    ]
from zope.interface import implements
from zope.schema import Choice, Field, Object
from zope.schema.interfaces import IObject, SchemaNotProvided
from zope.schema._field import AbstractCollection
from lazr.restful.interfaces import (
    ICollectionField, IReference, IReferenceChoice)
class CollectionField(AbstractCollection):
    """A collection associated with an entry."""
    # We subclass AbstractCollection instead of List because List
    # has a _type of list, and we don't want to have to implement list
    # semantics for this class.
    implements(ICollectionField)
    def __init__(self, *args, **kwargs):
        """A generic collection field.
        The readonly property defaults to True since these fields are usually
        for collections of things linked to an object, and these collections
        are managed through a dedicated API.
        """
        kwargs.setdefault('readonly', True)
        super(CollectionField, self).__init__(*args, **kwargs)
class Reference(Object):
    """An Object-like field which doesn't validate all fields of the schema.
    Unlike Object, which does call _validate_fields(self.schema, value) to
    validate all fields, this field will simply call the _validate() method of
    the Field class and then check that the given value provides the specified
    schema.
    """
    implements(IReference)
    def _validate(self, value):
        Field._validate(self, value)
        if not self.schema.providedBy(value):
            raise SchemaNotProvided()
class ReferenceChoice(Choice):
    """A choice among objects."""
    implements(IReferenceChoice)
    def __init__(self, *args, **kwargs):
        """Initialize a choice among a certain kind of object.
        This field can provide more information in a WADL description
        than a standard Choice field.
        This constructor takes the same parameters as the Choice
        constructor, plus a 'schema' keyword parameter.
        :param schema: What kind of object makes up the Choice's vocabulary.
                       The default is IObject.
        """
        schema = kwargs.pop('schema', IObject)
        self.schema = schema
        super(ReferenceChoice, self).__init__(*args, **kwargs)
 |