
    _jL                        S r SSKJr  SSKJrJrJrJrJrJ	r	  SSK
r
SSKJrJr  SSKJr  SSKJr  SS	KJrJrJr  \
R.                  " S
5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\r\r g)a  
Firecrawl Client

A Firecrawl client that enables you to scrape content from websites, crawl entire sites, search the web, and extract structured data using AI.

The client supports both v1 and v2 API versions, providing access to features like:
- Web scraping with advanced options (screenshots, markdown conversion, etc.)
- Site crawling with configurable depth and limits
- Web search with content extraction
- Structured data extraction using AI models
- Deep research capabilities

Usage:
    from firecrawl import Firecrawl
    firecrawl = Firecrawl(api_key="your-api-key")
    result = firecrawl.scrape("https://example.com")

Check example.py for other usage examples.
    )Path)AnyDictOptionalListUnionBinaryION   )V1FirecrawlAppAsyncV1FirecrawlApp)FirecrawlClient)AsyncFirecrawlClient)DocumentParseOptionsScrapeOptions	firecrawlc                   >    \ rS rSr% Sr\\   \S'   S\\   4S jrSr	g)V1Proxy!   +Type-annotated proxy for v1 client methods._clientclient_instancec                 t   Xl         U(       a  UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l	        UR                  U l
        g g Nr   
scrape_url	crawl_urlbatch_scrape_urlsasync_batch_scrape_urlsasync_crawl_urlcheck_crawl_statusmap_urlextractdeep_researchgenerate_llms_textselfr   s     E/home/rurouni/.local/lib/python3.13/site-packages/firecrawl/client.py__init__V1Proxy.__init__%       &-88DO,66DN%4%F%FD"+:+R+RD(#2#B#BD &5&H&HD#*22DL*22DL!0!>!>D&5&H&HD#     r   r   r    r   r!   r   r$   r#   r%   r"   r   N)
__name__
__module____qualname____firstlineno____doc__r   r   __annotations__r)   __static_attributes__ r,   r(   r   r   !   s#    5n%%I(@ Ir,   r   c                   D    \ rS rSr% Sr\\   \S'   S\\   4S jrS r	Sr
g)	V2Proxy4   IProxy class that forwards method calls to the appropriate version client.r   r   c                    Xl         U(       Ga1  UR                  U l        UR                  U l        UR                  U l        UR                  U l        U R                  U l        U R                  U l        UR                  U l        UR                  U l        UR                  U l	        UR                  U l
        UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR                   U l        UR"                  U l        UR$                  U l        UR&                  U l        UR(                  U l        UR*                  U l        UR,                  U l        UR.                  U l        UR0                  U l        UR2                  U l        UR4                  U l        UR6                  U l        UR8                  U l        UR:                  U l        UR<                  U l        UR>                  U l        UR@                  U l         URB                  U l!        URD                  U l"        URF                  U l#        URH                  U l$        URJ                  U l%        URL                  U l&        URN                  U l'        URP                  U l(        URR                  U l)        URT                  U l*        URV                  U l+        URX                  U l,        URZ                  U l-        UR\                  U l.        UR^                  U l/        UR`                  U l0        g g r   )1r   scrapeinteractstop_interactionstop_interactive_browserscrape_executedelete_scrape_browserparsesearchcrawlstart_crawlget_crawl_statusget_crawl_status_pagecancel_crawlget_crawl_errorsget_active_crawlsactive_crawlscrawl_params_previewr#   start_extractget_extract_statusagentstart_agentget_agent_statuscancel_agentstart_batch_scrapeget_batch_scrape_statusget_batch_scrape_status_pagecancel_batch_scrapebatch_scrapeget_batch_scrape_errorsmapcreate_monitorlist_monitorsget_monitorupdate_monitordelete_monitorrun_monitorlist_monitor_checksget_monitor_checkget_concurrencyget_credit_usageget_token_usageget_queue_statusbrowserbrowser_executedelete_browserlist_browserswatcherr&   s     r(   r)   V2Proxy.__init__8   s   &)00DK+44DM$3$D$DD!,;,T,TD)"&--D)-)>)>D&(..DJ)00DK(..DJ.::D$3$D$DD!)8)N)ND& / < <D$3$D$DD!%4%F%FD"!0!>!>D(7(L(LD%*22DL!0!>!>D&5&H&HD#(..DJ.::D$3$D$DD! / < <D&5&H&HD#+:+R+RD(0?0\0\D-'6'J'JD$ / < <D+:+R+RD(&**DH"1"@"@D!0!>!>D.::D"1"@"@D"1"@"@D.::D'6'J'JD$%4%F%FD"#2#B#BD $3$D$DD!#2#B#BD $3$D$DD!*22DL#2#B#BD "1"@"@D!0!>!>D*22DLm r,   c                 .    [        U R                  U5      $ )2Forward attribute access to the underlying client.)getattrr   r'   names     r(   __getattr__V2Proxy.__getattr__s   s    t||T**r,   )1r   rJ   rN   rV   re   rf   rQ   rU   rG   rC   rK   rY   rg   r]   r@   r#   rI   rP   rW   rS   rT   ra   rH   rE   rF   rb   rM   r[   r`   rd   rc   r<   rh   r_   rZ   rX   rA   r^   r;   r?   rB   rO   rR   rD   rL   r=   r>   r\   ri   N)r.   r/   r0   r1   r2   r   V2FirecrawlClientr3   r)   rp   r4   r5   r,   r(   r7   r7   4   s)    S'((931B(C 93v+r,   r7   c                   >    \ rS rSr% Sr\\   \S'   S\\   4S jrSr	g)AsyncV1Proxyw   r   r   r   c                 t   Xl         U(       a  UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l	        UR                  U l
        g g r   r   r&   s     r(   r)   AsyncV1Proxy.__init__{   r+   r,   r-   N)
r.   r/   r0   r1   r2   r   r   r3   r)   r4   r5   r,   r(   rt   rt   w   s%    5)**I1D(E Ir,   rt   c                   L    \ rS rSr% SrSr\\   \S'   S	S\\   4S jjr	S r
Srg)
AsyncV2Proxy   r9   Nr   r   c                    Xl         U(       GaS  UR                  U l        UR                  U l        UR                  U l        UR                  U l        U R                  U l        U R                  U l        UR                  U l        UR                  U l        UR                  U l	        UR                  U l
        UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR                   U l        UR"                  U l        UR$                  U l        UR&                  U l        UR(                  U l        UR*                  U l        UR,                  U l        UR.                  U l        UR0                  U l        UR2                  U l        UR4                  U l        UR6                  U l        UR8                  U l        UR:                  U l        UR<                  U l        UR>                  U l        UR@                  U l         URB                  U l!        URD                  U l"        URF                  U l#        URH                  U l$        URJ                  U l%        URL                  U l&        URN                  U l'        URP                  U l(        URR                  U l)        URT                  U l*        URV                  U l+        URX                  U l,        URZ                  U l-        UR\                  U l.        UR^                  U l/        UR`                  U l0        URb                  U l1        URd                  U l2        g g r   )3r   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   
wait_crawlrE   rF   rG   rH   rI   rJ   rK   r#   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   wait_batch_scraperV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   r&   s     r(   r)   AsyncV2Proxy.__init__   s   &)00DK+44DM$3$D$DD!,;,T,TD)"&--D)-)>)>D&(..DJ)00DK(..DJ.::D-88DO$3$D$DD!)8)N)ND& / < <D$3$D$DD!%4%F%FD"!0!>!>D(7(L(LD%*22DL!0!>!>D&5&H&HD#(..DJ.::D$3$D$DD! / < <D&5&H&HD#+:+R+RD(0?0\0\D-'6'J'JD$%4%F%FD" / < <D+:+R+RD(&**DH"1"@"@D!0!>!>D.::D"1"@"@D"1"@"@D.::D'6'J'JD$%4%F%FD"#2#B#BD $3$D$DD!#2#B#BD $3$D$DD!*22DL#2#B#BD "1"@"@D!0!>!>D*22DLq r,   c                 l    U R                   (       a  [        U R                   U5      $ [        SU 35      e)rl   z%Async v2 client not implemented yet: )r   rm   AttributeErrorrn   s     r(   rp   AsyncV2Proxy.__getattr__   s-    <<4<<..DTFKLLr,   )3r   rJ   rN   rV   re   rf   rQ   rU   rG   rC   rK   rY   rg   r]   r@   r#   rI   rP   rW   rS   rT   ra   rH   rE   rF   rb   rM   r[   r`   rd   rc   r<   rh   r_   rZ   rX   rA   r^   r;   r?   rB   rO   rR   rD   rL   r=   r>   r\   r}   r|   ri   r   )r.   r/   r0   r1   r2   r   r   r   r3   r)   rp   r4   r5   r,   r(   ry   ry      s.    S.2GX*+2;31E(F ;3zMr,   ry   c                       \ rS rSrSr     SS\S\S\S\S\4
S	 jjrSSSS
.S\	\\
\\\4   S\\   S\\   S\\   S\4
S jjrSrg)	Firecrawl   z
Unified Firecrawl client (v2 by default, v1 under ``.v1``).

Provides a single entrypoint that exposes the latest API directly while
keeping a feature-frozen v1 available for incremental migration.
Napi_keyapi_urltimeoutmax_retriesbackoff_factorc                    Xl         X l        [        (       a	  [        XS9OSU l        [        (       a  [	        UUUUUS9OSU l        U R                  (       a  [        U R                  5      OSU l        [        U R
                  5      U l	        U R
                  R                  U l
        U R
                  R                  U l        U R
                  R                  U l        U R
                  R                  U l        U R                  U l        U R                  U l        U R
                  R                   U l        U R
                  R"                  U l        U R
                  R$                  U l        U R
                  R&                  U l        U R
                  R(                  U l        U R
                  R*                  U l        U R
                  R,                  U l        U R
                  R.                  U l        U R
                  R0                  U l        U R
                  R2                  U l        U R
                  R4                  U l        U R
                  R6                  U l        U R
                  R8                  U l        U R
                  R:                  U l        U R
                  R<                  U l        U R
                  R>                  U l        U R
                  R@                  U l         U R
                  RB                  U l!        U R
                  RD                  U l"        U R
                  RF                  U l#        U R
                  RH                  U l$        U R
                  RJ                  U l%        U R
                  RL                  U l&        U R
                  RN                  U l'        U R
                  RP                  U l(        U R
                  RR                  U l)        U R
                  RT                  U l*        U R
                  RV                  U l+        U R
                  RX                  U l,        U R
                  RZ                  U l-        U R
                  R\                  U l.        U R
                  R^                  U l/        U R
                  R`                  U l0        U R
                  Rb                  U l1        U R
                  Rd                  U l2        U R
                  Rf                  U l3        U R
                  Rh                  U l4        U R
                  Rj                  U l5        U R
                  Rl                  U l6        U R
                  Rn                  U l7        U R
                  Rp                  U l8        U R
                  Rr                  U l9        g)as  Initialize the unified client.

Args:
    api_key: Firecrawl API key (or set ``FIRECRAWL_API_KEY``)
    api_url: Base API URL (defaults to production)
    timeout: Default request timeout in seconds for all HTTP requests
    max_retries: Maximum number of retries for failed requests (default: 3)
    backoff_factor: Exponential backoff factor for retries (default: 0.5)
r   r   Nr   r   r   r   r   ):r   r   r   
_v1_clientrr   
_v2_clientr   v1r7   v2r;   r<   r=   r>   r?   r@   rA   rB   rX   rY   rZ   r[   r\   r]   r^   r_   r`   rC   rD   rK   rE   rF   rG   rH   rI   rJ   rR   rS   rT   rU   rV   rW   rL   rM   r#   rO   rP   rQ   rN   ra   rb   rc   rd   re   rf   rg   rh   ri   r'   r   r   r   r   r   s         r(   r)   Firecrawl.__init__   s   "  O]n.Jbf  ,#)
 %) 	 /3oo'$//*4$//*oo,,00 $ @ @(,(P(P%"mm%)%:%:"__**
oo,,??&&"oo<<!__::??66"oo<<"oo<<??66#'??#F#F !%!B!B__**
??66$(OO$H$H! $ @ @%)__%J%J" OO88 $ @ @!%!B!B!__::"&//"D"D'+'N'N$,0OO,X,X)#'??#F#F  OO88'+'N'N$!__::"&//"D"D..??66 $ @ @ OO88__**
#>> $ @ @#>> $ @ @..#>>"oo<<!__::..r,   filenamecontent_typeoptionsfiler   r   r   returnc                :    U R                   R                  UUUUS9$ )1Parse an uploaded file via the v2 parse endpoint.r   r   rA   r'   r   r   r   r   s        r(   rA   Firecrawl.parse4  s,     $$%	 % 
 	
r,   )6r   r   rJ   rN   r   r   rV   re   rf   rQ   rU   rG   rC   rK   rY   rg   r]   r@   r#   rI   rP   rW   rS   rT   ra   rH   rE   rF   rb   rM   r[   r`   rd   rc   r<   rh   r_   rZ   rX   rA   r^   r;   r?   rB   rO   rR   rD   rL   r=   r>   r\   r   r   ri   Nzhttps://api.firecrawl.devN   g      ?r.   r/   r0   r1   r2   strfloatintr)   r   r   bytes	bytearrayr	   r   r   r   rA   r4   r5   r,   r(   r   r      s     2 #X/X/ X/ 	X/
 X/ X/| #'&**.
Cui9:
 3-	

 sm
 ,'
 

 
r,   r   c                       \ rS rSrSr     SS\S\S\S\S\4
S	 jjrSSSS
.S\	\\
\\\4   S\\   S\\   S\\   S\4
S jjrSrg)AsyncFirecrawliD  zAAsync unified Firecrawl client (v2 by default, v1 under ``.v1``).Nr   r   r   r   r   c                 
   Xl         X l        [        (       a	  [        XS9OS U l        [        (       a  [	        UUUUUS9OS U l        U R                  (       a  [        U R                  5      OS U l        [        U R
                  5      U l	        U R
                  R                  U l
        U R
                  R                  U l        U R
                  R                  U l        U R
                  R                  U l        U R                  U l        U R                  U l        U R
                  R                   U l        U R
                  R"                  U l        U R
                  R$                  U l        U R
                  R&                  U l        U R
                  R(                  U l        U R
                  R*                  U l        U R
                  R,                  U l        U R
                  R.                  U l        U R
                  R0                  U l        U R
                  R2                  U l        U R
                  R4                  U l        U R
                  R6                  U l        U R
                  R8                  U l        U R
                  R:                  U l        U R
                  R<                  U l        U R
                  R>                  U l        U R
                  R@                  U l         U R
                  RB                  U l!        U R
                  RD                  U l"        U R
                  RF                  U l#        U R
                  RH                  U l$        U R
                  RJ                  U l%        U R
                  RL                  U l&        U R
                  RN                  U l'        U R
                  RP                  U l(        U R
                  RR                  U l)        U R
                  RT                  U l*        U R
                  RV                  U l+        U R
                  RX                  U l,        U R
                  RZ                  U l-        U R
                  R\                  U l.        U R
                  R^                  U l/        U R
                  R`                  U l0        U R
                  Rb                  U l1        U R
                  Rd                  U l2        U R
                  Rf                  U l3        U R
                  Rh                  U l4        U R
                  Rj                  U l5        U R
                  Rl                  U l6        U R
                  Rn                  U l7        U R
                  Rp                  U l8        g )Nr   r   )9r   r   r   r   r   r   rt   r   ry   r   r;   r<   r=   r>   r?   r@   rA   rB   rX   rY   rZ   r[   r\   r]   r^   r_   r`   rD   rE   rF   rG   rC   rH   rJ   rK   rR   rS   rT   rU   rV   rW   rL   rM   r#   rO   rP   rQ   rN   ra   rb   rc   rd   re   rf   rg   rh   ri   r   s         r(   r)   AsyncFirecrawl.__init__G  s     TgSf-gOlp "! /#)
 (, 	 48??,t/t/ oo,,00 $ @ @(,(P(P%"mm%)%:%:"__**
oo,,??&&"oo<<!__::??66"oo<<"oo<<??66#'??#F#F !%!B!B??66 $ @ @%)__%J%J" OO88__**
 $ @ @!__::$(OO$H$H!"&//"D"D'+'N'N$,0OO,X,X)#'??#F#F  OO88'+'N'N$!__::"&//"D"D..??66 $ @ @ OO88__**
#>> $ @ @#>> $ @ @..#>>"oo<<!__::..r,   r   r   r   r   r   r   c                V   #    U R                   R                  UUUUS9I Sh  vN $  N7f)r   r   Nr   r   s        r(   rA   AsyncFirecrawl.parse  s9      __**%	 + 
 
 	
 
s    )'))5r   r   rJ   rN   r   r   rV   re   rf   rQ   rU   rG   rC   rK   rY   rg   r]   r@   r#   rP   rW   rS   rT   ra   rH   rE   rF   rb   rM   r[   r`   rd   rc   r<   rh   r_   rZ   rX   rA   r^   r;   r?   rB   rO   rR   rD   rL   r=   r>   r\   r   r   ri   r   r   r5   r,   r(   r   r   D  s    K 2 #P/P/ P/ 	P/
 P/ P/l #'&**.
Cui9:
 3-	

 sm
 ,'
 

 
r,   r   )!r2   pathlibr   typingr   r   r   r   r   r	   loggingr   r   r   r   r   rr   v2.client_asyncr   v2.typesr   r   r   	getLoggerloggerr   r7   rt   ry   r   r   FirecrawlAppAsyncFirecrawlAppr5   r,   r(   <module>r      s   (  = =  4 4 1 ; ;			;	'I I&A+ A+FI I&EM EMPp
 p
dc
 c
L " r,   