in mujoco_worldgen/util/types.py [0:0]
def extract_top_level_class(module, subclass):
'''
Searches module for a top-level class (in terms if inheritence)
of type subclass.
:param module: module in which we search for subclass
:param subclass: subclass that we search for
:return: object of type subclass.
'''
extracted_classes = []
for key, value in module.items():
if isinstance(value, types.ClassType) and issubclass(value, subclass):
extracted_classes.append([key, value, 0])
# Get the class which is the most top level.
assert len(extracted_classes) > 0, "Couldn't extract %s from module: %s" % (subclass, module)
top_level = extracted_classes[0]
for i in range(len(extracted_classes)):
for j in range(len(extracted_classes)):
if issubclass(extracted_classes[i][1], extracted_classes[j][1]):
extracted_classes[i][2] += 1
if extracted_classes[i][2] > top_level[2]:
top_level = extracted_classes[i]
return top_level[1]