'Examines an asset path and breaks it apart if it is versioned,
returning both the asset digest and the unversioned asset path,
which will normally be an AssetKey.'

@staticmethod
def parse_versioned_asset_path(path):

    asset_digest = None
    asset_path = path
    if StaticContent.is_versioned_asset_path(asset_path):
        result = re.match(VERSIONED_ASSETS_PATTERN, asset_path)
        if (result is not None):
            asset_digest = result.groups()[1]
        asset_path = re.sub(VERSIONED_ASSETS_PATTERN, '', asset_path)
    return (asset_digest, asset_path)
