
    Ed                     Z    d Z ddlmZ ddlmZ ddlmZ e G d de                      ZdS )z2Implementation of :class:`CompositeDomain` class.     )Domain)GeneratorsError)publicc                   8    e Zd ZdZdZdgdz  \  ZZZZd Z	d Z
dS )CompositeDomainz5Base class for composite domains, e.g. ZZ[x], ZZ(X). TN   c                     t          | j                  t          |          z  s)|                     | j        | j        |z   | j                  S t          d| j        d|          )z%Inject generators into this domain.  zcommon generators in z and )setsymbols	__class__domainorderr   )selfr   s     Clib/python3.11/site-packages/sympy/polys/domains/compositedomain.pyinjectzCompositeDomain.inject   s`    DL!!CLL0 	^>>$+t|g/EtzRRR!/dlllT[T["\]]]    c                     t          |          t          fd| j        D                       } | j        j        | }|s|S |                     ||| j                  S )z"Drop generators from this domain. c              3   $   K   | ]
}|v|V  d S )N ).0ssymsets     r   	<genexpr>z'CompositeDomain.drop.<locals>.<genexpr>   s,      CCa1F?CCCCCCCr   )r
   tupler   r   dropr   r   )r   r   newsymsr   r   s       @r   r   zCompositeDomain.drop   sh    WCCCC4<CCCCC!!7+ 	?M>>&'4:>>>r   )__name__
__module____qualname____doc__is_Compositegensngensr   r   r   r   r   r   r   r   r   	   sT        ??L$(6!8 D%&^ ^ ^? ? ? ? ?r   r   N)r    sympy.polys.domains.domainr   sympy.polys.polyerrorsr   sympy.utilitiesr   r   r   r   r   <module>r'      s    8 8 . - - - - - 2 2 2 2 2 2 " " " " " "? ? ? ? ?f ? ? ? ? ?r   