From 9fb19de480444fca16910c18244e8facd67c4c57 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 25 Mar 2026 08:16:18 +0000
Subject: [PATCH] Remove jupyter notebook build, binder integration, and
related files
- Delete CI workflows: build-push-notebooks.yaml, test-notebooks.yml, test-pr.yaml
- Delete notebook generation: generate_ipynb.sh, pandoc_filters/
- Delete Binder configs: environment.yml, postBuild, jupyter_notebook_config.py
- Delete Binder-only files: requirements.txt (root), navbar-run-binder.html template,
new-binderIntegration.gif, msmapviewerapp/
- Update conf.py: remove navbar-run-binder from navbar_end
- Update Makefile: remove doc target
- Update installation.rst: remove "Try online" Binder section
- Update interactive_plots.rst: remove Binder references and code
- Update community/index.rst: remove Binder note
- Update README.md: remove notebook/binder badges and sections
Co-authored-by: timosachsenberg <5803621+timosachsenberg@users.noreply.github.com>
Agent-Logs-Url: https://github.com/OpenMS/pyopenms-docs/sessions/580bd58b-93c9-4f40-9fbe-721a87c6afea
---
.github/workflows/build-push-notebooks.yaml | 52 -
.github/workflows/test-notebooks.yml | 40 -
.github/workflows/test-pr.yaml | 60 -
README.md | 10 -
docs/Makefile | 3 -
docs/pandoc_filters/admonitionfilter.py | 67 -
docs/pandoc_filters/code_pandocfilter.py | 23 -
docs/pandoc_filters/ignore_pandocfilter.py | 32 -
.../transformlinks_pandocfilter.py | 25 -
.../transformreferences_pandocfilter.py | 47 -
docs/source/_templates/navbar-run-binder.html | 6 -
docs/source/community/index.rst | 4 -
docs/source/conf.py | 2 +-
docs/source/generate_ipynb.sh | 27 -
.../user_guide/img/new-binderIntegration.gif | Bin 1657109 -> 0 bytes
docs/source/user_guide/installation.rst | 14 -
docs/source/user_guide/interactive_plots.rst | 19 +-
environment.yml | 19 -
jupyter_notebook_config.py | 16 -
msmapviewerapp/main.py | 384 -
msmapviewerapp/static/data/BSA1.mzML | 90041 ----------------
.../static/data/BSA1_F1_idmapped.featureXML | 8476 --
msmapviewerapp/static/data/feature.json | 2389 -
msmapviewerapp/static/js/my.js | 817 -
msmapviewerapp/templates/index.html | 43 -
msmapviewerapp/templates/styles.css | 85 -
postBuild | 9 -
requirements.txt | 18 -
28 files changed, 3 insertions(+), 102725 deletions(-)
delete mode 100644 .github/workflows/build-push-notebooks.yaml
delete mode 100644 .github/workflows/test-notebooks.yml
delete mode 100644 .github/workflows/test-pr.yaml
delete mode 100755 docs/pandoc_filters/admonitionfilter.py
delete mode 100755 docs/pandoc_filters/code_pandocfilter.py
delete mode 100755 docs/pandoc_filters/ignore_pandocfilter.py
delete mode 100755 docs/pandoc_filters/transformlinks_pandocfilter.py
delete mode 100755 docs/pandoc_filters/transformreferences_pandocfilter.py
delete mode 100644 docs/source/_templates/navbar-run-binder.html
delete mode 100755 docs/source/generate_ipynb.sh
delete mode 100644 docs/source/user_guide/img/new-binderIntegration.gif
delete mode 100644 environment.yml
delete mode 100644 jupyter_notebook_config.py
delete mode 100644 msmapviewerapp/main.py
delete mode 100644 msmapviewerapp/static/data/BSA1.mzML
delete mode 100644 msmapviewerapp/static/data/BSA1_F1_idmapped.featureXML
delete mode 100644 msmapviewerapp/static/data/feature.json
delete mode 100644 msmapviewerapp/static/js/my.js
delete mode 100644 msmapviewerapp/templates/index.html
delete mode 100644 msmapviewerapp/templates/styles.css
delete mode 100644 postBuild
delete mode 100644 requirements.txt
diff --git a/.github/workflows/build-push-notebooks.yaml b/.github/workflows/build-push-notebooks.yaml
deleted file mode 100644
index 6568592fc..000000000
--- a/.github/workflows/build-push-notebooks.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-name: Building latest jupyter Notebooks and push to master+ipynb
-
-on:
- #schedule:
- # Trigger 5:30 UTC
- # - cron: '30 5 * * *'
- push:
- branches: [ master, merge-workflows ]
- workflow_dispatch:
-
-jobs:
-
- build-lnx:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
-
- - uses: r-lib/actions/setup-pandoc@v2
- with:
- pandoc-version: '3.1.2'
-
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install --upgrade jupyter
- python3 -m pip install --upgrade -r requirements.txt
- python3 docs/install_pyopenms.py
-
-
- - name: Generating notebooks
- run: |
- cd docs/
- make doc
-
- - name: Commit files
- run: |
- git config --local user.email "rahulagrawal799110@gmail.com"
- git config --local user.name "rahul799"
- git add docs/*
- git commit -m "ipynb notebooks generated" -a
-
- - name: Push changes
- uses: ad-m/github-push-action@master
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- branch: "master+ipynb"
- force: true
diff --git a/.github/workflows/test-notebooks.yml b/.github/workflows/test-notebooks.yml
deleted file mode 100644
index 61d5bc09e..000000000
--- a/.github/workflows/test-notebooks.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-name: Test code in notebooks
-
-on:
- push:
- branches: [ 'master\+ipynb' ]
- types: [created, edited, deleted, renamed, forced] # for force pushes from our actions
- workflow_dispatch:
- inputs:
- tags:
- description: 'Run test of notebooks manually'
-
-jobs:
-
- test-lnx:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
-
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install --upgrade jupyter
- python3 -m pip install --upgrade -r requirements.txt
-
- - name: Testing notebooks
- run: |
- for f in docs/source/user_guide/*.ipynb
- do
- jupyter nbconvert --to notebook --inplace --execute $f || (echo "$f" >> failed_nbs.txt)
- done
- if [ -f "failed_nbs.txt" ]; then
- echo "Some notebooks failed to run. Please check logs."
- cat failed_nbs.txt
- exit 1
- fi
diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml
deleted file mode 100644
index 90a355971..000000000
--- a/.github/workflows/test-pr.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-name: Build and Test code in notebooks
-
-on:
- pull_request:
- branches:
- - master
-
-jobs:
-
- build-test:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
-
- - uses: actions/setup-python@v4
- with:
- python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
-
- - name: Get changed files
- id: changed-files
- uses: tj-actions/changed-files@v46
- with:
- dir_names_max_depth: 0
- files: |
- docs/source/*.rst
- docs/source/**/*.rst
- !docs/source/**/_templates
-
- - uses: r-lib/actions/setup-pandoc@v2
- with:
- pandoc-version: '3.1.2'
-
-# - uses: actions/setup-python@v4
-# with:
-# python-version: '3.7' # Version range or exact version of a Python version to use, using SemVer's version range syntax
-
- - name: Installing Dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install --upgrade pandocfilters jupyter
- python3 -m pip install --upgrade -r requirements.txt
-
-
- - name: Generating notebooks
- run: |
- pushd docs/source
- ./generate_ipynb.sh
- popd
-
- - name: Execute all notebooks generated from modified files
- run: |
- for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
- jupyter nbconvert --to notebook --inplace --execute ${file%.rst}.ipynb || (echo "${file%.rst}" >> failed_nbs.txt)
- done
- if [ -f "failed_nbs.txt" ]; then
- echo "Some notebooks failed to run. Please check logs."
- cat failed_nbs.txt
- exit 1
- fi
diff --git a/README.md b/README.md
index 0467c9d07..15aef6b78 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,4 @@
[](https://pyopenms.readthedocs.io/en/latest/?badge=latest)
-[](https://github.com/OpenMS/pyopenms-docs/actions/workflows/build-push-notebooks.yaml)
-[](https://github.com/OpenMS/pyopenms-docs/actions/workflows/test-notebooks.yml)
pyOpenMS Documentation
======================
@@ -27,11 +25,3 @@ Documentation
The readthedocs pyOpenMS documentation is generated from the master branch of this repository, see [docs/README.md](docs/README.md)
The generated documentation is available here: https://pyopenms.readthedocs.io/en/latest/
-
-Jupyter Notebooks
-=============
-Are created by CI and stored in master+ipynb to not clutter the master branch.
-
-Binder integration
-=============
-Binder uses the Jupyter Notebooks in master+ipynb. The conda environment is described in environment.yml, the post-build event installs the nightly pyopenms wheel. Currently, only environment.yml is used by binder. Note: You can test a branch "jpfeuffer-patch-6" using https://notebooks.gesis.org/binder/v2/gh/OpenMS/pyopenms-docs/jpfeuffer-patch-6
diff --git a/docs/Makefile b/docs/Makefile
index 1e232fe59..d7b79f1d7 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -12,9 +12,6 @@ BUILDDIR = build
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-doc:
- cd source ;bash generate_ipynb.sh
-
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
diff --git a/docs/pandoc_filters/admonitionfilter.py b/docs/pandoc_filters/admonitionfilter.py
deleted file mode 100755
index 9980c8dd2..000000000
--- a/docs/pandoc_filters/admonitionfilter.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Pandoc filter to convert divs with class="admonition" to ipynb
-"""
-
-from pandocfilters import toJSONFilter, RawBlock, Div, stringify
-
-# from: https://docutils.sourceforge.io/docs/ref/rst/directives.html#admonitions
-# admonition is a special case with arbitrary header
-admonition_types = ["attention", "caution", "danger", "error", "hint",
- "important", "note", "tip", "warning", "admonition"]
-# keywords in arbitrary admonition header
-admonition_subtypes = ["goal"]
-# colors and icons for admonition_types (without "admonition") and subtypes
-admonition_colors = {"notfound": "#FFA07A",
- "attention": "#FFA07A",
- "caution": "#FFA07A",
- "danger": "#CD5C5C",
- "error": "#CD5C5C",
- "hint": "#F0F8FF",
- "important": "#FFA500",
- "note": "#BDE5F8",
- "tip": "#F0E68C",
- "warning": "#FFA07A",
- "goal": "#98FB98"}
-
-admonition_icons = {"notfound": "fas fa-exclamation",
- "attention": "fas fa-exclamation",
- "caution": "fas fa-exclamation-triangle",
- "danger": "fas fa-exclamation-triangle",
- "error": "fas fa-bomb",
- "hint": "far fa-lightbulb",
- "important": "fas fa-exclamation",
- "note": "far fa-sticky-note",
- "tip": "far fa-lightbulb",
- "warning": "fas fa-exclamation-triangle",
- "goal": "far fa-check-square"}
-
-
-def html(x):
- return RawBlock('html', x)
-
-
-def admonitions(key, value, fmt, meta):
- if key == 'Div':
- [[ident, classes, kvs], contents] = value
- if any(item in classes for item in admonition_types) and fmt == "ipynb":
- header = stringify(contents[0])
- admonition_subtype = "notfound"
- if "admonition" not in classes:
- admonition_subtype = header.lower()
- else:
- for subtype in admonition_subtypes:
- if subtype in header.lower():
- admonition_subtype = subtype
- break
- newcontents = [html('
'
- + header + '
')] + contents[1:] + [html('
')]
- return Div([ident, classes, kvs], newcontents)
-
-
-if __name__ == "__main__":
- toJSONFilter(admonitions)
diff --git a/docs/pandoc_filters/code_pandocfilter.py b/docs/pandoc_filters/code_pandocfilter.py
deleted file mode 100755
index 88bfd2567..000000000
--- a/docs/pandoc_filters/code_pandocfilter.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Pandoc filter to convert code blocks of certain language classes to code class
-"""
-
-from pandocfilters import CodeBlock, toJSONFilter
-
-
-def addCodeClass(key, value, _, meta):
- if key == 'CodeBlock':
- [[ident, classes, keyvals], code] = value
- if "python" in classes:
- classes.remove("python")
- classes.append("code")
- elif "ipython3" in classes:
- classes.remove("ipython3")
- classes.append("code")
- return CodeBlock([ident, classes, keyvals], code)
-
-
-if __name__ == "__main__":
- toJSONFilter(addCodeClass)
diff --git a/docs/pandoc_filters/ignore_pandocfilter.py b/docs/pandoc_filters/ignore_pandocfilter.py
deleted file mode 100755
index c41b8adf9..000000000
--- a/docs/pandoc_filters/ignore_pandocfilter.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Pandoc filter to ignore elements when having class ignore:
-e.g.
-.. code-block:: python
- :class: ignore
-
- print("Foo")
-
-.. imade:: foo.png
- :class: ignore
-"""
-
-from pandocfilters import CodeBlock, Image, Null, toJSONFilter, Str
-
-
-def ignore(key, value, _, meta):
- if key == 'CodeBlock':
- [[ident, classes, keyvals], code] = value
- if "ignore" in classes:
- return Null() # return Null block
- return CodeBlock(*value)
- if key == 'Image':
- [ident, classes, keyvals], caption, [dest, typef] = value
- if "ignore" in classes:
- return Str("") # return empty string. Cannot return Block here.
- return Image(*value)
-
-
-if __name__ == "__main__":
- toJSONFilter(ignore)
diff --git a/docs/pandoc_filters/transformlinks_pandocfilter.py b/docs/pandoc_filters/transformlinks_pandocfilter.py
deleted file mode 100755
index c93dfe554..000000000
--- a/docs/pandoc_filters/transformlinks_pandocfilter.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Pandoc filter to convert links to relative html pages
-(originally for readthedocs) to point to ipynbs now.
-"""
-
-from pandocfilters import Link, toJSONFilter
-
-
-def transformLink(key, value, _, meta):
- if key == 'Link':
- [ident, classes, keyvals], alttext, [dest, typef] = value
- link, sep, rest = dest.partition("#") # for anchors
- # TODO better checks? use urllib?
- if not (link.startswith("http://") or link.startswith(
- "https://") or link.startswith(
- "ftp://")) and link.endswith(".html"):
- link = link.replace(".html", ".ipynb")
- dest = link + sep + rest
- return Link([ident, classes, keyvals], alttext, [dest, typef])
-
-
-if __name__ == "__main__":
- toJSONFilter(transformLink)
diff --git a/docs/pandoc_filters/transformreferences_pandocfilter.py b/docs/pandoc_filters/transformreferences_pandocfilter.py
deleted file mode 100755
index b1525b4ca..000000000
--- a/docs/pandoc_filters/transformreferences_pandocfilter.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Pandoc filter to convert API references to html links
-"""
-import re
-from pandocfilters import toJSONFilter, RawInline
-
-
-# Note: use stderr for debugging
-# sys.stderr.write(code)
-
-def transformReferences(key, value, fmt, meta):
- if key == 'Code':
- [[ident, classes, kvs], code] = value
- kvs = {key: value for key, value in kvs}
- role = kvs.get("role", "")
-
- if role[0:3] == "py:":
- # remove ~. which is only used by sphinx to only display the last component of the listed class/function name
- # i.e., get for pyopenms.MSSpectrum.get
- # TODO think about replicating this behaviour
- code = code.strip('~.')
-
- # Due to the current structure of C extensions being pulled into the parent module, and the rest being
- # handled as submodules and generated into a subfolder by sphinx
- # https://github.com/OpenMS/pyopenms-docs/blob/8c1f16113f36b5de98001fef2f39ea75f984d07f/docs/source/apidocs/index.rst?plain=1#L14
- # we need to create different links depending on the class/function name. This could be changed in the future
- # if the structure is changed.
- # TODO the following will not work for uppercase submodules like Constants which we still have but should change to lower case
- # otherwise we cannot distinguish from class "namespaces"
- if re.search('(pyopenms\.)[a-z]+\.', code) is not None:
- url = f'https://pyopenms.readthedocs.io/en/latest/apidocs/_autosummary/pyopenmssubmodules/{code}.html'
- else:
- url = f'https://pyopenms.readthedocs.io/en/latest/apidocs/_autosummary/pyopenms/pyopenms.{code}.html'
- return RawInline('markdown', f'[{code}]({url})')
- elif role == 'term':
- if code.find('<') != -1:
- code, text = code.strip('>').split('<')
- else:
- text = code
- url = f'https://pyopenms.readthedocs.io/en/latest/user_guide/glossary.html#term-{text.replace(" ", "-")}'
- return RawInline('markdown', f'[{code}]({url})')
-
-
-if __name__ == "__main__":
- toJSONFilter(transformReferences)
diff --git a/docs/source/_templates/navbar-run-binder.html b/docs/source/_templates/navbar-run-binder.html
deleted file mode 100644
index 55c4ea96e..000000000
--- a/docs/source/_templates/navbar-run-binder.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/source/community/index.rst b/docs/source/community/index.rst
index 057399e43..7f1047b57 100644
--- a/docs/source/community/index.rst
+++ b/docs/source/community/index.rst
@@ -10,10 +10,6 @@ love to expand it with you.
To edit a tutorial page you can click on the "Edit on GitHub" link at the top right
of each page. Once you changed (or added new) .rst files you can and open a pull request.
-(Note that edits you perform on binder don't get stored in this repository. Thus, binder and the
-displayed jupyter notebooks can not be used to edit the existing documentation.
-All edits need to happen through the .rst files in the OpenMS/pyopenms-docs repository.)
-
If you are unsure how to do that or want to discuss questions
(e.g. your example workflow can be included on this webpage) contact the
`contact the OpenMS team `_ today.
diff --git a/docs/source/conf.py b/docs/source/conf.py
index bd099c491..22529955b 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -134,7 +134,7 @@
"json_url": "https://raw.githubusercontent.com/OpenMS/pyopenms-docs/master/docs/source/_static/switcher.json",
"version_match": release
},
- "navbar_end": ["navbar-run-binder", "navbar-icon-links", "version-switcher"],
+ "navbar_end": ["navbar-icon-links", "version-switcher"],
"navbar_persistent": [], # default: ["search-button"] but we don't need it since we use the search bar in the sidebar
"use_edit_page_button": True,
"logo": {
diff --git a/docs/source/generate_ipynb.sh b/docs/source/generate_ipynb.sh
deleted file mode 100755
index 4ec54d2e6..000000000
--- a/docs/source/generate_ipynb.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-echo "Start generating notebooks"
-
-failed=0
-shopt -s globstar
-for FILE in **/*.rst; do
- if [[ $FILE != *"_templates"* ]]; then
- a=(${FILE/./ })
- pandoc ${FILE} -o ${a[0]}.ipynb --resource-path user_guide/ --filter ../pandoc_filters/admonitionfilter.py --filter ../pandoc_filters/code_pandocfilter.py --filter ../pandoc_filters/ignore_pandocfilter.py --filter ../pandoc_filters/transformlinks_pandocfilter.py --filter ../pandoc_filters/transformreferences_pandocfilter.py
- retVal=$?
- if [ $retVal -ne 0 ]; then
- echo "Error generating ${a[0]}.ipynb"
- failed=1
- else
- echo "${a[0]}.ipynb Generated"
- fi
- fi
-done
-
-if [ $failed -ne 0 ]; then
- echo "Error generating at least one notebook."
- exit 1
-else
- echo "Notebooks generated successfully"
- exit 0
-fi
diff --git a/docs/source/user_guide/img/new-binderIntegration.gif b/docs/source/user_guide/img/new-binderIntegration.gif
deleted file mode 100644
index a7c347602ee46d59b80fcab175aac7a54657c8c6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1657109
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