o
    vh                     @   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 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   	_DEFAULTS
_overridesfnf r   Q/var/www/html/hyperkenya/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	_renderPM)r   )lxmlpyrxp)freetyper    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   r0   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rd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   r4   V       r4   :XDG_DATA_HOMEz~/.local/share)REPORTLAB_DIRCWDdisksys_versionr:   
SearchPath/r   c                    s   |   jS N)splitpathsep)xr   r   r   <lambda>t   r8   z_startUp.<locals>.<lambda>defaultPageSizec                 S   s
   t || S rA   )getattr)vMr   r   r   rF   {   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rM   rD   r   r   r   rO   }   rP   ,)
isinstancestrrB   rI   r   r   r   rF   }   s   8 Globc                 S   s$   | rt td dd |  D S g S )Nc                 s   s    | ]}|  V  qd S rA   rQ   )rM   _r   r   r   	<genexpr>   s    z-_startUp.<locals>.<lambda>.<locals>.<genexpr>)listfilterrB   rW   r   r   r   rF      s   $ )*r   sysversionrB   r>   reportlab.libr1   r   r2   _SAVEDrH   r4   r3   r[   __all__r   itemsr,   appendtuple	reportlabr   abspathdirname__file__getcwdr(   r+   endswithreplacesepr   r   r   r0   rC   r   r\   rU   intfloattype)r]   r1   r2   AkrI   re   DPpdr-   r   rE   r   _startUpI   sd   




rv   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   rS   r   r   r   rO      s    z"register_reset.<locals>.<listcomp>Nc                    s   g | ]	}|  u r|qS r   r   rS   funcr   r   rO      s    r   )ref)_registered_resetsweakrefry   rc   )rx   Lry   r   rw   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)rv   rz   remove)r   cr   r   r   r      s   r   )r   )NN)__doc__ra   r   r   r`   r>   r   	functoolsr   dictr*   r0   rv   rz   r   r   r   r   r   r   <module>   s&    )




:

