#dataMapping
from appPublic.dictObject import DictObject

def keyMapping(dic,mappingtab,keepmiss=True):
	"""
	keyMapping mappingtab
	{
		"a1":"b1",
		"a2":'b2",
		...
	}
	"an" is key in dic
	"bn" is key in result dictionary
	"""
	ret = {}
	keys = [ k for k in dic.keys()]
	if not keepmiss:
		keys = [ k for k in dic.keys() if k in mappingtab.keys() ]
	[ ret.update({mappingtab.get(k,k):dic[k]}) for k in keys ]
	return ret


def valueMapping(dic,mappingtab):
	"""
	mappingtab format:
	{
		"field1":{
			"a":"1",
			"b":"2",
			"__default__":"5"
		},
		"field2":{
			"a":"3",
			"b":"4"
		}
	}
	field1,field2 is in dic.keys()
	"""
	ret = {}
	for k in dic.keys():
		mt = mappingtab.get(k,None)
		if mt is None:
			ret[k] = dic[k]
		else:
			dv = mt.get('__default__',dic[k])
			v = mt.get(dic[k],dv)
			ret[k] = v

	return DictObject(**ret)