ó
¡¼™\c           @  sl   d  Z  d d l m Z m Z d d l m Z d d l m Z d d l m	 Z	 e	 d e f d „  ƒ  Yƒ Z
 d S(	   s2   Implementation of :class:`CompositeDomain` class. iÿÿÿÿ(   t   print_functiont   division(   t   Domain(   t   GeneratorsError(   t   publict   CompositeDomainc           B  s6   e  Z d  Z e Z d g d \ Z Z Z Z	 d „  Z
 RS(   s5   Base class for composite domains, e.g. ZZ[x], ZZ(X). i   c         G  sV   t  |  j ƒ t  | ƒ @s9 |  j |  j |  j | |  j ƒ St d |  j | f ƒ ‚ d S(   s$   Inject generators into this domain. s   common generators in %s and %sN(   t   sett   symbolst	   __class__t   domaint   orderR   (   t   selfR   (    (    sB   lib/python2.7/site-packages/sympy/polys/domains/compositedomain.pyt   inject   s     N(   t   __name__t
   __module__t   __doc__t   Truet   is_Compositet   Nonet   genst   ngensR   R	   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/domains/compositedomain.pyR   
   s   N(   R   t
   __future__R    R   t   sympy.polys.domains.domainR   t   sympy.polys.polyerrorsR   t   sympy.utilitiesR   R   (    (    (    sB   lib/python2.7/site-packages/sympy/polys/domains/compositedomain.pyt   <module>   s   