ó
¡¼™\c           @  sÄ   d  Z  d d l m Z m Z d d l m Z i e d 6e d 6e d 6e d 6e d 6e d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6Z i  Z	 e d „  ƒ Z
 d d „ Z d „  Z d „  Z e ƒ  d S(   s@   Configuration utilities for polynomial manipulation algorithms. iÿÿÿÿ(   t   print_functiont   division(   t   contextmanagert   USE_COLLINS_RESULTANTt   USE_SIMPLIFY_GCDt   USE_HEU_GCDt   USE_IRREDUCIBLE_IN_FACTORt   USE_CYCLOTOMIC_FACTORt   EEZ_RESTART_IF_NEEDEDi   t   EEZ_NUMBER_OF_CONFIGSi   t   EEZ_NUMBER_OF_TRIESi   t   EEZ_MODULUS_STEPt   rabint   GF_IRRED_METHODt
   zassenhaust   GF_FACTOR_METHODt
   buchbergert   GROEBNERc          k  sT   x' |  j  ƒ  D] \ } } t | | ƒ q Wd  Vx |  j ƒ  D] } t | ƒ q< Wd  S(   N(   t   itemst   setupt   keys(   t   kwargst   kt   v(    (    s5   lib/python2.7/site-packages/sympy/polys/polyconfig.pyt   using   s
    c         C  s7   |  j  ƒ  }  | d k	 r% | t |  <n t |  t |  <d S(   s3   Assign a value to (or reset) a configuration item. N(   t   uppert   Nonet   _current_configt   _default_config(   t   keyt   value(    (    s5   lib/python2.7/site-packages/sympy/polys/polyconfig.pyR   &   s    c         C  s   t  j |  j ƒ  d ƒ S(   s1   Ask for a value of the given configuration item. N(   R   t   getR   R   (   R   (    (    s5   lib/python2.7/site-packages/sympy/polys/polyconfig.pyt   query0   s    c          C  sŒ   d d l  m }  xu t j ƒ  D]g \ } } |  d | ƒ } | d k	 rz y t | ƒ t | <Wq„ t k
 rv | t | <q„ Xq | t | <q Wd S(   s+   Initialized configuration of polys module. iÿÿÿÿ(   t   getenvt   SYMPY_N(   t   osR!   R   R   R   t   evalR   t	   NameError(   R!   R   t   defaultR   (    (    s5   lib/python2.7/site-packages/sympy/polys/polyconfig.pyt	   configure5   s    N(   t   __doc__t
   __future__R    R   t
   contextlibR   t   Falset   TrueR   R   R   R   R   R    R'   (    (    (    s5   lib/python2.7/site-packages/sympy/polys/polyconfig.pyt   <module>   s*   


		