� !A?hn)���dZddlmZmZmZmZmZmZmZm Z m Z m Z  ddlm Z n #e $rdZ YnwxYwddlmZmZmZmZddlmZddlmZddlmZddlZddlZddlZddlZddlZddlZejd ed � ��dZd Z d Z!d Z"dZ#dZ$dZ%dZ&dZ'dZ(d�Z)d�Z*d�Z+d*d�Z,d�Z-d�Z.Gd�d��Z/Gd�d��Z0Gd�de0ej1��Z2d*d �Z3Gd!�d"e0e��Z4d*d#�Z5d$�Z6d%�Z7d*d&�Z8d'�Z9d(�Z:e rd*d)�Z;dSdZ;dS)+z�This module provides the components needed to build your own __import__ function. Undocumented functions are obsolete. In most cases it is preferred you consider using the importlib module's functionality over this module. �) � lock_held� acquire_lock� release_lock�get_frozen_object�is_frozen_package� init_frozen� is_builtin� is_frozen�_fix_co_filename�_frozen_module_names)�create_dynamicN)�_ERR_MSG�_exec�_load�_builtin_from_name)�SourcelessFileLoader)� machinery)�utilz�the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses�)� stacklevel�������� c�*�tj|��S)z_**DEPRECATED** Create a new module. The module is not entered into sys.modules. )�types� ModuleType��names �0/opt/alt/python-internal/lib64/python3.11/imp.py� new_moduler%1s�� � �D� !� !�!�c��tjS)z@**DEPRECATED** Return the magic number for .pyc files. )r� MAGIC_NUMBER�r&r$� get_magicr*<s �� � �r&c�$�tjjS)z$Return the magic tag for .pyc files.)�sys�implementation� cache_tagr)r&r$�get_tagr/Ds�� � � '�'r&c��tj��5tjd��tj||��cddd��S#1swxYwYdS)a�**DEPRECATED** Given the path to a .py file, return the path to its .pyc file. The .py file does not need to exist; this simply returns the path to the .pyc file calculated as if the .py file were imported. If debug_override is not None, then it must be a boolean and is used in place of sys.flags.optimize. If sys.implementation.cache_tag is None then NotImplementedError is raised. �ignoreN)�warnings�catch_warnings� simplefilterr�cache_from_source)�path�debug_overrides r$r5r5Is��� � � "� "�<�<���h�'�'�'��%�d�N�;�;�<�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<�<�z get_suffixes..ls��O�O�O�Q�1�d�K�(�O�O�Or&c�"�g|] }|dtf�� S)�r)� PY_SOURCErAs r$rDz get_suffixes..ms�� E� E� E�a�q�#�y�!� E� E� Er&c�"�g|] }|dtf�� Sr>)� PY_COMPILEDrAs r$rDz get_suffixes..ns��L�L�L�1��D�+�&�L�L�Lr&)r�EXTENSION_SUFFIXES�SOURCE_SUFFIXES�BYTECODE_SUFFIXES)� extensions�source�bytecodes r$� get_suffixesrPjsT��O�O�)�2N�O�O�O�J� E� E�9�+D� E� E� E�F�L�L� �0K�L�L�L�H� �� �� )�)r&c��eZdZdZd�Zd�ZdS)� NullImporterz-**DEPRECATED** Null import object. c��|dkrtdd����tj�|��rtd|����dS)N�zempty pathnamer:zexisting directory)� ImportError�osr6�isdir)�selfr6s r$�__init__zNullImporter.__init__{sS�� �2�:�:��.�R�8�8�8� 8� �W�]�]�4� � � ?��2��>�>�>� >� ?� ?r&c��dS)zAlways returns None.Nr))rX�fullnames r$� find_modulezNullImporter.find_module�s���tr&N)�__name__� __module__� __qualname__�__doc__rYr\r)r&r$rRrRss<�������� ?�?�?� ����r&rRc�.��eZdZdZd�fd� Z�fd�Z�xZS)�_HackedGetDatazMCompatibility support for 'file' arguments of various load_*() functions.Nc�Z��t���||��||_dS�N)�superrY�file)rXr[r6rf� __class__s �r$rYz_HackedGetData.__init__�s(��� ������4�(�(�(��� � � r&c�z��|jr�||jkr�|jjs$|j}d|jvr|���|jjrt |jd��x|_}|5|���cddd��S#1swxYwYdSt���|��S)z;Gross hack to contort loader to deal w/ load_*()'s bad API.�br?N) rfr6�closed�mode�close�open�readre�get_data)rXr6rfrgs �r$roz_HackedGetData.get_data�s���� �9� *����*�*��9�#� !��y���d�i�'�'��J�J�L�L�L��y�� 9�#'�� �4�#8�#8�8�� �D�� #� #��y�y�{�{� #� #� #� #� #� #� #� #� #� #� #� #���� #� #� #� #� #� #��7�7�#�#�D�)�)� )s�.B�B�Brd)r]r^r_r`rYro� __classcell__)rgs@r$rbrb�s`���������������*�*�*�*�*�*�*�*�*r&rbc��eZdZdZdS)�_LoadSourceCompatibilityz5Compatibility support for implementing load_source().N�r]r^r_r`r)r&r$rrrr�s������?�?�?�?r&rrc�(�t|||��}tj|||���}|tjvr!t |tj|��}nt |��}tj||��|_ |j |j _ |S)N��loader) rrr�spec_from_file_locationr,�modulesrrr�SourceFileLoader� __loader__�__spec__rv�r#�pathnamerfrv�spec�modules r$� load_sourcer��s��� %�d�H�d� ;� ;�F� � '��h�v� F� F� F�D� �s�{����t�S�[��.�/�/����t����"�2�4��B�B�F��#�.�F�O�� �Mr&c��eZdZdZdS)�_LoadCompiledCompatibilityz7Compatibility support for implementing load_compiled().Nrsr)r&r$r�r��s������A�A�A�Ar&r�c��t|||��}tj|||���}|tjvr!t |tj|��}nt |��}t||��|_|j|j _ |S)r<ru) r�rrwr,rxrrrrzr{rvr|s r$� load_compiledr��s��� '��h�� =� =�F� � '��h�v� F� F� F�D� �s�{����t�S�[��.�/�/����t����-�T�8�<�<�F��#�.�F�O�� �Mr&c��tj�|��r�tjdd�tjdd�z}|D]H}tj�|d|z��}tj�|��r|}n#�Itd� |�����tj ||g���}|tj vr t|tj |��St|��S)r<NrYz{!r} is not a package)�submodule_search_locations)rVr6rWrrKrL�join�exists� ValueError�formatrrwr,rxrr)r#r6rM� extension� init_pathr~s r$� load_packager��s��� �w�}�}�T��� C��/����2��1�!�!�!�4�5� �#� C� C�I��� � �T�:� �+A�B�B�I��w�~�~�i�(�(� � ���� ��4�;�;�D�A�A�B�B� B� � '��d�CE� G� G� G�D� �s�{����T�3�;�t�,�-�-�-��T�{�{�r&c��|\}}}|r;|�d��rd|vr"td�|�����|�4|tthvr$d�|��}t|���|tkrt |||��S|tkrt |||��S|tkrUt�N|�;t|d��5}t|||��cddd��S#1swxYwYdSt|||��S|tkrt||��S|tkrt|��S|tkrt|��Sd�||��}t!||����) z�**DEPRECATED** Load a module, given information returned by find_module(). The module name must include the full package name, if any. rF�+zinvalid file open mode {!r}Nz.file object required for import (type code {})r?z*Don't know how to import {} (type code {})r")� startswithr�r�rGrIr�r�r@� load_dynamicrm� PKG_DIRECTORYr�� C_BUILTIN� init_builtin� PY_FROZENrrU) r#rf�filename�details�suffixrk�type_�msg� opened_files r$� load_moduler��s���"��F�D�%� �*�T�_�_�S�)�)�*�S�D�[�[��6�=�=�d�C�C�D�D�D� ��%�I�{�#;�;�;�>�E�E�e�L�L����o�o�� �)� � ��4��4�0�0�0� �+� � ��T�8�T�2�2�2� �+� � �,�":� �<��h��%�%� A��#�D�(�K�@�@� A� A� A� A� A� A� A� A� A� A� A� A���� A� A� A� A� A� A� ��h��5�5� 5� �-� � ��D�(�+�+�+� �)� � ��D�!�!�!� �)� � ��4� � � �;�B�B�4��O�O���#�D�)�)�)�)s�C4�4C8�;C8c��t|t��s/td�t |�������t|t d��t f��s/t d�t |�������|�Dt|��r ddddtffSt|��r ddddtffStj }|D]�}tj �||��}dtjdfD]W}d|z}tj �||��}tj �|��rd|ddt$ffccS�Xt'��D]L\}}}||z} tj �|| ��}tj �|��rn�M��n#t)t+j|��|����d} d |vrGt-|d ��5} t/j| j��d} ddd��n #1swxYwYt-||| � ��} | ||||ffS) a,**DEPRECATED** Search for a module. If path is omitted or None, search for a built-in, frozen or special module and continue search in sys.path. The module name cannot contain '.'; to search for a submodule of a package, pass the submodule name and the package's __path__. z'name' must be a str, not {}Nz%'path' must be None or a list, not {}rTz.pyrrYr"rir?)�encoding)� isinstance�str� TypeErrorr��type�list� RuntimeErrorr r�r r�r,r6rVr�rrL�isfiler�rPrUrrm�tokenize�detect_encoding�readline) r#r6�entry�package_directoryr��package_file_name� file_pathrkr�� file_namer�rfs r$r\r\�s��� �d�C� � �8��6�=�=�d�4�j�j�I�I�J�J�J� ��t�D�z�z�4�0� 1� 1�8��$�$*�F�4��:�:�$6�$6�8�8� 8� �|� �d� � � ����B� �2�2� 2� �t�_�_� ����B� �2�2� 2��8�D��<�<���G�L�L���5�5���i�9�!�<�=� H� H�F� *�V� 3� ��� � �%6�8I�J�J�I��w�~�~�i�(�(� H��.��R��0G�G�G�G�G�G�G� H�#/�>�>� � � �F�D�%��v� �I��� � �U�I�6�6�I��w�~�~�i�(�(� ��� � � ���(�/�$�/�/�d�;�;�;�;��H� �$��� �)�T� "� "� B�d��/�� �>�>�q�A�H� B� B� B� B� B� B� B� B� B� B� B���� B� B� B� B� � �4�(� 3� 3� 3�D� ��V�T�5�1� 1�1s� H1�1H5�8H5c�*�tj|��S)zw**DEPRECATED** Reload the module and return it. The module must have been successfully imported before. )� importlib�reload)rs r$r�r�3s�� � �F� #� #�#r&c�D� t|��S#t$rYdSwxYw)zl**DEPRECATED** Load and return a built-in module by name, or None is such module doesn't exist N)rrUr"s r$r�r�>s7�� �!�$�'�'�'�� �����t�t����s �� �c��ddl}|j�||��}|j�|||���}t |��S)z:**DEPRECATED** Load an extension module. rN)r#rv�origin)�importlib.machineryr�ExtensionFileLoader� ModuleSpecr)r#r6rfr�rvr~s r$r�r�KsZ�� #�"�"�"��$�8�8��t�D�D���"�-�-��f�T�.�3�3���T�{�{�r&rd)r�s����:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:��#�#�#�#�#�#�#�������N�N�N�����L�K�K�K�K�K�K�K�K�K�K�K�>�>�>�>�>�>����������������� � � � � � � � ����� � � � ����� �� �D�!�Q�0�0�0�0� � � � �� �� �� �� � � � � ��� ��"�"�"����(�(�(� <�<�<�<�& (� (� (�*�*�*���������&*�*�*�*�*�*�*�*�6@�@�@�@�@�~�y�/I�@�@�@� � � � �B�B�B�B�B��1E�B�B�B� � � � ����( *� *� *�F12�12�12�12�h$�$�$� � � ��� � � � � � ��L�L�Ls �#�-�-