This file is indexed.

/usr/lib/python2.7/dist-packages/twisted/lore/process.py is in python-twisted-lore 13.2.0-1ubuntu1.2.

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
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- test-case-name: twisted.lore.test.test_lore -*-
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.

#
import sys, os
import tree #todo: get rid of this later
import indexer

class NoProcessorError(Exception):
    pass

class ProcessingFailure(Exception):
    pass

cols = 79

def dircount(d):
    return len([1 for el in d.split("/") if el != '.'])


class Walker:

    def __init__(self, df, fext, linkrel):
        self.df = df
        self.linkrel = linkrel
        self.fext = fext
        self.walked = []
        self.failures = []

    def walkdir(self, topdir, prefix=''):
        self.basecount = dircount(topdir)
        os.path.walk(topdir, self.walk, prefix)

    def walk(self, prefix, d, names):
        linkrel = prefix + '../' * (dircount(d) - self.basecount)
        for name in names:
            fullpath = os.path.join(d, name)
            fext = os.path.splitext(name)[1]
            if fext == self.fext:
                self.walked.append((linkrel, fullpath))
                
    def generate(self):
        i = 0
        indexer.clearEntries()
        tree.filenum = 0
        for linkrel, fullpath in self.walked:
            linkrel = self.linkrel + linkrel
            i += 1
            fname = os.path.splitext(fullpath)[0]
            self.percentdone((float(i) / len(self.walked)), fname)
            try:
                self.df(fullpath, linkrel)
            except ProcessingFailure, e:
                self.failures.append((fullpath, e))
        indexer.generateIndex()
        self.percentdone(1., None)

    def percentdone(self, percent, fname):
        # override for neater progress bars
        proglen = 40
        hashes = int(percent * proglen)
        spaces = proglen - hashes
        progstat = "[%s%s] (%s)" %('#' * hashes, ' ' * spaces,fname or "*Done*")
        progstat += (cols - len(progstat)) * ' '
        progstat += '\r'
        sys.stdout.write(progstat)
        sys.stdout.flush()
        if fname is None:
            print

class PlainReportingWalker(Walker):

    def percentdone(self, percent, fname):
        if fname:
            print fname

class NullReportingWalker(Walker):

    def percentdone(self, percent, fname):
        pass

def parallelGenerator(originalFileName, outputExtension):
    return os.path.splitext(originalFileName)[0]+outputExtension

def fooAddingGenerator(originalFileName, outputExtension):
    return os.path.splitext(originalFileName)[0]+"foo"+outputExtension

def outputdirGenerator(originalFileName, outputExtension, inputdir, outputdir):
    originalFileName = os.path.abspath(originalFileName)
    abs_inputdir = os.path.abspath(inputdir)
    if os.path.commonprefix((originalFileName, abs_inputdir)) != abs_inputdir:
        raise ValueError("Original file name '" + originalFileName +
              "' not under input directory '" + abs_inputdir + "'")

    adjustedPath = os.path.join(outputdir, os.path.basename(originalFileName))
    return tree.getOutputFileName(adjustedPath, outputExtension)

def getFilenameGenerator(config, outputExt):
    if config.get('outputdir'):
        return (lambda originalFileName, outputExtension:
            outputdirGenerator(originalFileName, outputExtension,
                               os.path.abspath(config.get('inputdir')),
                               os.path.abspath(config.get('outputdir'))))
    else:
        return tree.getOutputFileName

def getProcessor(module, output, config):
    try:
        m = getattr(module.factory, 'generate_'+output)
    except AttributeError:
        raise NoProcessorError("cannot generate "+output+" output")

    if config.get('ext'):
        ext = config['ext']
    else:
        from default import htmlDefault
        ext = htmlDefault['ext']

    return m(config, getFilenameGenerator(config, ext))