
    ZTh&                    D   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZ dZdZdZd	Zdd
Zd ZddZddZdddZedk(  rM eej4                        dk7  r ed        ej8                  d        eej4                  d         Z ee       yy)    )annotationsN)OrderedDict)Callable)SyncAPIRegistration_registeredz"from __future__ import annotationsz# Auto-generated stub
z#
class {cls_name}:
{doc}
{methods}
z\    {decorator}
    def {meth_name}(self{params}){ret_ann}:
{docstring_section}
        ...
c                b   | j                         }t        j                  |t        |             }g }t        j                  |      D ]  }t        |t        j                        rP|j                  D ]@  }d|j                   |j                  rd|j                   ndz   }|j                  |       B mt        |t        j                        s|j                  xs d}d|j                  z  }dj                  d |j                  D              }	d||z    d	|	 }|j                  |        |S )
zTParse the given Python file and return a list of its import statements (as strings).)filenamezimport  as  ., c              3  p   K   | ].  }|j                   |j                  rd |j                   ndz    0 yw)r
   r   N)nameasname).0aliass     b/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_client/_internal/gen_pyi.py	<genexpr>z"extract_imports.<locals>.<genexpr>0   s1      QV

u||U\\N3Ls   46zfrom z import )	read_textastparsestrwalk
isinstanceImportnamesr   r   append
ImportFrommoduleleveljoin)
pathsourcetreeimportsnoder   stmtr   r    r   s
             r   extract_importsr(   "   s   ^^F99Vc$i0DG !dCJJ' % -%,,4~1F\^_t$% cnn-[[&BF$**$EII Z^ZdZd E 56>*(5':DNN4 ! N    c                F   | t         j                  u ryt        | t              r| S t	        | dd       }|r@dj                  d | j                  D              }t	        |dt        |            }| d| dS t        | d      r| j                  S t	        | dt        |             S )	Nr   
__origin__r   c              3  2   K   | ]  }t        |        y wN)format_annotation)r   as     r   r   z$format_annotation.<locals>.<genexpr>@   s     D!*1-Ds   __name__[]__qualname__)
inspect_emptyr   r   getattrr!   __args__reprhasattrr0   )annoriginargsr   s       r   r.   r.   8   s    
gnn#s
S,-FyyDs||DDvz4<8qa  sJ||3S	22r)   c                r    | j                         D ]$  \  }}t        d|        |j                  |       & y )NzWriting stub: )itemsprint
write_text)
stub_filespyi_filecontents      r   write_stub_filesrD   H   s<    '--/ %'xj)*G$%r)   c                    t         j                  j                         j                         }t        j                  |       }||z  j                         }|j	                         r|j
                  }n!|j                         r|}nt        | d      i }|j                  d      D ]N  }|j                  j                  d      r |j                  d      j                  |      }dj                  |j                        }t        j                   |      }	t"        g}
g }t$        }t'        j(                  |	t&        j*                        D ]Z  \   }t-        t/         fd|            }t1        |      dk  r.|d   }|j3                  d	      }|t5        j6                  d
  dd       bt'        j8                  |      }|&t5        j6                  d|j:                   dd       t        j                  |      j                         }t=        |      }|
|z   }
t'        j>                  |      xs d}|r-ddj                  d |jA                         D              z   dz   }nd}g }t'        j(                  |t&        jB                        }|D ]!  \  }}|jE                  tG        |||	             # t'        j(                  |d       }|D ]  \  }}|jH                  r'|jE                  tG        ||jH                  |	d             |jJ                  r'|jE                  tG        ||jJ                  |	d             |jL                  sy|jE                  tG        ||jL                  |	d              tN        jQ                   |dj                  |            }|jE                  |       ] t-        tS        jT                  |
            }tV        g||}|j                  d      }dj                  |      ||<   Q |S )Nz" is neither a file nor a directoryz*.pytest_r   r   c                (    | d   j                   k(  S )Nsync_cls)r0   )ccls_names    r   <lambda>z+generate_stubs_for_module.<locals>.<lambda>r   s    :!7!78!C r)      r   	async_clszCould not find async class for z. Skipping stub generation.   )
stacklevelzCould not find source file for z    """

c              3  &   K   | ]	  }d |   yw)z    N )r   ls     r   r   z,generate_stubs_for_module.<locals>.<genexpr>   s     +U1d1#J+Us   z
    """z    ...c                "    t        | t              S r-   )r   property)os    r   rK   z+generate_stubs_for_module.<locals>.<lambda>   s    
1h@W r)   z	@propertyz@property.setterz@property.deleter)rJ   docmethodsz.pyi),pathlibPathcwdresolveis_fileparentis_dir
ValueErrorrglobr   
startswithwith_suffixrelative_tor!   parts	importlibimport_moduleFUTURE_IMPORTSr   r4   
getmembersisclasslistfilterlengetwarningswarngetsourcefiler0   r(   getdoc
splitlines
isfunctionr   generate_method_stubfgetfsetfdelCLASS_TEMPLATEformatr   fromkeysHEADER)!path_argr[   	candidateabs_pathsearch_rootrA   py_filerelmodule_namer   new_module_importslinesclassesclsmatching_registered_classesmatchedasync_classsource_file	orig_pathr%   raw_docrW   rX   orig_methods	meth_namemethodorig_properties	prop_namepropstubunique_importsrB   rJ   s!                                   @r   generate_stubs_for_moduler   Q   s   
,,



$
$
&CX&Ii((*Hoo		H<'IJKK*,J $$V, Z0<<""7+!!"%11#6hhsyy)((5
  $//H D	MHcEICWMF' ./!3+Fq+IG!++k2K"5hZ?Z[   "//<K"5k6J6J5KKfg  [199;I%i0G!3g!= nnS)/RG$))+U@R@R@T+U"UUXcc   G #--c73E3EFL%1 P!	63IvvNOP &006WXO#2 	499NN#7	499fVa#bc99NN,Y		6K]^ 99NN,Y		6K^_ "((!( ) D
 LLID	L k223EFG1.151&&v.#yy/
8uZ0x r)   c                (	   t        j                  |      }g }d}d}|j                  j                         D ]/  }|j                  t         j
                  j                  k(  s+|dz  }1 d}	|j                  j                         D ]^  }|j                  dk(  rd}
|j                  t         j                  urd|j                  }
|j                  t         j
                  j                  k(  rs|j                  rH|j                  t         j                  ur,|j                  d|j                   d|j                          |j                  d|j                          |j                  t         j
                  j                  k(  ru|j                  rI|j                  t         j                  ur-|j                  d	|j                   d|j                          W|j                  d	|j                          w|j                  t         j
                  j                  k(  r|s|j                  d       d
}|j                  rK|j                  t         j                  ur/|j                  d|j                   d|j                   |
        
|j                  d|j                   |
        ,|j                  t         j
                  j                  k(  r|j                  rJ|j                  t         j                  ur.|j                  d|j                   d|j                   |
        n |j                  d|j                   |
        |	dz  }	|	|k(  s|j                  d       |j                  rK|j                  t         j                  ur/|j                  d|j                   d|j                   |
        ?|j                  d|j                   |
        a dj                  |      }|j                   t         j                  urd|j                    nd}t        j"                  |      xs d}|r9|j%                         r)|j'                  dd      j'                  dd      }d| d}nd}t(        j+                  || |||      S )NFr   rL   selfr   z = z, *z: z, **Tr   z, /z -> z"""z\"\"\"rP   z	
        z        """
        z
        """
)	decoratorr   paramsret_anndocstring_section)r4   	signature
parametersvalueskind	ParameterPOSITIONAL_ONLYr   defaultr5   VAR_POSITIONAL
annotationr   VAR_KEYWORDKEYWORD_ONLYr!   return_annotationrr   stripreplaceMETHOD_TEMPLATErz   )r   fr   r   sigr   has_keyword_onlypositional_only_countparamparam_countr   
params_txtret_txtraw_mdocmeth_docr   s                   r   ru   ru      s   


A
C F &&( '::**:::!Q&!'
 K&&( 1:::==.EMM,-G ::**999E$4$4GNN$JEJJ<r%2B2B1CDEEJJ<01ZZ7,,888E$4$4GNN$JUZZL53C3C2DEFUZZL12ZZ7,,999#e$#' E$4$4GNN$J5::,b1A1A0B7)LM5::,wi89ZZ7,,<<<E$4$4GNN$J5::,b1A1A0B7)LM5::,wi89 1K33e$ E$4$4GNN$J5::,b1A1A0B7)LM5::,wi89c1:f J 140E0EW^^0[S**+,acG ~~a &BHHNN$##E;7??lS3H:_M!!+ "  r)   __main__rN   z/Usage: gen_pyi.py <path/to/module-or-directory>rL   )r"   zpathlib.Pathreturnz	list[str])rA   dict[pathlib.Path, str])r}   zstr | pathlib.Pathr   r   )r   )r   r   r   r   r   r   r   r   )
__future__r   r   rf   r4   rY   sysro   collectionsr   typingr   "sift_client._internal.sync_wrapperr   r   rh   r|   ry   r   r(   r.   rD   r   ru   r0   rm   argvr?   exitstubsrR   r)   r   <module>r      s    " 
    
  #  P5
,3 %k\Up z
388}?@%chhqk2EU r)   