§
    ¡)ýf•!  ã                   ó”   — d Z ddlZddlZdZdd„Z G d„ d¦  «        Zd„ Zd„ Zd	„ Zej	        fd
„Z
edk    rg d¢Z e
e¦  «         dS dS )z‹
This module has utility functions for renaming
rna values in fcurves and drivers.

Currently unused, but might become useful later again.
é    NFc                 ó‚   — |€| g}n|                      | ¦  «         | j        D ]}|t          urt          ||¦  «         Œ|S ©N)ÚappendÚ	__bases__ÚobjectÚclasses_recursive)Ú	base_typeÚclssÚbase_type_iters      úV/home/blender/git/blender-v430/install_release/4.3/scripts/modules/animsys_refactor.pyr   r      sU   € Ø€|Øˆ{ˆˆà�Š�IÑÔÐà#Ô-ð 4ð 4ˆØ¥Ð'Ð'Ý˜n¨dÑ3Ô3Ð3øà€Kó    c                   ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )ÚDataPathBuilderz7Dummy class used to parse fcurve and driver data paths.©Ú	data_pathc                 ó   — || _         d S r   r   )ÚselfÚattrss     r   Ú__init__zDataPathBuilder.__init__$   s   € ØˆŒˆˆr   c                 ó\   — d                      |¦  «        }t          | j        |fz   ¦  «        S )Nz.{:s})Úformatr   r   )r   ÚattrÚ	str_values      r   Ú__getattr__zDataPathBuilder.__getattr__'   s*   € Ø—N’N 4Ñ(Ô(ˆ	Ý˜tœ~°°Ñ=Ñ>Ô>Ð>r   c                 ó|  — t          |¦  «        t          u rd                     |¦  «        }nyt          |¦  «        t          u r3d                     t          j                             |¦  «        ¦  «        }n0t          d                     |t          |¦  «        ¦  «        ¦  «        ‚t          | j	        |fz   ¦  «        S )Nz[{:d}]z["{:s}"]z7unsupported accessor {!r} of type {!r} (internal error))
ÚtypeÚintr   ÚstrÚbpyÚutilsÚescape_identifierÚ	Exceptionr   r   )r   Úkeyr   s      r   Ú__getitem__zDataPathBuilder.__getitem__+   s�   € Ý�‰9Œ9�ÐÐØ Ÿš¨Ñ,Ô,ˆIˆIÝ�#‰YŒY�#ÐÐØ"×)Ò)­#¬)×*EÒ*EÀcÑ*JÔ*JÑKÔKˆIˆIåÐU×\Ò\Ð]`ÕbfÐgjÑbkÔbkÑlÔlÑmÔmÐmÝ˜tœ~°°Ñ=Ñ>Ô>Ð>r   c           	      ó¦  — g }|}| j         D �]C}|t          u�rt          }|                     d¦  «        rÁ|                     |dd…         g ¦  «        d|dd…         dfgz   D ]�\  }	}
}t	          |
¦  «        r& |
||	|dd…         ||¦  «        \  }}
|t          ur nTŒ;d}|	�0d}t          t          |¦  «        ¦  «        D ]}|j        |	k    rd} nŒ|r	 t          d|
z   ¦  «        } n#  Y ŒŠxY wŒŽd|
z   }
n|}
	 t          d|
z   ¦  «        }n#  Y nxY w|t          u rt          d| j         |¬	¦  «         |}n|}
| 
                    |
|f¦  «         �ŒE|S )
z Return (attribute, value) pairs.ú.é   NTFzbase.ÚbasezFailed to resolve data path:©Úfile)r   ÚEllipsisÚ
startswithÚgetÚcallabler   r   Ú__name__ÚevalÚprintr   )r   Ú	real_baseÚrna_update_from_mapÚfcurveÚlogÚpairsr(   ÚitemÚbase_newÚ
class_nameÚitem_newÚoptionsÚtype_okr	   s                 r   ÚresolvezDataPathBuilder.resolve4   sæ  € àˆØˆØ”Nð ,	+ñ ,	+ˆDØ�8Ð#Ñ#Ý#�à—?’? 3Ñ'Ô'ð  à/×3Ò3°D¸¸¸´H¸bÑAÔAØ" D¨¨¨¤H¨dÐ3Ð4ñ5ð)ð )Ñ5˜
 H¨gõ $ HÑ-Ô-ð )à19°¸$À
ÈDÐQRÐQSÐQSÌHÐV\Ð^eÑ1fÔ1fÑ.˜H hØ'­xÐ7Ð7Ø % ð  8ð '+˜GØ)Ð5Ø*/ Ý1BÅ4ÈÁ:Ä:Ñ1NÔ1Nð !.ð !. IØ'0Ô'9¸ZÒ'GÐ'GØ26¨Ø(-¨ð (Hð  'ð )ð!)å/3°G¸hÑ4FÑ/GÔ/G HØ$) Eøð!)Ø$( Døøøð)ð  # X™~�H�Hà#�HðÝ#'¨°Ñ(9Ñ#:Ô#:˜˜øðØ˜øøøà�xÐ'Ð'ÝÐ8¸$¼.ÈsÐSÑSÔSÐSØ��à�à�LŠL˜( DÐ)Ñ*Ô*Ð*Ñ*Øˆs   ÃC(Ã(C,Ã9DÄDN)	r/   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r$   r=   © r   r   r   r       s[   € € € € € ØAÐAØ€Iðð ð ð?ð ?ð ?ð?ð ?ð ?ð1ð 1ð 1ð 1ð 1r   r   c               #   óú   K  — t          t          j        j        ¦  «        } t	          t          j        ¦  «        D ]@}t          t          j        |d ¦  «        }t          |¦  «        | k    r|D ]}|j        €|V — ŒŒAd S r   )r   r   ÚdataÚobjectsÚdirÚgetattrÚlibrary)Ú	type_iterr   Ú	data_iterÚid_datas       r   Úid_iterrL   h   s   è è € Ý•S”XÔ%Ñ&Ô&€Iå•C”H‘”ð "ð "ˆÝ�CœH d¨DÑ1Ô1ˆ	Ý�	‰?Œ?˜iÒ'Ð'Ø$ð "ð "�Ø”?Ð*Ø!�M�M�Møøð"ð "r   c                 ó®   — g }|                      | j        ¦  «         | j        D ]&}|j        D ]}|                      |j        ¦  «         ŒŒ'd„ |D ¦   «         S )Nc                 ó   — g | ]}|¯|‘ŒS rB   rB   )Ú.0Úacts     r   ú
<listcomp>z%anim_data_actions.<locals>.<listcomp>{   s   € Ð*Ð*Ð*�C cÐ*ˆCÐ*Ð*Ð*r   )r   ÚactionÚ
nla_tracksÚstrips)Ú	anim_dataÚactionsÚtrackÚstrips       r   Úanim_data_actionsrY   s   sq   € Ø€GØ‡N‚N�9Ô#Ñ$Ô$Ð$ØÔ%ð )ð )ˆØ”\ð 	)ð 	)ˆEØ�NŠN˜5œ<Ñ(Ô(Ð(Ð(ð	)ð +Ð*˜7Ð*Ñ*Ô*Ð*r   c                 óÖ   — |                      d¦  «        r|S t          d|z   ¦  «        }|                     | |||¦  «        }d„ |D ¦   «         }d                     |¦  «        dd …         S )Nú[zDataPathBuilder(tuple()).c                 ó   — g | ]
}|d          ‘ŒS )r   rB   )rO   Úpairs     r   rQ   z!find_path_new.<locals>.<listcomp>ˆ   s   € Ð1Ð1Ð1˜D��Q”Ð1Ð1Ð1r   Ú r'   )r,   r0   r=   Újoin)rK   r   r3   r4   r5   Údata_path_builderÚdata_resolveÚpath_news           r   Úfind_path_newrc   ~   s   € ð ×Ò˜CÑ Ô ð ØÐõ Ð8¸9ÑDÑEÔEÐØ$×,Ò,¨WÐ6IÈ6ÐSVÑWÔW€Là1Ð1 LÐ1Ñ1Ô1€Hà�7Š7�8ÑÔ˜Q˜R˜RÔ Ð r   c                 ó  — i }| D ]3\  }}}}|                      |g ¦  «                             |||f¦  «         Œ4t          ¦   «         D �]¿}|t          |dd¦  «        fg}t          |dd¦  «        }	|	r|                     |	|	j        f¦  «         |D �]u\  }
}|€Œ	|j        D ]ï}|j        }t          |
||||¦  «        }||k    rEt          s||_        d|j	        _
        t          d                     |j        ||¦  «        |¬¦  «         |j	        j        D ]{}|j        dk    rn|j        D ]f}|j        }|j        }|rT|rRt          |||d|¦  «        }||k    r9t          s||_        t          d                     |j        ||¦  «        |¬¦  «         ŒgŒ|Œðt%          |¦  «        D ]e}|j        D ][}|j        }t          |
||||¦  «        }||k    r9t          s||_        t          d	                     |j        ||¦  «        |¬¦  «         Œ\Œf�Œw�ŒÁdS )
a	  
    rna_update triple [(class_name, from, to or to_callback, callback options), ...]
    to_callback is a function with this signature: update_cb(base, class_name, old_path, fcurve, options)
                where base is current object, class_name is the expected type name of base (callback has to handle
                this), old_path it the org name of base's property, fcurve is the affected fcurve (!),
                and options is an opaque data.
                class_name, fcurve and options may be None!
    Úanimation_dataNÚ	node_treeTz"driver-fcurve ({:s}): {:s} -> {:s}r)   ÚSINGLE_PROPzdriver ({:s}): {:s} -> {:s}zfcurve ({:s}): {:s} -> {:s})Ú
setdefaultr   rL   rG   re   Údriversr   rc   Ú
IS_TESTINGÚdriverÚis_validr1   r   ÚnameÚ	variablesr   ÚtargetsÚidrY   Úfcurves)Ú
rna_updater5   r3   Ú	ren_classÚren_fromÚren_tor;   rK   Úanim_data_lsrf   Úanim_data_baserU   r4   r   Údata_path_newÚvarÚtarÚid_data_otherrR   Úfcus                       r   Úupdate_data_pathsr}   �   sÙ  € ð ÐØ0:ð Zð ZÑ,ˆ	�8˜V WØ×&Ò& x°Ñ4Ô4×;Ò;¸YÈÐPWÐ<XÑYÔYÐYÐYå‘9”9ð 5vñ 5vˆà ¥'¨'Ð3CÀTÑ"JÔ"JÐKÐLˆÝ˜G [°$Ñ7Ô7ˆ	Øð 	GØ×Ò ¨IÔ,DÐ EÑFÔFÐFà)5ð .	vñ .	vÑ%ˆN˜IØÐ Øà#Ô+ð  &ð  &�Ø"Ô,�	Ý -¨n¸iÐI\Ð^dÐfiÑ jÔ j�à  IÒ-Ð-Ý%ð 6Ø+8˜Ô(Ø15˜œÔ.ÝØ<×CÒCÀGÄLÐR[Ð]jÑkÔkØ ðñ ô ð ð
 "œ=Ô2ð &ð &�CØ”x =Ò0Ð0Ø#&¤;ð &ð &˜CØ,/¬F˜MØ(+¬˜Ià,ð &°ð &Ý0=¸mÈYÐXkÐmqÐsvÑ0wÔ0w à#0°IÒ#=Ð#=Ý+5ð %FØ8E¨¬Ý$)Ø(E×(LÒ(LØ,9Ô,>Ø,5Ø,9ñ)*ô )*ð
 .1ð%&ñ %&ô %&ð %&øøð&õ* ,¨IÑ6Ô6ð vð v�Ø!œ>ð vð v�CØ #¤�IÝ$1°.À)ÐM`ÐbeÐgjÑ$kÔ$k�Mà$¨	Ò1Ð1Ý)ð :Ø,9˜CœMÝÐ;×BÒBÀ7Ä<ÐQZÐ\iÑjÔjÐqtÐuÑuÔuÐuøðvñvñM.	vð5vð 5vr   Ú__main__))ÚAnimVizMotionPathsÚframe_afterr€   N)r   Úframe_beforer�   N)ÚAnimVizOnionSkinningr€   r€   Nr   )r@   Úsysr   rj   r   r   rL   rY   rc   Ústdoutr}   r/   Ú
replace_lsrB   r   r   ú<module>r†      sÿ   ðð
ð ð €
€
€
Ø 
€
€
€
ð €
ð
ð 
ð 
ð 
ðEð Eð Eð Eð Eñ Eô Eð EðP"ð "ð "ð+ð +ð +ð!ð !ð !ð '*¤jð Cvð Cvð Cvð CvðL ˆzÒÐðð ð €Jð Ð�jÑ!Ô!Ð!Ð!Ð!ð Ðr   