Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
06dbc2e
redesign, refactor property filters
shivamka1 Oct 2, 2025
61145c9
takes a reference
shivamka1 Oct 6, 2025
261385b
rework validation
shivamka1 Oct 7, 2025
4281d4e
fix arbitrary list, fix tests
shivamka1 Oct 8, 2025
fdce926
merge python traits, fix tests, add more validations
shivamka1 Oct 8, 2025
6de1a5c
rework gql filtering apis, fix tests
shivamka1 Oct 14, 2025
560fc18
impl nodes select filtering in gql
shivamka1 Oct 21, 2025
bf8c67a
change semantics of filters in gql, add missing filter apis in edges,…
shivamka1 Oct 21, 2025
3c17197
add more edge filter tests
shivamka1 Oct 22, 2025
10224c4
add filtering to path from node, add tests
shivamka1 Oct 22, 2025
fd1253a
impl window filter
shivamka1 Oct 26, 2025
520ad5c
impl window filter in python, add tests
shivamka1 Oct 27, 2025
c4f388b
impl gql window filter, add tests
shivamka1 Oct 28, 2025
3251d27
ref
shivamka1 Oct 28, 2025
ff7ff9d
impl edge node filtering, add few tests
shivamka1 Oct 29, 2025
95a4549
rid redundant code
shivamka1 Oct 31, 2025
edd66b7
fix call to filter nodes
shivamka1 Oct 31, 2025
a6ca33a
rid dead code
shivamka1 Oct 31, 2025
9242e98
Integrating edge endpoint filtering mechanism into Python using the s…
arienandalibi Nov 1, 2025
5902056
Added src/dst endpoint filtering support for exploded edge filters in…
arienandalibi Nov 3, 2025
0ab738a
Added src/dst endpoint filtering support for exploded edge filters in…
arienandalibi Nov 4, 2025
277ce21
Added tests from previous branch, some of them fail
arienandalibi Nov 4, 2025
64ac8eb
Fixed DynFilterOps implementations for EndpointWrapper<T> types. Endp…
arienandalibi Nov 4, 2025
a377f00
Changed many impls to be blanket implementations using traits, especi…
arienandalibi Nov 5, 2025
a6493dc
Merge branch 'master_filter' into features/edge-srcdst
shivamka1 Nov 10, 2025
2807c1c
rid dead code
shivamka1 Nov 10, 2025
cd13d2f
nodeops suggestions from lucas
shivamka1 Nov 11, 2025
ef8eefb
start fixing some apis
ljeub-pometry Nov 12, 2025
afd2252
fixed most of the compilation errors
ljeub-pometry Nov 12, 2025
d825be9
fix all the python problems except for actually implementing the pyth…
ljeub-pometry Nov 12, 2025
908be83
finish ref, fix tests
shivamka1 Nov 19, 2025
adf8d75
redone
shivamka1 Nov 20, 2025
b3c767c
fix
shivamka1 Nov 20, 2025
8822288
more changes
shivamka1 Nov 20, 2025
0865b17
start fixing infinite trait bound recursion
ljeub-pometry Nov 20, 2025
76c817a
rid filtered graphs
shivamka1 Nov 20, 2025
e8eb639
rid nodetypefilteredgraph
shivamka1 Nov 20, 2025
bda5e77
add review suggestions
shivamka1 Nov 20, 2025
51e97c3
fix infinite type recursion
ljeub-pometry Nov 21, 2025
dfa0d37
fmt, fix recursion issue in search
shivamka1 Nov 23, 2025
0edc36f
impl py
shivamka1 Nov 25, 2025
2c976c8
Do not rely on Wrap for the trait bounds in the builder API as the co…
ljeub-pometry Nov 25, 2025
1a6fc74
fix gql, tests
shivamka1 Nov 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 72 additions & 81 deletions python/python/raphtory/filter/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,14 @@ import pyvis # type: ignore

__all__ = [
"FilterExpr",
"FilterOps",
"PropertyFilterOps",
"Node",
"EdgeFilterOp",
"EdgeEndpoint",
"Edge",
"EdgeEndpoint",
"EdgeFilterOp",
"EdgeIdFilterOp",
"ExplodedEdge",
"FilterOps",
"PropertyFilterOps",
"NodeWindow",
"EdgeWindow",
"ExplodedEdgeWindow",
]

class FilterExpr(object):
Expand All @@ -53,45 +50,7 @@ class FilterExpr(object):
def __ror__(self, value):
"""Return value|self."""

class PropertyFilterOps(FilterOps):
def temporal(self): ...

class Node(object):
@staticmethod
def id():
"""
Filter node by id

Returns:
NodeFilterBuilder: A filter builder for filtering by node id
"""

@staticmethod
def metadata(name): ...
@staticmethod
def name():
"""
Filter node by name

Returns:
NodeFilterBuilder: A filter builder for filtering by node name
"""

@staticmethod
def node_type():
"""
Filter node by type

Returns:
NodeFilterBuilder: A filter builder for filtering by node type
"""

@staticmethod
def property(name): ...
@staticmethod
def window(py_start, py_end): ...

class EdgeFilterOp(object):
class FilterOps(object):
def __eq__(self, value):
"""Return self==value."""

Expand All @@ -110,39 +69,62 @@ class EdgeFilterOp(object):
def __ne__(self, value):
"""Return self!=value."""

def all(self): ...
def any(self): ...
def avg(self): ...
def contains(self, value): ...
def ends_with(self, value): ...
def fuzzy_search(self, value, levenshtein_distance, prefix_match): ...
def first(self): ...
def fuzzy_search(self, prop_value, levenshtein_distance, prefix_match): ...
def is_in(self, values): ...
def is_none(self): ...
def is_not_in(self, values): ...
def is_some(self): ...
def last(self): ...
def len(self): ...
def max(self): ...
def min(self): ...
def not_contains(self, value): ...
def starts_with(self, value): ...
def sum(self): ...

class EdgeEndpoint(object):
def id(self): ...
def name(self): ...
class PropertyFilterOps(FilterOps):
def temporal(self): ...

class Edge(object):
class Node(object):
@staticmethod
def dst(): ...
def id(): ...
@staticmethod
def metadata(name): ...
@staticmethod
def property(name): ...
def name(): ...
@staticmethod
def src(): ...
def node_type(): ...
@staticmethod
def property(name): ...
@staticmethod
def window(py_start, py_end): ...
def window(start, end): ...

class ExplodedEdge(object):
class Edge(object):
@staticmethod
def dst(): ...
@staticmethod
def metadata(name): ...
@staticmethod
def property(name): ...
@staticmethod
def window(py_start, py_end): ...
def src(): ...
@staticmethod
def window(start, end): ...

class FilterOps(object):
class EdgeEndpoint(object):
def id(self): ...
def metadata(self, name): ...
def name(self): ...
def node_type(self): ...
def property(self, name): ...

class EdgeFilterOp(object):
def __eq__(self, value):
"""Return self==value."""

Expand All @@ -161,36 +143,45 @@ class FilterOps(object):
def __ne__(self, value):
"""Return self!=value."""

def all(self): ...
def any(self): ...
def avg(self): ...
def contains(self, value): ...
def ends_with(self, value): ...
def first(self): ...
def fuzzy_search(self, prop_value, levenshtein_distance, prefix_match): ...
def fuzzy_search(self, value, levenshtein_distance, prefix_match): ...
def is_in(self, values): ...
def is_none(self): ...
def is_not_in(self, values): ...
def is_some(self): ...
def last(self): ...
def len(self): ...
def max(self): ...
def min(self): ...
def not_contains(self, value): ...
def starts_with(self, value): ...
def sum(self): ...

class PropertyFilterOps(FilterOps):
def temporal(self): ...
class EdgeIdFilterOp(object):
def __eq__(self, value):
"""Return self==value."""

class NodeWindow(object):
def metadata(self, name): ...
def property(self, name): ...
def __ge__(self, value):
"""Return self>=value."""

class EdgeWindow(object):
def metadata(self, name): ...
def property(self, name): ...
def __gt__(self, value):
"""Return self>value."""

class ExplodedEdgeWindow(object):
def metadata(self, name): ...
def property(self, name): ...
def __le__(self, value):
"""Return self<=value."""

def __lt__(self, value):
"""Return self<value."""

def __ne__(self, value):
"""Return self!=value."""

def contains(self, value): ...
def ends_with(self, value): ...
def fuzzy_search(self, value, levenshtein_distance, prefix_match): ...
def is_in(self, values): ...
def is_not_in(self, values): ...
def not_contains(self, value): ...
def starts_with(self, value): ...

class ExplodedEdge(object):
@staticmethod
def metadata(name): ...
@staticmethod
def property(name): ...
@staticmethod
def window(start, end): ...
Loading