This file is indexed.

/usr/share/pyshared/envisage/service.py is in python-envisage 4.4.0-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
""" A trait type used to access services. """


# Standard library imports.
import logging

# Enthought library imports.
from traits.api import TraitType


# Logging.
logger = logging.getLogger(__name__)


class Service(TraitType):
    """ A trait type used to access services.

    Note that this is a trait *type* and hence does *NOT* have traits itself
    (i.e. it does *not* inherit from 'HasTraits').

    """

    ###########################################################################
    # 'object' interface.
    ###########################################################################

    def __init__(
        self, protocol=None, query='', minimize='', maximize='', **metadata
    ):
        """ Constructor. """

        super(Service, self).__init__(**metadata)

        # The protocol that the service must provide.
        self._protocol = protocol

        # The optional query.
        self._query = query

        # The optional name of the trait/property to minimize.
        self._minimize = minimize

        # The optional name of the trait/property to maximize.
        self._maximize = maximize

        return

    ###########################################################################
    # 'TraitType' interface.
    ###########################################################################

    def get(self, obj, trait_name):
        """ Trait type getter. """

        service_registry = self._get_service_registry(obj)

        obj = service_registry.get_service(
            self._protocol, self._query, self._minimize, self._maximize
        )

        return obj

    def set(self, obj, name, value):
        """ Trait type setter. """

        raise SystemError('Service traits cannot be set')

    ###########################################################################
    # Private interface.
    ###########################################################################

    def _get_service_registry(self, obj):
        """ Return the service registry in effect for an object. """

        service_registry = getattr(obj, 'service_registry', None)
        if service_registry is None:
            raise ValueError(
                'The "Service" trait type can only be used within objects ' \
                'that have a reference to a service registry via their ' \
                '"service_registry" trait. ' \
                'Object <%s> Service protocol <%s>' % (obj, self._protocol)
            )

        return service_registry

#### EOF ######################################################################