graflo.db.cypher.direction¶
Relationship-pattern direction for Cypher-family backends.
Neo4j, Memgraph and FalkorDB have no undirected relationship type, but they store relationships bidirectionally, so matching without an arrow costs the same as matching with one. Direction is therefore purely a pattern-rendering question here — which is why all three share this one helper.
cypher_rel_pattern(edge_type, direction=EdgeDirection.OUT, *, variable='r', min_hops=None, max_hops=None)
¶
Render the relationship pattern between two node patterns.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
edge_type
|
str | None
|
Relationship type to filter on, or None for any type. |
required |
direction
|
EdgeDirection
|
Orientation followed from the left-hand (anchor) node. |
OUT
|
variable
|
str
|
Relationship variable name bound in the pattern. |
'r'
|
min_hops
|
int | None
|
Lower bound for a variable-length pattern. Defaults to 1 when only max_hops is given. |
None
|
max_hops
|
int | None
|
Upper bound for a variable-length pattern. Omitting both keeps the single-hop form, which is what every existing caller wants. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
e.g. |
str
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
if the hop bounds are non-positive or inverted — an
unbounded |