o
    h                  	   @   sf  d Z ddlZddlZddlZddlZddlmZ ddlZ	ddl
mZ dZdZdZd	Zejd
Zedur8e ZeeeedZejdrHeZnPejdrQeZnGejdrZeZn>ejdrceZn5e	j pid dr}edv rxee Zn dZdZnedu rdZneev ree Znedededd Zeeeeefv re  nKedu rereefeefgZneefeefeefeefgZeD ]\ZZze  W n	 e y   Y qw  ne dddd eD ne!de e"t#j$% & Z'e'dk re dt#j$% (  dejdkr-ee) d ed kr-e'd!k r-ej*d"d# d$d% Z+dS )&a[  
Qt binding and backend selector.

The selection logic is as follows:
- if any of PyQt6, PySide6, PyQt5, or PySide2 have already been
  imported (checked in that order), use it;
- otherwise, if the QT_API environment variable (used by Enthought) is set, use
  it to determine which binding to use;
- otherwise, use whatever the rcParams indicate.
    N)parse   )_QT_FORCE_QT5_BINDINGPyQt6PySide6PyQt5PySide2QT_API)pyqt6pyside6pyqt5pyside2zPyQt6.QtCorezPySide6.QtCorezPyQt5.QtCorezPySide2.QtCore qt5)r   r   TzTThe environment variable QT_API has the unrecognized value {!r}; valid values are {}z, c                     sj  t tkr)ddlmamamam}  tjatj	t_
tjt_tjt_| jatdad S t tkrVddlmamamama dd lfddatttdkrRtdad S tad S t tkr~ddlmamama dd l} tjatj	t_
tjt_tjt_| jatad S t tkrddlmamamama zdd	lm  W n ty   dd l Y nw  fd
datad S tdt  )Nr   )QtCoreQtGui	QtWidgetssipvalue)r   r   r   __version__c                         |  S NisValidobj)	shiboken6 q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/matplotlib/backends/qt_compat.py
_isdeletedQ   s    r   z6.4)r   r   r   	shiboken2c                    r   r   r   r   r    r   r   r   e   s   Unexpected QT_API: ) r	   QT_API_PYQT6r   r   r   r   r   PYQT_VERSION_STRr   
pyqtSignalSignalpyqtSlotSlotpyqtPropertyProperty	isdeletedr   operator
attrgetter_to_intQT_API_PYSIDE6r   r   parse_versionintQT_API_PYQT5r   QT_API_PYSIDE2r   r!   ImportErrorAssertionError)r   r   )r!   r   r   _setup_pyqt5plusB   sD   r6   z<Failed to import any of the following Qt binding modules: {}c                 C   s   g | ]\}}|qS r   r   ).0_r	   r   r   r   
<listcomp>   s    r9   r"   )      zThe Qt version imported is z! but Matplotlib requires Qt>=5.12darwinz10.16)r:         QT_MAC_WANTS_LAYER1c                 C   s"   t | dr|   d S |   d S )Nexec)hasattrrA   exec_r   r   r   r   _exec   s   "rD   ),__doc__r,   osplatformsyspackaging.versionr   r0   
matplotlibmplr   r   r#   r/   r2   r3   environget
QT_API_ENVlower_ETSmodulesr	   rcParams_get_backend_or_none
startswithRuntimeErrorformatjoinr6   _candidates_setupr4   r5   tupler   QLibraryInfoversionsegments_version_infotoStringmac_ver
setdefaultrD   r   r   r   r   <module>   s    

*


