o
    bn                     @  s  d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZ e
dedZdJddZeG dd deZeG dd deZeG dd deZdKddZeG dd deZeG dd deZdLd%d&ZdMd)d*ZeG d+d, d,eZeG d-d. d.eZeG d/d0 d0eZeG d1d2 d2eZeG d3d4 d4eZeG d5d6 d6eZ eG d7d8 d8eZ!dNd;d<Z"dOd?d@Z#eG dAdB dBeZ$dPdEdFZ%eG dGdH dHeZ&dIS )QztFontinfo.plist fields for WOFF 1.0 metadata.

https://unifiedfontobject.org/versions/ufo3/fontinfo.plist/#woff-data
    )annotations)AnyListMappingOptionalSequenceTypeTypeVar)	Attributedefinefield)AttrDictMixin_T)ZboundclsType[_T]values Sequence[_T | Mapping[str, Any]]returnlist[_T]c                   s    fdd|D S )Nc                   s   g | ]}  |qS  )Zcoerce_from_dict).0vr   r   ;/usr/lib/python3/dist-packages/ufoLib2/objects/info/woff.py
<listcomp>   s    z2_convert_list_of_woff_metadata.<locals>.<listcomp>r   )r   r   r   r   r   _convert_list_of_woff_metadata   s   r   c                   @  s   e Zd ZU ded< dS )WoffMetadataUniqueIDstridN)__name__
__module____qualname____annotations__r   r   r   r   r      s   
 r   c                   @  F   e Zd ZU ded< dZded< dZded< edddid	Zded
< dS )WoffMetadataVendorr   nameNOptional[str]urldirrename_attrclassdefaultmetadataclass_)r   r    r!   r"   r'   r(   r   r.   r   r   r   r   r$      s
   
 r$   c                   @  sR   e Zd ZU ded< dZded< dZded< dZded< eddd	id
Zded< dS )WoffMetadataCreditr   r%   Nr&   r'   roler(   r)   r*   r+   r.   )	r   r    r!   r"   r'   r0   r(   r   r.   r   r   r   r   r/   $   s   
 r/   value,list[WoffMetadataCredit | Mapping[str, Any]]list[WoffMetadataCredit]c                 C  
   t t| S N)r   r/   r1   r   r   r   &_convert_list_of_woff_metadata_credits-      
r7   c                   @  s"   e Zd ZU eeedZded< dS )WoffMetadataCreditsfactory	converterzList[WoffMetadataCredit]creditsN)r   r    r!   r   listr7   r=   r"   r   r   r   r   r9   3   s
   
 r9   c                   @  r#   )WoffMetadataTextr   textNr&   languager(   r)   r*   r+   r.   r   r    r!   r"   rA   r(   r   r.   r   r   r   r   r?   ;   
   
 r?   selfr   	attributeAttribute[Any]Sequence[Any]Nonec                 C  s*   t |dkrt| jj d|j dd S )Nr   .z must contain at list 1 item)len
ValueError	__class__r   r%   )rD   rE   r1   r   r   r   _at_least_one_itemC   s
   rM   *list[WoffMetadataText | Mapping[str, Any]]list[WoffMetadataText]c                 C  r4   r5   )r   r?   r6   r   r   r   $_convert_list_of_woff_metadata_textsL   r8   rP   c                   @  s0   e Zd ZU dZded< eeeedZ	ded< dS )WoffMetadataDescriptionNr&   r'   r;   	validatorr<   List[WoffMetadataText]r@   )
r   r    r!   r'   r"   r   r>   rM   rP   r@   r   r   r   r   rQ   R   s   
 rQ   c                   @  s:   e Zd ZU dZded< dZded< eeedZ	ded< dS )WoffMetadataLicenseNr&   r'   r   r:   rT   r@   )
r   r    r!   r'   r"   r   r   r>   rP   r@   r   r   r   r   rU   \   s   
 rU   c                   @  $   e Zd ZU eeeedZded< dS )WoffMetadataCopyrightrR   rT   r@   N	r   r    r!   r   r>   rM   rP   r@   r"   r   r   r   r   rW   f      
 rW   c                   @  rV   )WoffMetadataTrademarkrR   rT   r@   NrX   r   r   r   r   rZ   o   rY   rZ   c                   @  s:   e Zd ZU ded< dZded< edddidZded	< dS )
WoffMetadataLicenseer   r%   Nr&   r(   r)   r*   r+   r.   )r   r    r!   r"   r(   r   r.   r   r   r   r   r[   x   s   
 r[   c                   @  r#   )WoffMetadataExtensionNamer   r@   Nr&   rA   r(   r)   r*   r+   r.   rB   r   r   r   r   r\      rC   r\   c                   @  r#   )WoffMetadataExtensionValuer   r@   Nr&   rA   r(   r)   r*   r+   r.   rB   r   r   r   r   r]      rC   r]   3list[WoffMetadataExtensionName | Mapping[str, Any]]list[WoffMetadataExtensionName]c                 C  r4   r5   )r   r\   r6   r   r   r   -_convert_list_of_woff_metadata_extension_name   r8   r`   4list[WoffMetadataExtensionValue | Mapping[str, Any]] list[WoffMetadataExtensionValue]c                 C  r4   r5   )r   r]   r6   r   r   r   ._convert_list_of_woff_metadata_extension_value   r8   rc   c                   @  sL   e Zd ZU dZded< eeeedZ	ded< eeee
ddid	Zd
ed< dS )WoffMetadataExtensionItemNr&   r   rR   List[WoffMetadataExtensionName]namesr)   r   r;   rS   r<   r-   z List[WoffMetadataExtensionValue]values_)r   r    r!   r   r"   r   r>   rM   r`   rf   rc   rh   r   r   r   r   rd      s   
 rd   3list[WoffMetadataExtensionItem | Mapping[str, Any]]list[WoffMetadataExtensionItem]c                 C  r4   r5   )r   rd   r6   r   r   r   -_convert_list_of_woff_metadata_extension_item   r8   rk   c                   @  sF   e Zd ZU ded< eeedZded< eeee	ddidZ
d	ed
< dS )WoffMetadataExtensionr&   r   r:   re   rf   r)   itemsrg   zList[WoffMetadataExtensionItem]items_N)r   r    r!   r"   r   r>   r`   rf   rM   rk   rn   r   r   r   r   rl      s   
 rl   N)r   r   r   r   r   r   )r1   r2   r   r3   )rD   r   rE   rF   r1   rG   r   rH   )r1   rN   r   rO   )r1   r^   r   r_   )r1   ra   r   rb   )r1   ri   r   rj   )'__doc__Z
__future__r   typingr   r   r   r   r   r   r	   attrr
   r   r   ZufoLib2.objects.miscr   r   r   r   r$   r/   r7   r9   r?   rM   rP   rQ   rU   rW   rZ   r[   r\   r]   r`   rc   rd   rk   rl   r   r   r   r   <module>   sR    $



			


