/usr/lib/python2.7/dist-packages/Scientific/indexing.py is in python-scientific 2.9.4-3.
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 | # A nicer way to build up index tuples for arrays.
#
# You can do all this with slice() plus a few special objects,
# but there's a lot to remember. This version is simpler because
# it uses the standard array indexing syntax.
#
# Written by Konrad Hinsen <hinsen@cnrs-orleans.fr>
# last revision: 2006-6-12
#
"""
Array indexing utility
This module provides a convenient method for constructing
array indices algorithmically. It provides one importable object,
L{index_expression}.
For any index combination, including slicing and axis insertion,
C{a[indices]} is the same as C{a[index_expression[indices]]} for any
array {a}. However, C{index_expression[indices]} can be used anywhere
in Python code and returns a tuple of indexing objects that can be
used in the construction of complex index expressions.
Sole restriction: Slices must be specified in the double-colon
form, i.e. C{a[::]} is allowed, whereas C{a[:]} is not.
"""
class _index_expression_class:
import sys
maxint = sys.maxint
def __init__(self):
pass
def __getitem__(self, item):
if type(item) != type(()):
return (item,)
else:
return item
def __len__(self):
return self.maxint
def __getslice__(self, start, stop):
if stop == self.maxint:
stop = None
return self[start:stop:None]
index_expression = _index_expression_class()
|