
    fs                         d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZmZmZ eee	e
efZd Zd Z e       Z ee      \  ZZZZ eee      Zy)a   Import Qt in a manner suitable for an IPython kernel.

This is the import used for the `gui=qt` or `matplotlib=qt` initialization.

Import Priority:

if Qt has been imported anywhere else:
   use that

if matplotlib has been imported and doesn't support v2 (<= 1.0.1):
    use PyQt4 @v1

Next, ask QT_API env variable

if QT_API not set:
    ask matplotlib what it's using. If Qt4Agg or Qt5Agg, then use the
        version matplotlib is configured with

    else: (matplotlib said nothing)
        # this is the default path - nobody told us anything
        try in this order:
            PyQt default version, PySide, PyQt5
else:
    use what QT_API says

    Note that %gui's implementation will always set a `QT_API`, see
    `IPython.terminal.pt_inputhooks.get_inputhook_name_and_func`

    N)
load_qt
loaded_apienum_factoryQT_API_PYQT6QT_API_PYSIDE6QT_API_PYQT5QT_API_PYSIDE2QT_API_PYQTQT_API_PYSIDEQT_API_PYQT_DEFAULTc                    | y| j                   j                  dd      }|dk(  r{| j                   j                  dd      }|y|j                         dk(  rt        gS |j                         dk(  rt        gS |j                         dk(  rt
        gS t        d|z        |d	k(  rG| j                   j                  d
d      }|y|j                         dk(  rt        gS t        d|z        y)z-Constraints placed on an imported matplotlib.NbackendQt4Aggzbackend.qt4pysidepyqt4pyqt4v2z3unhandled value for backend.qt4 from matplotlib: %rQt5Aggzbackend.qt5pyqt5z3unhandled value for backend.qt5 from matplotlib: %r)rcParamsgetlowerr   r   r
   ImportErrorr   )mplr   mpqts      Y/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/external/qt_for_kernel.pymatplotlib_optionsr   B   s    
{lly$/G(||t4<::<8#!?"ZZ\W$'((ZZ\Y&= O   	 	H	||t4<::<7" >!O   	  
    c                     t               } | | gS t        j                  j                  dd      }|.t	        |j
                  j                  d            dk  rt        gS t        j                  j                  dd      }|(t        |      xs t        t        t        t        t        gS |t        vr$t!        d|ddj#                  t                    |gS )	zGReturn a list of acceptable QT APIs, in decreasing order of preference.N
matplotlib.)102QT_APIzInvalid Qt API z, valid values are: z, )r   sysmodulesr   tuple__version__splitr   osenvironr   r   r   r   r	   _qt_apisRuntimeErrorjoin)loadedr   qt_apis      r   get_optionsr1   \   s     \Fx
++//,
-C
5!6!6s!;<N#$$ZZ^^Hd+F~!#& 
+
 	
 
x	"DIIh$79 : 	: xr   )__doc__r*   r%   IPython.external.qt_loadersr   r   r   r   r   r   r	   r
   r   r   r,   r   r1   api_optsQtCoreQtGuiQtSvgr$   enum_helper r   r   <module>r:      sl   B 
 
  & 	 4< =&x0 uf66*r   