U
    ÷Õ/e\  ã                   @  sT   d dl mZ d dlmZmZ er,d dlmZ ddddœdd	„Zdd
ddœdd„ZdS )é    )Úannotations)ÚTYPE_CHECKINGÚIterable)Ú
Transitionzset[str]zIterable[Transition]zlist[Transition])Úkeys_or_stimuliÚtransition_logÚreturnc                   s   ‡ fdd„|D ƒS )a5  Creates a story from the scheduler transition log given a set of keys
    describing tasks or stimuli.

    Parameters
    ----------
    keys_or_stimuli : set[str]
        Task keys or stimulus_id's
    log : iterable
        The scheduler transition log

    Returns
    -------
    story : list[tuple]
    c                   s*   g | ]"}|d  ˆ ks"ˆ   |d ¡r|‘qS )r   é   )Úintersection)Ú.0Út©r   © ú8/tmp/pip-unpacked-wheel-g426oqom/distributed/_stories.pyÚ
<listcomp>   s    þz#scheduler_story.<locals>.<listcomp>r   )r   r   r   r   r   Úscheduler_story
   s    
þr   zIterable[tuple]Úlist)r   Úlogr   c                   s   ‡ fdd„|D ƒS )a  Creates a story from the worker log given a set of keys
    describing tasks or stimuli.

    Parameters
    ----------
    keys_or_stimuli : set[str]
        Task keys or stimulus_id's
    log : iterable
        The worker log

    Returns
    -------
    story : list[str]
    c                   s<   g | ]4‰ t ‡ fd d„ˆD ƒƒs4t ‡ fdd„ˆD ƒƒrˆ ‘qS )c                 3  s   | ]}|ˆ kV  qd S ©Nr   )r   Úkey©Úmsgr   r   Ú	<genexpr>4   s     z*worker_story.<locals>.<listcomp>.<genexpr>c                 3  s0   | ](}ˆ D ]}t |tttfƒr
||kV  q
qd S r   )Ú
isinstanceÚtupler   Úset)r   r   Úcr   r   r   r   5   s
    ý)Úany)r   r   r   r   r   1   s   þýz worker_story.<locals>.<listcomp>r   )r   r   r   r   r   Úworker_story"   s    
þr   N)	Ú
__future__r   Útypingr   r   Zdistributed.schedulerr   r   r   r   r   r   r   Ú<module>   s
   