ó
    oñ:ix  ã                  ó4  • S r SSKJr  SSKJrJrJrJrJr  SSK	J
r
  SSKrSSKrSSKr\" S\
S\4   S9r\" S	S
S9r\\\\\\4   \4      r\\4rSSS jjr      SS jr " S S
\\\4   \R0                  5      r\S:X  a  SSKr\R8                  " 5         gg)zÄThis module contains miscellaneous helpers.

It is not considered part of the public ufoLib API. It does, however,
define the :py:obj:`.deprecated` decorator that is used elsewhere in
the module.
é    )Úannotations)ÚOptionalÚTypeÚTypeVarÚUnionÚcast)ÚCallableNÚF.)ÚboundÚFormatVersionÚBaseFormatVersionc                ó   ^ • SU 4S jjnU$ )a  Decorator factory to mark functions as deprecated with given message.

>>> @deprecated("Enough!")
... def some_function():
...    "I just print 'hello world'."
...    print("hello world")
>>> some_function()
hello world
>>> some_function.__doc__ == "I just print 'hello world'."
True
c                óf   >^ • [         R                  " T 5      U U4S j5       n[        [        U5      $ )Nc                 óf   >• [         R                  " TR                   ST 3[        SS9  T" U 0 UD6$ )Nz function is a deprecated. é   )ÚcategoryÚ
stacklevel)ÚwarningsÚwarnÚ__name__ÚDeprecationWarning)ÚargsÚkwargsÚfuncÚmsgs     €€ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/ufoLib/utils.pyÚwrapperÚ9deprecated.<locals>.deprecated_decorator.<locals>.wrapper%   s:   ø€ ä�MŠMØ—=‘=�/Ð!<¸S¸EÐBÜ+Øòñ
 ˜Ð( Ñ(Ð(ó    )Ú	functoolsÚwrapsr   r
   )r   r   r   s   ` €r   Údeprecated_decoratorÚ(deprecated.<locals>.deprecated_decorator$   s-   ù€ Ü	�Š˜Ó	õ	)ó 
ð	)ô ”A�wÓÐr   )r   r
   Úreturnr
   © )r   r"   s   ` r   Ú
deprecatedr&      s   ø€ ÷
 ð  Ðr   c                ó   • U c  UR                  5       $ [        X5      (       a  U $ [        U [        5      (       a
  U" U S45      $ [        U [        5      (       a  [	        U 5      S:X  a  U" U 5      $ [        SU < 35      e)Nr   r   zUnsupported format version: )ÚdefaultÚ
isinstanceÚintÚtupleÚlenÚ
ValueError)ÚvalueÚclss     r   ÚnormalizeFormatVersionr0   3   st   € ð �}Ø�{‰{‹}ÐÜ�%×ÑØˆÜ�%œ×ÑÙ�E˜1�:‹ÐÜ�%œ×Ñ¤C¨£J°!£OÙ�5‹zÐÜ
Ð3°E±9Ð=Ó
>Ð>r   c                  ó¦   ^ • \ rS rSr% S\S'   SU 4S jjr\SS j5       r\SS j5       r\	SS j5       r
SS jr\	SS	 j5       r\	SS
 j5       rSrU =r$ )r   éC   útuple[int, int]r.   c                ó"   >• [         TU ]  X5      $ ©N)ÚsuperÚ__new__)r/   r.   Ú	__class__s     €r   r7   ÚBaseFormatVersion.__new__F   s   ø€ Ü‰w‰˜sÓ*Ð*r   c                ó    • U R                   S   $ )Nr   ©r.   ©Úselfs    r   ÚmajorÚBaseFormatVersion.majorI   ó   € à�z‰z˜!‰}Ðr   c                ó    • U R                   S   $ )Né   r;   r<   s    r   ÚminorÚBaseFormatVersion.minorM   r@   r   c                óœ   • [        U[        5      (       a
  U " US45      $ Uc  U R                  5       $ [        U< SU R                   35      e)Nr   z is not a valid )r)   r*   r(   r-   r   )r/   r.   s     r   Ú	_missing_ÚBaseFormatVersion._missing_Q   sK   € ô �eœS×!Ñ!Ù˜˜q�z“?Ð"à‰=Ø—;‘;“=Ð Ü˜E™9Ð$4°S·\±\°NÐCÓDÐDr   c                ó8   • U R                    SU R                   3$ )NÚ.)r>   rC   r<   s    r   Ú__str__ÚBaseFormatVersion.__str__[   s   € Ø—*‘*�˜Q˜tŸz™z˜lÐ+Ð+r   c                óH   • [        U R                  R                  5       5      $ r5   )ÚmaxÚ__members__Úvalues©r/   s    r   r(   ÚBaseFormatVersion.default^   s   € ô �3—?‘?×)Ñ)Ó+Ó,Ð,r   c                óH   • [        U R                  R                  5       5      $ r5   )Ú	frozensetrN   rO   rP   s    r   Úsupported_versionsÚ$BaseFormatVersion.supported_versionsc   s   € ä˜Ÿ™×/Ñ/Ó1Ó2Ð2r   r%   )r/   úType[FormatVersion]r.   r3   r$   r   )r$   r*   )r.   Úobjectr$   r   )r$   Ústr)r/   rV   r$   r   )r/   rV   r$   zfrozenset[FormatVersion])r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r7   Úpropertyr>   rC   ÚclassmethodrF   rJ   r(   rT   Ú__static_attributes__Ú__classcell__)r8   s   @r   r   r   C   sy   ø‡ ØÓ÷+ð óó ðð óó ðð óEó ðEô,ð ó-ó ð-ð ó3ó ö3r   Ú__main__)Ú )r   rX   r$   zCallable[[F], F])r.   ÚFormatVersionInputr/   rV   r$   r   )Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   Úcollections.abcr	   Úenumr    r   rW   r
   r   r*   r+   rc   ÚfloatÚnumberTypesr&   r0   ÚEnumr   r   ÚdoctestÚtestmodr%   r   r   Ú<module>rn      sÄ   ðñõ #ç 7Õ 7Ý $Û Û Û áˆC�x  V Ñ,Ñ-€Ù˜Ð/BÑC€Ø˜e C¨¨s°C¨x©¸-Ð$GÑHÑIÐ à�Eˆl€ö ð8?Øð?Ø$7ð?àô?ô "3˜˜c 3˜h™¨¯©ô "3ðJ ˆzÓÛà‡O‚OÕð r   