Skip to content

Conversation

@lmeyerov
Copy link
Contributor

@lmeyerov lmeyerov commented Nov 22, 2025

Summary

  • add min/max hop traversal bounds (GFQL + Python hop) and optional hop labeling (nodes/edges, optional seeds) with collision-safe names; legacy defaults preserved and output_min/output_max removed
  • params renamed to label_node_hops / label_edge_hops / label_seeds for clarity across API, GFQL safelist/types, docs, and tests
  • docs: cheatsheet hop params; GFQL translate guide bounded-hop snippet; new notebook docs/source/gfql/hop_bounds.ipynb shows bounded hop + labels

Examples

  • Python hop bounded with labels:
g.hop( nodes=pd.DataFrame({g._node: ['a']}), min_hops=2, max_hops=3, label_node_hops='hop', label_edge_hops='edge_hop', label_seeds=True )
  • GFQL call path:
g.gfql([{ 'type': 'Call', 'function': 'hop', 'params': { 'nodes': seeds, 'min_hops': 1, 'max_hops': 2, 'label_node_hops': 'hop' } }])
  • Translation guide bounded alternative:
g.hop( nodes=pd.DataFrame({g._node: ['Alice']}), min_hops=2, max_hops=2, label_node_hops='hop' )

Testing

  • PYTHONPATH=. uv run pytest graphistry/tests/test_compute_hops.py
  • PYTHONPATH=. uv run --with mypy==1.11.2 mypy graphistry/compute/hop.py graphistry/tests/test_compute_hops.py graphistry/Plottable.py graphistry/compute/gfql/call_safelist.py graphistry/models/gfql/types/call.py # baseline missing-stub/abstract warnings in tests
  • CI matrix previously green (Python 3.8-3.14, docs/test-docs/CodeQL); awaiting re-run after renames
@lmeyerov lmeyerov linked an issue Nov 24, 2025 that may be closed by this pull request
@lmeyerov lmeyerov force-pushed the feature/hop-range-labels branch from 64c8458 to e5d7bb1 Compare December 1, 2025 01:10
@lmeyerov lmeyerov force-pushed the feature/hop-range-labels branch from 572aacf to ba0beb2 Compare December 1, 2025 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants