File: //kunden/lib/python3/dist-packages/dulwich/__pycache__/greenthreads.cpython-39.pyc
a
�~�_� � @ sj d Z ddlZddlmZ ddlmZmZ ddlmZmZm Z d
dd�Z
G d d
� d
e�ZG dd� de �ZdS )z7Utility module for querying an ObjectStore with gevent.� N)�pool)�Commit�Tag)�MissingObjectFinder�_collect_filetree_revs�ObjectStoreIteratorFc sD t � � t � �� ���fdd����fdd�|D �}t�|� � �fS )z�Split object id list into two list with commit SHA1s and tag SHA1s.
Same implementation as object_store._split_commits_and_tags
except we use gevent to parallelize object retrieval.
c sr z�| }W n t y$ �s � Y nJ0 t|t�r<� �| � n2t|t�rb��| � � �|jd � nt d| ��d S )N� zNot a commit or a tag: %s)�KeyError�
isinstancer �addr �object)�sha�o)�commits�ignore_unknown� obj_store�tags� �6/usr/lib/python3/dist-packages/dulwich/greenthreads.py�find_commit_type1 s
z1_split_commits_and_tags.<locals>.find_commit_typec s g | ]}�� � |��qS r ��spawn)�.0�s)r r r r �
<listcomp>? � z+_split_commits_and_tags.<locals>.<listcomp>)�set�gevent�joinall)r Zlstr r �jobsr )r r r r r r r �_split_commits_and_tags'