Skip to main content

Build and analyze dependency graphs from Excel workbooks

Project description

excel-grapher

Build and analyze dependency graphs from Excel workbooks, evaluate formulas with Excel semantics, and export standalone Python code.

Documentation: https://teal-insights.github.io/excel-grapher/

Why this exists

  • Transpilation support: trace formula dependencies to enable Excel → Python translation.
  • Interpretability: visualize and sanity-check spreadsheet logic (GraphViz, Mermaid, NetworkX).
  • Performance-minded: focuses on targeted dependency closure from specific output cells/ranges.
  • Excel semantics in Python: run workbook logic in-process with a full Excel-like evaluator.
  • Exportable: emit standalone Python packages that embed only the runtime surface you need.

Library layout

The unified distribution is excel-grapher and exposes a single import package, excel_grapher, with five main subpackages:

  • excel_grapher/core/ — shared semantic types, coercions, and scalar operators.
  • excel_grapher/runtime/ — Excel-equivalent function implementations and runtime semantics.
  • excel_grapher/grapher/ — workbook loading, graph extraction, and visualization logic.
  • excel_grapher/evaluator/FormulaEvaluator: an Excel emulator for recomputing formulas in the extracted graph in Python.
  • excel_grapher/exporter/CodeGenerator: an transpiler for exporting the extracted graph as a standalone Python library.

Typical imports:

from excel_grapher.grapher import create_dependency_graph, DependencyGraph
from excel_grapher.evaluator import FormulaEvaluator
from excel_grapher.exporter import CodeGenerator
from excel_grapher.core import XlError  # and other shared types, if needed

Installation

This is a proprietary package. Install from the private GitHub repository:

Using uv (recommended):

# Basic install
uv add git+https://github.com/Teal-Insights/excel-grapher

# With NetworkX support
uv add "excel-grapher[networkx] @ git+https://github.com/Teal-Insights/excel-grapher"

# With all optional dependencies
uv add "excel-grapher[all] @ git+https://github.com/Teal-Insights/excel-grapher"

Using pip:

pip install git+https://github.com/Teal-Insights/excel-grapher

# With extras:
pip install "excel-grapher[networkx] @ git+https://github.com/Teal-Insights/excel-grapher"

Note: You must have access to the Teal-Insights GitHub organization and appropriate SSH keys or tokens configured.


High-level usage

The library supports a three-stage pipeline:

  1. Build a dependency graph from an Excel workbook (excel_grapher.grapher).
  2. Evaluate formulas with Excel semantics over that graph (excel_grapher.evaluator.FormulaEvaluator).
  3. Export standalone Python code that embeds only the required runtime surface (excel_grapher.exporter.CodeGenerator).

A minimal end‑to‑end example:

from pathlib import Path

from excel_grapher.grapher import create_dependency_graph
from excel_grapher.evaluator import FormulaEvaluator
from excel_grapher.exporter import CodeGenerator

workbook_path = Path("model.xlsx")
targets = ["Sheet1!A10"]

# 1) Build a dependency graph
graph = create_dependency_graph(workbook_path, targets, load_values=True)
print(len(graph))  # number of visited nodes

# 2) Evaluate with Excel semantics
with FormulaEvaluator(graph) as ev:
    results = ev.evaluate(targets)

# 3) Export standalone Python code
code = CodeGenerator(graph).generate(targets)

Series bindings

Optional sidecar manifests (.bindings.yaml) declare structured input/output APIs for exported code — set_* and compute_* functions over Records. Validate sidecars from the shell with excel-grapher bindings validate. See the Series bindings guide and Code export guide.

User guide

Detailed documentation lives in the User Guide:

Topic Page
Dependency graphs Read guide
Visualization Read guide
Formula evaluation Read guide
End-to-end demo Read guide
Series bindings Read guide
Code export Read guide
Parity testing Read guide
Contributing Read guide

Examples

Hands-on walkthroughs (Markdown on GitHub):

Topic Walkthrough
Graph extraction extraction_basics.md
Code generation codegen_basics.md
Series bindings series_bindings.md
Induced graph induced_graph.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

excel_grapher-2.1.2.tar.gz (476.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

excel_grapher-2.1.2-py3-none-any.whl (308.0 kB view details)

Uploaded Python 3

File details

Details for the file excel_grapher-2.1.2.tar.gz.

File metadata

  • Download URL: excel_grapher-2.1.2.tar.gz
  • Upload date:
  • Size: 476.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for excel_grapher-2.1.2.tar.gz
Algorithm Hash digest
SHA256 03a012d9db5dd052f15b313c0a689fb9e8811505ec7644a8b74044255a91eed9
MD5 c54c5ee70310aa1c62469fc2a57fa23e
BLAKE2b-256 59b6ce7ba8a5f888af12b4a6dfa57749a8b1664f58578a69f3bdf1c640f41cd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for excel_grapher-2.1.2.tar.gz:

Publisher: publish.yml on Teal-Insights/excel-grapher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file excel_grapher-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: excel_grapher-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 308.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for excel_grapher-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 53ddf66de762468244b2e4656beae1fe716840046bc53ec97bbab650755d6173
MD5 185b3ca0f4c7a071fad91ed6ba851670
BLAKE2b-256 88a077245ee3feb8eb074e1c78dc7c89c05932e446a139de03951d2af24fa54e

See more details on using hashes here.

Provenance

The following attestation bundles were made for excel_grapher-2.1.2-py3-none-any.whl:

Publisher: publish.yml on Teal-Insights/excel-grapher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page