示例#1
0
    def bothE(self, from_to, *edge_classes, **kwargs):
        """Get outgoing/incoming edges from/to vertex or class.

        :param from_to: Vertex id, class, or class name
        :param edge_classes: Filter by these edges
        :param **kwargs: conditons
        """
        condition_str = self._get_condition_str(**kwargs)
        if condition_str:
            sql_string = 'SELECT EXPAND( bothE({0}) ) FROM {1}{2}'.format(
                ','.join(Graph.coerce_class_names_to_quoted(edge_classes)),
                self.coerce_class_names(from_to), condition_str)
        else:
            sql_string = 'SELECT EXPAND( bothE({0}) ) FROM {1}'.format(
                ','.join(Graph.coerce_class_names_to_quoted(edge_classes)),
                self.coerce_class_names(from_to))
        records = self.client.query(sql_string, -1)
        return [self.edge_from_record(r) for r in records] \
            if records else []
示例#2
0
    def in_(self, to, *edge_classes, **kwargs):
        """Get adjacent incoming vertexes to vertex or class.

        :param to: Vertex id, class, or class name
        :param edge_classes: Filter by these edges
        :param **kwargs: conditons
        """

        condition_str = self._get_condition_str(**kwargs)
        if condition_str:
            sql_string = 'SELECT EXPAND( in({0}) ) FROM {1}{2}'.format(
                ','.join(Graph.coerce_class_names_to_quoted(edge_classes)),
                self.coerce_class_names(to), condition_str)
        else:
            sql_string = 'SELECT EXPAND( in({0}) ) FROM {1}'.format(
                ','.join(Graph.coerce_class_names_to_quoted(edge_classes)),
                self.coerce_class_names(to))
        records = self.client.query(sql_string, -1)
        return [self.vertex_from_record(v) for v in records] \
            if records else []