U
    L?h>                     @   sb   d Z ddlmZ ddddddddddd	d
dZi Zedd ZdddZdd Zdd Ze  dS )z@Configuration utilities for polynomial manipulation algorithms.     )contextmanagerFT         ZrabinZ
zassenhausZ
buchberger)ZUSE_COLLINS_RESULTANTZUSE_SIMPLIFY_GCDZUSE_HEU_GCDZUSE_IRREDUCIBLE_IN_FACTORZUSE_CYCLOTOMIC_FACTORZEEZ_RESTART_IF_NEEDEDZEEZ_NUMBER_OF_CONFIGSZEEZ_NUMBER_OF_TRIESZEEZ_MODULUS_STEPZGF_IRRED_METHODZGF_FACTOR_METHODZGROEBNERc                  k   s<   |   D ]\}}t|| qd V  |  D ]}t| q*d S )N)itemssetupkeys)kwargskv r   H/var/www/html/venv/lib/python3.8/site-packages/sympy/polys/polyconfig.pyusing   s
    r   Nc                 C   s*   |   } |dk	r|t| < nt|  t| < dS )z3Assign a value to (or reset) a configuration item. N)upper_current_config_default_config)keyvaluer   r   r   r   %   s    
r   c                 C   s   t |  dS )z1Ask for a value of the given configuration item. N)r   getr   )r   r   r   r   query/   s    r   c               	   C   sn   ddl m}  t D ]T\}}| d| }|dk	r`zt|t|< W qh tk
r\   |t|< Y qhX q|t|< qdS )z+Initialized configuration of polys module. r   )getenvZSYMPY_N)osr   r   r   evalr   	NameError)r   r   defaultr   r   r   r   	configure4   s    r   )N)	__doc__
contextlibr   r   r   r   r   r   r   r   r   r   r   <module>   s*   
	

