o
    tf                     @   s   d Z ddlZddlmZmZmZmZ ddlmZ e	fZ
dd Zddd	Zd
ZdddZdddZdddejfddZ						dddZ						dddZ						dddZ						dddZdd ZdS )z
Compatibility functions
    N   )PYQT5PYQT6PYSIDE2PYSIDE6)QFileDialogc                 C   s
   t | tS )zZReturn True if `obj` is a text string, False if it is anything else,
    like binary data.)
isinstancestrobj r   T/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/qtpy/compat.pyis_text_string   s   
r   c                 C   s(   |du rt | S t| t r| S t | |S )z&Convert `obj` to (unicode) text stringN)r	   r   )r   encodingr   r   r   to_text_string   s
   

r   Fc                 C      | S )zConvert Python object to QVariant
    This is a transitional function from PyQt API#1 (QVariant exist)
    to PyQt API#2 and Pyside (QVariant does not exist)r   r
   r   r   r   to_qvariant,      r   c                 C   r   )zConvert QVariant object to Python object
    This is a transitional function from PyQt API #1 (QVariant exist)
    to PyQt API #2 and Pyside (QVariant does not exist)r   )ZqobjZpytyper   r   r   from_qvariant3   r   r    c              	   C   s   t jdkrt jt j}}d\t _t _zt| |||}W t jdkr(||t _t _nt jdkr5||t _t _w t|s>t|}|S )zWrapper around QtGui.QFileDialog.getExistingDirectory static method
    Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0win32NN)sysplatformstdoutstderrr   ZgetExistingDirectoryr   r   )parentcaptionbasediroptions_temp1_temp2resultr   r   r   getexistingdirectory=   s$   
	

r#   c                 C   sz   |d u r	t d}tt | }tjdkr tjtj}}	d\t_t_|||||||}
tjdkr5||	t_t_|
\}}||fS )Nr   r   r   )r   Optiongetattrr   r   r   r   )attrr   r   r   filtersselectedfilterr   funcr    r!   r"   outputr   r   r   _qfiledialog_wrapper[   s   	



r+   c              	   C      t d| |||||dS )zWrapper around QtGui.QFileDialog.getOpenFileName static method
    Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
    returns a tuple of empty strings
    Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0ZgetOpenFileNamer   r   r   r'   r(   r   r+   r-   r   r   r   getopenfilenamey      r/   c              	   C   r,   )a   Wrapper around QtGui.QFileDialog.getOpenFileNames static method
    Returns a tuple (filenames, selectedfilter) -- when dialog box is canceled,
    returns a tuple (empty list, empty string)
    Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0ZgetOpenFileNamesr-   r.   r-   r   r   r   getopenfilenames   r0   r1   c              	   C   r,   )zWrapper around QtGui.QFileDialog.getSaveFileName static method
    Returns a tuple (filename, selectedfilter) -- when dialog box is canceled,
    returns a tuple of empty strings
    Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0ZgetSaveFileNamer-   r.   r-   r   r   r   getsavefilename   r0   r2   c                 C   sB   t strddlm} ||  S tstrddlm} || S dS )zgWrapper around sip.isdeleted and shiboken.isValid which tests whether
    an object is currently alive.r   )sip)shibokenN)	r   r   r   r3   Z	isdeletedr   r   r4   ZisValid)r   r3   r4   r   r   r   isalive   s   
r5   )Nr   )Nr   r   r   r   N)__doc__r   r   r   r   r   r   Z	QtWidgetsr   r	   Z
TEXT_TYPESr   r   Z
PYQT_API_1r   r   ZShowDirsOnlyr#   r+   r/   r1   r2   r5   r   r   r   r   <module>   sX   



 



