~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/static_tuple.py

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
    if type(obj) is not StaticTuple:
41
41
        raise TypeError('We expected a StaticTuple not a %s' % (type(obj),))
42
42
    return obj
 
43
 
 
44
 
 
45
def as_tuples(obj):
 
46
    """Ensure that the object and any referenced objects are plain tuples.
 
47
 
 
48
    :param obj: a list, tuple or StaticTuple
 
49
    :return: a plain tuple instance, with all children also being tuples.
 
50
    """
 
51
    result = []
 
52
    for item in obj:
 
53
        if isinstance(item, (tuple, list, StaticTuple)):
 
54
            item = as_tuples(item)
 
55
        result.append(item)
 
56
    return tuple(result)