B
    [                 @   s@   d dl mZ d dlmZmZmZ G dd deZe Zee_dS )    )
deprecated)	BasicMetaRegistryall_classesc               @   sJ   e Zd ZdZg Zdd Zdd Zedddd	dd
dd Ze	dd Z
dS )ClassRegistrya2  
    Namespace for SymPy classes

    This is needed to avoid problems with cyclic imports.
    To get a SymPy class, use `C.<class_name>` e.g. `C.Rational`, `C.Add`.

    For performance reasons, this is coupled with a set `all_classes` holding
    the classes, which should not be modified directly.
    c             C   s   t | || t| d S )N)r   __setattr__r   add)selfnamecls r   >lib/python3.7/site-packages/sympy/deprecated/class_registry.pyr      s    zClassRegistry.__setattr__c             C   s4   t | |}t| | || jj kr0t| d S )N)getattrr   __delattr__	__class____dict__Z
itervaluesr   remove)r	   r
   r   r   r   r   r      s    
zClassRegistry.__delattr__z%C, including its class ClassRegistry,z1.0z'direct imports from the defining modulei$  )ZfeatureZlast_supported_versionZ
useinsteadZissueZdeprecated_since_versionc                s   t  fddtD S )Nc             3   s   | ]}|j  kV  qd S )N)__name__).0r   )r
   r   r   	<genexpr>%   s    z,ClassRegistry.__getattr__.<locals>.<genexpr>)anyr   )r	   r
   r   )r
   r   __getattr__   s    zClassRegistry.__getattr__c             C   s   t dd S )Nz#name 'C' is not defined as a Symbol)	NameError)r	   r   r   r   _sympy_'   s    zClassRegistry._sympy_N)r   
__module____qualname____doc__	__slots__r   r   r   r   propertyr   r   r   r   r   r      s   	r   N)Zsympy.core.decoratorsr   Zsympy.core.corer   r   r   r   Cr   r   r   r   <module>   s   *