Revision 6764f588 kamaki/clients/commissioning/utils/argmap.py
b/kamaki/clients/commissioning/utils/argmap.py | ||
---|---|---|
160 | 160 |
output(']') |
161 | 161 |
|
162 | 162 |
m = "Unsupported type '%s'" % (type(obj)) |
163 |
m += '' |
|
163 | 164 |
|
164 | 165 |
|
165 | 166 |
def argmap_decode(inputf, s=None): |
... | ... | |
216 | 217 |
if s == ']': |
217 | 218 |
if key is not None: |
218 | 219 |
append((None, key)) |
219 |
args.append(ARGMAP_MAGIC)
|
|
220 |
args.append(ARGMAP_MAGIC)
|
|
220 | 221 |
return args, None |
221 | 222 |
|
222 | 223 |
if s == '=': |
... | ... | |
247 | 248 |
return ARGMAP_MAGIC in obj |
248 | 249 |
if hasattr(obj, '__len__'): |
249 | 250 |
length = len(obj) |
250 |
return length and obj[length-1] == ARGMAP_MAGIC
|
|
251 |
return length and obj[length - 1] == ARGMAP_MAGIC
|
|
251 | 252 |
return False |
252 | 253 |
|
254 |
|
|
253 | 255 |
def argmap_unzip_dict(argmap): |
254 | 256 |
if not hasattr(argmap, 'keys'): |
255 | 257 |
m = "argmap unzip dict: not a dict" |
... | ... | |
262 | 264 |
del kw[ARGMAP_MAGIC] |
263 | 265 |
return args, kw |
264 | 266 |
|
267 |
|
|
265 | 268 |
def argmap_unzip_list(argmap): |
266 | 269 |
if not argmap or argmap.pop() != ARGMAP_MAGIC: |
267 | 270 |
m = "argmap unzip list: magic not found" |
... | ... | |
277 | 280 |
kw[k] = v |
278 | 281 |
return args, kw |
279 | 282 |
|
283 |
|
|
280 | 284 |
def argmap_unzip(argmap): |
281 | 285 |
if hasattr(argmap, 'keys'): |
282 | 286 |
return argmap_unzip_dict(argmap) |
... | ... | |
286 | 290 |
m = "argmap: cannot unzip type %s" % (type(argmap),) |
287 | 291 |
raise ValueError(m) |
288 | 292 |
|
293 |
|
|
289 | 294 |
def argmap_zip_list(args, kw): |
290 | 295 |
return [(None, a) for a in args] + kw.items() + [ARGMAP_MAGIC] |
291 | 296 |
|
297 |
|
|
292 | 298 |
def argmap_zip_dict(args, kw): |
293 | 299 |
argmap = OrderedDict() |
294 | 300 |
argmap.update(kw) |
... | ... | |
298 | 304 |
|
299 | 305 |
argmap_zip = argmap_zip_list |
300 | 306 |
|
307 |
|
|
301 | 308 |
def argmap_list_to_dict(argmap): |
302 | 309 |
args, kw = argmap_unzip_list(argmap) |
303 | 310 |
kw[ARGMAP_MAGIC] = ARGMAP_MAGIC |
304 | 311 |
kw[None] = args |
305 | 312 |
return kw |
306 | 313 |
|
314 |
|
|
307 | 315 |
def argmap_dict_to_list(argmap): |
308 | 316 |
args, kw = argmap_unzip_dict(argmap) |
309 | 317 |
return args + kw.items() + [ARGMAP_MAGIC] |
310 | 318 |
|
319 |
|
|
311 | 320 |
def argmap_unpack_list(argmap): |
312 | 321 |
kw = argmap_list_to_dict(argmap) |
313 | 322 |
if len(kw) == 2: |
314 | 323 |
return kw[None] |
315 | 324 |
return kw |
316 | 325 |
|
326 |
|
|
317 | 327 |
def argmap_unpack_dict(argmap): |
318 | 328 |
if hasattr(argmap, 'keys') and callable(argmap.keys): |
319 | 329 |
return argmap_dict_to_list(argmap)[:-1] |
Also available in: Unified diff