3 �f� � @ s� d dl Z d dlZd dlmZ dZdZdZdZG dd� d�Zd Z d Z dZdZd Z dZedddddd�Ze ee e ee� d�eeee eed�iZdS )� N)� SoSOptionsz/etc/sos/presets.d�desc�note�argsc @ sZ e Zd ZdZdZdZdZe� ZdZ dd� Z dd� Zddde� fd d �Zdd� Z d d� ZdS )�PresetDefaultsa� Preset command line defaults to allow for quick reference to sets of commonly used options :param name: The name of the new preset :type name: ``str`` :param desc: A description for the new preset :type desc: ``str`` :param note: Note for the new preset :type note: ``str`` :param opts: Options set for the new preset :type opts: ``SoSOptions`` NTc C s d| j | j| jt| j�f S )zeReturn a human readable string representation of this ``PresetDefaults`` object. z!name=%s desc=%s note=%s opts=(%s))�namer r �str�opts)�self� r �/usr/lib/python3.6/__init__.py�__str__4 s zPresetDefaults.__str__c C s d| j | j| jt| j�f S )zgReturn a machine readable string representation of this ``PresetDefaults`` object. z6PresetDefaults(name='%s' desc='%s' note='%s' opts=(%s))r r r �reprr )r r r r �__repr__; s zPresetDefaults.__repr__� c C s || _ || _|| _|| _dS )z�Initialise a new ``PresetDefaults`` object with the specified arguments. :returns: The newly initialised ``PresetDefaults`` N)r r r r )r r r r r r r r �__init__B s zPresetDefaults.__init__c C s~ | j rtd��| jj� }| jt| jt| jt |ii}t jj|�sLt j |dd� tt jj|| j�d��}tj||� W dQ R X dS )z�Write this preset to disk in JSON notation. :param presets_path: the directory where the preset will be written :type presets_path: ``str`` zCannot write built-in preseti� )�mode�wN)�builtin� TypeErrorr �dictr �DESCr �NOTEr �OPTS�os�path�exists�makedirs�open�join�json�dump)r �presets_pathZodictZpdictZpfiler r r �writeM s zPresetDefaults.writec C s t jt jj|| j�� dS )z�Delete a preset from disk :param presets_path: the directory where the preset is saved :type presets_path: ``str`` N)r �unlinkr r r )r r"