def _decrypt_object(obj):
 if isinstance(obj, six.string_types):
  return _fetch_secret(obj)
 elif isinstance(obj, dict):
  for (pass_key, pass_path) in six.iteritems(obj):
   obj[pass_key] = _decrypt_object(pass_path)
 elif isinstance(obj, list):
  for (pass_key, pass_path) in enumerate(obj):
   obj[pass_key] = _decrypt_object(pass_path)
 return obj

def _decrypt_object ( obj ) : if isinstance ( obj , six . string_types ) : return _fetch_secret ( obj ) elif isinstance ( obj , dict ) : for ( pass_key , pass_path ) in six . iteritems ( obj ) : obj [ pass_key ] = _decrypt_object ( pass_path ) elif isinstance ( obj , list ) : for ( pass_key , pass_path ) in enumerate ( obj ) : obj [ pass_key ] = _decrypt_object ( pass_path ) return obj
recursively try to find a pass path that can be handed off to pass .