Module Expr Str Import alias identifier ImportFrom alias ImportFrom alias identifier ImportFrom alias ImportFrom alias Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str FunctionDef arguments args NameParam defaults body Return Lambda arguments args NameParam defaults Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args defaults vararg body Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Assert BoolOpAnd CompareIs Call NameLoad NameLoad NameLoad Call NameLoad GeneratorExp CompareIs Call NameLoad NameLoad NameLoad comprehension NameStore NameLoad Assert BoolOpAnd CompareIs Call NameLoad NameLoad NameLoad Call NameLoad GeneratorExp CompareIs Call NameLoad NameLoad NameLoad comprehension NameStore NameLoad If BoolOpAnd CompareGt Call NameLoad NameLoad Num CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Num Str body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index Num Slice Num orelse Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call AttributeLoad Str attr GeneratorExp Call AttributeLoad Str attr NameLoad comprehension NameStore NameLoad Assign NameStore Call AttributeLoad Str attr NameLoad Assign NameStore Call AttributeLoad Str attr BinOpAdd BinOpAdd ListComp Call AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad ListComp Call AttributeLoad NameLoad attr keyword BinOpAdd NameLoad NameLoad keyword NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad CompareNotEq SubscriptLoad NameLoad Index Num Str ListComp Call AttributeLoad NameLoad attr keyword BinOpAdd NameLoad NameLoad keyword SubscriptLoad NameLoad Slice Num comprehension TupleStore NameStore NameStore Call NameLoad NameLoad CompareEq SubscriptLoad NameLoad Index Num Str Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad If NameLoad body Print NameLoad Assign NameStore Call NameLoad keyword Call AttributeLoad Str attr NameLoad keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad keyword NameLoad TryExcept body Exec NameLoad NameLoad handlers ExceptHandler type NameLoad name NameStore body Raise Call NameLoad BinOpAdd BinOpAdd AttributeLoad NameLoad attr Str NameLoad Assign NameStore SubscriptLoad NameLoad Index NameLoad TryExcept body Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad Call AttributeLoad NameLoad attr Num attr attr Str Str handlers ExceptHandler type TupleLoad NameLoad NameLoad body Pass Return NameLoad decorator_list FunctionDef arguments args defaults body For NameStore ListLoad TupleLoad TupleLoad Str TupleLoad Str Str body For NameStore ListLoad TupleLoad TupleLoad Str TupleLoad Str Str body For NameStore ListLoad TupleLoad TupleLoad Str body Expr Call NameLoad Str NameLoad BinOpAdd NameLoad NameLoad keyword NameLoad decorator_list Assign NameStore Call NameLoad Str TupleLoad TupleLoad Str keyword NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad body Return Call NameLoad NameLoad TupleLoad NameLoad keyword NameLoad decorator_list If CompareEq NameLoad Str body Import alias ImportFrom alias alias Print Str Print ClassDef bases NameLoad body Assign NameStore TupleLoad decorator_list ClassDef bases NameLoad body Assign NameStore TupleLoad decorator_list Assign NameStore Call NameLoad Num Num Num Assign NameStore Call NameLoad Num Num Num Assign NameStore TupleLoad Num Num Num Print Str NameLoad Print Str NameLoad Print Str NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Assign NameStore Dict Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Print Str NameLoad Assign NameStore Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Print Str NameLoad Print Print Str Call NameLoad GeneratorExp NameLoad comprehension NameStore NameLoad Print Str Call NameLoad NameLoad Print Str Call NameLoad NameLoad Print Expr Str Print Str SubscriptLoad NameLoad Slice Print Str SubscriptLoad NameLoad Slice Num Num Expr Str Print Str Call NameLoad Call NameLoad GeneratorExp BinOpPow NameLoad Num comprehension NameStore Call NameLoad Num NameLoad Print Str Call NameLoad Call NameLoad Call NameLoad Num keyword Num Print Print Str Print Assign NameStore Call NameLoad Str TupleLoad Str Str keyword NameLoad Assign NameStore Call NameLoad Str TupleLoad Str Str keyword NameLoad Assign NameStore Call NameLoad Num Num Assign NameStore Call NameLoad Num Num Assign NameStore TupleLoad Num Num Print Str NameLoad Print Str NameLoad Print Str NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Assign NameStore Dict Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Print Str NameLoad Assign NameStore Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Print Str NameLoad Print Print Str Call NameLoad GeneratorExp NameLoad comprehension NameStore NameLoad Print Str Call NameLoad NameLoad Print Str Call NameLoad NameLoad Print Expr Str Print Str Print Assign NameStore Call NameLoad Str TupleLoad Str Str TupleLoad Str Str Str keyword NameLoad Assign NameStore Call NameLoad Str TupleLoad Str Str TupleLoad Str Str Str keyword NameLoad Assign NameStore Call NameLoad Call NameLoad Num Assign NameStore Call NameLoad Call NameLoad Num Assign NameStore Call NameLoad Call NameLoad Num Print Str NameLoad Print Str NameLoad Print Str NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Print Str CompareEq NameLoad NameLoad Print Str CompareNotEq NameLoad NameLoad Print Str CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Str CompareLtE NameLoad NameLoad Print Assign NameStore Dict Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Num Print Str NameLoad Assign NameStore Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Print Str NameLoad Print Print Str Call NameLoad GeneratorExp NameLoad comprehension NameStore NameLoad Print Str Call NameLoad NameLoad Print Str Call NameLoad NameLoad Print Str CompareIn Num NameLoad Print Str CompareIn Num NameLoad Print Str CompareIn Num NameLoad Print Str SubscriptLoad NameLoad Slice Print Str SubscriptLoad NameLoad Slice Num Print Str SubscriptLoad NameLoad Slice Num Num Print Str AttributeLoad NameLoad attr Print Str AttributeLoad NameLoad attr Print Str AttributeLoad NameLoad attr Print Str AttributeLoad NameLoad attr Print Str AttributeLoad NameLoad attr Print Expr Str
N/A N/A N/A sys _sys operator itemgetter keyword iskeyword _iskeyword collections OrderedDict itertools islice N/A _class_template class {typename}(tuple):

    __slots__ = ()

    _meta_fields = {meta_field_names!r}
    _sub_fields = {sub_field_names!r}

    def __new__(_cls, {meta_arg_list}{sub_arg_list}):
        return _tuple.__new__(_cls, _tupler({meta_arg_list}{sub_arg_list}))

    def __repr__(self):
        """Return a nicely formatted representation string"""
        return type(self).__name__ + _tuple.__repr__(self)

    def __eq__(self, other):
        return type(self) is type(other) and _tuple.__eq__(self, other)

    def __ne__(self, other):
        return not self.__eq__(other)

    def __hash__(self):
        return _tuple.__hash__(self)

    def _subs(self):
        return _tuple.__getitem__(self, slice({n_meta},None))

    def __getitem__(self, i):
        #print "__getitem__", self, i
        return self._subs().__getitem__(i)

    def __getslice__(self, i, j):
        return self._subs().__getslice__(i, j)

    def __iter__(self):
        return _islice(_tuple.__iter__(self), {n_meta}, None)

    def __contains__(self, x):
        return self._subs().__contains__(x)

    def __len__(self):
        return _tuple.__len__(self) - {n_meta}

{field_defs}
 N/A _meta_field_template     {name} = _property(_itemgetter({index}))
 N/A _sub_field_template     {name} = _property(_itemgetter({index}))
 N/A _variadic_field_template     {name} = _property(_itemgetter(slice({index}, None)))
 _itemgetter N/A N/A index N/A N/A N/A N/A N/A N/A self N/A N/A N/A tuple __getitem__ self index N/A _tupler N/A N/A N/A args N/A N/A args N/A rectagtuple N/A N/A typename meta_field_names sub_field_names verbose N/A False N/A N/A N/A N/A N/A type meta_field_names tuple N/A all N/A N/A N/A type x str N/A x meta_field_names N/A N/A N/A N/A type sub_field_names tuple N/A all N/A N/A N/A type x str N/A x sub_field_names N/A N/A N/A N/A len sub_field_names 0 N/A N/A N/A sub_field_names N/A -1 N/A 0 * N/A N/A variadic N/A N/A sub_field_names N/A -1 N/A 1 N/A N/A variadic None N/A n_meta N/A len meta_field_names N/A meta_arg_list N/A N/A join N/A N/A N/A {},  format x N/A x meta_field_names N/A sub_arg_list N/A N/A ,  join sub_field_names N/A field_defs N/A N/A join N/A N/A N/A N/A N/A _meta_field_template format index index name name N/A N/A index name N/A enumerate meta_field_names N/A N/A N/A _sub_field_template format index N/A index n_meta name name N/A N/A index name N/A enumerate sub_field_names N/A N/A name N/A 0 * N/A N/A N/A _variadic_field_template format index N/A index n_meta name N/A name N/A 1 N/A N/A index name N/A enumerate sub_field_names N/A N/A name N/A 0 * N/A class_definition N/A N/A _class_template format typename typename meta_field_names meta_field_names sub_field_names sub_field_names n_meta n_meta meta_arg_list meta_arg_list sub_arg_list sub_arg_list field_defs field_defs N/A verbose N/A N/A class_definition N/A namespace N/A dict __name__ N/A N/A rectagtuple_{} format typename _tupler _tupler _tuple tuple _itemgetter _itemgetter _property property _islice islice N/A N/A N/A class_definition namespace N/A N/A N/A SyntaxError N/A e N/A N/A N/A SyntaxError N/A N/A N/A e message :
 class_definition N/A result N/A namespace N/A typename N/A N/A N/A N/A result __module__ N/A N/A N/A N/A N/A _sys _getframe 1 f_globals get __name__ __main__ N/A N/A N/A N/A AttributeError ValueError N/A N/A N/A result N/A test_combos N/A N/A N/A N/A N/A meta N/A N/A N/A m0 N/A m0 m1 N/A N/A sub N/A N/A N/A s0 N/A s0 s1 N/A N/A args N/A N/A N/A *args N/A N/A N/A rectagtuple Test meta N/A sub args verbose True N/A N/A tagtuple N/A rectagtuple tagtuple N/A N/A *args verbose False rectuple N/A N/A typename field_names verbose N/A False N/A N/A N/A rectagtuple typename N/A field_names verbose verbose N/A N/A N/A __name__ __main__ N/A N/A pickle itertools chain product N/A Testing tagtuple: N/A A N/A tagtuple N/A N/A __slots__ N/A N/A B N/A tagtuple N/A N/A __slots__ N/A N/A N/A a N/A A 1 2 3 N/A b N/A B 1 2 3 N/A t N/A 1 2 3 N/A a:  a N/A b:  b N/A t:  t N/A N/A a == b:  N/A a b N/A a != b:  N/A a b N/A hash(a) == hash(b):  N/A N/A hash a N/A hash b N/A a <= b:  N/A a b N/A b <= a:  N/A b a N/A N/A a == t:  N/A a t N/A a != t:  N/A a t N/A hash(a) == hash(t):  N/A N/A hash a N/A hash t N/A a <= t:  N/A a t N/A t <= a:  N/A t a N/A N/A d N/A N/A N/A d N/A a 1 N/A N/A d N/A b 2 N/A N/A d N/A t 3 N/A d:  d N/A s N/A set N/A N/A N/A s add a N/A N/A N/A s add b N/A N/A N/A s add t N/A s:  s N/A N/A tuple(x for x in a):  N/A tuple N/A x N/A x a N/A list(a):  N/A list a N/A tuple(a):  N/A tuple a N/A N/A 
    a0 = pickle.loads(pickle.dumps(a, 0))
    a1 = pickle.loads(pickle.dumps(a, 1))
    a2 = pickle.loads(pickle.dumps(a, 2))
    print "a0: ", a0
    print "a1: ", a1
    print "a2: ", a2
    print "a0 == a, hash(a0) == hash(a): ", a0 == a, hash(a0) == hash(a)
    print "a1 == a, hash(a1) == hash(a): ", a1 == a, hash(a1) == hash(a)
    print "a2 == a, hash(a2) == hash(a): ", a2 == a, hash(a2) == hash(a)
    print
     N/A a[:]:  N/A a N/A N/A a[1:-1]:  N/A a N/A 1 -1 N/A 
    print "a + a: ", a + a
    print "a + b: ", a + b
    print "(0, ) + a: ", (0, ) + a
    print "a + (0, ): ", a + (0, )
    print "2 * a: ", 2 * a
    print "a * 2: ", a * 2
    print
     N/A A(*chain((x**2 for x in range(10)), a)):  N/A A N/A chain N/A N/A x 2 N/A x N/A range 10 a N/A A(*product(range(3), repeat=2)):  N/A A N/A product N/A range 3 repeat 2 N/A N/A Testing rectuple: N/A N/A A N/A rectuple A N/A x y verbose True N/A B N/A rectuple B N/A x y verbose True N/A a N/A A 1 2 N/A b N/A B 1 2 N/A t N/A 1 2 N/A a:  a N/A b:  b N/A t:  t N/A N/A a == b:  N/A a b N/A a != b:  N/A a b N/A hash(a) == hash(b):  N/A N/A hash a N/A hash b N/A a <= b:  N/A a b N/A b <= a:  N/A b a N/A N/A a == t:  N/A a t N/A a != t:  N/A a t N/A hash(a) == hash(t):  N/A N/A hash a N/A hash t N/A a <= t:  N/A a t N/A t <= a:  N/A t a N/A N/A d N/A N/A N/A d N/A a 1 N/A N/A d N/A b 2 N/A N/A d N/A t 3 N/A d:  d N/A s N/A set N/A N/A N/A s add a N/A N/A N/A s add b N/A N/A N/A s add t N/A s:  s N/A N/A tuple(x for x in a):  N/A tuple N/A x N/A x a N/A list(a):  N/A list a N/A tuple(a):  N/A tuple a N/A N/A 
    a0 = pickle.loads(pickle.dumps(a, 0))
    a1 = pickle.loads(pickle.dumps(a, 1))
    a2 = pickle.loads(pickle.dumps(a, 2))
    print "a0: ", a0
    print "a1: ", a1
    print "a2: ", a2
    print "a0 == a, hash(a0) == hash(a): ", a0 == a, hash(a0) == hash(a)
    print "a1 == a, hash(a1) == hash(a): ", a1 == a, hash(a1) == hash(a)
    print "a2 == a, hash(a2) == hash(a): ", a2 == a, hash(a2) == hash(a)
     N/A Testing rectagtuple: N/A N/A A N/A rectagtuple A N/A x y N/A a b *args verbose True N/A B N/A rectagtuple B N/A x y N/A a b *args verbose True N/A a N/A A N/A range 10 N/A b N/A B N/A range 10 N/A t N/A tuple N/A range 10 N/A a:  a N/A b:  b N/A t:  t N/A N/A a == b:  N/A a b N/A a != b:  N/A a b N/A hash(a) == hash(b):  N/A N/A hash a N/A hash b N/A a <= b:  N/A a b N/A b <= a:  N/A b a N/A N/A a == t:  N/A a t N/A a != t:  N/A a t N/A hash(a) == hash(t):  N/A N/A hash a N/A hash t N/A a <= t:  N/A a t N/A t <= a:  N/A t a N/A N/A d N/A N/A N/A d N/A a 1 N/A N/A d N/A b 2 N/A N/A d N/A t 3 N/A d:  d N/A s N/A set N/A N/A N/A s add a N/A N/A N/A s add b N/A N/A N/A s add t N/A s:  s N/A N/A tuple(x for x in a):  N/A tuple N/A x N/A x a N/A list(a):  N/A list a N/A tuple(a):  N/A tuple a N/A 0 in a:  N/A 0 a N/A 10 in a:  N/A 10 a N/A 5 in a:  N/A 5 a N/A a[:]:  N/A a N/A N/A a[1:]:  N/A a N/A 1 N/A a[1:-1]:  N/A a N/A 1 -1 N/A a.x:  N/A a x N/A a.y:  N/A a y N/A a.a:  N/A a a N/A a.b:  N/A a b N/A a.args:  N/A a args N/A N/A 
    a0 = pickle.loads(pickle.dumps(a, 0))
    a1 = pickle.loads(pickle.dumps(a, 1))
    a2 = pickle.loads(pickle.dumps(a, 2))
    print "a0: ", a0
    print "a1: ", a1
    print "a2: ", a2
    print "a0 == a, hash(a0) == hash(a): ", a0 == a, hash(a0) == hash(a)
    print "a1 == a, hash(a1) == hash(a): ", a1 == a, hash(a1) == hash(a)
    print "a2 == a, hash(a2) == hash(a): ", a2 == a, hash(a2) == hash(a)
    