
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \™  ã               @   s>   d Z ddlZdgZejdƒZdd„ Zdd„ Zedkr:eƒ  dS )	z%
Generic framework path manipulation
é    NÚframework_infoz¢(?x)
(?P<location>^.*)(?:^|/)
(?P<name>
    (?P<shortname>\w+).framework/
    (?:Versions/(?P<version>[^/]+)/)?
    (?P=shortname)
    (?:_(?P<suffix>[^_]+))?
)$
c             C   s   t j| ƒ}|sdS |jƒ S )a}  
    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)ÚSTRICT_FRAMEWORK_REÚmatchÚ	groupdict)ÚfilenameZis_framework© r   ú1/usr/lib64/python3.6/ctypes/macholib/framework.pyr      s    
c              C   sØ   ddd„} t dƒd kst‚t dƒd ks*t‚t dƒd ks:t‚t dƒd ksJt‚t dƒ| dd	d
ƒksbt‚t dƒ| ddd
dd�ks~t‚t dƒd ksŽt‚t dƒd ksžt‚t dƒ| ddd
dƒks¸t‚t dƒ| ddd
ddƒksÔt‚d S )Nc             S   s   t | ||||d�S )N)ÚlocationÚnameÚ	shortnameÚversionÚsuffix)Údict)r	   r
   r   r   r   r   r   r   Úd-   s    ztest_framework_info.<locals>.dzcompletely/invalidzcompletely/invalid/_debugzP/F.frameworkzP/F.framework/_debugzP/F.framework/FÚPzF.framework/FÚFzP/F.framework/F_debugzF.framework/F_debugÚdebug)r   zP/F.framework/VersionszP/F.framework/Versions/AzP/F.framework/Versions/A/FzF.framework/Versions/A/FÚAz P/F.framework/Versions/A/F_debugzF.framework/Versions/A/F_debug)NNNNN)r   ÚAssertionError)r   r   r   r   Útest_framework_info,   s    
r   Ú__main__)Ú__doc__ÚreÚ__all__Úcompiler   r   r   Ú__name__r   r   r   r   Ú<module>   s   