a
    Df                     @   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   X/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/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   | 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,   s    r   c                 C   s   | S )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   s    r    c              	   C   s   t jdkr$t jt j }}d\t _t _z,t| |||}W t jdkrl|| t _t _nt jdkrj|| t _t _0 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rj||	 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   s   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   s    r,   c              	   C   s   t d| |||||dS )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   s    r-   c              	   C   s   t d| |||||dS )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   s    r.   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   r/   Z	isdeletedr   r   r0   ZisValid)r   r/   r0   r   r   r   isalive   s    
r1   )N)N)NN)Nr   r   r   r   N)Nr   r   r   r   N)Nr   r   r   r   N)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,   r-   r.   r1   r   r   r   r   <module>   sV   



       
      
      
      
