ó o®¸Qc@sVdZddlZdgZejdƒZd„Zd„ZedkrReƒndS(s% Generic framework path manipulation iÿÿÿÿNtframework_infos¢(?x) (?P^.*)(?:^|/) (?P (?P\w+).framework/ (?:Versions/(?P[^/]+)/)? (?P=shortname) (?:_(?P[^_]+))? )$ cCs#tj|ƒ}|sdS|jƒS(s} A framework name can take one of the following four forms: Location/Name.framework/Versions/SomeVersion/Name_Suffix Location/Name.framework/Versions/SomeVersion/Name Location/Name.framework/Name_Suffix Location/Name.framework/Name returns None if not found, or a mapping equivalent to: dict( location='Location', name='Name.framework/Versions/SomeVersion/Name_Suffix', shortname='Name', version='SomeVersion', suffix='Suffix', ) Note that SomeVersion and Suffix are optional and may be None if not present N(tSTRICT_FRAMEWORK_REtmatchtNonet groupdict(tfilenamet is_framework((s//sys/lib/python2.7/ctypes/macholib/framework.pyRscCsKdddddd„}tdƒdks0t‚tdƒdksHt‚tdƒdks`t‚tdƒdksxt‚tdƒ|ddd ƒksœt‚td ƒ|dd d d d ƒksÆt‚tdƒdksÞt‚tdƒdksöt‚tdƒ|ddd dƒkst‚tdƒ|ddd dd ƒksGt‚dS(Nc Ss%td|d|d|d|d|ƒS(Ntlocationtnamet shortnametversiontsuffix(tdict(RRR R R ((s//sys/lib/python2.7/ctypes/macholib/framework.pytd0s scompletely/invalidscompletely/invalid/_debugs P/F.frameworksP/F.framework/_debugsP/F.framework/FtPs F.framework/FtFsP/F.framework/F_debugsF.framework/F_debugR tdebugsP/F.framework/VersionssP/F.framework/Versions/AsP/F.framework/Versions/A/FsF.framework/Versions/A/FtAs P/F.framework/Versions/A/F_debugsF.framework/Versions/A/F_debug(RRtAssertionError(R ((s//sys/lib/python2.7/ctypes/macholib/framework.pyttest_framework_info/s$*'t__main__(t__doc__tret__all__tcompileRRRt__name__(((s//sys/lib/python2.7/ctypes/macholib/framework.pyts