Esempio n. 1
0
class IndexHits(extends(IndexHits)):
    def __len__(self):
        return self.size() if self.size() > 0 else 0

    def __getitem__(self, item):
        if isinstance(item, slice):
            # Memory-hogging slicing impl
            return list(self).__getitem__(item)
        elif isinstance(item, int) and item >= 0:
            for i in range(item):
                self.next()
            return self.next()
Esempio n. 2
0
    class IrrelevantClassName(extends(PathClass)):
        @property
        def start(self):
            return self.startNode()

        @property
        def end(self):
            return self.endNode()

        @property
        def last_relationship(self):
            return self.lastRelationship()

        @property
        def nodes(self):
            it = self._super__nodes().iterator()
            while it.hasNext():
                yield it.next()

        @property
        def relationships(self):
            it = self._super__relationships().iterator()
            while it.hasNext():
                yield it.next()

        def __str__(self):
            out = []
            current = self.start
            for rel in self.relationships:
                out.append('({0})'.format(current.id))
                if rel.start == current:
                    out.append('-[{0},{1}]->'.format(rel.type, rel.id))
                else:
                    out.append('<-[{0},{1}]-'.format(rel.type, rel.id))
                current = rel.other_node(current)

            # Print last node
            out.append('({0})'.format(current.id))

            return ''.join(out)

        def __repr__(self):
            return self.toString()

        def __len__(self):
            return self.length()

        def __iter__(self):
            it = self.iterator()
            while it.hasNext():
                yield it.next()
Esempio n. 3
0
class TraverserImpl(extends(TraverserImpl)):
    
    def __iter__(self):
        it = self.iterator()
        while it.hasNext():
            yield it.next()
            
    @property
    def last_relationship(self): return self.lastRelationship()
    
    @property
    def nodes(self): return self._super__nodes()
    
    @property
    def relationships(self): return self._super__relationships()
Esempio n. 4
0
class TraversalDescriptionImpl(extends(TraversalDescriptionImpl)):
    def relationships(self, reltype, direction=Direction.ANY):

        if type(reltype) in strings:
            reltype = rel_type(reltype)
        elif isinstance(reltype, DirectionalType):
            direction = reltype.dir
            reltype = reltype.type
        return self._super__relationships(reltype, direction)

    def evaluator(self, ev):
        if hasattr(ev, '__call__'):
            ev = DynamicEvaluator(ev)
        return self._super__evaluator(ev)

    def traverse(self, *start_nodes):
        return self._super__traverse(start_nodes)
Esempio n. 5
0
class Index(extends(Index)):
    def __getitem__(self, key):
        return IndexColumn(self, key)

    def __delitem__(self, item):
        self.remove(item)