File: //lib/python3.9/site-packages/tuned/utils/__pycache__/class_loader.cpython-39.pyc
a
,�g � @ s4 d dl Zd dlZdgZej�� ZG dd� de�ZdS )� N�ClassLoaderc sD e Zd Zg d�Zdd� Z� fdd�Zdd� Zdd � Zd
d� Z� Z S )r )�
_namespace�_prefix�
_interfacec C s
t � �dS )z~
This method has to be implemented in child class and should
set _namespace, _prefix, and _interface member attributes.
N)�NotImplementedError��self� r �</usr/lib/python3.9/site-packages/tuned/utils/class_loader.py�_set_loader_parameters s z"ClassLoader._set_loader_parametersc sn t t| ��� d | _d | _d | _| �� t| j�tu s:J �t| j�tu sLJ �t| j�tu rft | jt
�sjJ �d S )N)�superr �__init__r r r r �type�str�
issubclass�objectr �� __class__r r
r
s zClassLoader.__init__c C s, t |�tu sJ �d| j| j|f }| �|�S )Nz%s.%s%s)r r r r �
_get_class)r �
class_name�module_namer r r
�
load_class s zClassLoader.load_classc C s� t �d| � t|�}|�d�}|�d� t|�dkrHt||�d��}q*|jD ].}t||�}t|�tu rNt || j
�rN| S qNtd| ��d S )Nzloading module %s�.r zCannot find the class %s.)�log�debug�
__import__�split�pop�len�getattr�__dict__r r r �ImportError)r r �module�path�name�clsr r r
r "