This file is indexed.

/usr/lib/python3/dist-packages/pyutilib/math/numtypes.py is in python3-pyutilib 5.3.5-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
#  _________________________________________________________________________
#
#  PyUtilib: A Python utility library.
#  Copyright (c) 2008 Sandia Corporation.
#  This software is distributed under the BSD License.
#  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
#  the U.S. Government retains certain rights in this software.
#  _________________________________________________________________________

__all__ = ['infinity', 'nan', 'is_nan', 'is_finite']

"""
Definitions of mathematical constants
"""

import sys
import math


if sys.version_info < (2,6):
    """ Definition of infinity """
    infinity = float(1e3000)

    """ Definition of NaN """
    nan = infinity/infinity

    def is_nan(x):
        """
        Returns true if the argument is a float and it does not equal itself
        """
        return type(x) is float and x != x
    
    def is_finite(val):
        """
        Returns true if the argument is a float or int and it is not infinite or NaN
        """
        return type(val) in (float,int) and val not in (infinity, -infinity, nan)

else:
    """ Definition of infinity """
    infinity = float('inf')

    """ Definition of NaN """
    nan = infinity/infinity


    def is_nan(x):
        """
        Returns true if the argument is a float and it does not equal itself
        """
        try:
            return math.isnan(x)
        except TypeError:
            return False
    
    def is_finite(x):
        """
        Returns true if the argument is a float or int and it is not infinite or NaN
        """
        try:
            return not math.isinf(x)
        except TypeError:
            return False