
    ih                     ^    d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ  G d de      Zy)    N)AnyList)Document)stringify_dict)
BaseLoaderc                   N    e Zd ZdZdededefdZdefdZdefdZde	e
   fd	Zy
)FigmaFileLoaderzLoad `Figma` file.access_tokenidskeyc                 .    || _         || _        || _        y)zInitialize with access token, ids, and key.

        Args:
            access_token: The access token for the Figma REST API.
            ids: The ids of the Figma file.
            key: The key for the Figma file
        N)r
   r   r   )selfr
   r   r   s       h/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/figma.py__init__zFigmaFileLoader.__init__   s     )    returnc                 >    d| j                   d| j                  }|S )Nzhttps://api.figma.com/v1/files/z/nodes?ids=)r   r   )r   api_urls     r   _construct_figma_api_urlz(FigmaFileLoader._construct_figma_api_url   s    HHHH
 r   c                 L   d| j                   i}t        j                  j                  | j	                         |      }t        j                  j                  |      5 }t        j                  |j                         j                               }|cddd       S # 1 sw Y   yxY w)z#Get Figma file from Figma REST API.zX-Figma-Token)headersN)
r
   urllibrequestRequestr   urlopenjsonloadsreaddecode)r   r   r   response	json_datas        r   _get_figma_filezFigmaFileLoader._get_figma_file!   s    "D$5$56..(())+W ) 
 ^^##G, 	

8==?#9#9#;<I	 	 	s   3BB#c                 x    | j                         }t        |      }d| j                         i}t        ||      gS )z	Load filesource)page_contentmetadata)r"   r   r   r   )r   datatextr&   s       r   loadzFigmaFileLoader.load+   s=    ##%d#d;;=>dX>??r   N)__name__
__module____qualname____doc__strr   r   r   r"   r   r   r)    r   r   r	   r	      sI    
S 
s 
 
#  @d8n @r   r	   )r   urllib.requestr   typingr   r   langchain_core.documentsr   langchain_core.utilsr   )langchain_community.document_loaders.baser   r	   r/   r   r   <module>r5      s%       - / @%@j %@r   