o
    \ƒáe‡  ã                   @   sð   d Z ddlZddlmZ ddlmZ ed ¡ ƒZed ¡ ƒZed ¡ ƒZ	ed ¡ ƒZ
ed	 ¡ ƒZed
 ¡ ƒZed ¡ ƒZed ¡ ƒZdZee
 e e	 ZG dd„ dƒZeƒ Zeee eƒZG dd„ dƒZdedefdd„Zdedefdd„ZdS )z.Extension presets and extension configuration.é    N)ÚIterable)Úcastzgz bz2 zip tar tgz txz 7zzwav mp3 aac ogg oga flaczcsv ini json plist xml yaml ymlz.rtf odf ods gnumeric abw doc docx xls xlsx pdfz
so exe dllz!jpg jpe jpeg png gif svg bmp webpzjs php pl py rb shz`c cpp c++ h hpp h++ cxx hxx hdl ada rs go f for f90 f95 f03 d dd di java hs cs fs cbl cob asm s )Útxtc                   @   s"   e Zd ZdZdedefdd„ZdS )ÚAllzh
    This type can be used to allow all extensions. There is a predefined
    instance named `ALL`.
    ÚitemÚreturnc                 C   s   dS )NT© ©Úselfr   r   r   úb/var/www/html/SPIRAL.web.tool/spiral_venv/lib/python3.10/site-packages/flask_uploads/extensions.pyÚ__contains__H   s   zAll.__contains__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚboolr   r   r   r   r   r   C   s    r   c                   @   s8   e Zd ZdZdee ddfdd„Zdedefdd	„ZdS )
Ú	AllExcepta*  
    This can be used to allow all file types except certain ones. For example,
    to ban .exe and .iso files, pass::

        AllExcept(('exe', 'iso'))

    to the `UploadSet` constructor as `extensions`. You can use any container,
    for example::

        AllExcept(SCRIPTS + EXECUTABLES)
    Úitemsr   Nc                 C   s
   || _ d S ©N©r   )r
   r   r   r   r   Ú__init__^   ó   
zAllExcept.__init__r   c                 C   s
   || j vS r   r   r	   r   r   r   r   a   r   zAllExcept.__contains__)	r   r   r   r   r   r   r   r   r   r   r   r   r   r   R   s    r   Úfilenamer   c                 C   s*   t j | ¡d }| d¡r|dd … }|S )Né   Ú.)ÚosÚpathÚsplitextÚ
startswith)r   Úextr   r   r   Ú	extensione   s   
r!   c                 C   s(   d| v rt j | ¡\}}|| ¡  S | S )a›  
    This is a helper used by UploadSet.save to provide lowercase extensions for
    all processed files, to compare with configured extensions in the same
    case.

    .. versionchanged:: 0.1.4
       Filenames without extensions are no longer lowercased, only the
       extension is returned in lowercase, if an extension exists.

    :param filename: The filename to ensure has a lowercase extension.
    r   )r   r   r   Úlower)r   Úmainr    r   r   r   Úlowercase_extm   s   r$   )r   r   Útypingr   r   ÚtupleÚsplitÚARCHIVESÚAUDIOÚDATAÚ	DOCUMENTSÚEXECUTABLESÚIMAGESÚSCRIPTSÚSOURCEÚTEXTÚDEFAULTSr   Úxr   ÚALLr   r!   r$   r   r   r   r   Ú<module>   s.    ò