def get_group_members(self, group, in_model=True, head_nodes_only=True,
                          expand_transmission=True):
        def _get(self, group, memberset):
            members = [i for i in self.parents if self.parents[i] == group]
            if members:
                for i, member in enumerate(members):
                    if not head_nodes_only:
                        memberset.add(member)
                    members[i] = _get(self, member, memberset)
                return members
            else:
                memberset.add(group)
        if not group in self.parents:
            return None
        memberset = set()
        _get(self, group, memberset)  # Fills memberset
        if in_model:
            memberset = set([y for y in memberset
                             if (y in self.data._y
                                 or y in self.data.transmission_y)])
            # Expand transmission techs
            if expand_transmission:
                for y in list(memberset):
                    if y in self.data.transmission_y:
                        memberset.remove(y)
                        memberset.update([yt
                                          for yt in self.data._y_transmission
                                          if yt.startswith(y + ':')])
        return list(memberset)
Return a new SQLAlchemy engine.
dataset/ETHPy150Open calliope-project/calliope/calliope/core.py/Model.get_group_members--crossover with--dataset/ETHPy150Open openstack/oslo.db/oslo_db/sqlalchemy/engines.py/create_engine