def _update_kwargs()

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)