XjGJddlmZddlmZmZmZddlmZddlm Z m Z m Z ddl m Z ddlmZddlmZddlmZdd lmZmZmZ dd lZe r ej2Zn"eed r ej2Zn ej6ZGd deZGddZy #e$rZed ed Z[wwxYw)) annotations)CallableMappingSequence)PathLike) TYPE_CHECKINGAnyoverload)BackgroundTask)URL)Request) HTMLResponse)ReceiveScopeSendN pass_contextz/jinja2 must be installed to use Jinja2TemplatescLeZdZ d dfd Zdfd ZxZS)_TemplateResponsecj||_||_|j|}t||||||yN)templatecontextrendersuper__init__) selfrr status_codeheaders media_type backgroundcontent __class__s h/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/starlette/templating.pyrz_TemplateResponse.__init__ s6!  //'* +w JOcK|jjdi}|jdi}d|vr*|d|j|jddd{t||||d{y77w)Nrequest extensionszhttp.response.debug)rr)typeinfo)rgetrr__call__)rscopereceivesendr&r'r"s r#r+z_TemplateResponse.__call__.sz,,""9b1[[r2 J . 5DMMfjfrfr?stu u ugugt444 v4s$AA>A:A>4A<5A><A>)NNN) rr rdict[str, Any]rintrMapping[str, str] | Noner str | Noner BackgroundTask | None)r,rr-rr.rreturnNone)__name__ __module__ __qualname__rr+ __classcell__)r"s@r#rrsa ,0!%,0 P P  P P * P  P* P55r$rceZdZdZedd d dZedd d dZ d ddd ddZddZdd Z d dd Zy)Jinja2Templatesa?Jinja2 template renderer. Example: ```python from starlette.templating import Jinja2Templates templates = Jinja2Templates(directory="templates") async def homepage(request: Request) -> Response: return templates.TemplateResponse(request, "index.html") ``` N)context_processorscyr)r directoryr=s r#rzJinja2Templates.__init__D r$cyrr?)renvr=s r#rzJinja2Templates.__init__LrAr$)r=rCc*t|t|z sJd|xsg|_|Dtj|}tj|tj |_n |||_|j|j y)Nz4either 'directory' or 'env' arguments must be passed)loader autoescape)boolr=jinja2FileSystemLoader Environmentselect_autoescaperC_setup_env_defaults)rr@r=rCrEs r#rzJinja2Templates.__init__Ts~Ic*b,bb*"4":  ,,Y7F))FD\D\D^_DH _DH   *r$cft dd}|jjd|y)Nc2|d}|j|fi|S)Nr&)url_for)rname path_paramsr&s r#rOz4Jinja2Templates._setup_env_defaults..url_forfs$ 'y1G"7??47;7 7r$rO)rr0rPstrrQr r5r )rglobals setdefault)rrCrOs r#rLz#Jinja2Templates._setup_env_defaultsesN  8# 8 8  8   8  8 y'2r$c8|jj|Sr)rC get_template)rrPs r#rVzJinja2Templates.get_templatersxx$$T**r$c|xsi}|jd||jD]}|j|||j|} t | |||||S)a> Render a template and return an HTML response. Args: request: The incoming request instance. name: The template file name to render. context: Variables to pass to the template. status_code: HTTP status code for the response. headers: Additional headers to include in the response. media_type: Media type for the response. background: Background task to run after response is sent. Returns: An HTML response with the rendered template content. r&)rrrr )rTr=updaterVr) rr&rPrrrrr context_processorrs r#TemplateResponsez Jinja2Templates.TemplateResponseusv2-R9g.!%!8!8 7  NN,W5 6 7$$T*  #!!   r$)r@z3str | PathLike[str] | Sequence[str | PathLike[str]]r=0list[Callable[[Request], dict[str, Any]]] | Noner5r6)rCjinja2.Environmentr=r[r5r6r)r@z:str | PathLike[str] | Sequence[str | PathLike[str]] | Noner=r[rCzjinja2.Environment | Noner5r6)rCr\r5r6)rPrRr5zjinja2.Template)Nr/NNN)r&r rPrRrzdict[str, Any] | Nonerr1rr2rr3r r4r5r) r7r8r9__doc__r rrLrVrZr?r$r#r<r<6s)  PT FM    PT  M   QU+PT)- +M+M + ' +  +" 3+*.,0!%,0' ' ' ' '  ' * ' ' *'  ' r$r<) __future__rcollections.abcrrrosrtypingrr r starlette.backgroundr starlette.datastructuresr starlette.requestsr starlette.responsesrstarlette.typesrrrrHrhasattrcontextfunction ImportError _import_errorrr<r?r$r#rks"77///(&,00\ ** 6> *!..L!11L 5 5.f f 7\ G Hm[\s5BB" BB"