(self, *,
               name: T.Union[str, _NULL_T] = _NULL,
               required: T.Union[bool, _NULL_T] = _NULL,
               listify: T.Union[bool, _NULL_T] = _NULL,
               default: T.Union[_T, None, _NULL_T] = _NULL,
               since: T.Union[str, None, _NULL_T] = _NULL,
               since_message: T.Union[str, None, _NULL_T] = _NULL,
               since_values: T.Union[T.Dict[_T, T.Union[str, T.Tuple[str, str]]], None, _NULL_T] = _NULL,
               deprecated: T.Union[str, None, _NULL_T] = _NULL,
               deprecated_message: T.Union[str, None, _NULL_T] = _NULL,
               deprecated_values: T.Union[T.Dict[_T, T.Union[str, T.Tuple[str, str]]], None, _NULL_T] = _NULL,
               validator: T.Union[T.Callable[[_T], T.Optional[str]], None, _NULL_T] = _NULL,
               convertor: T.Union[T.Callable[[_T], TYPE_var], None, _NULL_T] = _NULL)
return type(self)(
            name if not isinstance(name, _NULL_T) else self.name,
            self.types,
            listify=listify if not isinstance(listify, _NULL_T) else self.listify,
            required=required if not isinstance(required, _NULL_T) else self.required,
            default=default if not isinstance(default, _NULL_T) else self.default,
            since=since if not isinstance(since, _NULL_T) else self.since,
            since_message=since_message if not isinstance(since_message, _NULL_T) else self.since_message,
            since_values=since_values if not isinstance(since_values, _NULL_T) else self.since_values,
            deprecated=deprecated if not isinstance(deprecated, _NULL_T) else self.deprecated,
            deprecated_message=deprecated_message if not isinstance(deprecated_message, _NULL_T) else self.deprecated_message,
            deprecated_values=deprecated_values if not isinstance(deprecated_values, _NULL_T) else self.deprecated_values,
            validator=validator if not isinstance(validator, _NULL_T) else self.validator,
            convertor=convertor if not isinstance(convertor, _NULL_T) else self.convertor,
        )
Create a shallow copy of this KwargInfo, with modifications.

        This allows us to create a new copy of a KwargInfo with modifications.
        This allows us to use a shared kwarg that implements complex logic, but
        has slight differences in usage, such as being added to different
        functions in different versions of Meson.

        The use the _NULL special value here allows us to pass None, which has
        meaning in many of these cases. _NULL itself is never stored, always
        being replaced by either the copy in self, or the provided new version.
Create a shallow copy of this KwargInfo, with modifications.
Create a shallow copy of this KwargInfo with modifications .
def evolve(self, *,
               name: T.Union[str, _NULL_T] = _NULL,
               required: T.Union[bool, _NULL_T] = _NULL,
               listify: T.Union[bool, _NULL_T] = _NULL,
               default: T.Union[_T, None, _NULL_T] = _NULL,
               since: T.Union[str, None, _NULL_T] = _NULL,
               since_message: T.Union[str, None, _NULL_T] = _NULL,
               since_values: T.Union[T.Dict[_T, T.Union[str, T.Tuple[str, str]]], None, _NULL_T] = _NULL,
               deprecated: T.Union[str, None, _NULL_T] = _NULL,
               deprecated_message: T.Union[str, None, _NULL_T] = _NULL,
               deprecated_values: T.Union[T.Dict[_T, T.Union[str, T.Tuple[str, str]]], None, _NULL_T] = _NULL,
               validator: T.Union[T.Callable[[_T], T.Optional[str]], None, _NULL_T] = _NULL,
               convertor: T.Union[T.Callable[[_T], TYPE_var], None, _NULL_T] = _NULL) -> 'KwargInfo':
        """Create a shallow copy of this KwargInfo, with modifications.

        This allows us to create a new copy of a KwargInfo with modifications.
        This allows us to use a shared kwarg that implements complex logic, but
        has slight differences in usage, such as being added to different
        functions in different versions of Meson.

        The use the _NULL special value here allows us to pass None, which has
        meaning in many of these cases. _NULL itself is never stored, always
        being replaced by either the copy in self, or the provided new version.
        """
        return type(self)(
            name if not isinstance(name, _NULL_T) else self.name,
            self.types,
            listify=listify if not isinstance(listify, _NULL_T) else self.listify,
            required=required if not isinstance(required, _NULL_T) else self.required,
            default=default if not isinstance(default, _NULL_T) else self.default,
            since=since if not isinstance(since, _NULL_T) else self.since,
            since_message=since_message if not isinstance(since_message, _NULL_T) else self.since_message,
            since_values=since_values if not isinstance(since_values, _NULL_T) else self.since_values,
            deprecated=deprecated if not isinstance(deprecated, _NULL_T) else self.deprecated,
            deprecated_message=deprecated_message if not isinstance(deprecated_message, _NULL_T) else self.deprecated_message,
            deprecated_values=deprecated_values if not isinstance(deprecated_values, _NULL_T) else self.deprecated_values,
            validator=validator if not isinstance(validator, _NULL_T) else self.validator,
            convertor=convertor if not isinstance(convertor, _NULL_T) else self.convertor,
        )
def evolve ( self , * , name : T . Union [ str , _NULL_T ] = _NULL , required : T . Union [ bool , _NULL_T ] = _NULL , listify : T . Union [ bool , _NULL_T ] = _NULL , default : T . Union [ _T , None , _NULL_T ] = _NULL , since : T . Union [ str , None , _NULL_T ] = _NULL , since_message : T . Union [ str , None , _NULL_T ] = _NULL , since_values : T . Union [ T . Dict [ _T , T . Union [ str , T . Tuple [ str , str ] ] ] , None , _NULL_T ] = _NULL , deprecated : T . Union [ str , None , _NULL_T ] = _NULL , deprecated_message : T . Union [ str , None , _NULL_T ] = _NULL , deprecated_values : T . Union [ T . Dict [ _T , T . Union [ str , T . Tuple [ str , str ] ] ] , None , _NULL_T ] = _NULL , validator : T . Union [ T . Callable [ [ _T ] , T . Optional [ str ] ] , None , _NULL_T ] = _NULL , convertor : T . Union [ T . Callable [ [ _T ] , TYPE_var ] , None , _NULL_T ] = _NULL ) -> 'KwargInfo' : return type ( self ) ( name if not isinstance ( name , _NULL_T ) else self . name , self . types , listify = listify if not isinstance ( listify , _NULL_T ) else self . listify , required = required if not isinstance ( required , _NULL_T ) else self . required , default = default if not isinstance ( default , _NULL_T ) else self . default , since = since if not isinstance ( since , _NULL_T ) else self . since , since_message = since_message if not isinstance ( since_message , _NULL_T ) else self . since_message , since_values = since_values if not isinstance ( since_values , _NULL_T ) else self . since_values , deprecated = deprecated if not isinstance ( deprecated , _NULL_T ) else self . deprecated , deprecated_message = deprecated_message if not isinstance ( deprecated_message , _NULL_T ) else self . deprecated_message , deprecated_values = deprecated_values if not isinstance ( deprecated_values , _NULL_T ) else self . deprecated_values , validator = validator if not isinstance ( validator , _NULL_T ) else self . validator , convertor = convertor if not isinstance ( convertor , _NULL_T ) else self . convertor , )