
    dh`	                     B    S SK JrJr  S SKJr  S SKJr   " S S\5      rg)    )AnyIterator)Document)
BaseLoaderc                   B    \ rS rSrSrS
S\S\4S jjrS\\	   4S jr
Srg	)GeoDataFrameLoader   zLoad `geopandas` Dataframe.
data_framepage_content_columnc                 L    SSK n[        XR                  5      (       d  [	        S[        U5       35      eX!R                  ;  a  [	        SU 35      e[        X   UR                  5      (       d  [	        SU S35      eXl        X l	        g! [         a    [        S5      ef = f)zInitialize with geopandas Dataframe.

Args:
    data_frame: geopandas DataFrame object.
    page_content_column: Name of the column containing the page content.
      Defaults to "geometry".
r   NzKgeopandas package not found, please install it with `pip install geopandas`z2Expected data_frame to be a gpd.GeoDataFrame, got z+Expected data_frame to have a column named zExpected data_frame[z] to be a GeoSeries)
	geopandasImportError
isinstanceGeoDataFrame
ValueErrortypecolumns	GeoSeriesr
   r   )selfr
   r   gpds       i/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/geodataframe.py__init__GeoDataFrameLoader.__init__   s    	# *&6&677DT*EUDVW  &8&88=>Q=RS  *93==II&':&;;NO  %#6 -  	* 	s   B B#returnc              #     #    U R                   R                  (       a$  U R                   R                  R                  5       OSnU R                   R                  R                  R
                  S   nU R                   R                  5        H{  u  p4X@R                     nUR                  u  pgpUR                  5       n
XS'   X*S'   XjS'   XzS'   XS'   XS'   U
R                  U R                  5        [        UR                  U
S	9v   M}     g7f)
z!Lazy load records from dataframe.Nr   crsgeometry_typexminyminxmaxymax)page_contentmetadata)r
   r   	to_stringgeometry	geom_typeilociterrowsr   boundsto_dictpopr   wkt)r   crs_strr   _rowgeomr   r   r    r!   r#   s              r   	lazy_loadGeoDataFrameLoader.lazy_load.   s      6:__5H5H$//%%//1d00::??Boo..0FA//0D%)[["D{{}H%UO(5_%#V#V#V#VLL112 8DD! 1s   D	D)r
   r   N)r%   )__name__
__module____qualname____firstlineno____doc__r   strr   r   r   r1   __static_attributes__     r   r   r      s,    %!73 !7S !7FE8H- Er;   r   N)typingr   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   r   r:   r;   r   <module>r?      s      - @=E =Er;   