ž ¬ÿf™c@s\dZddlZdgZejdƒZdd„Zdd„ZedkrXeƒndS( u% Generic framework path manipulation iNuframework_infou¢(?x) (?P^.*)(?:^|/) (?P (?P\w+).framework/ (?:Versions/(?P[^/]+)/)? (?P=shortname) (?:_(?P[^_]+))? )$ cCs#tj|ƒ}|sdS|jƒS(u} 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(uSTRICT_FRAMEWORK_REumatchuNoneu groupdict(ufilenameu is_framework((u>/opt/alt/python33/lib64/python3.3/ctypes/macholib/framework.pyuframework_infoscCsNddddddd„}tdƒdks3t‚tdƒdksKt‚tdƒdksct‚tdƒdks{t‚tdƒ|dd d ƒksŸt‚td ƒ|dd d d dƒksÉt‚tdƒdksát‚tdƒdksùt‚tdƒ|ddd dƒks t‚tdƒ|ddd ddƒksJt‚dS(Nc Ss%td|d|d|d|d|ƒS(Nulocationunameu shortnameuversionusuffix(udict(ulocationunameu shortnameuversionusuffix((u>/opt/alt/python33/lib64/python3.3/ctypes/macholib/framework.pyud-s utest_framework_info..ducompletely/invaliducompletely/invalid/_debugu P/F.frameworkuP/F.framework/_debuguP/F.framework/FuPu F.framework/FuFuP/F.framework/F_debuguF.framework/F_debugusuffixudebuguP/F.framework/VersionsuP/F.framework/Versions/AuP/F.framework/Versions/A/FuF.framework/Versions/A/FuAu P/F.framework/Versions/A/F_debuguF.framework/Versions/A/F_debug(uNoneuframework_infouAssertionError(ud((u>/opt/alt/python33/lib64/python3.3/ctypes/macholib/framework.pyutest_framework_info,s$*'utest_framework_infou__main__(u__doc__ureu__all__ucompileuSTRICT_FRAMEWORK_REuframework_infoutest_framework_infou__name__(((u>/opt/alt/python33/lib64/python3.3/ctypes/macholib/framework.pyus