Skip to main content

Contributor Covenant PyPI badge Anaconda-Server Badge License: BSD 3-Clause

Cyclebane

About

Transform directed acyclic graphs using map-reduce and groupby operations

This library is an attempt to merge the concepts of directed acyclic graphs (DAG) with array-like objects such as NumPy arrays, Pandas DataFrames, or Xarray/Scipp DataArrays. This could be useful for describing tasks graphs, e.g., when a series of tasks is applied to chunks of an array. These tasks also have an array structure. After an reduction operation of chunks, the graph loses this structure, i.e., only a subset of the graph's nodes has array structure. What if we could work with this structure, even though only parts of the graph follows it? And what if we could use the power of array slicing with named dimensions, or select by label? This is what Cyclebane tries to do.

Our initial goal is to support:

  • map operations of a DAG's source nodes over an array-like (https://docs.dask.org/en/latest/high-level-graphs.html). Cyclebane will effectively copy all descendants of those nodes, once for each array element. Cyclebane will support joint mappings of multiple source nodes by mapping over, e.g., a DataFrame with multiple columns, as well as chaining independent map operations at different source nodes. In the latter case this will effectively broadcast at descendant nodes that depend on multiple such source nodes.
  • reduce operations at descendants of mapped nodes. This will add a new node with edges to all copies of the mapped node being reduced. Cyclebane will support reducing only individual axes or all axes, similar to Numpy.
  • groupby operations similar to Pandas and Xarray (albeit more limited).
  • Positional and label-based indexing. Cyclebane will support selecting branches that were creating during map (or groupby) operations based on their indices. The graph structure will be left untouched, i.e., nodes after a reduce operation will be preserved, but fewer edges will lead to the reduce node.

See also Dask's High Level Graphs for a related concept (without the direct support for any such operations).

Installation

python -m pip install cyclebane

Release files for cyclebane 26.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cyclebane 26.9.0
File Size Uploaded
cyclebane-26.9.0.tar.gz 54.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cyclebane 26.9.0
File Interpreter ABI Platform
cyclebane-26.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 71.8 kB

Release files / cyclebane-26.9.0.tar.gz

Download URL cyclebane-26.9.0.tar.gz
Size 54.6 kB
Tags Source
SHA-256 checksum
How to use checksums
60ad6bf20cf0e4fd0217c3f56aaf83ed8e90e14497dca5875f84a4b81cab4c1a
BLAKE2b-256 checksum
How to use checksums
b085ee7312ffdce098b26afa03b54a81b2ecaddd53fb2149208f790fed6c1e79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release files / cyclebane-26.9.0-py3-none-any.whl

Download URL cyclebane-26.9.0-py3-none-any.whl
Size 17.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cbbbe12f92be969a9e46147416a494ad118ed3e2b7d9870a33eb84140d4d92dd
BLAKE2b-256 checksum
How to use checksums
858def78d56d41eb1bfa61350bb955038072966f8abf2ac01749368a1f6ee7d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

26.9.0 This release

2 release files

24.6.0

2 release files

24.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page