in src/dfcx_scrapi/core/scrapi_base.py [0:0]
def _update_kwargs(obj, **kwargs) -> field_mask_pb2.FieldMask:
"""Create a FieldMask for Environment, Experiment, TestCase, Version."""
if kwargs:
for key, value in kwargs.items():
setattr(obj, key, value)
return field_mask_pb2.FieldMask(paths=kwargs.keys())
attrs_map = {
"Environment": [
"name", "display_name", "description", "version_configs",
"update_time", "test_cases_config", "webhook_config",
],
"Experiment": [
"name", "display_name", "description", "state", "definition",
"rollout_config", "rollout_state", "rollout_failure_reason",
"result", "create_time", "start_time", "end_time",
"last_update_time", "experiment_length", "variants_history",
],
"TestCase": [
"name", "tags", "display_name", "notes", "test_config",
"test_case_conversation_turns", "creation_time",
"last_test_result",
],
"Version": [
"name", "display_name", "description", "nlu_settings",
"create_time", "state",
],
}
if isinstance(obj, types.Environment):
paths = attrs_map["Environment"]
elif isinstance(obj, types.Experiment):
paths = attrs_map["Experiment"]
elif isinstance(obj, types.TestCase):
paths = attrs_map["TestCase"]
elif isinstance(obj, types.Version):
paths = attrs_map["Version"]
else:
raise ValueError(
"`obj` should be one of the following:"
" [Environment, Experiment, TestCase, Version]."
)
return field_mask_pb2.FieldMask(paths=paths)