
    ] j              	           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dS )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|                                  st          d          d|                                  i}|7t          |          }|&t          |          }|r|                    |           |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        c/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/methods/scrape.py_prepare_scrape_requestr      s      0ciikk 0.///$)399;;#7L+G44	 ))44D *##D)))    clientc                 v   t          ||          }|                     d|          }|j        st          |d           |                                }|                    d          s#t          |                    dd                    |                    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33G{{<11H; 2h111==??D88I E*BCCDDDHHVR((M)-88J!!j!!!r   )N)__doc__typingr   r   r   typesr   r   utils.normalizer	   utilsr
   r   r   r   strr   r   r!   r   r   <module>r2      s    ' & & & & & & & & & + + + + + + + + 6 6 6 6 6 6 f f f f f f f f f f f f  x/F RVWZ\_W_R`    2" ": "C "(=2I "U] " " " " " "r   