�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �% completer instance. If unspecified, the default namespace where completions are performed is __main__ (technically, __main__.__dict__). Namespaces should be given as dictionaries. Completer instances should be used as the completion mechanism of readline via the set_completer() call: readline.set_completer(Completer(my_namespace).complete) znamespace must be a dictionaryNr) isinstancedict TypeError use_main_ns namespace)selfrr #/usr/lib64/python3.8/rlcompleter.py__init__'s zCompleter.__init__cCs|jrtj|_|sB|dkr>tr8tdtdSdSndS|dkrld|kr`| ||_ n | ||_ z |j |WSt k rYdSXdS)zReturn the next possible completion for 'text'. This is called successively with state == 0, 1, 2, ... until it returns None. The completion should begin with 'text'. r N.) r__main____dict__rstrip_readline_availablereadlineZ insert_textZ redisplay attr_matchesmatchesglobal_matches IndexError)r textstater r r completeBs$   zCompleter.completecCst|r|d}|S)N()callable)r valwordr r r _callable_postfixaszCompleter._callable_postfixc Csddl}g}dh}t|}|jD]J}|d||kr |||dkrP|d}n|dkr`|d}||q |jtjfD]J}|D]<\}}|d||kr||kr|||| ||qqx|S)zCompute matches when text is a simple name. Return a list of all keywords, built-in functions and names currently defined in self.namespace that match. rN __builtins__>tryfinally:>breakNonepasscontinueFalseTrueelse ) keywordlenkwlistaddappendrbuiltinsritemsr ) r rr-rseennrZnspacerr r r rfs$     zCompleter.global_matchesc Cshddl}|d|}|sgS|dd\}}zt||j}Wntk rTgYSXtt|}|dt |dr| d| t |j g}t|} |dkrd } n|d krd } nd} |D]t} | d| |kr| r| d| d| ksd || f} zt|| } Wntk rYnX|| | } || q|s\| sFq\| d krVd } qd} q||S) aCompute matches when text contains a dot. Assuming the text is of the form NAME.NAME....[NAME], and is evaluable in self.namespace, it will be evaluated and its attributes (as revealed by dir()) are used as possible completions. (For class instances, class members are also considered.) WARNING: this can still invoke arbitrary C code, if an object with a __getattr__ hook is evaluated. rNz(\w+(\.\w+)*)\.(\w*)rr! __class__r___z%s.%s)rematchgroupevalr Exceptionsetdirdiscardhasattrr0updateget_class_membersr7r.getattrr r1sort)r rr:mexprattrZ thisobjectZwordsrr5Znoprefixrr;rr r r rsR            zCompleter.attr_matches)N)__name__ __module__ __qualname__r rr rrr r r r r&s  cCs.t|}t|dr*|jD]}|t|}q|S)N __bases__)r@rBrMrD)klassZretbaser r r rDs   rDFcCs tdS)N)r set_completerr r r r rQT) __doc__atexitr2r__all__rrDr ImportErrorrrPrregisterr r r r s