a
    w=icd                     @   sP   d Z ddlZddlZeefZd	ddZG dd dZedkrLddl	Z	e	
  dS )
z^The module contains miscellaneous helpers.
It's not considered part of the public ufoLib API.
    N c                    s    fdd}|S )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                    s   t   fdd}|S )Nc                     s*   t j j d tdd  | i |S )Nz function is a deprecated.    )category
stacklevel)warningswarn__name__DeprecationWarning)argskwargs)funcmsg g/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/fontTools/ufoLib/utils.pywrapper   s    z9deprecated.<locals>.deprecated_decorator.<locals>.wrapper)	functoolswraps)r   r   r   )r   r   deprecated_decorator   s    z(deprecated.<locals>.deprecated_decoratorr   )r   r   r   r   r   
deprecated   s    r   c                       sX   e Zd Zedd Zedd Ze fddZdd Zed	d
 Z	edd Z
  ZS )_VersionTupleEnumMixinc                 C   s
   | j d S Nr   valueselfr   r   r   major)   s    z_VersionTupleEnumMixin.majorc                 C   s
   | j d S )N   r   r   r   r   r   minor-   s    z_VersionTupleEnumMixin.minorc                    s2   t |tr| |dfS |d u r&|  S t |S r   )
isinstanceintdefaultsuper	_missing_)clsr   	__class__r   r   r#   1   s
    
z _VersionTupleEnumMixin._missing_c                 C   s   | j  d| j S )N.)r   r   r   r   r   r   __str__;   s    z_VersionTupleEnumMixin.__str__c                 C   s   t | j S N)max__members__valuesr$   r   r   r   r!   >   s    z_VersionTupleEnumMixin.defaultc                 C   s   t | j S r)   )	frozensetr+   r,   r-   r   r   r   supported_versionsC   s    z)_VersionTupleEnumMixin.supported_versions)r   
__module____qualname__propertyr   r   classmethodr#   r(   r!   r/   __classcell__r   r   r%   r   r   (   s   

	
r   __main__)r   )__doc__r   r   r    floatZnumberTypesr   r   r   doctesttestmodr   r   r   r   <module>   s   
 