Example #1
0
    def delete_group(self, domain_name, group_id):
        """
        Delete a passed-in group id
        """
        # FIXME add snaity check here?
        # add to list of groups for this domain
        group_coords = util.unique_axes_pos(
            self._get_axispos_for_domain(domain_name), group_id,
            [self.domain_groups[dn] for dn in self.axes])

        for g in group_coords:
            del self.components[g]
            del self.components_dp_count[g]
        self.domain_groups[domain_name].remove(group_id)
Example #2
0
 def delete_group(self, domain_name, group_id):
     """
     Delete a passed-in group id
     """
     # FIXME add snaity check here? 
     # add to list of groups for this domain
     group_coords = util.unique_axes_pos(self._get_axispos_for_domain(domain_name), 
                                     group_id, 
                                         [self.domain_groups[dn] for dn in self.axes])
                    
     for g in group_coords:
         del self.components[g] 
         del self.components_dp_count[g]
     self.domain_groups[domain_name].remove(group_id)
Example #3
0
    def remove_entity_from_group(self, type_name, group_id, entity_pos):
        """
        """
        uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, 
                                   [range(g) for n, g in self.relation_def])

        for p in uap:
            group_coord = self._get_groups(p)
            v = self.data[p]
            if -1 not in group_coord: # FIXME is this the correct way? 
                cur_ss = self.suffstats[group_coord]
                self.suffstats[group_coord] = self.model.ss_rem(cur_ss, self.hps,v)
                self.component_dp_count[group_coord] -= 1

        self.group_assignments[type_name][entity_pos] = -1
Example #4
0
    def remove_entity_from_group(self, type_name, group_id, entity_pos):
        """
        """
        uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos,
                                   [range(g) for n, g in self.relation_def])

        for p in uap:
            group_coord = self._get_groups(p)
            v = self.data[p]
            if -1 not in group_coord:  # FIXME is this the correct way?
                cur_ss = self.suffstats[group_coord]
                self.suffstats[group_coord] = self.model.ss_rem(
                    cur_ss, self.hps, v)
                self.component_dp_count[group_coord] -= 1

        self.group_assignments[type_name][entity_pos] = -1
Example #5
0
    def add_entity_to_group(self, type_name, group_id, entity_pos):
        """
        """

        uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos, 
                                   [range(g) for n, g in self.relation_def])
        assert self.group_assignments[type_name][entity_pos] == NOT_ASSIGNED

        self.group_assignments[type_name][entity_pos] = group_id

        for p in uap:
            group_coord = self._get_groups(p)
            v = self.data[p]
            if -1 not in group_coord: # FIXME is this the correct way? 
                cur_ss = self.suffstats[group_coord]
                self.suffstats[group_coord] = self.model.ss_add(cur_ss, self.hps, v)
                self.component_dp_count[group_coord] += 1
Example #6
0
    def add_entity_to_group(self, type_name, group_id, entity_pos):
        """
        """

        uap = util.unique_axes_pos(self.get_axes_pos(type_name), entity_pos,
                                   [range(g) for n, g in self.relation_def])
        assert self.group_assignments[type_name][entity_pos] == NOT_ASSIGNED

        self.group_assignments[type_name][entity_pos] = group_id

        for p in uap:
            group_coord = self._get_groups(p)
            v = self.data[p]
            if -1 not in group_coord:  # FIXME is this the correct way?
                cur_ss = self.suffstats[group_coord]
                self.suffstats[group_coord] = self.model.ss_add(
                    cur_ss, self.hps, v)
                self.component_dp_count[group_coord] += 1
Example #7
0
    def create_group(self, domain_name, rng):
        """
        Return a group ID, a unique group handle. 
        Do not use the RNG in most situations
        """
        new_gid = self.group_id
        self.domain_groups[domain_name].add(new_gid)

        # add to list of groups for this domain
        group_coords = util.unique_axes_pos(
            self._get_axispos_for_domain(domain_name), new_gid,
            [self.domain_groups[dn] for dn in self.axes])

        for g in group_coords:
            self.components[g] = self.model.create_ss(self.hps)
            self.components_dp_count[g] = 0
        self.group_id += 1
        return new_gid
Example #8
0
    def create_group(self, domain_name, rng):
        """
        Return a group ID, a unique group handle. 
        Do not use the RNG in most situations
        """
        new_gid = self.group_id
        self.domain_groups[domain_name].add(new_gid)

        # add to list of groups for this domain
        group_coords = util.unique_axes_pos(self._get_axispos_for_domain(domain_name), 
                                            new_gid, 
                                    [self.domain_groups[dn] for dn in self.axes])
                       
        for g in group_coords:
            self.components[g] = self.model.create_ss(self.hps)
            self.components_dp_count[g] = 0
        self.group_id += 1
        return new_gid