MCPcopy
hub / github.com/jupyter/nbdime

github.com/jupyter/nbdime @7.0.4 sqlite

repository ↗ · DeepWiki ↗ · release 7.0.4 ↗
1,617 symbols 5,558 edges 192 files 471 documented · 29%
README

Installation | Documentation | Contributing | Development Install | Testing | License | Getting help

nbdime Jupyter Notebook Diff and Merge tools

Test codecov.io Documentation Status Google Group

nbdime provides tools for diffing and merging of Jupyter Notebooks.

  • nbdiff compare notebooks in a terminal-friendly way
  • nbmerge three-way merge of notebooks with automatic conflict resolution
  • nbdiff-web shows you a rich rendered diff of notebooks
  • nbmerge-web gives you a web-based three-way merge tool for notebooks
  • nbshow present a single notebook in a terminal-friendly way

Diffing notebooks in the terminal:

terminal-diff

Merging notebooks in a browser:

web-merge

Installation

Install nbdime with pip:

pip install nbdime

See the installation docs for more installation details and development installation instructions.

Documentation

See the latest documentation at https://nbdime.readthedocs.io.

See also description and discussion in the Jupyter Enhancement Proposal.

Contributing

If you would like to contribute to the project, please read our contributor documentation and the CONTRIBUTING.md.

Development Install

To install a development version of nbdime, you will need npm installed and available on your PATH while installing.

For a development install, enter on the command line:

pip install -e git+https://github.com/jupyter/nbdime#egg=nbdime

See installation documentation for additional detail, particularly related to performing a dev install for working on the browser script code.

Testing

Install the test requirements:

pip install nbdime[test]

To run Python tests locally, enter on the command line: pytest

To run Javascript tests locally, enter: npm test

Install the codecov browser extension to view test coverage in the source browser on github.

See testing documentation for additional detail.

License

We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.

All code is licensed under the terms of the revised BSD license.

Getting help

We encourage you to ask questions on the mailing list.

Resources

Extension points exported contracts — how you extend this code

IIterator (Interface)
(no doc) [3 implementers]
packages/nbdime/src/diff/model/string.ts
IOptions (Interface)
(no doc)
packages/labextension/src/widget.ts
IStringDiffModel (Interface)
(no doc) [2 implementers]
packages/nbdime/src/diff/model/string.ts
IApiResponse (Interface)
(no doc)
packages/labextension/src/actions.ts
IDiffModel (Interface)
(no doc) [1 implementers]
packages/nbdime/src/diff/model/common.ts
IMergeDecision (Interface)
(no doc)
packages/nbdime/src/merge/decisions.ts
IMovedArgs (Interface)
(no doc)
packages/nbdime/src/merge/widget/dragdrop.ts

Core symbols most depended-on inside this repo

append
called by 105
nbdime/diff_format.py
patch
called by 97
packages/nbdime/src/patch/generic.ts
opPatch
called by 90
packages/nbdime/src/diff/diffentries.ts
op_patch
called by 86
nbdime/diff_format.py
op_addrange
called by 84
nbdime/diff_format.py
apply_decisions
called by 83
nbdime/merging/decisions.py
decide_merge
called by 80
nbdime/merging/generic.py
op_remove
called by 78
nbdime/diff_format.py

Shape

Function 980
Method 422
Class 180
Interface 33
Enum 2

Languages

Python56%
TypeScript44%

Modules by API surface

packages/nbdime/src/common/mergeview.ts73 symbols
nbdime/prettyprint.py51 symbols
nbdime/tests/conftest.py50 symbols
packages/nbdime/src/common/dragpanel.ts44 symbols
nbdime/tests/test_cli_apps.py43 symbols
nbdime/merging/decisions.py41 symbols
nbdime/tests/test_merge_notebooks.py39 symbols
nbdime/tests/test_merge_notebooks_inline.py38 symbols
packages/nbdime/src/upstreaming/flexlayout.ts37 symbols
nbdime/webapp/nbdimeserver.py34 symbols
nbdime/args.py34 symbols
nbdime/diffing/notebooks.py33 symbols

Dependencies from manifests, versioned

@babel/core7.5.0 · 1×
@babel/preset-env7.5.0 · 1×
@codemirror/lang-markdown6.1.1 · 1×
@codemirror/legacy-modes6.3.2 · 1×
@codemirror/state6.2.0 · 1×
@codemirror/view6.14.0 · 1×
@fortawesome/fontawesome-free5.12.0 · 1×
@jupyterlab/application4.0.0 · 1×
@jupyterlab/apputils4.0.0 · 1×
@jupyterlab/builder4.0.0 · 1×
@jupyterlab/buildutils4.0.0 · 1×

For agents

$ claude mcp add nbdime \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact