defrender(self,content:Any)->bytes:assertujsonisnotNone,"ujson must be installed to use UJSONResponse"returnujson.dumps(content,ensure_ascii=False).encode("utf-8")
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defrender(self,content:Any)->bytes:assertorjsonisnotNone,"orjson must be installed to use ORJSONResponse"returnorjson.dumps(content,option=orjson.OPT_NON_STR_KEYS|orjson.OPT_SERIALIZE_NUMPY)
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
def__init__(self,path:typing.Union[str,"os.PathLike[str]"],status_code:int=200,headers:typing.Optional[typing.Mapping[str,str]]=None,media_type:typing.Optional[str]=None,background:typing.Optional[BackgroundTask]=None,filename:typing.Optional[str]=None,stat_result:typing.Optional[os.stat_result]=None,method:typing.Optional[str]=None,content_disposition_type:str="attachment",)->None:self.path=pathself.status_code=status_codeself.filename=filenameifmethodisnotNone:warnings.warn("The 'method' parameter is not used, and it will be removed.",DeprecationWarning,)ifmedia_typeisNone:media_type=guess_type(filenameorpath)[0]or"text/plain"self.media_type=media_typeself.background=backgroundself.init_headers(headers)ifself.filenameisnotNone:content_disposition_filename=quote(self.filename)ifcontent_disposition_filename!=self.filename:content_disposition="{}; filename*=utf-8''{}".format(content_disposition_type,content_disposition_filename)else:content_disposition='{}; filename="{}"'.format(content_disposition_type,self.filename)self.headers.setdefault("content-disposition",content_disposition)self.stat_result=stat_resultifstat_resultisnotNone:self.set_stat_headers(stat_result)
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))
defset_cookie(self,key:str,value:str="",max_age:typing.Optional[int]=None,expires:typing.Optional[typing.Union[datetime,str,int]]=None,path:str="/",domain:typing.Optional[str]=None,secure:bool=False,httponly:bool=False,samesite:typing.Optional[typing.Literal["lax","strict","none"]]="lax",)->None:cookie:"http.cookies.BaseCookie[str]"=http.cookies.SimpleCookie()cookie[key]=valueifmax_ageisnotNone:cookie[key]["max-age"]=max_ageifexpiresisnotNone:ifisinstance(expires,datetime):cookie[key]["expires"]=format_datetime(expires,usegmt=True)else:cookie[key]["expires"]=expiresifpathisnotNone:cookie[key]["path"]=pathifdomainisnotNone:cookie[key]["domain"]=domainifsecure:cookie[key]["secure"]=Trueifhttponly:cookie[key]["httponly"]=TrueifsamesiteisnotNone:assertsamesite.lower()in["strict","lax","none",],"samesite must be either 'strict', 'lax' or 'none'"cookie[key]["samesite"]=samesitecookie_val=cookie.output(header="").strip()self.raw_headers.append((b"set-cookie",cookie_val.encode("latin-1")))