o
    ì6WjÌ,  ã                   @   sp   d dl mZ ddlmZ G dd„ deƒZddd„Zdd	d
„Zddd„Zddd„Z	ddd„Z
ddd„Zg d¢ZdS )é    )Úgenerator_stopé   )ÚFeedParserDictc                       sì   e Zd ZddddœZ‡ fdd„Zdd„ ZeZeZeZeZ	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZeZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ ZeZeZeZeZeZ d+d,„ Z!e!Z"‡  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                    s   d| _ tt| ƒ ¡  d S )Nr   )Ú
ingeometryÚsuperr   Ú__init__©Úself©Ú	__class__© úk/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/feedparser/namespaces/georss.pyr   *   s   zNamespace.__init__c                 C   s"   |   dd¡ |  ¡ }tƒ |d< d S )NÚgeometryr   Úwhere©ÚpushÚ_get_contextr   ©r   Úattrs_dÚcontextr   r   r   Ú_start_georssgeom.   ó   zNamespace._start_georssgeomc                 C   s   |   ¡ }|d  |¡ d S ©Nr   )r   Úupdate)r   r   r   r   r   r   Ú_save_where8   s   zNamespace._save_wherec                 C   ó$   t |  d¡ƒ}|r|  |¡ d S d S ©Nr   )Ú_parse_georss_pointÚpopr   ©r   r   r   r   r   Ú_end_georss_point<   ó   ÿzNamespace._end_georss_pointc                 C   r   r    )Ú_parse_georss_liner"   r   r#   r   r   r   Ú_end_georss_lineA   r%   zNamespace._end_georss_linec                 C   s(   |   d¡}t|ƒ}|r|  |¡ d S d S r    )r"   Ú_parse_georss_polygonr   )r   Úthisr   r   r   r   Ú_end_georss_polygonF   s
   
ÿzNamespace._end_georss_polygonc                 C   r   r    )Ú_parse_georss_boxr"   r   r#   r   r   r   Ú_end_georss_boxL   r%   zNamespace._end_georss_boxc                 C   s"   |   dd¡ |  ¡ }tƒ |d< d S )Nr   r   r   r   r   r   r   Ú_start_whereQ   r   zNamespace._start_wherec                 C   sj   |  d¡}z
t|  dd¡ƒ}W n ty   d}Y nw |  ¡ }d|vr'i |d< ||d d< ||d d< d S )NÚsrsnameÚsrsdimensionÚ2r   r   ÚsrsNameÚsrsDimension)ÚgetÚintÚ
ValueErrorr   )r   r   Úsrs_nameÚsrs_dimensionr   r   r   r   Ú_parse_srs_attrsW   s   
ÿzNamespace._parse_srs_attrsc                 C   ó    |   |¡ d| _|  dd¡ d S )Né   r   r   ©r8   r	   r   ©r   r   r   r   r   Ú_start_gml_pointc   ó   
zNamespace._start_gml_pointc                 C   r9   )NÚ
linestringr   r   r;   r<   r   r   r   Ú_start_gml_linestringh   r>   zNamespace._start_gml_linestringc                 C   s   |   |¡ |  dd¡ d S ©Nr   r   )r8   r   r<   r   r   r   Ú_start_gml_polygonm   s   
zNamespace._start_gml_polygonc                 C   ó   |   dd¡ d S rA   ©r   r<   r   r   r   Ú_start_gml_exteriorq   ó   zNamespace._start_gml_exteriorc                 C   s   d| _ |  dd¡ d S )NÚpolygonr   r   )r	   r   r<   r   r   r   Ú_start_gml_linearringt   s   zNamespace._start_gml_linearringc                 C   rC   ©NÚposr   rD   r<   r   r   r   Ú_start_gml_posx   rF   zNamespace._start_gml_posc                 C   s‚   |   d¡}|  ¡ }|d  d¡}|d  dd¡}d}|r/d|v r/t| d¡d	 ƒ}t|tv ƒ}t|||d
�}|r?|  |¡ d S d S ©NrJ   r   r1   r2   r   TÚEPSGú:éÿÿÿÿ)ÚswapÚdims)	r"   r   r3   r4   ÚsplitÚboolÚ_geogCSr!   r   ©r   r)   r   r6   r7   rP   Úepsgr   r   r   r   Ú_end_gml_pos{   s   
ÿzNamespace._end_gml_posc                 C   rC   rI   rD   r<   r   r   r   Ú_start_gml_poslistˆ   rF   zNamespace._start_gml_poslistc                 C   s†   |   d¡}|  ¡ }|d  d¡}|d  dd¡}d}|r/d|v r/t| d¡d	 ƒ}t|tv ƒ}t|| j||d
�}|rA|  	|¡ d S d S rL   )
r"   r   r3   r4   rR   rS   rT   Ú_parse_poslistr	   r   rU   r   r   r   Ú_end_gml_poslist‹   s   

ÿÿzNamespace._end_gml_poslistc                 C   s   d| _ |  d¡ d S )Nr   r   )r	   r"   r   r   r   r   Ú	_end_geom™   s   zNamespace._end_geomc                 C   s   |   d¡ d S r   )r"   r   r   r   r   Ú
_end_where¢   s   zNamespace._end_where)$Ú__name__Ú
__module__Ú__qualname__Úsupported_namespacesr   r   Ú_start_georss_pointÚ_start_georss_lineÚ_start_georss_polygonÚ_start_georss_boxr   r$   r'   r*   r,   r-   Ú_start_georss_wherer8   r=   r@   rB   rE   rH   rK   rW   rX   rZ   r[   Ú_end_gml_pointÚ_end_gml_linestringÚ_end_gml_linearringÚ_end_gml_exteriorÚ_end_gml_polygonr\   Ú_end_georss_whereÚ__classcell__r   r   r   r   r   #   sH    ýr   Tc                 C   s<   |dkr
t | ||ƒS |dkrt | ||ƒ}d|d fdœS d S )Nr?   rG   ÚPolygonÚcoordinates©Útypern   )r&   )ÚvalueÚ	geom_typerP   rQ   Úringr   r   r   rY   ª   s   rY   c                 c   s|   � dd„ |   dd¡ ¡ D ƒ}	 z#t|ƒt|ƒgd d |rdpd… }|dkr,| t|ƒ¡ t|ƒV  W n
 ty<   Y d S w q)	Nc                 s   s   � | ]}t |ƒV  qd S )N)Úfloat)Ú.0Úllr   r   r   Ú	<genexpr>·   s   € z%_gen_georss_coords.<locals>.<genexpr>ú,ú TrO   r:   é   )ÚreplacerR   ÚnextÚappendÚtupleÚStopIteration)rq   rP   rQ   ÚlatlonsÚtr   r   r   Ú_gen_georss_coords´   s   €"ÿúr‚   c              	   C   s:   zt t| ||ƒƒ}d|d dœW S  ttfy   Y d S w )NÚPointr   ro   ©Úlistr‚   Ú
IndexErrorr5   ©rq   rP   rQ   Úcoordsr   r   r   r!   Â   s   ÿr!   c              	   C   s6   zt t| ||ƒƒ}d|dœW S  ttfy   Y d S w )NÚ
LineStringro   r„   r‡   r   r   r   r&   Ì   s   ÿr&   c              	   C   sJ   z
t t| ||ƒƒ}W n ttfy   Y d S w t|ƒdk rd S d|fdœS )Né   rm   ro   )r…   r‚   r†   r5   Úlen)rq   rP   rQ   rs   r   r   r   r(   ×   s   ÿr(   c              	   C   s:   zt t| ||ƒƒ}dt|ƒdœW S  ttfy   Y d S w )NÚBoxro   )r…   r‚   r~   r†   r5   r‡   r   r   r   r+   å   s   ÿr+   (·  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   rY   r‚   r!   r&   r(   r+   rT   r   r   r   r   Ú<module>   s    







