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