-# Copyright 2015 Intel Corporation.
+# Copyright 2015-2017 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
interface=self._interface)
results = []
- for (name, mod) in list(out.items()):
+ # sort modules to produce the same output everytime
+ for (name, mod) in sorted(out.items()):
desc = (mod.__doc__ or 'No description').strip().split('\n')[0]
results.append((name, desc))
- output = [
- 'Classes derived from: ' + self._interface.__name__ + '\n======\n']
+ header = 'Classes derived from: ' + self._interface.__name__
+ output = [header + '\n' + '=' * len(header) + '\n']
for (name, desc) in results:
output.append('* %-18s%s' % ('%s:' % name, desc))
# find all classes derived from given interface, but suppress
# interface itself and any abstract class starting with iface name
gens = dict((k, v) for (k, v) in list(mod.__dict__.items())
- if type(v) == type and
+ if isinstance(v, type) and
issubclass(v, interface) and
not k.startswith(interface.__name__))
if gens: