ó
|
Z\¬Qc @ sV d Z d d l Z d g Z e j d Z d Z d Z e d k rR e n d S( s%
|
Generic framework path manipulation
|
iÿÿÿÿNt framework_infos¢ (?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( 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( t STRICT_FRAMEWORK_REt matcht Nonet |