o
    3g`                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 G dd deZG d	d
 d
eeZG dd deeZG dd deeZG dd deeZdee dee fddZdS )zx
This defines Protocol classes, which make sure that each different
type of shared models have a standardized interface
    )__NOT_HPI_MODULE__)Iterator)chain)Protocol)Jsondatetime_awarec                   @   sf   e Zd ZedefddZedefddZedefddZ	edefdd	Z
edefd
dZdS )
RedditBasereturnc                 C      d S N selfr   r   */home/garg/my-data/HPI/my/reddit/common.pyraw      zRedditBase.rawc                 C   r
   r   r   r   r   r   r   created   r   zRedditBase.createdc                 C   r
   r   r   r   r   r   r   id   r   zRedditBase.idc                 C   r
   r   r   r   r   r   r   url   r   zRedditBase.urlc                 C   r
   r   r   r   r   r   r   text   r   zRedditBase.textN)__name__
__module____qualname__propertyr   r   r   r   strr   r   r   r   r   r   r   r      s    r   c                   @      e Zd ZedefddZdS )Saver	   c                 C   r
   r   r   r   r   r   r   	subreddit   r   zSave.subredditN)r   r   r   r   r   r   r   r   r   r   r          r   c                   @   r   )Upvoter	   c                 C   r
   r   r   r   r   r   r   title$   r   zUpvote.titleNr   r   r   r   r   r    r   r   r   r   r   #   r   r   c                   @   s   e Zd ZdS )CommentN)r   r   r   r   r   r   r   r"   )   s    r"   c                   @   r   )
Submissionr	   c                 C   r
   r   r   r   r   r   r   r    /   r   zSubmission.titleNr!   r   r   r   r   r#   .   r   r#   sourcesr	   c                  g   s:    t  }t|  D ]}|j}||v rq|V  || qd S r   )setr   r   add)r$   emittedeuidr   r   r   _merge_comments3   s   r*   N)__doc__my.corer   collections.abcr   	itertoolsr   typingr   r   r   r   r   r   r"   r#   r*   r   r   r   r   <module>   s    