
    ii
                       d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ  G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    )annotationsN)ABCabstractmethod)deque)Any)
deprecatedis_safe_subclassc                      e Zd ZU ded<   eedd                        Zedd            Ze e	d          dd                        Z
dS )CollectionExtenderztuple[type, ...]	__types__	type_argstuple[Any, ...]number_of_argsintreturnc                    t           N)NotImplementedErrorr   r   s     w/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/polyfactory/collection_extender.py_extend_type_argsz$CollectionExtender._extend_type_args   s
     "!    annotation_aliasr   type[CollectionExtender]c                j    t          fd|                                 D             t                    S )Nc              3  \   K   | ]&}t          fd |j        D                       "|V  'dS )c              3  8   K   | ]}t          |          V  d S r   r	   ).0tr   s     r   	<genexpr>zBCollectionExtender._subclass_for_type.<locals>.<genexpr>.<genexpr>   s/      YY'(8!<<YYYYYYr   N)anyr   )r   subclassr   s     r   r!   z8CollectionExtender._subclass_for_type.<locals>.<genexpr>   s]        YYYYhFXYYYYY     r   )next__subclasses__FallbackExtender)clsr   s    `r   _subclass_for_typez%CollectionExtender._subclass_for_type   sL        # 2 2 4 4  
 
 
 	
r   z2.20.0c                T    |                      |                              ||          S r   )r(   r   )r'   r   r   r   s       r   extend_type_argsz#CollectionExtender.extend_type_args   s*     %%&677II)Ucdddr   Nr   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   )__name__
__module____qualname____annotations__staticmethodr   r   classmethodr(   r   r*    r   r   r   r      s         " " " ^ \" 
 
 
 [
 Ze e e  [e e er   r   c                  ,    e Zd ZefZedd            ZdS )	TupleExtenderr   r   r   r   r   c                T    | s| S | d         dur| S | d         }| d d         |f|z  z   S )N.r2   )r   r   type_to_extends      r   r   zTupleExtender._extend_type_args-   sI     	R=##"2"~ 1N BBBr   Nr+   )r,   r-   r.   tupler   r0   r   r2   r   r   r4   r4   *   s?        IC C C \C C Cr   r4   c                  .    e Zd ZeefZedd            ZdS )	ListLikeExtenderr   r   r   r   r   c                \      s S t           fdt          |          D                       S )Nc              3  @   K   | ]}t          j                  V  d S r   randomchoicer   _r   s     r   r!   z5ListLikeExtender._extend_type_args.<locals>.<genexpr>>   -      MM!V]9--MMMMMMr   r9   ranger   s   ` r   r   z"ListLikeExtender._extend_type_args:   <     	MMMMu^7L7LMMMMMMr   Nr+   )r,   r-   r.   listr   r   r0   r   r2   r   r   r;   r;   7   sA        uIN N N \N N Nr   r;   c                  .    e Zd ZeefZedd            ZdS )	SetExtenderr   r   r   r   r   c                \      s S t           fdt          |          D                       S )Nc              3  @   K   | ]}t          j                  V  d S r   r>   rA   s     r   r!   z0SetExtender._extend_type_args.<locals>.<genexpr>H   rC   r   rD   r   s   ` r   r   zSetExtender._extend_type_argsD   rF   r   Nr+   )r,   r-   r.   set	frozensetr   r0   r   r2   r   r   rI   rI   A   sB        i IN N N \N N Nr   rI   c                  ,    e Zd ZefZedd            ZdS )	DictExtenderr   r   r   r   r   c                    | |z  S r   r2   r   s     r   r   zDictExtender._extend_type_argsN   s    >))r   Nr+   )r,   r-   r.   dictr   r0   r   r2   r   r   rO   rO   K   s9        I* * * \* * *r   rO   c                  *    e Zd ZdZed	d            ZdS )
r&   r2   r   r   r   r   r   c                    | S r   r2   r   s     r   r   z"FallbackExtender._extend_type_argsV   s
    
 r   Nr+   )r,   r-   r.   r   r0   r   r2   r   r   r&   r&   S   s7        I   \  r   r&   )
__future__r   r?   abcr   r   collectionsr   typingr   polyfactory.utils.deprecationr   polyfactory.utils.predicatesr
   r   r4   r;   rI   rO   r&   r2   r   r   <module>rZ      s   " " " " " "  # # # # # # # #             4 4 4 4 4 4 9 9 9 9 9 9e e e e e e e e<
C 
C 
C 
C 
C& 
C 
C 
CN N N N N) N N NN N N N N$ N N N* * * * *% * * *    )     r   