File: //usr/local/lib/python3.9/site-packages/celery/utils/__pycache__/imports.cpython-39.pyc
a
X>h � @ s� d Z ddlZddlZddlZddlmZ ddlmZmZ zddl m
Z
W n eyf ddlm
Z
Y n0 ddl
mZ ej�d�ZdZG d d
� d
e�Zdd� Zd
d� Zedd� �Zddd�Zd dd�Zd!dd�Zdd� Zdd� Zdd� Zdd� ZdS )"z;Utilities related to importing modules and symbols by name.� N)�contextmanager)�
import_module�reload)�entry_points��symbol_by_name�MP_MAIN_FILE)
�NotAPackage�qualname�instantiater �cwd_in_path�find_module�import_from_cwd�reload_from_cwd�module_file�
gen_task_namec @ s e Zd ZdZdS )r z8Raised when importing a package, but it's not a package.N)�__name__�
__module__�__qualname__�__doc__� r r �>/usr/local/lib/python3.9/site-packages/celery/utils/imports.pyr s r c C sB t | d�st | d�r| j} t| dd�}d|vr>d�| j|f�}|S )zReturn object name.r � __class__r N�.)�hasattrr �getattr�joinr )�obj�qr r r r
s r
c O s t | �|i |��S )zNInstantiate class by name.
See Also:
:func:`symbol_by_name`.
r )�name�args�kwargsr r r r * s r c c s� zt �� } W n ty" d} Y n0 | s0dV nv| tjv rBdV ndtj�d| � z.| V W ztj�| � W q� ty| Y q�0 n&ztj�| � W n ty� Y n0 0 dS )z9Context adding the current working directory to sys.path.Nr )�os�getcwd�FileNotFoundError�sys�path�insert�remove�
ValueError)�cwdr r r r 3 s&