PK!,aadict_deep/__init__.pyfrom dict_deep.dict_deep import deep_get, deep_set, METHOD_ATTR, METHOD_GET, METHOD_SETDEFAULT PK!91dict_deep/dict_deep.pyMETHOD_DEFAULT = 0 METHOD_ATTR = 1 METHOD_GET = 2 METHOD_SETDEFAULT = 3 def deep_get(d: dict, key, access_method: int = METHOD_DEFAULT, default: callable = None, sep: str = '.', ): if access_method == METHOD_DEFAULT: access_method = METHOD_ATTR if default is None else METHOD_SETDEFAULT if isinstance(key, str): keys = key.split(sep=sep) else: keys = list(key) if access_method == METHOD_ATTR: for k in keys: d = d[k] elif access_method == METHOD_GET: for k in keys: d = d.get(k, default()) elif access_method == METHOD_SETDEFAULT: for k in keys: d = d.setdefault(k, default()) else: raise ValueError('deep_get: invalid access method, use one of METHOD_ATTR, METHOD_GET or METHOD_SETDEFAULT') return d def deep_set(d: dict, key, value, default: callable = None, sep: str = '.'): if isinstance(key, str): keys = key.split(sep=sep) else: keys = list(key) _d = d for i in range(len(keys) - 1): d = d[keys[i]] if default is None else d.setdefault(keys[i], default()) d[keys[-1]] = value PK!r6}!dict_deep-1.2.1.dist-info/LICENSECC0 LICENSE =========== To the extent possible under law, Marcelo Bello has waived all copyright and related or neighboring rights to odoorpc-utils. This work is published from: Brasil. PK!Hu)GTUdict_deep-1.2.1.dist-info/WHEEL HM K-*ϳR03rOK-J,/R(O-)$qzd&Y)r$UV&UrPK!H͹ "dict_deep-1.2.1.dist-info/METADATAUQo6~8 IIv9Xg˰4 g{( 6IHʞPl'ez$}G}D'SdtûX\cHU\:Z8pjс,eA/HZpdPuzx UzvfWiH\R.ҹƇ ,Jt~0J|~~GGwڤ eЬ6^8RBkTYseIˬA֔FOOy&Usޒ&P+BۥVL%0TO>5zadWXT$7чWgEU c,UN:O}M*Y\ NꒌwHn}H؉1JfZ5.;J\ePRYuZo&qsyη-94ITF$~#e50d!Y,gH،QBx)Gb \o9@2y.̕״7L-w'M$xgfQo!JgcBJ/3tJ[̰~fL'$Y2e] u 7<1Af4=L'ԜXe9\S "_ǻ◳>0F"54ёw@|dǕ jkD*V~Y -}~V3Tf2ɷt>wsx~C &t/ϹMq6$գ(ʫ".%Eg|e޲aAs