# Path: validator/decorator.py
# TEST_TIERS = {}
# CLEANUP_FUNCTIONS = []
# def register_test(tier=1, expected_type=None, simple=False, versions=None):
#     def wrap(function):
# def register_cleanup(cleanup):
# def cleanup():
# def get_tiers():
# def get_tests(tier, type_=None):
# def version_range(guid, version, before=None, app_versions=None):
# 
# Path: validator/metadata_helpers.py
# VERSION_PATTERN = re.compile('^[-+*.\w]{,32}$')
# def validate_name(err, value, source):
# def validate_id(err, value, source):
# def validate_version(err, value, source):


from validator import decorator
from validator.constants import PACKAGE_THEME
from validator import metadata_helpers
                 'targetPlatform',
                 'requires',
                 'developer'}

    if (err.detected_type == PACKAGE_THEME or
        (err.subpackages and
         err.subpackages[0]['detected_type'] == PACKAGE_THEME)):
        must_exist_once.add('internalName')

    top_id = install.get_root_subject()

    predicates = {}

    for pred_raw in install.rdf.predicates(top_id, None):
        predicate = pred_raw.split('#')[-1]

        value = install.get_object(top_id, pred_raw)
        predicates[predicate] = value

        # Mark that the unpack element has been supplied
        if predicate == 'unpack':
            err.save_resource('em:unpack', value, pushable=True)

        elif predicate == 'bootstrap':
            err.save_resource('em:bootstrap', value)
            err.metadata['bootstrapped'] = value == 'true'

        elif predicate == 'multiprocessCompatible':
            err.save_resource('is_multiprocess_compatible', value == 'true')


# Path: validator/decorator.py
# TEST_TIERS = {}
# CLEANUP_FUNCTIONS = []
# def register_test(tier=1, expected_type=None, simple=False, versions=None):
#     def wrap(function):
# def register_cleanup(cleanup):
# def cleanup():
# def get_tiers():
# def get_tests(tier, type_=None):
# def version_range(guid, version, before=None, app_versions=None):
# 
# Path: validator/metadata_helpers.py
# VERSION_PATTERN = re.compile('^[-+*.\w]{,32}$')
# def validate_name(err, value, source):
# def validate_id(err, value, source):
# def validate_version(err, value, source):


# Path: validator/testcases/installrdf.py
from validator import decorator
from validator.constants import PACKAGE_THEME
from validator import metadata_helpers

                 'targetPlatform',
                 'requires',
                 'developer'}

    if (err.detected_type == PACKAGE_THEME or
        (err.subpackages and
         err.subpackages[0]['detected_type'] == PACKAGE_THEME)):
        must_exist_once.add('internalName')

    top_id = install.get_root_subject()

    predicates = {}

    for pred_raw in install.rdf.predicates(top_id, None):
        predicate = pred_raw.split('#')[-1]

        value = install.get_object(top_id, pred_raw)
        predicates[predicate] = value

        # Mark that the unpack element has been supplied
        if predicate == 'unpack':
            err.save_resource('em:unpack', value, pushable=True)

        elif predicate == 'bootstrap':
            err.save_resource('em:bootstrap', value)
            err.metadata['bootstrapped'] = value == 'true'

        elif predicate == 'multiprocessCompatible':
            err.save_resource('is_multiprocess_compatible', value == 'true')


        elif predicate == 'strictCompatibility':