ž ¬ÿf$c@s\dZddlZdgZejdƒZdd„Zdd„ZedkrXeƒndS( u! Generic dylib path manipulation iNu dylib_infou‹(?x) (?P^.*)(?:^|/) (?P (?P\w+?) (?:\.(?P[^._]+))? (?:_(?P[^._]+))? \.dylib$ ) cCs#tj|ƒ}|sdS|jƒS(u1 A dylib name can take one of the following four forms: Location/Name.SomeVersion_Suffix.dylib Location/Name.SomeVersion.dylib Location/Name_Suffix.dylib Location/Name.dylib returns None if not found or a mapping equivalent to: dict( location='Location', name='Name.SomeVersion_Suffix.dylib', shortname='Name', version='SomeVersion', suffix='Suffix', ) Note that SomeVersion and Suffix are optional and may be None if not present. N(uDYLIB_REumatchuNoneu groupdict(ufilenameuis_dylib((u:/opt/alt/python33/lib64/python3.3/ctypes/macholib/dylib.pyu dylib_infoscCsddddddd„}tdƒdks3t‚tdƒdksKt‚tdƒ|dddƒksot‚td ƒ|dd dd d ƒks™t‚td ƒ|ddddƒksÀt‚tdƒ|ddddƒksçt‚tdƒ|ddddd ƒkst‚dS(Nc Ss%td|d|d|d|d|ƒS(Nulocationunameu shortnameuversionusuffix(udict(ulocationunameu shortnameuversionusuffix((u:/opt/alt/python33/lib64/python3.3/ctypes/macholib/dylib.pyud.s utest_dylib_info..ducompletely/invaliducompletely/invalide_debugu P/Foo.dylibuPu Foo.dylibuFoouP/Foo_debug.dylibuFoo_debug.dylibusuffixudebugu P/Foo.A.dylibu Foo.A.dylibuAuP/Foo_debug.A.dylibuFoo_debug.A.dylibu Foo_debuguP/Foo.A_debug.dylibuFoo.A_debug.dylib(uNoneu dylib_infouAssertionError(ud((u:/opt/alt/python33/lib64/python3.3/ctypes/macholib/dylib.pyutest_dylib_info-s$*''utest_dylib_infou__main__(u__doc__ureu__all__ucompileuDYLIB_REu dylib_infoutest_dylib_infou__name__(((u:/opt/alt/python33/lib64/python3.3/ctypes/macholib/dylib.pyus