U
    c;                     @   sN   d Z dadd Ze Zi ZdadddZdd Zg Zd	d
 Z	dd Z
e  dS )z)module that aggregates config information)_resetregister_resetc                  C   s  ddl m}  ddl}i }| d| | }z| d| || W n tk
rV   Y nX | }z| d| || W n tk
r   | }znz|j|jdd}W n t	tfk
r   d}Y nX |rt
|d	}| | | W 5 Q R X || W n   Y nX Y nX |S )
z
    create & return defaults for all reportlab settings from
    reportlab.rl_settings.py
    reportlab.local_rl_settings.py
    reportlab_settings.py or ~/.reportlab_settings

    latter values override earlier
        )rl_execNz#from reportlab.rl_settings import *z)from reportlab.local_rl_settings import *z from reportlab_settings import *~z.reportlab_settingsrb)reportlab.lib.utilsr   oscopyupdateImportErrorpath
expanduserjoinKeyErroropenread)r   r   	_DEFAULTSZ
_overridesfnf r   7/tmp/pip-unpacked-wheel-1d6i77bl/reportlab/rl_config.py_defaults_init   s8    	



r   Nc                 C   s>   ddl m} d|  }||kr$|| }|r0||}|t | < dS )z-set a module level value from environ/defaultr   )environZRL_N)r   r   globals)namevalueconvr   Zenamer   r   r   _setOpt3   s     r   c                     s   ddl  ddl} | j d addlm} ddlm} t	i krt
| ddatdkrlG dd dat  | _att}t D ],\}}| t	|< t |< |tkr||| q|t|addl} j j|j    dd t jd	d
d}t	D ]}|drg }t	| D ]h}	|	| d j}
d|
krlz j|
}
W n  t t!fk
rj   Y qY nX ||
r||
 qt"| j#$| fdd tt%|t | t |< qt	| }t&|t't(frt)|}n0|dkr|fdd}n|dkr
dd }nd}t"||| qdS )zThis function allows easy resetting to the global defaults
    If the environment contains 'RL_xxx' then we use the value
    else we use the given defaultr   N)	pagesizes)rl_isdir_rl_config__unset_c                   @   s   e Zd ZdS )_unset_N)__name__
__module____qualname__r   r   r   r   r!   I   s    r!   :XDG_DATA_HOMEz~/.local/share)ZREPORTLAB_DIRZCWDZdisksys_versionr&   Z
SearchPath/r   c                    s   |   jS N)splitpathsep)xr   r   r   <lambda>g       z_startUp.<locals>.<lambda>ZdefaultPageSizec                 S   s
   t || S r)   )getattr)vMr   r   r   r.   n   r/   )ZtrustedHostsZtrustedSchemesc                 S   s8   | d krd S t | tr4dd dd | dD D S | S )Nc                 S   s   g | ]}|r|qS r   r   ).0yr   r   r   
<listcomp>p   s      z._startUp.<locals>.<lambda>.<locals>.<listcomp>c                 S   s   g | ]}|  qS r   )stripr3   r,   r   r   r   r5   p   s     ,)
isinstancestrr*   )r1   r   r   r   r.   p   r/   )*r   sysversionr*   r'   Zreportlab.libr   r   r   _SAVEDr0   r!   r    list__all__r   itemsr   appendtuple	reportlabr   abspathdirname__file__getcwdr   getendswithreplacesepr   r   r   r   r+   r   filterr9   intfloattype)r;   r   r   Akr1   rC   DPpdr   r   r-   r   _startUp<   sZ    


 



rV   c                    sN   dd t D t dd<  fddt D }|r0dS ddlm} t |  dS )z4register a function to be called by rl_config._resetc                 S   s   g | ]}| r|qS r   r   r7   r   r   r   r5   w   s      z"register_reset.<locals>.<listcomp>Nc                    s   g | ]}|  kr|qS r   r   r7   funcr   r   r5   x   s     
 r   )ref)_registered_resetsweakrefrY   rA   )rX   LrY   r   rW   r   r   u   s     r   c                  C   s8   t   tdd D ] } |  }|r(|  qt|  qdS )z&attempt to reset reportlab and friendsN)rV   rZ   remove)r   cr   r   r   r   }   s    r   )N)__doc__r?   r   r   r=   r'   r   rV   rZ   r   r   r   r   r   r   <module>   s   )
	8
