o
    e                     @   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y*   Y nw | }z| d| || W |S  ty   | }zFz|j|jdd}W n t	tfyb   d}Y nw |rt
|d	}| | | W d   n1 s|w   Y  || W Y |S W Y |S    Y Y |S w )
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   CD:\Projects\ConvertPro\env\Lib\site-packages\reportlab/rl_config.py_defaults_init   sH   	


r   Nc                 C   s>   ddl m} d|  }||v r|| }|r||}|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rYt
| ddatdu r6G dd dat  | _att}t D ]\}}| t	|< t |< |tvrT|| q>t|addl} j j|j    dd t jd	d
d}t	D ]}|drg }t	| D ],}	|	| d j}
d|
v rz j|
}
W n t t!fy   Y qw ||
r||
 qt"| j#$| fdd tt%|t | t |< q~t	| }t&|t't(frt)|}n|dkr|fdd}n|dv rdd }nd}t"||| q~d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       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   r%   z_startUp.<locals>.<lambda>ZdefaultPageSizec                 S   s
   t || S r*   )getattr)vMr   r   r   r/   n   s   
 )ZtrustedHostsZtrustedSchemesc                 S   s8   | d u rd S t | trdd dd | dD D S | S )Nc                 S   s   g | ]}|r|qS r   r   ).0yr   r   r   
<listcomp>p       z._startUp.<locals>.<lambda>.<locals>.<listcomp>c                 S   s   g | ]}|  qS r   )stripr3   r-   r   r   r   r5   p   r6   ,)
isinstancestrr+   )r1   r   r   r   r/   p   s   8 )*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   filterr:   intfloattype)r<   r   r   Akr1   rD   DPpdr   r   r.   r   _startUp<   s`   



rW   c                    sN   dd t D t dd<  fddt D }|rd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   r8   r   r   r   r5   w   s    z"register_reset.<locals>.<listcomp>Nc                    s   g | ]	}|  u r|qS r   r   r8   funcr   r   r5   x   s    r   )ref)_registered_resetsweakrefrZ   rB   )rY   LrZ   r   rX   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)rW   r[   remove)r   cr   r   r   r   }   s   r   r*   )__doc__r@   r   r   r>   r(   r   rW   r[   r   r   r   r   r   r   <module>   s    )
	8

