1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import inspect
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import os
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import sys
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.core import discover
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.page import page_set
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# Import all submodules' PageSet classes.
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)start_dir = os.path.dirname(os.path.abspath(__file__))
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)top_level_dir = os.path.dirname(start_dir)
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)base_class = page_set.PageSet
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)for cls in discover.DiscoverClasses(
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    start_dir, top_level_dir, base_class).values():
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  setattr(sys.modules[__name__], cls.__name__, cls)
20