HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/gi/overrides/__pycache__/__init__.cpython-38.pyc
U

��	^.1�@s�ddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZeee�ZiZGdd�dej�ZGd	d
�d
e�Zdd�Zd
d�ZeZdd�Zdd�Ze�iiedfdd�Zddd�ZdS)�N)�
get_loader)�PyGIDeprecationWarning)�CallableInfo)�	TYPE_NONE�TYPE_INVALID)�extend_pathcs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�OverridesProxyModulez7Wraps a introspection module and contains all overridescstt|��|j�||_dS�N)�superr�__init__�__name__�_introspection_module)�self�introspection_module��	__class__��7/usr/lib/python3/dist-packages/gi/overrides/__init__.pyrs
�zOverridesProxyModule.__init__cCst|j|�Sr	)�getattrr
)r�namerrr�__getattr__sz OverridesProxyModule.__getattr__cCs6tt|j��}|�|j���|�t|j��t|�Sr	)�set�dirr�update�__dict__�keysr
�sorted)r�resultrrr�__dir__"szOverridesProxyModule.__dir__cCsdt|�j|jfS)Nz<%s %r>)�typerr
)rrrr�__repr__(szOverridesProxyModule.__repr__)	r�
__module__�__qualname__�__doc__rrrr �
__classcell__rrrrrs
rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�_DeprecatedAttributez�A deprecation descriptor for OverridesProxyModule subclasses.

    Emits a PyGIDeprecationWarning on every access and tries to act as a
    normal instance attribute (can be replaced and deleted).
    cCs$||_||_td|||f�|_dS)Nz#%s.%s is deprecated; use %s instead)�_attr�_valuer�_warning)r�	namespace�attr�value�replacementrrrr3s��z_DeprecatedAttribute.__init__cCs(|dkrt|j��tj|jdd�|jS)N���
stacklevel)�AttributeErrorr&�warnings�warnr(r')r�instance�ownerrrr�__get__:s
z_DeprecatedAttribute.__get__cCs$|j}tt|�|�t|||�dSr	)r&�delattrr�setattr)rr3r+r*rrr�__set__@sz_DeprecatedAttribute.__set__cCstt|�|j�dSr	)r6rr&)rr3rrr�
__delete__Fsz_DeprecatedAttribute.__delete__N)rr!r"r#rr5r8r9rrrrr%,s
r%c
Cs�|j�dd�d}d|}|tjk}tj�|�}t|dtfi�}||�}|tj|<ddlm}t|d�snt	�|||<zLd	|}zt
|�}	Wntk
r�d
}	YnX|	d
kr�|W�St�
|�}
W5||=tj|=|r�|tj|<X||_g}t|
d�r�|
j}|D]B}zt|
|�}
Wn ttfk
�r2Y�qYnXt|||
��qt�|g�D]`\}}zt||�}Wn"tk
�r�t	d|��YnXt||�t||||�}t|||��qP|S)
z�Loads overrides for an introspection module.

    Either returns the same module again in case there are no overrides or a
    proxy module including overrides. Doesn't cache the result.
    �.�����gi.repository.ZProxyModuler-)�modulesr
z
gi.overrides.N�__all__z1%s was set deprecated but wasn't added to __all__)r�rsplit�sysr>�getrr�importer�hasattr�AssertionErrorrr0�	importlib�
import_moduleZ_overrides_moduler?r�	TypeErrorr7�_deprecated_attrs�popr6r%)rr)Z
module_keyZhas_oldZ
old_moduleZ
proxy_type�proxyr>Zoverride_package_nameZoverride_loaderZoverride_modZoverride_all�var�itemr*r,r+�deprecated_attrrrr�load_overridesKsb



�

�rOcst|t�r>|}|j�dd�d}tjd|��fdd�}|St|tj�rXtd|��n�zt	|d�}Wn"t
k
r�td	|j��YnX|j�d
�s�t
d||jf��|��}|tks�t�|tkr�||_|j�dd�d}tjd|�t�|j|�|SdS)
aDecorator for registering an override.

    Other than objects added to __all__, these can get referenced in the same
    override module via the gi.repository module (get_parent_for_object() does
    for example), so they have to be added to the module immediately.
    r:r;r<r=cst�|j|�|Sr	)r7r)�func��modulerr�wrapper�szoverride.<locals>.wrapperz"func must be a gi function, got %sZ__info__zKCan not override a type %s, which is not in a gobject introspection typelibzgi.overrideszUYou have tried override outside of the overrides module. This is not allowed (%s, %s)N)�
isinstancerr!r@rAr>�types�FunctionTyperHrr0r�
startswith�KeyErrorZ
get_g_typerrErZpytyper7)Ztype_rPr)rS�infoZg_typerrQr�override�s<
��
��rZcst�����fdd��}|S)z7Decorator for marking methods and classes as deprecatedcs$tjd�j�ftdd��||�S)Nz %s is deprecated; use %s insteadr-r.)r1r2rr)�args�kwargs��fnr,rr�wrapped�s
�zdeprecated.<locals>.wrapped��	functools�wraps)r^r,r_rr]r�
deprecated�srccCst�|g��||f�dS)a:Marks a module level attribute as deprecated. Accessing it will emit
    a PyGIDeprecationWarning warning.

    e.g. for ``deprecated_attr("GObject", "STATUS_FOO", "GLib.Status.FOO")``
    accessing GObject.STATUS_FOO will emit:

        "GObject.STATUS_FOO is deprecated; use GLib.Status.FOO instead"

    :param str namespace:
        The namespace of the override this is called in.
    :param str namespace:
        The attribute name (which gets added to __all__).
    :param str replacement:
        The replacement text which will be included in the warning.
    N)rI�
setdefault�append)r)r*r,rrrrN�srNr-cs�������fdd�}|S)aWrapper for deprecating GObject based __init__ methods which specify
    defaults already available or non-standard defaults.

    :param callable super_init_func:
        Initializer to wrap.
    :param list arg_names:
        Ordered argument name list.
    :param list ignore:
        List of argument names to ignore when calling the wrapped function.
        This is useful for function which take a non-standard keyword that is munged elsewhere.
    :param dict deprecated_aliases:
        Dictionary mapping a keyword alias to the actual g_object_newv keyword.
    :param dict deprecated_defaults:
        Dictionary of non-standard defaults that will be used when the
        keyword is not explicitly passed.
    :param Exception category:
        Exception category of the error.
    :param int stacklevel:
        Stack level for the deprecation passed on to warnings.warn
    :returns: Wrapped version of ``super_init_func`` which gives a deprecation
        warning when non-keyword args or aliases are used.
    :rtype: callable
    c	sN|r:tjdd��dt|�����d�tt�|��}ni}|�|�g}���D](\}}||krT|�|�||<|�	|�qT|r�tjdd��fdd�t
|�D��d�t
|��f��d�g}���D]&\}}||krȈ|||<|�	|�q�|�r"tjdd��fd	d�t
|�D����d��D]}||k�r&|�|��q&�|f|�S)
z�Initializer for a GObject based classes with support for property
        sets through the use of explicit keyword arguments.
        z�Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "%s" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsz, Nr.z�The keyword(s) "%s" have been deprecated in favor of "%s" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}�|VqdSr	r��.0�k)�deprecated_aliasesrr�	<genexpr>(sz4deprecated_init.<locals>.new_init.<locals>.<genexpr>z�Initializer is relying on deprecated non-standard defaults. Please update to explicitly use: %s See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsc3s|]}d|�|fVqdS)z%s=%sNrrf)�deprecated_defaultsrrrj7s)r1r2�join�len�dict�zipr�itemsrJrer)	rr[r\Z
new_kwargsZaliases_used�key�aliasZ
defaults_usedr+��	arg_names�categoryrirk�ignorer/�super_init_funcrr�new_initsP��
�����
z!deprecated_init.<locals>.new_initr)rwrtrvrirkrur/rxrrsr�deprecated_init�s3rycs t�������fdd��}|S)aTranslate method's return value for stripping off success flag.

    There are a lot of methods which return a "success" boolean and have
    several out arguments. Translate such a method to return the out arguments
    on success and None on failure.
    csL�||�}|dr4t|�dkr&|dS|dd�Sn�rD��p@d���SdS)Nrr-r;zcall failed)rm)r[r\Zret��exc_str�exc_type�fail_ret�methodrrr_Ks
z%strip_boolean_result.<locals>.wrappedr`)r~r|r{r}r_rrzr�strip_boolean_resultDsr)NNN)rarUr1rFrA�pkgutilrZgirZgi._girZ
gi._constantsrrr�__path__rrI�
ModuleTyper�objectr%rOrZZoverridefuncrcrN�tupleryrrrrr�<module>s2
V-
�
T