
    恕f>	                         d Z ddlZddlZ	 ddlmZ ddZ G d de	      Z
 G d d	e	      Zd
 Zy# e$ r	 ddlmZ Y +w xY w)z`
    flask_admin._backwards
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Backward compatibility helpers.
    N)
HTMLString)Markupc                     t        | |      r*t        j                  d|d|dd       t        | |      S t        | ||      S )a:  
        Check if old property name exists and if it does - show warning message
        and return value.

        Otherwise, return new property value

        :param name:
            New property name
        :param old_name:
            Old property name
        :param default:
            Default value
    	Property  is obsolete, please use  instead   
stacklevel)hasattrwarningswarngetattr)objnameold_namedefaults       U/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/flask_admin/_backwards.pyget_propertyr      sC     sH'34	6sH%%3g&&    c                        e Zd Zd ZddZd Zy)ObsoleteAttrc                 B    || _         || _        d|z   | _        || _        y )N_cache_)new_namer   cacher   )selfr   r   r   s       r   __init__zObsoleteAttr.__init__(   s#      )
r   Nc                 6   || S t        || j                        rt        || j                        S t        || j                        rHt	        j
                  d| j                  d| j                  dd       t        || j                        S | j                  S )Nr   r   r   r	   r
   )r   r   r   r   r   r   r   r   )r   r   objtypes      r   __get__zObsoleteAttr.__get__.   s|    ;K 3

#3

++ 3&MM==$--9EFH3.. ||r   c                 2    t        || j                  |       y N)setattrr   )r   r   values      r   __set__zObsoleteAttr.__set__?   s    TZZ'r   r#   )__name__
__module____qualname__r   r!   r&    r   r   r   r   '   s    "(r   r   c                        e Zd Zd ZddZd Zy)ImportRedirectc                      || _         || _        y r#   )prefixtarget)r   r.   r/   s      r   r   zImportRedirect.__init__D   s    r   Nc                 >    |j                  | j                        r| S y r#   )
startswithr.   )r   fullnamepaths      r   find_modulezImportRedirect.find_moduleH   s    t{{+K ,r   c                     |t         j                  v rt         j                  |   S | j                  |t        | j                        d  z   }t        |       t         j                  |   x}t         j                  |<   |S r#   )sysmodulesr/   lenr.   
__import__)r   r2   r3   modules       r   load_modulezImportRedirect.load_moduleL   se    s{{";;x(({{Xc$++&6&7884),T)::X&r   r#   )r'   r(   r)   r   r4   r;   r*   r   r   r,   r,   C   s    r   r,   c                 V    t         j                  j                  t        | |             y r#   )r6   	meta_pathappendr,   )oldnews     r   import_redirectrA   W   s    MMS12r   r#   )__doc__r6   r   wtforms.widgetsr   r   ImportError
markupsafer   objectr   r,   rA   r*   r   r   <module>rG      sQ     "4
',(6 (8V (3U  "!"s   0 >>