관리-도구
편집 파일: base.cpython-36.opt-1.pyc
3 �<�e�W � @ sl d dl Z d dljZd dlZd dlZd dlZd dlmZ d dl Z d dl mZmZ ej j� ZG dd� de�ZdS )� N)�commands)�Popen�PIPEc @ s& e Zd ZdZdd� Zdd� Zdd� Zedd � �Ze d d� �Z e dd � �Ze dd� �Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zejfd2d3�Z d4d5� Z!d6d7� Z"d8d9� Z#ejfd:d;�Z$d<d=� Z%d>d?� Z&ejfd@dA�Z'dBdC� Z(dDdE� Z)dFdG� Z*dHdI� Z+dJdK� Z,dLdM� Z-d|dOdP�Z.d}dQdR�Z/d~dSdT�Z0ddUdV�Z1dWdX� Z2dYdZ� Z3d[d\� Z4d]d^� Z5d_d`� Z6d�dbdc�Z7d�ddde�Z8dfdg� Z9dhdi� Z:djdk� Z;d�dldm�Z<d�dndo�Z=dpdq� Z>drds� Z?dtdu� Z@d�dvdw�ZAd�dxdy�ZBdzd{� ZCdNS )��Plugina Base class for all plugins. Plugins change various system settings in order to get desired performance or power saving. Plugins use Monitor objects to get information from the running system. Intentionally a lot of logic is included in the plugin to increase plugin flexibility. c C sn |j | jj�| _|| _|| _|| _|| _|| _t j � | _| j� || _ || _d| _d| _| j� | _t� | _dS )zPlugin constructor.FN)�create� __class__�__name__�_storageZ_monitors_repositoryZ_hardware_inventory�_device_matcher�_device_matcher_udev�_instance_factory�collections�OrderedDict� _instances�_init_commands�_global_cfg� _variables�_has_dynamic_options�_devices_inited�#_get_config_options_used_by_dynamic�_options_used_by_dynamicr �_cmd) �selfZmonitors_repositoryZstorage_factoryZhardware_inventoryZdevice_matcherZdevice_matcher_udevZinstance_factoryZ global_cfg� variables� r �/usr/lib/python3.6/base.py�__init__ s zPlugin.__init__c C s | j � d S )N)�destroy_instances)r r r r �cleanup, s zPlugin.cleanupc C s | j s| j� d| _ d S )NT)r � _init_devices)r r r r �init_devices/ s zPlugin.init_devicesc C s | j jjd�d jdd�d S )N�.� �_���)r � __module__�split)r r r r �name4 s zPlugin.namec C s i S )z-Default configuration options for the plugin.r )r r r r �_get_config_options<