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