
    rbi                     6   d dl Zd dlmZ d dlmZ d dlmZmZm	Z	 ej
                            ej
                            e                    Zej
                            ej
                            e                    Zej
                            eddd          Zdej
                            ed	          z   Zej
                            ed
d          Zej
                            edd          Z	 d dlmZ n# e$ r	 d dlmZ Y nw xY wddZd Zd ZddZdS )    N)Series)GeoDataFrame)assert_geoseries_equalgeom_almost_equalsgeom_equals	geopandastestsdatazzip://znybb_16a.zipnaturalearth_citiesznaturalearth_cities.shpnaturalearth_lowresznaturalearth_lowres.shp)mockFc                    t          | t                    sJ t          |           dk    sJ d}|r|D ]}|| j        v sJ n,|D ])}|                                d | j        D             v sJ *t          | j        j                                                  	                    d          
                                sJ dS )zATests a GeoDataFrame that has been read in from the nybb dataset.   )BoroCodeBoroName
Shape_Leng
Shape_Areac              3   >   K   | ]}|                                 V  d S N)lower).0dfcols     d/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/util.py	<genexpr>z#validate_boro_df.<locals>.<genexpr>-   s*      "I"IU5;;=="I"I"I"I"I"I    MultiPolygonN)
isinstancer   lencolumnsr   r   geometry	geom_typedropnaeqall)dfcase_sensitiver   cols       r   validate_boro_dfr(   !   s    b,''''' r77a<<<<BG J 	% 	%C"*$$$$$	%  	J 	JC99;;"I"Ibj"I"I"IIIIII"+'((//1144^DDHHJJJJJJJr   c                 J    | j         | j                                         pdS dS )zReturn srid from `df.crs`.Nr   )crsto_epsg)r%   s    r   get_sridr,   1   s&    	vv~~$1$1r   c           	         | 5  |j         j        }t          |          |                     d           |                     dd||j                                        j        d                                         f           |                     dd|f           d}|                     |fd|	                    d	          D                        d
d
d
           d
S # 1 swxY w Y   d
S )z
    Return a SpatiaLite connection containing the nybb table.

    Parameters
    ----------
    `con`: ``sqlite3.Connection``
    `df`: ``GeoDataFrame``
    zCREATE TABLE IF NOT EXISTS nybb ( ogc_fid INTEGER PRIMARY KEY, borocode INTEGER, boroname TEXT, shape_leng REAL, shape_area REAL)z$SELECT AddGeometryColumn(?, ?, ?, ?)nybbr   zSELECT CreateSpatialIndex(?, ?)z:INSERT INTO nybb VALUES(?, ?, ?, ?, ?, GeomFromText(?, ?))c              3   x   K   | ]4}d |j         |j        |j        |j        |j        r|j        j        nd fV  5d S r   )r   r   r   r   r    wkt)r   rowsrids     r   r   z$create_spatialite.<locals>.<genexpr>V   si          LLNN(+>CL$$$     r   F)indexN)
r    namer,   executer!   r"   iatupperexecutemany
itertuples)conr%   geom_colsql_rowr2   s       @r   create_spatialiter=   8   sX    
  
  
;#||	
 	
 	
 	2XtR\%8%8%:%:%>q%A%G%G%I%IJ	
 	
 	
 	57IJJJN    ==u=55  	
 	
 	
% 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
s   CC  C$'C$geomc           
      $   |d| d}d| d}nd}d}	 |                                  }|                    d           d| d	| d
}|                    |           |                                D ]I\  }}	d| d}|                    ||	d         j        |	d         |	d         |	d         |	d         f           J	 |                                 |                                  dS # |                                 |                                  w xY w)z
    Create a nybb table in the test_geopandas PostGIS database.
    Returns a boolean indicating whether the database table was successfully
    created
    Nzgeometry(MULTIPOLYGON, )z$ST_SetSRID(ST_GeometryFromText(%s), r    zST_GeometryFromText(%s)zDROP TABLE IF EXISTS nybb;z CREATE TABLE nybb (
            z   z,
            borocode     integer,
            boroname     varchar(40),
            shape_leng   float,
            shape_area   float
            );zINSERT INTO nybb VALUES (z, %s, %s, %s, %s
            );r   r   r   r   )cursorr5   iterrowsr0   closecommit)
r:   r%   r2   r;   geom_schemageom_insertrA   sqlir1   s
             r   create_postgisrI   e   sZ    7777DTDDD /3444 %   	skkmm 	 	FAs   CNN
O'
O
O%%	 	 	 		 	

 	

s   B%C% %*D)F)Nr>   )os.pathospandasr   r   r   geopandas.testingr   r   r   pathabspathdirname__file__HEREPACKAGE_DIRjoin_TEST_DATA_DIR_NYBB_NATURALEARTH_CITIES_NATURALEARTH_LOWRESunittestr   ImportErrorr(   r,   r=   rI    r   r   <module>r\      s          " " " " " "          
wrwx0011goobgood3344k;HH27<<???w||)+D   w||)+D     K K K K   *
 *
 *
Z. . . . . .s   3C: :DD