
    BPce                         d Z ddlZddlZddlZddlmZ 	  eej                            dd                    Z	n# e
$ r dZ	Y nw xY wde	fdZddee         fd	Z G d
 d          ZdS )zF
Deprecation functionality which does not require imports from Inkex.
    N)OptionalINKEX_DEPRECATION_LEVEL      c                     |dk    r)| d                     t          j                              z  } |r!t          j        | t
          |dz              dS dS )z1Internal method for raising a deprecation warningr   z ; )category
stacklevelN)join	tracebackformat_stackwarningswarnDeprecationWarning)msgstacklevels      7/usr/share/inkscape/extensions/inkex/deprecated/meta.py_deprecatedr   "   sa    qyyuzz)022333 Nc$6519MMMMMMN N    versionc                       fd} j         |_          j        r$|d j        z   |_        n j         d| d|_        |S )a  Function decorator for deprecation functions which have a one-liner
    equivalent in the new API. The one-liner has to passed as a string
    to the decorator.

    >>> @deprecate
    >>> def someOldFunction(*args):
    >>>     '''Example replacement code someNewFunction('foo', ...)'''
    >>>     someNewFunction('foo', *args)

    Or if the args API is the same:

    >>> someOldFunction = deprecate(someNewFunction)

    c                  d    t          j         dj         dj         d            | i |S )N.z -> r   )r   )r   
__module____name____doc__)argskwargsfuncs     r   _innerzdeprecate.<locals>._inner:   sH    tJJJJDLJJRSTTTTtT$V$$$r   NzDeprecated -> z

.. deprecated:: 
)r   r   )r   r   r    s   `  r   	deprecater"   *   sf     % % % % % mFO| R?-<FNN"&,QQGQQQFNMr   c                       e Zd ZdZed             Zed             Zed             Zed             Z	ed             Z
ed             Zed             Zd	S )
DeprecatedSvgMixinzBMixin which adds deprecated API elements to the SvgDocumentElementc                     | j         S )zsvg.selection)	selectionselfs    r   selectedzDeprecatedSvgMixin.selectedJ   s     ~r   c                       | j         j        | S )zsvg.selection.set(\*ids))r&   set)r(   idss     r   set_selectedzDeprecatedSvgMixin.set_selectedO   s     "t~!3''r   c                 4    | j                                         S )zsvg.selection.rendering_order())r&   rendering_orderr'   s    r   get_z_selectedz!DeprecatedSvgMixin.get_z_selectedT   s     ~--///r   c                 D     | j         j        |                                 S )z&svg.selection.filter(\*types).values())r&   filtervaluesr(   typess     r   get_selectedzDeprecatedSvgMixin.get_selectedY   s"     %t~$e,33555r   c                 `    | j         s| j                                           | j         j        | S )z(Set select_all = True in extension class)r&   set_allr2   r4   s     r   get_selected_or_allz&DeprecatedSvgMixin.get_selected_or_all^   s4     ~ 	%N""$$$$t~$e,,r   c                 4    | j                                         S )zselection.bounding_box())r&   bounding_boxr'   s    r   get_selected_bboxz$DeprecatedSvgMixin.get_selected_bboxe   s     ~**,,,r   c                 D     | j         j        |                                 S )z?selection.filter(\*types).first() or [0] if you'd like an error)r&   r2   firstr4   s     r   get_first_selectedz%DeprecatedSvgMixin.get_first_selectedj   s"     %t~$e,22444r   N)r   r   __qualname__r   propertyr)   r"   r-   r0   r6   r9   r<   r?    r   r   r$   r$   G   s        LL  X ( ( Y( 0 0 Y0 6 6 Y6 - - Y- - - Y- 5 5 Y5 5 5r   r$   )N)r   osr   r   typingr   intenvirongetDEPRECATION_LEVEL
ValueErrorr   strr"   r$   rB   r   r   <module>rK      s  &  
			           BJNN+DaHHII    $5 N N N N Xc]    :&5 &5 &5 &5 &5 &5 &5 &5 &5 &5s   $; AA