
    Sj              	           d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
mZ ddedee   d	eeef   fd
Zdde
dedee   d	efdZy)z-
Mapping functionality for Firecrawl v2 API.
    )OptionalDictAny   )
MapOptionsMapData
LinkResult)
HttpClienthandle_response_errorNurloptionsreturnc                    | r| j                         st        d      d| j                         i}|$i }t        |dd       |j                  |d<   |j                  |j                  |d<   |j
                  |j
                  |d<   |j                  |j                  |d<   |j                  |j                  |d<   |j                  |j                  |d<   |j                  7|j                  j                         r|j                  j                         |d	<   |j                  |j                  j                  d
      |d<   |j                  |       |S )NzURL cannot be emptyr   sitemapsearchincludeSubdomainsignoreQueryParameterslimittimeoutintegrationT)exclude_nonelocation)strip
ValueErrorgetattrr   r   include_subdomainsignore_query_parametersr   r   r   r   
model_dumpupdate)r   r   payloaddatas       K/root/.hermes/venv/lib/python3.12/site-packages/firecrawl/v2/methods/map.py_prepare_map_requestr#   
   s@   ciik.//$ciik2G!7It,8%ooDO>>%$^^DN%%1(/(B(BD$%**6,3,K,KD()==$#MMDM??&%ooDO*w/B/B/H/H/J")"5"5";";"=D'&//:::MDtN    clientc           
      @   t        ||      }| j                  d|      }|j                  st        |d       |j	                         }|j                  d      st        |j                  dd            g }|j                  dg       D ]  }t        |t              rL|j                  t        |j                  dd      |j                  d	      |j                  d
                   _t        |t              sp|j                  t        |              t        |      S )zV
    Map a URL and return MapData (links list with optional titles/descriptions).
    z/v2/mapmapsuccesserrorzUnknown error occurredlinksr    titledescription)r   r,   r-   )r   )r*   )r#   postokr   jsonget	Exception
isinstancedictappendr	   strr   )r%   r   r   request_dataresponsebodyresult_linksitems           r"   r'   r'   )   s     (W5L{{9l3H;;h.==?D88I*BCDD" &(L"% 
6dD!+((7+ $ 7 c"
t 45
6 &&r$   )N)__doc__typingr   r   r   typesr   r   r	   utilsr
   r   r6   r#   r'    r$   r"   <module>rA      sk    ' & 3 3 5c HZ,@ DQTVYQYN >)'
 )' )'x
/C )'w )'r$   