':type args: TestConfig'

def __init__(self, args):

    self.args = args
    self.integration_all_target = get_integration_all_target(self.args)
    self.integration_targets = list(walk_integration_targets())
    self.module_targets = list(walk_module_targets())
    self.compile_targets = list(walk_compile_targets())
    self.units_targets = list(walk_units_targets())
    self.sanity_targets = list(walk_sanity_targets())
    self.compile_paths = set((t.path for t in self.compile_targets))
    self.units_modules = set((t.module for t in self.units_targets if t.module))
    self.units_paths = set((a for t in self.units_targets for a in t.aliases))
    self.sanity_paths = set((t.path for t in self.sanity_targets))
    self.module_names_by_path = dict(((t.path, t.module) for t in self.module_targets))
    self.integration_targets_by_name = dict(((t.name, t) for t in self.integration_targets))
    self.integration_targets_by_alias = dict(((a, t) for t in self.integration_targets for a in t.aliases))
    self.posix_integration_by_module = dict(((m, t.name) for t in self.integration_targets if ('posix/' in t.aliases) for m in t.modules))
    self.windows_integration_by_module = dict(((m, t.name) for t in self.integration_targets if ('windows/' in t.aliases) for m in t.modules))
    self.network_integration_by_module = dict(((m, t.name) for t in self.integration_targets if ('network/' in t.aliases) for m in t.modules))
    self.prefixes = load_integration_prefixes()
    self.integration_dependencies = analyze_integration_target_dependencies(self.integration_targets)
    self.python_module_utils_imports = {}
