U
    qeZ                     @   s   d dl Z G dd deZdS )    Nc                   @   sz   e Zd Zdddddddgdd	gd
gdddddddd	dZdd Zdd ZeZdddZdd Zdd Z	dd Z
dd ZdS ) FeedParserDictfeedentriesidupdatedupdated_parsedsummarysubtitleZsummary_detailZsubtitle_detailhref	publishedpublished_parsedrightsZrights_detail)channelitemsZguiddateZdate_parseddescriptionZdescription_detailurlmodifiedmodified_parsedZissuedZissued_parsed	copyrightZcopyright_detailtaglineZtagline_detailc                    s  |dkr@zt | dd d W S  tk
r:   tdY nX nT|dkrjdd   fd	d
t | dD S |dkrt | dD ]$}|d dkr~d|kr~|d   S q~n|dkrt | dst | drtdt t | dS t | dS |dkr4t | ds(t | dr(tdt t | dS t | dS | j	||}t
|trz|D ]$}t | |rRt | |  S qRnt | |rt | |S t | |S )5
        :return: A :class:`FeedParserDict`.
        categorytagsr   termz"object doesn't have key 'category'Z
enclosuresc                 S   s   t dd |  D S )Nc                 S   s    g | ]\}}|d kr||fqS )rel ).0namevaluer   r   m/mounts/lovelace/software/anaconda3/envs/qiime2-shotgun-2024.2/lib/python3.8/site-packages/feedparser/util.py
<listcomp>>   s      z@FeedParserDict.__getitem__.<locals>.<lambda>.<locals>.<listcomp>)r   r   )linkr   r   r    <lambda>>       z,FeedParserDict.__getitem__.<locals>.<lambda>c                    s    g | ]}|d  dkr |qS )r   	enclosurer   )r   r"   Znorelr   r    r!   ?   s   z.FeedParserDict.__getitem__.<locals>.<listcomp>linkslicenser   r
   r   r   zTo avoid breaking existing software while fixing issue 310, a temporary mapping has been created from `updated` to `published` if `updated` doesn't exist. This fallback will be removed in a future version of feedparser.r   r   zTo avoid breaking existing software while fixing issue 310, a temporary mapping has been created from `updated_parsed` to `published_parsed` if `updated_parsed` doesn't exist. This fallback will be removed in a future version of feedparser.)dict__getitem__
IndexErrorKeyError__contains__warningswarnDeprecationWarningkeymapget
isinstancelist)selfkeyr"   Zrealkeykr   r&   r    r*   3   sX    






zFeedParserDict.__getitem__c                 C   sB   |dkrt | |S z| | W n tk
r8   Y dS X dS d S )N)r   r   FT)r)   r-   r*   r,   r5   r6   r   r   r    r-   s   s    zFeedParserDict.__contains__Nc                 C   s*   z|  |W S  tk
r$   | Y S X dS )r   N)r*   r,   )r5   r6   defaultr   r   r    r2      s    zFeedParserDict.getc                 C   s.   | j ||}t|tr |d }t| ||S )Nr   )r1   r2   r3   r4   r)   __setitem__)r5   r6   r   r   r   r    r:      s    
zFeedParserDict.__setitem__c                 C   s   || kr|| |< |S | | S Nr   )r5   r7   r9   r   r   r    
setdefault   s    zFeedParserDict.setdefaultc                 C   s2   z|  |W S  tk
r,   td| Y nX d S )Nzobject has no attribute '%s')r*   r,   AttributeErrorr8   r   r   r    __getattr__   s    zFeedParserDict.__getattr__c                 C   s   t | S r;   )r   )r5   r   r   r    __hash__   s    zFeedParserDict.__hash__)N)__name__
__module____qualname__r1   r*   r-   has_keyr2   r:   r<   r>   r?   r   r   r   r    r      s2   @

r   )r.   r)   r   r   r   r   r    <module>   s   