U
    Dvfe                     @   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  | |S )Nz function is a deprecated.    )category
stacklevel)warningswarn__name__DeprecationWarning)argskwargs)funcmsg :/tmp/pip-unpacked-wheel-qlge9rch/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 kr&|  S t |S r   )
isinstanceintdefaultsuper	_missing_)clsr   	__class__r   r   r#   2   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_versionsD   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   
 