def set_cookie(self, name: str, value: str, *,
                   expires: Optional[str]=None,
                   domain: Optional[str]=None,
                   max_age: Optional[Union[int, str]]=None,
                   path: str='/',
                   secure: Optional[str]=None,
                   httponly: Optional[str]=None,
                   version: Optional[str]=None) -> None:
        """Set or update response cookie.

        Sets new cookie or updates existent with new value.
        Also updates only those params which are not None.
        """

        old = self._cookies.get(name)
        if old is not None and old.coded_value == '':
            # deleted cookie
            self._cookies.pop(name, None)

        self._cookies[name] = value
        c = self._cookies[name]

        if expires is not None:
            c['expires'] = expires
        elif c.get('expires') == 'Thu, 01 Jan 1970 00:00:00 GMT':
            del c['expires']

        if domain is not None:
            c['domain'] = domain

        if max_age is not None:
            c['max-age'] = str(max_age)
        elif 'max-age' in c:
            del c['max-age']

        c['path'] = path

        if secure is not None:
            c['secure'] = secure
        if httponly is not None:
            c['httponly'] = httponly
        if version is not None:
            c['version'] = version
def set_cookie ( self , name : str , value : str , * , expires : Optional [ str ] = None , domain : Optional [ str ] = None , max_age : Optional [ Union [ int , str ] ] = None , path : str = '/' , secure : Optional [ str ] = None , httponly : Optional [ str ] = None , version : Optional [ str ] = None ) -> None : old = self . _cookies . get ( name ) if old is not None and old . coded_value == '' : self . _cookies . pop ( name , None ) self . _cookies [ name ] = value c = self . _cookies [ name ] if expires is not None : c [ 'expires' ] = expires elif c . get ( 'expires' ) == 'Thu, 01 Jan 1970 00:00:00 GMT' : del c [ 'expires' ] if domain is not None : c [ 'domain' ] = domain if max_age is not None : c [ 'max-age' ] = str ( max_age ) elif 'max-age' in c : del c [ 'max-age' ] c [ 'path' ] = path if secure is not None : c [ 'secure' ] = secure if httponly is not None : c [ 'httponly' ] = httponly if version is not None : c [ 'version' ] = version
Set or update response cookie.

        Sets new cookie or updates existent with new value.
        Also updates only those params which are not None.