o
    g                     @   s   d 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 ddlmZ i ZdZeh dZd	d
 Zdd Zdd Zdd Ze e e ejee dS )zAstroid hooks for the Python 2 GObject introspection bindings.

Helps with understanding everything imported from 'gi.repository'
    N)nodes)AstroidBuilder)AstroidBuildingError)AstroidManagerz^[A-Za-z_]\w*$>   __eq____ge____gt____le____lt____ne____del____len____str____bool____exit____hash____iter____next____repr__	__enter____delattr____delitem____getattr____getitem____nonzero____setattr____setitem____contains__c              	   C   s  i }i }i }i }t | D ]}|dr|tvrqtt|sqzt| |}W n	 ty/   Y qw t	|r:|||< qt
|sDt|rI|||< qt|sSt|rX|||< qt|dsrt|dsrt|dsrt|rwd||< qt|ttfr|||< qt|r|||< qd||< qd}|r|d| j d7 }t|D ]*}|d  rq|| }t|}	t|trd	t|d
d }	|| d|	 d7 }q|r|d7 }|r|d| j d7 }t|D ]}|d| d7 }|d7 }q|r|d7 }|r|d| j d7 }t|D ]}|d| d7 }|d7 }q|r|d7 }|r*|d| j d7 }t| D ]7\}}d}
t|tr>d}
|d| d|
 d7 }t|}|sRd}| D ]}|d| d 7 }qV|d7 }q0|S )z`
    Inspect the passed module recursively and build stubs for functions,
    classes, etc.
    __z<flagsz<enum z<GType r    z# z constants

z"%s"\z\\z = 
z

z functions

zdef z(*args, **kwargs):
z	    pass
z
 methods

z(self, *args, **kwargs):
z
 classes

object	Exceptionzclass (z):
zpass
z    )dir
startswith_special_methodsrematch_identifier_regetattrAttributeErrorinspectisclass
isfunction	isbuiltinismethodismethoddescriptorstrisdatadescriptor
isinstanceintcallable__name__sortedisdigitreplaceitems
issubclassr#   _gi_build_stub
splitlines)parentclasses	functions	constantsmethodsnameobjretvalstrvalbaseclassretline rM   T/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/astroid/brain/brain_gi.pyr>   H   s   









r>   c              
   C   sb  |  ds
t| d| tvr| g}g }| dkr|d n	| dkr&|d z^d}t||D ]S}zCt 5 zdd	lm	}m
} td
| td
| W n	 tyV   Y nw t| |ttj| 7 }W d    n1 snw   Y  W q/ ty   ||vr Y q/w W n ty   d  }t| < Y nw tt || }|t| < nt|  }|d u rt| d|S )Nzgi.repository.)modnamezgi.repository.GLibzgi._glibzgi.repository.GObjectzgi._gobjectr   r   )PyGIDeprecationWarningPyGIWarningignore)r&   r   _inspected_modulesappend	itertoolschainwarningscatch_warningsgirP   rQ   simplefilterr#   
__import__r>   sysmodulesImportErrorr   r   string_build)rO   modnamesoptional_modnamesmodcodemrP   rQ   astngrM   rM   rN   _import_gi_module   sP   





re   c                 C   s   t | jdkr	dS tdd | jD sdS | j}t|tjr6|jdkr%dS t|jtj	r4|jj
dkr4dS dS t|tj	rA|j
dkS dS )N   Fc                 s   s    | ]	}t |tjV  qd S )N)r5   r   Const).0argrM   rM   rN   	<genexpr>   s    z._looks_like_require_version.<locals>.<genexpr>require_versionrY   T)lenargsallfuncr5   r   	AttributeattrnameexprNamerE   )nodero   rM   rM   rN   _looks_like_require_version   s   

ru   c                 C   s@   zdd l }|| jd j| jd j W | S  ty   Y | S w )Nr      )rY   rk   rm   valuer#   )rt   rY   rM   rM   rN   _register_require_version   s   rx   )__doc__r-   rU   r(   r\   rW   astroidr   astroid.builderr   astroid.exceptionsr   astroid.managerr   rS   r*   	frozensetr'   r>   re   ru   rx   register_failed_import_hookregister_transformCallrM   rM   rM   rN   <module>   s.   b5