def __init__(self, init_val=(), encoding=UTF8): DataContainer.__init__(self, encoding=encoding) OrderedDict.__init__(self) if isinstance(init_val, KeyValueContainer): self.update(init_val) elif isinstance(init_val, dict): # we lose compatibility with other ordered dict types this way raise TypeError('Undefined order, cannot get items from dict') else: for item in init_val: try: key, val = item except TypeError: raise TypeError(ERR_MSG % init_val) if key in self: raise TypeError(ERR_MSG % init_val) if not isinstance(val, (list, tuple)): raise TypeError(ERR_MSG % init_val) for sub_val in val: if not isinstance(sub_val, (basestring, DataToken)): raise TypeError(ERR_MSG % init_val) self[key] = val
def __init__(self, init_val=(), encoding=UTF8, relaxed_order=False): DataContainer.__init__(self, encoding=encoding) OrderedDict.__init__(self, relax=relaxed_order) if isinstance(init_val, NonRepeatKeyValueContainer): self.update(init_val) elif isinstance(init_val, dict): # we lose compatibility with other ordered dict types this way raise TypeError('Undefined order, cannot get items from dict') else: for item in init_val: try: key, val = item except TypeError: raise TypeError(ERR_MSG_NO_REP % init_val) if key in self: raise TypeError(ERR_MSG_NO_REP % init_val) if not isinstance(val, (basestring, DataToken)): raise TypeError(ERR_MSG_NO_REP % init_val) self[key] = val
def __init__(self, *args, **kw): kw['relax'] = True ordereddict.__init__(self, *args, **kw)