This file is indexed.

/usr/lib/python2.7/dist-packages/pychart/chart_object.py is in python-pychart 1.39-7.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
#
# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com)
#
# Jockey is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Jockey is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
import pychart_types
import types

def set_defaults(cls, **dict):
    validAttrs = getattr(cls, "keys")
    for attr, val in dict.items():
        if not validAttrs.has_key(attr):
            raise Exception, "%s: unknown attribute %s." % (cls, attr)
        tuple = list(validAttrs[attr])
        # 0 : type
        # 1: defaultValue
        # 2: document
        # 3: defaultValue document (optional)
        tuple[1] = val
        validAttrs[attr] = tuple

class T(object):
    def init(self, args):
        keys = self.keys
        for attr, tuple in keys.items():
            defaultVal = tuple[1]
            if isinstance(defaultVal, types.FunctionType):
                # if the value is procedure, use the result of the proc call
                # as the default value
                defaultVal = apply(defaultVal, ())
            setattr(self, attr, defaultVal)

        for key, val in args.items():
            self.__setattr__(key, val)

    def __check_type(self, item, value):
        if item.startswith("_"):
            return

        if not self.keys.has_key(item):
            raise Exception, "%s: unknown attribute '%s'" % (self, item)

        typeval, default_value, docstring = self.keys[item][0:3]
        if value == None or typeval == pychart_types.AnyType:
            pass
        elif typeval == bool:
            # In 2.3, bool is a full-fledged type, whereas
            # in 2.2, it's just a function that returns an integer.
            # To mask this difference, we handle the bool type specially.
            if value not in (True, False):
                raise TypeError, "%s: Expecting bool, but got %s" % (self, value)
        elif typeval == str:
            if not isinstance(value, str) and not isinstance(value, unicode):
                raise TypeError, "%s: Expecting a string, but got %s" % (self, value)
        elif isinstance(typeval, types.FunctionType):
            # user-defined check procedure
            error = apply(typeval, (value,))
            if error != None:
                raise TypeError, "%s: %s for attribute '%s', but got '%s'" % (self, error, item, value)
        elif isinstance(value, typeval):
            pass
        else:
            raise TypeError, "%s: Expecting type %s, but got %s (attr=%s, %s)"  % (self, typeval, value,  item, self.keys[item])
    def __init__(self, **args):
        self.init(args)

    def __setattr__(self, item, value):
        self.__check_type(item, value)
        self.__dict__[item] = value

    def check_integrity(self):
        for attr, value in self.__dict__.items():
            self.__check_type(attr, value)
        return True