
    HR-ei	                     (    d Z ddlZg ZddZ	 ddZdS )	z0Utility functions for ``constants`` sub-package.    NTc              #   F  K   ddl m} t          j        t	          t          |                                                     t	          t          |                                                              D ]*\  }}t          ||          s|r|j        |j	        vr|V  +dS )a  
    Generator to return a Constant object.

    Parameters
    ----------
    codata, iaudata : obj
        Modules containing CODATA and IAU constants of interest.

    module : obj
        Namespace module of interest.

    not_in_module_only : bool
        If ``True``, ignore constants that are already in the
        namespace of ``module``.

    Returns
    -------
    _c : Constant
        Constant object to process.

       )ConstantN)
constantr   	itertoolschainsortedvarsitems
isinstanceabbrev__dict__)codataiaudatamodulenot_in_module_onlyr   _nm_cs          7lib/python3.11/site-packages/astropy/constants/utils.py_get_cr      s      , #"""""?tF||!!##$$fT']]-@-@-B-B&C&C   R "h'' 	$ 	")6?*J*JHHH     Fc           
      J   t          | |||          D ]}|r9|                    |j        |j        |j        |j        |j        |j                  }n|}t          ||j        |           |7|	                    |j        dd|j        dd|j        dd|j                    dS )a  
    Set constants in a given module namespace.

    Parameters
    ----------
    codata, iaudata : obj
        Modules containing CODATA and IAU constants of interest.

    module : obj
        Namespace module to modify with the given ``codata`` and ``iaudata``.

    not_in_module_only : bool
        If ``True``, constants that are already in the namespace
        of ``module`` will not be modified.

    doclines : list or None
        If a list is given, this list will be modified in-place to include
        documentation of modified constants. This can be used to update
        docstring of ``module``.

    set_class : bool
        Namespace of ``module`` is populated with ``_c.__class__``
        instead of just ``_c`` from :func:`_get_c`.

    )r   Nz^10 z^14.9gz^16)
r   	__class__r   namevalue_unit_stringuncertainty	referencesetattrappend)r   r   r   r   doclines	set_classr   r   s           r   _set_cr$   )   s    8 VWfASTTT   
	LL	 EE E	5)))OO9TTT28TTTR_TTT27TT  ! r   )T)TNF)__doc__r   __all__r   r$    r   r   <module>r(      sV    6 6    
   D PU. . . . . .r   