OLD | NEW |
(Empty) | |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 from telemetry.core import discover |
| 6 from telemetry.internal.util import camel_case |
| 7 |
| 8 |
| 9 def DiscoverClasses(start_dir, top_level_dir, base_class, |
| 10 directly_constructable=False): |
| 11 return discover.DiscoverClasses(start_dir, top_level_dir, base_class, |
| 12 directly_constructable=directly_constructable) |
| 13 |
| 14 def DiscoverClassesByClassName( |
| 15 start_dir, top_level_dir, base_class, directly_constructable=False): |
| 16 classes_dict = {} |
| 17 classes = discover.DiscoverClasses( |
| 18 start_dir, top_level_dir, base_class, |
| 19 directly_constructable=directly_constructable) |
| 20 for class_obj in classes: |
| 21 classes_dict[camel_case.ToUnderscore(class_obj.__name__)] = class_obj |
| 22 return classes_dict |
| 23 |
| 24 def MaybeGetInstanceOfClass(target, start_dir, top_level_dir, cls): |
| 25 classes = DiscoverClassesByClassName( |
| 26 start_dir, top_level_dir, cls, directly_constructable=True) |
| 27 return classes[target]() if target in classes else None |
OLD | NEW |