
    h                         i Z g Zd  Zy)c                    | t         v rt         j                  |       S d}t        s6ddlm} t        j                  |       ddlm} t        j                  |       t        }d}| dk(  r
ddlm} dg}n5| |v r	ddl	m} |}n(| |v r	ddl	m
} |}n| |v r	ddl	m} |}nt        d	| z        |D ]  }t        ||      t         |<    t         j                  |       S )
a  Cache mechanism for imports.

    Due to complications of circular imports mongoengine needs to do lots of
    inline imports in functions.  This is inefficient as classes are
    imported repeated throughout the mongoengine code.  This is
    compounded by some recursive functions requiring inline imports.

    :mod:`mongoengine.common` provides a single point to import all these
    classes.  Circular imports aren't an issue as it dynamically imports the
    class when first needed.  Subsequent calls to the
    :func:`~mongoengine.common._import_class` can then directly retrieve the
    class from the :data:`mongoengine.common._class_registry_cache`.
    )DocumentDynamicEmbeddedDocumentEmbeddedDocumentMapReduceDocument    )__all__)DeReferenceBaseDocument)document)fields)dereferencezNo import set for: %s)_class_registry_cacheget_field_list_cachemongoengine.fieldsr   extendmongoengine.base.fieldsmongoengine.baser   mongoenginer   r   
ValueErrorgetattr)cls_namedoc_classesr   field_classesderef_classesmoduleimport_classesclss           P/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/mongoengine/common.py_import_classr       s     (($((22K 8  (=  (%M$M>!7()	[	 2$	]	"0&	]	"5&08;<< :%,VS%9c": !$$X..    N)r   r   r     r!   r   <module>r#      s     ;/r!   