ó Ð@ŸSc@s”dZddlmZmZmZdefd„ƒYZdefd„ƒYZdefd„ƒYZd efd „ƒYZ d efd „ƒYZ d S(s:This module contains some mixins for the different nodes. iÿÿÿÿ(tAstroidBuildingExceptiontInferenceErrort NotFoundErrortBlockRangeMixIncBs#eZdZd„Zdd„ZRS(soverride block range cCs+|j|_|j|_|jƒ|_dS(N(tlinenot fromlinenottolinenot_blockstart_tolinetblockstart_tolineno(tselft lastchild((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyt set_line_infos  cCsk||jkr||fS|rX||djkrC||djfS||djdfS||pg|jfS(s^handle block line numbers range for try/finally, for, if and while statements iiÿÿÿÿi(RR(R Rtorelsetlast((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyt_elsed_block_range s N(t__name__t __module__t__doc__R tNoneR(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyRs tFilterStmtsMixincBs eZdZd„Zd„ZRS(s1Mixin for statement filtering and assignment typecCs)|jƒ|kr|gtfS|tfS(sAmethod used in _filter_stmts to get statemtents and trigger break(t statementtTruetFalse(R t_tnodet_stmtstmystmt((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyt_get_filtered_stmts0s cCs|S(N((R ((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pytass_type8s(RRRRR(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyR-s tAssignTypeMixincBseZd„Zd„ZRS(cCs|S(N((R ((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyR>scCs?||kr|tfS|jƒ|kr5|gtfS|tfS(smethod used in filter_stmts(RRR(R t lookup_nodeRRR((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyRAs    (RRRR(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyR<s tParentAssignTypeMixincBseZd„ZRS(cCs |jjƒS(N(tparentR(R ((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyRNs(RRR(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyRLstFromImportMixIncBs)eZdZd„Zd„Zd„ZRS(sMixIn for From and Import NodescCs|S(N((R tframetname((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyt _infer_nameUscCsœ|jƒ}t|ddƒ}|j||ƒ|jkr=|Sy|j|d|ƒSWnAtk rst|ƒ‚n%tk r—}tt |ƒƒ‚nXdS(sOreturn the ast for a module whose name is imported by tlevelN( troottgetattrRtrelative_to_absolute_nameR#t import_moduleRRt SyntaxErrortstr(R tmodnametmymoduleR%tex((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pytdo_import_moduleXs  cCsox\|jD]Q\}}|dkr&|S|sK|jddƒd}|}n||kr |Sq Wt|ƒ‚dS(sget name from 'as' namet*t.iiN(tnamestsplitR(R tasnameR#t_asname((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyt real_namems   (RRRR$R/R6(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyR!Rs  N( Rtastroid.exceptionsRRRtobjectRRRRR!(((sH/Users/jacob/code/ruby/exercism-analysis/vendor/python/astroid/mixins.pyts