def get_by_path(dic, path):
	"""
	Gets a key (can be specified via dot notation) `path` in a nested `dic`
	"""
	parts = path.split('.')
	loc = dic
	for part in parts:
		if part not in loc:
			raise KeyError(path)
		loc = loc[part]
	return loc