U
    Û~fh×	  ã                   @  sl  d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZ ddlmZmZmZ erÔ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 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# ddl$m%Z% e	e&ee' f Z(eee&ef df Z)eee&ef  Z*ee&ef Z+e
dƒZ,ed Z-ed Z.ed Z/ed Z0ed Z1dddœdd„Z2dddddd dd!gZ3d"S )#zType aliases used by PyMongoé    )Úannotations)ÚTYPE_CHECKINGÚAnyÚMappingÚOptionalÚSequenceÚTupleÚTypeVarÚUnion)Ú_DocumentOutÚ_DocumentTypeÚ_DocumentTypeArg)Ú
_AsyncBulk)Ú_AsyncClientBulk)ÚAsyncClientSession)ÚAsyncMongoClient)ÚAsyncConnection)Ú	Collation)Ú_Bulk)Ú_ClientBulk)ÚClientSession)ÚMongoClient)Ú
Connectionr   Ú_T)r   r   )r   r   )r   r   )r   r   )r   r   zOptional[_T])ÚelemÚreturnc                 C  s   | dk	st ‚| S )zˆThis function is to allow us to cast all the elements of an iterator from Optional[_T] to _T
    while inside a list comprehension.
    N)ÚAssertionError)r   © r   ú3/tmp/pip-unpacked-wheel-36gvocj8/pymongo/typings.pyÚstrip_optional=   s    r   r   r   r   Ú_AddressÚ_CollationInÚ	_PipelineÚ_AgnosticMongoClientN)4Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   r   r	   r
   Zbson.typingsr   r   r   Zpymongo.asynchronous.bulkr   Z pymongo.asynchronous.client_bulkr   Z#pymongo.asynchronous.client_sessionr   Z!pymongo.asynchronous.mongo_clientr   Zpymongo.asynchronous.poolr   Zpymongo.collationr   Zpymongo.synchronous.bulkr   Zpymongo.synchronous.client_bulkr   Z"pymongo.synchronous.client_sessionr   Z pymongo.synchronous.mongo_clientr   Zpymongo.synchronous.poolr   ÚstrÚintr    r!   r"   ZClusterTimer   r#   Z_AgnosticConnectionZ_AgnosticClientSessionZ_AgnosticBulkZ_AgnosticClientBulkr   Ú__all__r   r   r   r   Ú<module>   sF   (	ø