This file is indexed.

/usr/lib/python2.7/dist-packages/picklable_itertools/tee.py is in python-picklable-itertools 0.1.1-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
"""Support code for implementing `tee`."""
import collections
import six
from picklable_itertools import iter_


class tee_iterator(six.Iterator):
    """An iterator that works in conjunction with a `tee_manager`."""
    def __init__(self, deque, manager):
        self._deque = deque
        self._manager = manager

    def __iter__(self):
        return self

    def __next__(self):
        if len(self._deque) > 0:
            return self._deque.popleft()
        else:
            self._manager.advance()
            assert len(self._deque) > 0
            return next(self)


class tee_manager(object):
    """An object that manages a base iterator and publishes results to
    one or more client `tee_iterators`.
    """
    def __init__(self, iterable, n=2):
        self._iterable = iter_(iterable)
        self._deques = tuple(collections.deque() for _ in range(n))

    def iterators(self):
        return tuple(tee_iterator(deque, self) for deque in self._deques)

    def advance(self):
        """Advance the base iterator, publish to constituent iterators."""
        elem = next(self._iterable)
        for deque in self._deques:
            deque.append(elem)


def tee(iterable, n=2):
    """tee(iterable, n=2) --> tuple of n independent iterators."""
    return tee_manager(iter_(iterable), n=n).iterators()