# Path: validator/decorator.py
# def version_range(guid, version, before=None, app_versions=None):
#     """Returns all values after (and including) `version` for the app `guid`"""
# 
#     if app_versions is None:
#         app_versions = validator.constants.APPROVED_APPLICATIONS
#     app_key = None
# 
#     # Support for shorthand instead of full GUIDs.
#     for app_guid, app_name in APPLICATIONS.items():
#         if app_name == guid:
#             guid = app_guid
#             break
# 
#     for key in app_versions.keys():
#         if app_versions[key]['guid'] == guid:
#             app_key = key
#             break
# 
#     if not app_key or version not in app_versions[app_key]['versions']:
#         raise Exception('Bad GUID or version provided for version range: %s'
#                         % version)
# 
#     all_versions = app_versions[app_key]['versions']
#     version_pos = all_versions.index(version)
#     before_pos = None
#     if before is not None and before in all_versions:
#         before_pos = all_versions.index(before)
# 
#     return all_versions[version_pos:before_pos]


from fnmatch import fnmatch as fnm
from validator.constants import (FF4_MIN, FIREFOX_GUID, FENNEC_GUID,
                                 THUNDERBIRD_GUID as TB_GUID, ANDROID_GUID,
                                 PACKAGE_DICTIONARY, )
from validator.decorator import version_range
import validator.decorator as decorator

        # Remove the file from the mandatory file list.
        #if file_ in mandatory_files:
        mfile_list = [mf for mf in mandatory if fnm(file_, mf)]
        if mfile_list:
            # Isolate the mandatory file pattern and remove it.
            mfile = mfile_list[0]
            mandatory.remove(mfile)
            continue

        # Test if the file is in the whitelist.
        if any(fnm(file_, wlfile) for wlfile in whitelisted):
            continue

        # Is it a directory?
        if file_.endswith('/'):
            continue

        # Is the file a sketch file?
        if test_unknown_file(err, file_):
            continue

        # Is it a whitelisted file type?
        if white_extensions is None or file_.split('.')[-1] in white_extensions:
            continue

        # Otherwise, report an error.
        err.warning(('testcases_packagelayout',
                     'test_layout',
                     'unknown_file'),

# Path: validator/decorator.py
# def version_range(guid, version, before=None, app_versions=None):
#     """Returns all values after (and including) `version` for the app `guid`"""
# 
#     if app_versions is None:
#         app_versions = validator.constants.APPROVED_APPLICATIONS
#     app_key = None
# 
#     # Support for shorthand instead of full GUIDs.
#     for app_guid, app_name in APPLICATIONS.items():
#         if app_name == guid:
#             guid = app_guid
#             break
# 
#     for key in app_versions.keys():
#         if app_versions[key]['guid'] == guid:
#             app_key = key
#             break
# 
#     if not app_key or version not in app_versions[app_key]['versions']:
#         raise Exception('Bad GUID or version provided for version range: %s'
#                         % version)
# 
#     all_versions = app_versions[app_key]['versions']
#     version_pos = all_versions.index(version)
#     before_pos = None
#     if before is not None and before in all_versions:
#         before_pos = all_versions.index(before)
# 
#     return all_versions[version_pos:before_pos]


# Path: validator/testcases/packagelayout.py
from fnmatch import fnmatch as fnm
from validator.constants import (FF4_MIN, FIREFOX_GUID, FENNEC_GUID,
                                 THUNDERBIRD_GUID as TB_GUID, ANDROID_GUID,
                                 PACKAGE_DICTIONARY, )
from validator.decorator import version_range
import validator.decorator as decorator


        # Remove the file from the mandatory file list.
        #if file_ in mandatory_files:
        mfile_list = [mf for mf in mandatory if fnm(file_, mf)]
        if mfile_list:
            # Isolate the mandatory file pattern and remove it.
            mfile = mfile_list[0]
            mandatory.remove(mfile)
            continue

        # Test if the file is in the whitelist.
        if any(fnm(file_, wlfile) for wlfile in whitelisted):
            continue

        # Is it a directory?
        if file_.endswith('/'):
            continue

        # Is the file a sketch file?
        if test_unknown_file(err, file_):
            continue

        # Is it a whitelisted file type?
        if white_extensions is None or file_.split('.')[-1] in white_extensions:
            continue

        # Otherwise, report an error.
        err.warning(('testcases_packagelayout',
                     'test_layout',
                     'unknown_file'),

                    'Unknown file found in add-on',