o
    à’Ojû  ã                   @   sŒ   d Z dadd„ Zeƒ Zi Zdaddd„Zdd	lmZ e	eed
d�eedd�eedd�d�Z
ddd„Zdd„ Zg Zd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 |rŠt
|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   Ú	_DEFAULTSÚ
_overridesÚfnÚf© r   úY/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/site-packages/reportlab/rl_config.pyÚ_defaults_init   sH   	

ÿ
óÿÿúþór   Nr   c                 C   s&   ||vrt d|›d| › d|› �ƒ‚d S )Nzinvalid value z for rl_config.z
need one of )Ú
ValueError)ÚnameÚvalueÚallowedr   r   r   Ú_enumChk2   s   ÿr   r   )Úpartial)Ú	rlPyCairo)r   )Úlxml)ÚfreetypeÚbackend)ÚrenderPMBackendÚ	xmlParserÚ	textPathsc                 C   sX   ddl m} d|  }||v r|| }|r||ƒ}t | d¡}|r%|| |ƒ |tƒ | < dS )z-set a module level value from environ/defaultr   )ÚenvironÚRL_N)r   r&   Ú	_rlChecksÚgetÚglobals)r   r   ÚconvÚchkr&   Úenamer   r   r   Ú_setOpt>   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¡rÔg }t	| D ],}	|	|  dˆ j¡}
d|
v r®zˆ j |
¡}
W n t t!fy­   Y q‹w ||
ƒr·| |
¡ q‹t"|ˆ j# $|¡‡ fdd„ƒ tt%|tƒ | ƒƒtƒ |< q~t	| }t&|t't(fƒrät)|ƒ}n!|dkrï|fdd„}n|dv rødd„ }n| d¡�rdd„ }nd}t"|||ƒ q~dS )z›This 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   r2   V   ó    r2   ú:ÚXDG_DATA_HOMEz~/.local/share)ÚREPORTLAB_DIRÚCWDÚdiskÚsys_versionr8   Ú
SearchPathú/r   c                    s   |   ˆ j¡S ©N)ÚsplitÚpathsep)Úx©r   r   r   Ú<lambda>t   r6   z_startUp.<locals>.<lambda>ÚdefaultPageSizec                 S   s
   t || ƒS r?   )Úgetattr)ÚvÚMr   r   r   rD   {   s   
 )ÚtrustedHostsÚ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>}   ó    z._startUp.<locals>.<lambda>.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r   ©Ústrip©rK   rB   r   r   r   rM   }   rN   ú,)Ú
isinstanceÚstrr@   ©rG   r   r   r   rD   }   s   8 ÚGlobc                 S   s$   | rt td dd„ |  ¡ D ƒƒƒS g S )Nc                 s   s   � | ]}|  ¡ V  qd S r?   rO   )rK   Ú_r   r   r   Ú	<genexpr>   s   € z-_startUp.<locals>.<lambda>.<locals>.<genexpr>)ÚlistÚfilterr@   rU   r   r   r   rD      s   $ )*r   ÚsysÚversionr@   r<   Úreportlab.libr/   r   r0   Ú_SAVEDrF   r2   r1   rY   Ú__all__r   Úitemsr*   ÚappendÚtupleÚ	reportlabr   ÚabspathÚdirnameÚ__file__Úgetcwdr&   r)   ÚendswithÚreplaceÚsepr   r   r   r.   rA   r   rZ   rS   ÚintÚfloatÚtype)r[   r/   r0   ÚAÚkrG   rc   ÚDÚPÚpÚdr+   r   rC   r   Ú_startUpI   sd   
€ü
ÿ€


èrt   c                    sb   dd„ t D ƒt dd…< ‡ fdd„t D ƒ}|rdS ddlm}m} t  tˆ dƒr)|n|ˆ |ƒ¡ dS )z4register a function to be called by rl_config._resetc                 S   s   g | ]}|ƒ r|‘qS r   r   rQ   r   r   r   rM   †   s    z"register_reset.<locals>.<listcomp>Nc                    s   g | ]	}|ƒ ˆ u r|‘qS r   r   rQ   ©Úfuncr   r   rM   ‡   s    r   )ÚrefÚ
WeakMethodÚ__self__)Ú_registered_resetsÚweakrefrw   rx   ra   Úhasattr)rv   ÚcallbackÚLrw   rx   r   ru   r   r   „   s
   "r   c                  C   s8   t ƒ  tdd… D ]} | ƒ }|r|ƒ  q	t | ¡ q	dS )z&attempt to reset reportlab and friendsN)rt   rz   Úremove)r   Úcr   r   r   r   Œ   s   ûr   )r   )NNr?   )Ú__doc__r_   r   r   r^   r<   r   Ú	functoolsr   Údictr(   r.   rt   rz   r   r   r   r   r   r   Ú<module>   s&    )



ý
:


