
    g,                     j    d dl mZ ddlmZ  G d de      ZddZddZddZdd	Z	dd
Z
ddZg dZy)    )generator_stop   )FeedParserDictc                        e Zd ZddddZ fdZd ZeZeZeZeZ	d Z
d Zd	 Zd
 Zd Zd ZeZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeZeZeZeZeZ d Z!e!Z" xZ#S )	Namespacegeogeorssgml)z(http://www.w3.org/2003/01/geo/wgs84_pos#zhttp://www.georss.org/georsszhttp://www.opengis.net/gmlc                 8    d| _         t        t        |           y )Nr   )
ingeometrysuperr   __init__)self	__class__s    O/var/www/html/venv/lib/python3.12/site-packages/feedparser/namespaces/georss.pyr   zNamespace.__init__*   s    i')    c                 b    | j                  dd       | j                         }t               |d<   y )Ngeometryr   wherepush_get_contextr   r   attrs_dcontexts      r   _start_georssgeomzNamespace._start_georssgeom.   s+    		*a ##%)+r   c                 L    | j                         }|d   j                  |       y Nr   )r   update)r   r   r   s      r   _save_wherezNamespace._save_where8   s#    ##%)r   c                 `    t        | j                  d            }|r| j                  |       y y Nr   )_parse_georss_pointpopr    r   r   s     r   _end_georss_pointzNamespace._end_georss_point<   s+    &txx
';<X& r   c                 `    t        | j                  d            }|r| j                  |       y y r"   )_parse_georss_liner$   r    r%   s     r   _end_georss_linezNamespace._end_georss_lineA   s+    %dhhz&:;X& r   c                 d    | j                  d      }t        |      }|r| j                  |       y y r"   )r$   _parse_georss_polygonr    )r   thisr   s      r   _end_georss_polygonzNamespace._end_georss_polygonF   s0    xx
#(.X& r   c                 `    t        | j                  d            }|r| j                  |       y y r"   )_parse_georss_boxr$   r    r%   s     r   _end_georss_boxzNamespace._end_georss_boxL   s+    $TXXj%9:X& r   c                 b    | j                  dd       | j                         }t               |d<   y )Nr   r   r   r   s      r   _start_wherezNamespace._start_whereQ   s+    		'1##%)+r   c                     |j                  d      }	 t        |j                  dd            }| j                         }d|vri |d<   ||d   d<   ||d   d<   y # t        $ r d}Y 7w xY w)Nsrsnamesrsdimension2r   r   srsNamesrsDimension)getint
ValueErrorr   )r   r   srs_namesrs_dimensionr   s        r   _parse_srs_attrszNamespace._parse_srs_attrsW   s    ;;y)	NC @AM ##%'!!GG&.#+8(  	M	s   A A&%A&c                 X    | j                  |       d| _        | j                  dd       y )N   r   r   r>   r   r   r   r   s     r   _start_gml_pointzNamespace._start_gml_pointc   s%    g&		*a r   c                 X    | j                  |       d| _        | j                  dd       y )N
linestringr   r   rA   rB   s     r   _start_gml_linestringzNamespace._start_gml_linestringh   s%    g&&		*a r   c                 J    | j                  |       | j                  dd       y Nr   r   )r>   r   rB   s     r   _start_gml_polygonzNamespace._start_gml_polygonm   s    g&		*a r   c                 (    | j                  dd       y rH   r   rB   s     r   _start_gml_exteriorzNamespace._start_gml_exteriorq   s    		*a r   c                 6    d| _         | j                  dd       y )Npolygonr   r   )r   r   rB   s     r   _start_gml_linearringzNamespace._start_gml_linearringt   s    #		*a r   c                 (    | j                  dd       y Nposr   rK   rB   s     r   _start_gml_poszNamespace._start_gml_posx       		%r   c                 H   | j                  d      }| j                         }|d   j                  d      }|d   j                  dd      }d}|r2d|v r.t        |j	                  d      d	         }t        |t        v       }t        |||
      }|r| j                  |       y y NrR   r   r7   r8   r   TEPSG:)swapdims)	r$   r   r9   r:   splitbool_geogCSr#   r    r   r,   r   r<   r=   rZ   epsgr   s           r   _end_gml_poszNamespace._end_gml_pos{   s    xx##%7#''	2(,,^Q?(*x~~c*2./D(D&t$]KX& r   c                 (    | j                  dd       y rQ   rK   rB   s     r   _start_gml_poslistzNamespace._start_gml_poslist   rT   r   c                 ^   | j                  d      }| j                         }|d   j                  d      }|d   j                  dd      }d}|r2d|v r.t        |j	                  d      d	         }t        |t        v       }t        || j                  ||
      }|r| j                  |       y y rV   )
r$   r   r9   r:   r\   r]   r^   _parse_poslistr   r    r_   s           r   _end_gml_poslistzNamespace._end_gml_poslist   s    xx##%7#''	2(,,^Q?(*x~~c*2./D(D!$//=BX& r   c                 4    d| _         | j                  d       y )Nr   r   )r   r$   r   s    r   	_end_geomzNamespace._end_geom   s    r   c                 &    | j                  d       y r   )r$   rh   s    r   
_end_wherezNamespace._end_where   s    r   )$__name__
__module____qualname__supported_namespacesr   r   _start_georss_point_start_georss_line_start_georss_polygon_start_georss_boxr    r&   r)   r-   r0   r2   _start_georss_wherer>   rC   rF   rI   rL   rO   rS   ra   rc   rf   ri   _end_gml_point_end_gml_linestring_end_gml_linearring_end_gml_exterior_end_gml_polygonrk   _end_georss_where__classcell__)r   s   @r   r   r   #   s    49(0&+*,
 ,*-)*'
'
''
, '
9!
!
!!!'' N##! "r   r   c                 ^    |dk(  rt        | ||      S |dk(  rt        | ||      }d|d   fdS y )NrE   rN   Polygoncoordinatestyper~   )r(   )value	geom_typerZ   r[   rings        r   re   re      sE    L !%t44	i	!%t4!43F2HIIr   c              #     K   d | j                  dd      j                         D        }	 	 t        |      t        |      gd d |xr dxs d   }|dk(  r|j                  t        |             t	        |       R# t
        $ r Y y w xY ww)Nc              3   2   K   | ]  }t        |        y w)N)float).0lls     r   	<genexpr>z%_gen_georss_coords.<locals>.<genexpr>   s     CRuRyCs   , rY   r@      )replacer\   nextappendtupleStopIteration)r   rZ   r[   latlonsts        r   _gen_georss_coordsr      s      D5==c#:#@#@#BCG
	gW./A"1A/ABAqyg'(N   		s)   )BAA= <B=	B	BB		Bc                 j    	 t        t        | ||            }d|d   dS # t        t        f$ r Y y w xY w)NPointr   r   listr   
IndexErrorr;   r   rZ   r[   coordss       r   r#   r#      sA    (d;<q	::
# s     22c                 d    	 t        t        | ||            }d|dS # t        t        f$ r Y y w xY w)N
LineStringr   r   r   s       r   r(   r(      s=    (d;<$V<<
# s    //c                     	 t        t        | ||            }t	        |      dk  ry d|fdS # t        t        f$ r Y y w xY w)N   r}   r   )r   r   r   r;   len)r   rZ   r[   r   s       r   r+   r+      sQ    
&udD9: 4y1}tg66	 
# s   - ??c                 v    	 t        t        | ||            }dt        |      dS # t        t        f$ r Y y w xY w)NBoxr   )r   r   r   r   r;   r   s       r   r/   r/      sA    
(d;<eFm<<
# s   #& 88(  i  i  i  i1  iB  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i!  i"  i#  i$  i%  i&  i'  i(  i)  i*  i+  i,  i-  i.  i/  i0  i1  i2  i3  i4  i5  i6  i7  i8  i9  i:  i;  i<  i=  i>  i?  i@  iA  iB  iC  iD  iE  iF  iG  iH  iI  iJ  iK  iL  iM  iN  iO  iP  iR  iS  iT  iU  iV  iW  iX  iY  i\  i]  i^  i_  i`  ia  ib  ic  id  ie  if  ig  ih  ii  ij  ik  il  im  in  io  ip  iq  ir  is  it  iu  iv  iw  ix  iz  i{  i|  i}  i~  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  io  iv  i{  i  i  i  i  i  i  i  i  i  i  i  i  i   i  i  i  i  i  i  i  i  i	  i
  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i!  i"  i#  i$  i%  i&  i1  i2  i3  i4  i5  i6  i7  i8  i9  i:  i;  i<  i=  i>  i?  i@  iA  iB  iC  iD  iE  iF  iG  iH  iI  iJ  iK  iL  iM  iN  iO  iP  iQ  iR  iS  iT  iU  iV  iW  iX  iY  iZ  i[  i\  i]  i^  i_  i`  ia  ib  ic  id  ie  if  ig  ih  ii  ij  ik  il  im  in  io  ip  iq  ir  is  it  iu  iv  iw  ix  iy  iz  i{  i|  i}  i~  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i&  i'  i(  is  N)Tr   )
__future__r   utilr   objectr   re   r   r#   r(   r+   r/   r^    r   r   <module>r      sA   < & !A# A#N7	#r   