o
    _h                     @  sj   d dl mZ d dlZd dlmZmZ ddlmZ ejr'd dlm	Z	 d dlm
Z
 dddZG dd dZdS )    )annotationsN)datetimetimezone   )MissingInfoNamespace)Mapping)Anyt
int | Nonereturndatetime | Nonec                 C  s   | du rdS t j| tjdS )z%Convert epoch time to a UTC datetime.N)tz)r   fromtimestampr   utc)r	    r   S/var/www/html/myenv/lib/python3.10/site-packages/fontTools/misc/filesystem/_info.pyepoch_to_datetime   s   r   c                   @  s   e Zd ZddgZd'ddZd(d)ddZed*ddZed+ddZed+ddZ	ed,ddZ
ed,ddZed-ddZed-dd Zed,d!d"Zed,d#d$Zd*d%d&ZeZdS ).Inforaw
namespacesraw_infoMapping[str, Any]c                 C  s   || _ t| | _d S N)r   	frozensetkeysr   )selfr   r   r   r   __init__   s   zInfo.__init__N	namespacestrkeydefault
Any | Noner   c                 C  s4   z
| j | ||W S  ty   td|dw )Nz
Namespace z does not exist)r   getKeyErrorr   )r   r   r   r    r   r   r   r"      s
   zInfo.getc                 C     |  ddS )Nbasicnamer"   r   r   r   r   r&   !      z	Info.nameboolc                 C  r$   )Nr%   is_dirr'   r(   r   r   r   r+   %   r)   zInfo.is_dirc                 C  s   | j  S r   )r+   r(   r   r   r   is_file)   s   zInfo.is_filer   c                 C     t | ddS )Ndetailsaccessedr   r"   r(   r   r   r   r/   -      zInfo.accessedc                 C  r-   )Nr.   modifiedr0   r(   r   r   r   r2   1   r1   zInfo.modifiedr
   c                 C  r$   )Nr.   sizer'   r(   r   r   r   r3   5   r)   z	Info.sizec                 C  r$   )Nr.   typer'   r(   r   r   r   r4   9   r)   z	Info.typec                 C  r-   )Nr.   createdr0   r(   r   r   r   r5   =   r1   zInfo.createdc                 C  r-   )Nr.   metadata_changedr0   r(   r   r   r   r6   A   r1   zInfo.metadata_changedc                 C  s   | j r	d| jS d| jS )Nz
<dir '{}'>z<file '{}'>)r+   formatr&   r(   r   r   r   __str__E   s   zInfo.__str__)r   r   r   )r   r   r   r   r    r!   r   r!   )r   r   )r   r*   )r   r   )r   r
   )__name__
__module____qualname__	__slots__r   r"   propertyr&   r+   r,   r/   r2   r3   r4   r5   r6   r8   __repr__r   r   r   r   r      s0    

r   )r	   r
   r   r   )
__future__r   typingr   r   _errorsr   TYPE_CHECKINGcollections.abcr   r   r   r   r   r   r   r   <module>   s    
