15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import inspect 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import os 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import sys 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.core import discover 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from telemetry.page import page_set 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Import all submodules' PageSet classes. 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)start_dir = os.path.dirname(os.path.abspath(__file__)) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)top_level_dir = os.path.abspath(os.path.join(start_dir, os.pardir, os.pardir)) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)base_class = page_set.PageSet 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)for cls in discover.DiscoverClasses( 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) start_dir, top_level_dir, base_class).values(): 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) setattr(sys.modules[__name__], cls.__name__, cls) 20