
    Sj              	           d Z ddlmZmZmZ ddlmZmZ ddlm	Z	 ddl
mZmZ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.
Scraping functionality for Firecrawl v2 API.
    )OptionalDictAny   )ScrapeOptionsDocument)normalize_document_input)
HttpClienthandle_response_errorprepare_scrape_optionsvalidate_scrape_optionsNurloptionsreturnc                     | r| j                         st        d      d| j                         i}|+t        |      }|t        |      }|r|j	                  |       |S )z
    Prepare a scrape request payload for v2 API.
    
    Args:
        url: URL to scrape
        options: ScrapeOptions (snake_case) to convert and include
        
    Returns:
        Request payload dictionary with camelCase fields
    zURL cannot be emptyr   )strip
ValueErrorr   r   update)r   r   request_data	validatedoptss        N/root/.hermes/venv/lib/python3.12/site-packages/firecrawl/v2/methods/scrape.py_prepare_scrape_requestr      sb     ciik.//$)399;#7L+G4	 ))4D##D)    clientc                 6   t        ||      }| j                  d|      }|j                  st        |d       |j	                         }|j                  d      st        |j                  dd            |j                  di       }t        |      }t        di |S )aJ  
    Scrape a single URL and return the document.
    
    The v2 API returns: { success: boolean, data: Document }
    We surface just the Document to callers.
    
    Args:
        client: HTTP client instance
        url: URL to scrape
        options: Scraping options (snake_case)
        
    Returns:
        Document
    z
/v2/scrapescrapesuccesserrorzUnknown error occurreddata )	r   postokr   jsonget	Exceptionr	   r   )r   r   r   payloadresponsebodydocument_data
normalizeds           r   r   r   $   s     &c73G{{<1H;;h1==?D88I*BCDDHHVR(M)-8J!j!!r   )N)__doc__typingr   r   r   typesr   r   utils.normalizer	   utilsr
   r   r   r   strr   r   r!   r   r   <module>r2      sq    ' & + 6 f f x/F RVWZ\_W_R` 2": "C "(=2I "U] "r   