ó o®¸Qc@sVdZddlZdgZejdƒZd„Zd„ZedkrReƒndS(s! Generic dylib path manipulation iÿÿÿÿNt dylib_infos‹(?x) (?P^.*)(?:^|/) (?P (?P\w+?) (?:\.(?P[^._]+))? (?:_(?P[^._]+))? \.dylib$ ) cCs#tj|ƒ}|sdS|jƒS(s1 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(tDYLIB_REtmatchtNonet groupdict(tfilenametis_dylib((s+/sys/lib/python2.7/ctypes/macholib/dylib.pyRscCsdddddd„}tdƒdks0t‚tdƒdksHt‚tdƒ|dddƒkslt‚tdƒ|dd dd d ƒks–t‚td ƒ|dd ddƒks½t‚tdƒ|ddddƒksät‚tdƒ|ddddd ƒkst‚dS(Nc Ss%td|d|d|d|d|ƒS(Ntlocationtnamet shortnametversiontsuffix(tdict(RRR R R ((s+/sys/lib/python2.7/ctypes/macholib/dylib.pytd1s scompletely/invalidscompletely/invalide_debugs P/Foo.dylibtPs Foo.dylibtFoosP/Foo_debug.dylibsFoo_debug.dylibR tdebugs P/Foo.A.dylibs Foo.A.dylibtAsP/Foo_debug.A.dylibsFoo_debug.A.dylibt Foo_debugsP/Foo.A_debug.dylibsFoo.A_debug.dylib(RRtAssertionError(R ((s+/sys/lib/python2.7/ctypes/macholib/dylib.pyttest_dylib_info0s$*''t__main__(t__doc__tret__all__tcompileRRRt__name__(((s+/sys/lib/python2.7/ctypes/macholib/dylib.pyts