a `8a^ @ st d dl Zd dlmZ ddlmZ ddlmZ dZG dd d e Z G d d de ZG dd d e ZG dd deZ dS ) N)deepcopy ) Configuration )Source) HomeDirectoryConfigDirectoryFileBasedSourcec @ s e Zd Zdd Zdd ZdS )DirectoryModifierc C s || _ d S N)target_file)selfr r Q/home/carl/code/landscape/setoptconf-tmp/build/lib/setoptconf/source/filebased.py__init__ s zDirectoryModifier.__init__c C s t d S r NotImplementedErrorr r r r __call__ s zDirectoryModifier.__call__N)__name__ __module____qualname__r r r r r r r s r c @ s e Zd Zdd ZdS )r c C s t jt jd| jS )N~)ospath expanduserjoinr r r r r r s zHomeDirectory.__call__Nr r r r r r r r r s r c @ s e Zd Zdd ZdS )r c C s0 t dpt jt jdd}t j|| jS )NXDG_CONFIG_HOMEr z.config)r getenvr r r r )r Z config_dirr r r r s zConfigDirectory.__call__Nr r r r r r s r c s2 e Zd Zd fdd Zd ddZdddZ ZS )r NFc s t t| t|ttfr$|g}nt|ttfs:tdg | _ |D ]>}t|tr`| j | qDt|trz| j | qDtdqD|pt | _ || _d S )Nz)files must be a string or list of strings)superr r isinstance basestringr tuplelist TypeErrorfilesappendr getcwd base_pathcombine)r r&