
    sh
	                     :   d dl Z d dlmZmZ d dlmZmZmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZmZ d dlmZ deeef   defd	Z G d
 de j.                        Ze G d d             Z ed       G d d             ZdedefdZ G d de      Z G d de      Zy)    N)ABCabstractmethod)asdict	dataclassis_dataclass)datetimetimezone)DictIteratorListOptionalSequenceTupleUnion)
QgsProjectdtreturnc                     t        | t              rt        j                  |       } | j	                  t
        j                        j                  d      S )Nmilliseconds)timespec)
isinstancefloatr   fromtimestamp
astimezoner	   utc	isoformat)r   s    </var/www/qgis-server/plugins/lizmap_server/context/common.py
to_iso8601r      s=    "e##B'==&00.0II    c                        e Zd Z fdZ xZS )DataclassEncoderc                 N    t        |      rt        |      S t        |   |      S N)r   r   superdefault)selfo	__class__s     r   r%   zDataclassEncoder.default   s#    ?!9wq!!r   )__name__
__module____qualname__r%   __classcell__r(   s   @r   r!   r!      s    " "r   r!   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)CatalogItemurinamestoragelast_modified
public_uriN)r)   r*   r+   str__annotations__ r   r   r/   r/      s    	H
ILOr   r/   T)frozenc                   T    e Zd ZU eed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   y)ServerMetadatar1   version	is_stableNbuild_id	commit_id)
r)   r*   r+   r5   r6   boolr=   r   intr>   r7   r   r   r:   r:   !   s-    
ILO"Hhsm"#Ix}#r   r:   r'   c                 8    t        j                  | t              S )N)cls)jsondumpsr!   )r'   s    r   model_dump_jsonrE   *   s    ::a-..r   c                   0     e Zd Zddedee   f fdZ xZS )ProjectCacheErrorcodemsgc                 @    t         |   |       || _        || _        y r#   )r$   __init__rI   rH   )r&   rH   rI   r(   s      r   rK   zProjectCacheError.__init__/   s    	r   r#   )r)   r*   r+   r@   r   r5   rK   r,   r-   s   @r   rG   rG   .   s    S x}  r   rG   c                      e Zd Zeedefd              Zeedefd              Zeedefd              Zeede	e   fd              Z
ededefd       Ze	 dd	ee   d
ee   deeeef      fd       Zeedee   fd              Zy)
ContextABCr   c                      y)z Return context name
        Nr7   r&   s    r   r1   zContextABC.name7       
 	r   c                      y)z# Return Git repository URL
        Nr7   rO   s    r   git_repository_urlzContextABC.git_repository_url>   rP   r   c                      y)z" Return documentation URL
        Nr7   rO   s    r   documentation_urlzContextABC.documentation_urlE   rP   r   c                      y)z* Return search paths for projects
        Nr7   rO   s    r   search_pathszContextABC.search_pathsL   rP   r   r0   c                      y)z/ Return the project specified by `uri`
        Nr7   )r&   r0   s     r   projectzContextABC.projectS   s     	r   Nkeysunknown_defaultc                      y)z* return installed plugin metadata
        Nr7   )r&   rY   rZ   s      r   installed_pluginszContextABC.installed_pluginsY   s     	r   c                      y)zX Return server metadata if the server
            is not a native (FCGI) server
        Nr7   rO   s    r   metadatazContextABC.metadatac   s     	r   r#   )r)   r*   r+   propertyr   r5   r1   rR   rT   r   rV   r   rX   r   r   r   r   r
   r\   r:   r^   r7   r   r   rM   rM   5   s%   c   
 C   
 3   
 d3i   
 3 :  
  *.sm "# 
%T	"	#	  (>2   r   rM   )rC   abcr   r   dataclassesr   r   r   r   r	   typingr
   r   r   r   r   r   r   	qgis.corer   r   r5   r   JSONEncoderr!   r/   r:   rE   	ExceptionrG   rM   r7   r   r   <module>rf      s     # 7 7 ' I I I  J5) Jc J"t'' "    $$ $ $/t / /	 4 4r   