o
    8Va>                     @   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   8/usr/lib/python3/dist-packages/sympy/polys/polyconfig.pyusing   s   
r   Nc                 C   s,   |   } |dur|t| < dS 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   sj   ddl m}  t D ](\}}| d| }|dur.zt|t|< W q
 ty-   |t|< Y q
w |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   r   )	__doc__
contextlibr   r   r   r   r   r   r   r   r   r   r   <module>   s,    

	

