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 |