
    h                     @    d dl Zd dlmZmZmZ d dlmZ eeedZddZ	y)    N)MultiLineString
MultiPointMultiPolygon)BaseGeometry)Point
LineStringPolygonc                    t        | t              r| g} n%t        | t        j                        rt	        |       } | d   j
                  t        fd| D              st        d      t        |       dkD  r j                  d      rt        d d      t        |       dk(  rj                  d      s|s| d   S t           |       S )aR  Collect single part geometries into their Multi* counterpart.

    Parameters
    ----------
    x : an iterable or Series of Shapely geometries, a GeoSeries, or
        a single Shapely geometry
    multi : boolean, default False
        if True, force returned geometries to be Multi* even if they
        only have one component.

    r   c              3   <   K   | ]  }|j                   k(    y w)N)	geom_type).0gts     G/var/www/html/immo/lib/python3.12/site-packages/geopandas/tools/util.py	<genexpr>zcollect.<locals>.<genexpr>#   s     +Aq{{a+s   z!Geometry type must be homogeneous   MultizCannot collect z. Must have single geometries)
isinstancer   pdSerieslistr   all
ValueErrorlen
startswith_multi_type_map)xmultir   s     @r   collectr      s     !\"C	Aryy	!G 	
!A+++<==
1vzall7+?1#-JKLL
1v{W-U t1a      )F)
pandasr   shapely.geometryr   r   r   shapely.geometry.baser   r   r    r    r   <module>r%      s(     F F . !!r    