def __init__(self, grouping, parent=None): self.name = 'groups' self.parent = parent self.root = self self.root = parent.root if parent else self self.groups = [] self.sorter = getattr(grouping, 'sorter', None) if hasattr(parent, 'sorter'): self.sorter = parent.sorter super(Group, self).__init__(grouping) add_method(Node, 'walk_%s_groups' % self.name, Group.walk_groups_in_node, group=self) add_method(Node, 'walk_resources_grouped_by_%s' % self.name, Group.walk_resources, group=self) add_property(Resource, '%s_group' % self.name, Group.get_resource_group, group=self) add_method(Resource, 'walk_%s_groups' % self.name, Group.walk_resource_groups, group=self)
def __init__(self, grouping, parent=None): self.name = 'groups' self.parent = parent self.root = self self.root = parent.root if parent else self self.groups = [] self.sorter = getattr(grouping, 'sorter', None) self.archives = getattr(grouping, 'archives', None).to_dict() if getattr(grouping, 'archives', None) else None #NOT_HAPPY: but conversion to dict from expando is required if hasattr(parent, 'sorter'): self.sorter = parent.sorter super(Group, self).__init__(grouping) if hasattr(parent, 'archives'): self.archives = parent.archives add_method(Node, 'walk_%s_groups' % self.name, Group.walk_groups_in_node, group=self) add_method(Node, 'walk_resources_grouped_by_%s' % self.name, Group.walk_resources, group=self) add_property(Resource, '%s_group' % self.name, Group.get_resource_group, group=self) add_method(Resource, 'walk_%s_groups' % self.name, Group.walk_resource_groups, group=self)