From 8015a0a63887d1141005c3bb8f054fedc7648421 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 17 Oct 2023 10:27:34 -0700 Subject: [PATCH 01/22] .github/workflows/doc-build.yml: Repair display of changed output files after mathjax CDN change --- .github/workflows/doc-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 355e07ab78e..31a6e9aecc7 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -79,7 +79,7 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset --quiet old && git add -N . && git status) # Keep track of changes to built HTML - new_version=$(cat src/VERSION.txt); (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /'; git init && (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; git add -A && git commit --quiet -m "old") + new_version=$(cat src/VERSION.txt); (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /;s,/sage/local/share/mathjax/mathjax/tex-chtml.js,https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js,;'; git init && (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; git add -A && git commit --quiet -m "old") - name: Download upstream artifact uses: actions/download-artifact@v3 From 7e5a6d8ea6688d397f946f83994c29d8f50c4f01 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Oct 2023 20:02:22 -0700 Subject: [PATCH 02/22] .github/workflows/doc-build.yml: Do not duplicate the URL configured in sage_docbuild.conf --- .github/workflows/doc-build.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index d27fab6d3d3..8ace5b09151 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -79,7 +79,15 @@ jobs: if [ ! -f worktree-image/.gitignore ]; then cp .gitignore worktree-image/; fi (cd worktree-image && git add -A && git commit --quiet --allow-empty -m "old" -a && git tag -f old && git reset --hard new && git reset --quiet old && git add -N . && git status) # Keep track of changes to built HTML - new_version=$(cat src/VERSION.txt); (cd /sage/local/share/doc/sage/html/en && find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /;s,/sage/local/share/mathjax/mathjax/tex-chtml.js,https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js,;'; git init && (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; git add -A && git commit --quiet -m "old") + new_version=$(cat src/VERSION.txt) + mathjax_path_from=$(SAGE_USE_CDNS=no ./sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") + mathjax_path_to=$(SAGE_USE_CDNS=yes ./sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") + (cd /sage/local/share/doc/sage/html/en && \ + find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /;s,'$mathjax_path_from,$mathjax_path_to,';'; \ + git init && \ + (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && \ + (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; \ + git add -A && git commit --quiet -m "old") - name: Download upstream artifact uses: actions/download-artifact@v3 From 6d7bcf92dbfea7b94a202fc173c12ef8a2b913af Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Oct 2023 20:22:04 -0700 Subject: [PATCH 03/22] .github/workflows/doc-build.yml: Do not duplicate the URL configured in sage_docbuild.conf (fixup) --- .github/workflows/doc-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 5a3f69f1f2a..bb0655433f5 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -56,11 +56,11 @@ jobs: git config --global --add safe.directory $(pwd) git config --global user.email "ci-sage@example.com" git config --global user.name "Build & Test workflow" + mathjax_path_from=$(SAGE_USE_CDNS=no /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") .ci/retrofit-worktree.sh worktree-image /sage # Keep track of changes to built HTML new_version=$(cat src/VERSION.txt) - mathjax_path_from=$(SAGE_USE_CDNS=no ./sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") - mathjax_path_to=$(SAGE_USE_CDNS=yes ./sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") + mathjax_path_to=$(SAGE_USE_CDNS=yes /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") (cd /sage/local/share/doc/sage/html/en && \ find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /;s,'$mathjax_path_from,$mathjax_path_to,';'; \ git init && \ From 76c854969df957a56add5426361abf4cb7aadc61 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Oct 2023 20:34:47 -0700 Subject: [PATCH 04/22] .github/workflows/doc-build.yml: Use make sagemath_doc_html-build-deps, make sagemath_doc_html-no-deps --- .github/workflows/doc-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index bb0655433f5..6588eac882d 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -85,7 +85,7 @@ jobs: id: incremental run: | # Now re-bootstrap and build. The build is incremental because we were careful with the timestamps. - ./bootstrap && make build + ./bootstrap && make sagemath_doc_html-build-deps working-directory: ./worktree-image env: MAKE: make -j2 --output-sync=recurse @@ -96,7 +96,7 @@ jobs: if: always() && steps.worktree.outcome == 'success' && steps.incremental.outcome != 'success' run: | set -ex - make sagelib-clean && git clean -fx src/sage && ./config.status && make build + make sagelib-clean && git clean -fx src/sage && ./config.status && make sagemath_doc_html-build-deps working-directory: ./worktree-image env: MAKE: make -j2 --output-sync=recurse @@ -113,7 +113,7 @@ jobs: mv /sage/local/share/doc/sage/html/en/.git /sage/.git-doc make doc-clean doc-uninstall mkdir -p /sage/local/share/doc/sage/html/en/ && mv /sage/.git-doc /sage/local/share/doc/sage/html/en/.git - ./config.status && make doc-html + ./config.status && make sagemath_doc_html-no-deps working-directory: ./worktree-image env: MAKE: make -j2 --output-sync=recurse From cd1a3ec7683dd64cb95d4efa167a69a4a85bd7b7 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 16:10:30 +0900 Subject: [PATCH 05/22] Remove lambdas from arguments --- src/sage/calculus/transforms/dft.py | 3 ++- src/sage/combinat/finite_state_machine.py | 3 ++- src/sage/combinat/root_system/type_A.py | 8 ++++++-- src/sage/combinat/root_system/type_A_affine.py | 8 ++++++-- .../combinat/root_system/type_A_infinity.py | 4 +++- src/sage/combinat/root_system/type_B.py | 8 ++++++-- src/sage/combinat/root_system/type_BC_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_B_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_C.py | 8 ++++++-- src/sage/combinat/root_system/type_C_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_D.py | 8 ++++++-- src/sage/combinat/root_system/type_D_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_E.py | 8 ++++++-- src/sage/combinat/root_system/type_E_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_F.py | 8 ++++++-- src/sage/combinat/root_system/type_F_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_G.py | 8 ++++++-- src/sage/combinat/root_system/type_G_affine.py | 8 ++++++-- src/sage/combinat/root_system/type_dual.py | 8 ++++++-- src/sage/combinat/root_system/type_marked.py | 8 ++++++-- src/sage/combinat/root_system/type_reducible.py | 8 ++++++-- src/sage/combinat/root_system/type_relabel.py | 8 ++++++-- src/sage/combinat/root_system/type_super_A.py | 8 ++++++-- src/sage/graphs/digraph_generators.py | 6 ++++-- src/sage/graphs/graph_generators.py | 5 ++++- src/sage/misc/sageinspect.py | 17 +++++++++++++---- 26 files changed, 148 insertions(+), 50 deletions(-) diff --git a/src/sage/calculus/transforms/dft.py b/src/sage/calculus/transforms/dft.py index b413bc0ea81..c3cc0671503 100644 --- a/src/sage/calculus/transforms/dft.py +++ b/src/sage/calculus/transforms/dft.py @@ -277,7 +277,7 @@ def plot(self): S = self.list() return line([[RR(I[i]), RR(S[i])] for i in range(len(I) - 1)]) - def dft(self, chi=lambda x: x): + def dft(self, chi=None): r""" A discrete Fourier transform "over `\QQ`" using exact `N`-th roots of unity. @@ -340,6 +340,7 @@ def dft(self, chi=lambda x: x): implemented Group (permutation, matrix), call .characters() and test if the index list is the set of conjugacy classes. """ + chi = (lambda x: x) if chi is None else chi J = self.index_object() # index set of length N N = len(J) S = self.list() diff --git a/src/sage/combinat/finite_state_machine.py b/src/sage/combinat/finite_state_machine.py index acd0adb2718..8397cd239cd 100644 --- a/src/sage/combinat/finite_state_machine.py +++ b/src/sage/combinat/finite_state_machine.py @@ -949,7 +949,7 @@ from sage.structure.sage_object import SageObject -def full_group_by(l, key=lambda x: x): +def full_group_by(l, key=None): """ Group iterable ``l`` by values of ``key``. @@ -1003,6 +1003,7 @@ def full_group_by(l, key=lambda x: x): Here, the result ``r`` has been sorted in order to guarantee a consistent order for the doctest suite. """ + key = (lambda x: x) if key is None else key elements = defaultdict(list) original_keys = {} for item in l: diff --git a/src/sage/combinat/root_system/type_A.py b/src/sage/combinat/root_system/type_A.py index 96bcec25f39..48d1474c1f4 100644 --- a/src/sage/combinat/root_system/type_A.py +++ b/src/sage/combinat/root_system/type_A.py @@ -277,7 +277,7 @@ def dynkin_diagram(self): g.add_edge(i, i+1) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -297,6 +297,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (0 cm, 0 cm) circle (.25cm) node[below=4pt]{$1$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n > 1: @@ -306,7 +308,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): return ret + "".join(node((i-1)*node_dist, 0, label(i)) for i in self.index_set()) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the Dynkin diagram. @@ -332,6 +334,8 @@ def ascii_art(self, label=lambda i: i, node=None): n = self.n if n == 0: return "" + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node ret = "---".join(node(label(i)) for i in range(1,n+1)) + "\n" diff --git a/src/sage/combinat/root_system/type_A_affine.py b/src/sage/combinat/root_system/type_A_affine.py index f10d15c7f0e..5fe7bab2883 100644 --- a/src/sage/combinat/root_system/type_A_affine.py +++ b/src/sage/combinat/root_system/type_A_affine.py @@ -111,7 +111,7 @@ def dynkin_diagram(self): g.add_edge(0, n) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -128,6 +128,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (3.0 cm, 1.2 cm) circle (.25cm) node[anchor=south east]{$0$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 1: @@ -148,7 +150,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): ret += node(mid, 1.2, label(0), 'anchor=south east') return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -178,6 +180,8 @@ def ascii_art(self, label=lambda i: i, node=None): O<=>O 2 3 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n diff --git a/src/sage/combinat/root_system/type_A_infinity.py b/src/sage/combinat/root_system/type_A_infinity.py index c3a2c603266..9e0f4711ccd 100644 --- a/src/sage/combinat/root_system/type_A_infinity.py +++ b/src/sage/combinat/root_system/type_A_infinity.py @@ -86,7 +86,7 @@ def _latex_(self): """ return 'A_{{{}}}'.format(self.n._latex_()) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -100,6 +100,8 @@ def ascii_art(self, label=lambda i: i, node=None): 0 1 2 3 4 5 6 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node diff --git a/src/sage/combinat/root_system/type_B.py b/src/sage/combinat/root_system/type_B.py index 67794141adc..8e9cb6e75a5 100644 --- a/src/sage/combinat/root_system/type_B.py +++ b/src/sage/combinat/root_system/type_B.py @@ -245,7 +245,7 @@ def dynkin_diagram(self): g.set_edge_label(n-1, n, 2) return g - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the Dynkin diagram. @@ -261,6 +261,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O---O=>=O 3 4 5 6 7 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n @@ -271,7 +273,7 @@ def ascii_art(self, label=lambda i: i, node=None): ret += "".join("{!s:4}".format(label(i)) for i in range(1, n + 1)) return ret - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -307,6 +309,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= - :meth:`sage.combinat.root_system.type_C.CartanType._latex_dynkin_diagram` - :meth:`sage.combinat.root_system.type_BC_affine.CartanType._latex_dynkin_diagram` """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 1: diff --git a/src/sage/combinat/root_system/type_BC_affine.py b/src/sage/combinat/root_system/type_BC_affine.py index bbc261902fb..740dfa2e5f3 100644 --- a/src/sage/combinat/root_system/type_BC_affine.py +++ b/src/sage/combinat/root_system/type_BC_affine.py @@ -138,7 +138,7 @@ def _latex_(self): else: return "BC_{%s}^{(2)}" % self.n - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -180,6 +180,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (0 cm, 0 cm) circle (.25cm) node[below=4pt]{$0$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 1: @@ -206,7 +208,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += "}\n" + node(0, 0, label(0)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return a ascii art representation of the extended Dynkin diagram. @@ -227,6 +229,8 @@ def ascii_art(self, label=lambda i: i, node=None): O=<=O 2 3 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n diff --git a/src/sage/combinat/root_system/type_B_affine.py b/src/sage/combinat/root_system/type_B_affine.py index 6cfe46255ae..047144f02d6 100644 --- a/src/sage/combinat/root_system/type_B_affine.py +++ b/src/sage/combinat/root_system/type_B_affine.py @@ -96,7 +96,7 @@ def dynkin_diagram(self): g.add_edge(0,2) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -130,6 +130,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 1: @@ -155,7 +157,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += node(i*node_dist, 0, label(i+1)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -184,6 +186,8 @@ def ascii_art(self, label=lambda i: i, node=None): """ n = self.n from .cartan_type import CartanType + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node if n == 1: diff --git a/src/sage/combinat/root_system/type_C.py b/src/sage/combinat/root_system/type_C.py index 57669883bea..8c7ebce3359 100644 --- a/src/sage/combinat/root_system/type_C.py +++ b/src/sage/combinat/root_system/type_C.py @@ -232,7 +232,7 @@ def dynkin_diagram(self): """ return self.dual().dynkin_diagram().dual() - def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -268,9 +268,11 @@ def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2, dual= - :meth:`sage.combinat.root_system.type_C.CartanType._latex_dynkin_diagram` - :meth:`sage.combinat.root_system.type_BC_affine.CartanType._latex_dynkin_diagram` """ + if label is None: + label = lambda i: i return self.dual()._latex_dynkin_diagram(label=label, node=node, node_dist=node_dist, dual=not dual) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return a ascii art representation of the extended Dynkin diagram. @@ -289,6 +291,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O---O=<=O 3 4 5 6 7 """ + if label is None: + label = lambda i: i return self.dual().ascii_art(label=label, node=node).replace("=>=", "=<=") def _default_folded_cartan_type(self): diff --git a/src/sage/combinat/root_system/type_C_affine.py b/src/sage/combinat/root_system/type_C_affine.py index 72843b4d0a9..adaf5c77562 100644 --- a/src/sage/combinat/root_system/type_C_affine.py +++ b/src/sage/combinat/root_system/type_C_affine.py @@ -76,7 +76,7 @@ def dynkin_diagram(self): g.add_edge(0,1,2) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -117,6 +117,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (0 cm, 0 cm) circle (.25cm) node[below=4pt]{$0$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 1: @@ -134,7 +136,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += "}\n" + node(0, 0, label(0)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return a ascii art representation of the extended Dynkin diagram. @@ -156,6 +158,8 @@ def ascii_art(self, label=lambda i: i, node=None): O<=>O 0 1 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n diff --git a/src/sage/combinat/root_system/type_D.py b/src/sage/combinat/root_system/type_D.py index 28d4cd29cb2..5f1469e48a8 100644 --- a/src/sage/combinat/root_system/type_D.py +++ b/src/sage/combinat/root_system/type_D.py @@ -272,7 +272,7 @@ def dynkin_diagram(self): g.add_edge(n-2, n) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -288,6 +288,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (4 cm, -0.7 cm) circle (.25cm) node[right=3pt]{$3$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n == 2: @@ -305,7 +307,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): ret += node(rt_most, -0.7, label(self.n-1), 'right=3pt') return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return a ascii art representation of the extended Dynkin diagram. @@ -336,6 +338,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O---O---O 3 4 5 6 7 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n diff --git a/src/sage/combinat/root_system/type_D_affine.py b/src/sage/combinat/root_system/type_D_affine.py index 3ea86f32438..f77204e4a01 100644 --- a/src/sage/combinat/root_system/type_D_affine.py +++ b/src/sage/combinat/root_system/type_D_affine.py @@ -111,7 +111,7 @@ def dynkin_diagram(self): g.add_edge(0,2) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -130,6 +130,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (4 cm, -0.7 cm) circle (.25cm) node[right=3pt]{$3$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node n = self.n @@ -152,7 +154,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += node(rt_most, -0.7, label(n-1), "right=3pt") return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -182,6 +184,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O 5 3 4 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node n = self.n diff --git a/src/sage/combinat/root_system/type_E.py b/src/sage/combinat/root_system/type_E.py index 478c628a5e9..5771d6d948f 100644 --- a/src/sage/combinat/root_system/type_E.py +++ b/src/sage/combinat/root_system/type_E.py @@ -573,7 +573,7 @@ def dynkin_diagram(self): g.add_edge(i, i+1) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -591,6 +591,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (4 cm, 2 cm) circle (.25cm) node[right=3pt]{$2$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node ret = "\\draw (0 cm,0) -- (%s cm,0);\n" % ((self.n-2)*node_dist) @@ -601,7 +603,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): ret += node(2*node_dist, node_dist, label(2), 'right=3pt') return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return a ascii art representation of the extended Dynkin diagram. @@ -626,6 +628,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O---O---O---O---O 2 4 5 6 7 8 9 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node labels = [label(i) for i in [1,3,4,5,6] + list(range(7, self.n+1))] # We exclude 2 because of the special case diff --git a/src/sage/combinat/root_system/type_E_affine.py b/src/sage/combinat/root_system/type_E_affine.py index ac64cbfbdde..3268d0603e5 100644 --- a/src/sage/combinat/root_system/type_E_affine.py +++ b/src/sage/combinat/root_system/type_E_affine.py @@ -132,7 +132,7 @@ def dynkin_diagram(self): raise ValueError("Invalid Cartan Type for Type E affine") return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -152,6 +152,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): """ n = self.n + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node @@ -181,7 +183,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): ret += node(2*node_dist, node_dist, label(2), "right=3pt") return ret - def ascii_art(self, label=lambda x: x, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -210,6 +212,8 @@ def ascii_art(self, label=lambda x: x, node=None): -2 0 1 2 3 4 5 -3 """ n = self.n + if label is None: + label = lambda x: x if node is None: node = self._ascii_art_node if n == 6: diff --git a/src/sage/combinat/root_system/type_F.py b/src/sage/combinat/root_system/type_F.py index ac33d97fbee..524dd1f7c35 100644 --- a/src/sage/combinat/root_system/type_F.py +++ b/src/sage/combinat/root_system/type_F.py @@ -290,7 +290,7 @@ def dynkin_diagram(self): g.set_edge_label(2,3,2) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -308,6 +308,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node ret = "\\draw (0 cm,0) -- (%s cm,0);\n" % node_dist @@ -322,7 +324,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += node(i*node_dist, 0, label(i+1)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the extended Dynkin diagram. @@ -335,6 +337,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O=>=O---O -1 0 1 2 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node ret = "{}---{}=>={}---{}\n".format(node(label(1)), node(label(2)), diff --git a/src/sage/combinat/root_system/type_F_affine.py b/src/sage/combinat/root_system/type_F_affine.py index 403c5b6e8ad..3d2dc8350ee 100644 --- a/src/sage/combinat/root_system/type_F_affine.py +++ b/src/sage/combinat/root_system/type_F_affine.py @@ -72,7 +72,7 @@ def dynkin_diagram(self): g.add_edge(0, 1) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -95,6 +95,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (0 cm, 0 cm) circle (.25cm) node[below=4pt]{$0$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node ret = "\\draw (0 cm,0) -- (%s cm,0);\n" % node_dist @@ -103,7 +105,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += "}\n" + node(0, 0, label(0)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Returns a ascii art representation of the extended Dynkin diagram @@ -113,6 +115,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O=>=O---O 2 3 4 5 6 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node ret = "{}---{}---{}=>={}---{}\n".format(node(label(0)), node(label(1)), diff --git a/src/sage/combinat/root_system/type_G.py b/src/sage/combinat/root_system/type_G.py index 15da57bc11c..21dae3effa7 100644 --- a/src/sage/combinat/root_system/type_G.py +++ b/src/sage/combinat/root_system/type_G.py @@ -200,7 +200,7 @@ def dynkin_diagram(self): g.set_edge_label(2,1,3) return g - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -215,6 +215,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= \draw[fill=white] (2 cm, 0 cm) circle (.25cm) node[below=4pt]{$2$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node ret = "\\draw (0,0) -- (%s cm,0);\n" % node_dist @@ -228,7 +230,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2, dual= ret += node(node_dist, 0, label(2)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the Dynkin diagram. @@ -239,6 +241,8 @@ def ascii_art(self, label=lambda i: i, node=None): O=<=O 3 4 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node ret = " 3\n{}=<={}\n".format(node(label(1)), node(label(2))) diff --git a/src/sage/combinat/root_system/type_G_affine.py b/src/sage/combinat/root_system/type_G_affine.py index 2cb1487dfd8..582f7d9ed03 100644 --- a/src/sage/combinat/root_system/type_G_affine.py +++ b/src/sage/combinat/root_system/type_G_affine.py @@ -70,7 +70,7 @@ def dynkin_diagram(self): g.add_edge(0, 2) return g - def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2, dual=False): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2, dual=False): r""" Return a latex representation of the Dynkin diagram. @@ -89,6 +89,8 @@ def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2, dual= \draw[fill=white] (4 cm, 0 cm) circle (.25cm) node[below=4pt]{$0$}; """ + if label is None: + label = lambda x: x if node is None: node = self._latex_draw_node ret = "\\draw (%s cm,0) -- (%s cm,0);\n" % (node_dist, node_dist*2.0) @@ -98,7 +100,7 @@ def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2, dual= ret += node(2*node_dist, 0, label(0)) return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Returns an ascii art representation of the Dynkin diagram @@ -109,6 +111,8 @@ def ascii_art(self, label=lambda i: i, node=None): O=<=O---O 3 4 2 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node ret = " 3\n{}=<={}---{}".format(node(label(1)), node(label(2)), node(label(0))) diff --git a/src/sage/combinat/root_system/type_dual.py b/src/sage/combinat/root_system/type_dual.py index c2ea5d978d3..22c4fb809d4 100644 --- a/src/sage/combinat/root_system/type_dual.py +++ b/src/sage/combinat/root_system/type_dual.py @@ -209,7 +209,7 @@ def __reduce__(self): """ return (attrcall("dual"), (self._type,)) - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" EXAMPLES:: @@ -229,11 +229,13 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): } \draw[fill=white] (0 cm, 0 cm) circle (.25cm) node[below=4pt]{$0$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node return self._type._latex_dynkin_diagram(label, node, node_dist, dual=True) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of this Cartan type @@ -261,6 +263,8 @@ def ascii_art(self, label=lambda i: i, node=None): O=>=O---O---O=>=O 0 1 2 3 4 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node res = self._type.ascii_art(label, node) diff --git a/src/sage/combinat/root_system/type_marked.py b/src/sage/combinat/root_system/type_marked.py index 5d80ca1052a..3f76189bbc9 100644 --- a/src/sage/combinat/root_system/type_marked.py +++ b/src/sage/combinat/root_system/type_marked.py @@ -278,7 +278,7 @@ def _latex_draw_mark(self, x, y, color='black', thickness='thin'): ret += "\\draw[shift={{({}, {})}}, {}, {}] (0.25cm, -0.25cm) -- (-0.25cm, 0.25cm);\n".format(x, y, color, thickness) return ret - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=label, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -296,11 +296,13 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$}; """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node return self._type._latex_dynkin_diagram(label, node, node_dist) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of this Cartan type. @@ -320,6 +322,8 @@ def ascii_art(self, label=lambda i: i, node=None): X---O---X=>=O---O 0 1 2 3 4 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node return self._type.ascii_art(label, node) diff --git a/src/sage/combinat/root_system/type_reducible.py b/src/sage/combinat/root_system/type_reducible.py index 0f84b3f3b90..46cdccd2ab4 100644 --- a/src/sage/combinat/root_system/type_reducible.py +++ b/src/sage/combinat/root_system/type_reducible.py @@ -308,7 +308,7 @@ def dynkin_diagram(self): g.add_edge(relabelling[i,e1], relabelling[i,e2], label=l) return g - def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -332,6 +332,8 @@ def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2): \draw[fill=white] (2 cm, 0 cm) circle (.25cm) node[below=4pt]{$4$}; } """ + if label is None: + label = lambda x: x types = self.component_types() relabelling = self._index_relabelling ret = "{\n" @@ -341,7 +343,7 @@ def _latex_dynkin_diagram(self, label=lambda x: x, node=None, node_dist=2): ret += "}" return ret - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of this reducible Cartan type. @@ -367,6 +369,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O=<=O 11 12 13 """ + if label is None: + label = lambda i: i types = self.component_types() relabelling = self._index_relabelling return "\n".join(types[i].ascii_art(lambda x: label(relabelling[i,x]), node) diff --git a/src/sage/combinat/root_system/type_relabel.py b/src/sage/combinat/root_system/type_relabel.py index 142ddeffa45..1cc633dc16c 100644 --- a/src/sage/combinat/root_system/type_relabel.py +++ b/src/sage/combinat/root_system/type_relabel.py @@ -271,7 +271,7 @@ def _latex_(self): ret += " \\text{ relabelled by } " + latex(self._relabelling) return ret - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -285,9 +285,11 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[fill=white] (6 cm, 0 cm) circle (.25cm) node[below=4pt]{$2$}; """ + if label is None: + label = lambda i: i return self._type._latex_dynkin_diagram(lambda i: label(self._relabelling[i]), node, node_dist) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of this Cartan type. @@ -307,6 +309,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O=>=O---O 4 3 2 1 0 """ + if label is None: + label = lambda i: i if node is None: node = self._ascii_art_node return self._type.ascii_art(lambda i: label(self._relabelling[i]), node) diff --git a/src/sage/combinat/root_system/type_super_A.py b/src/sage/combinat/root_system/type_super_A.py index dedc56b9011..c2717a572ff 100644 --- a/src/sage/combinat/root_system/type_super_A.py +++ b/src/sage/combinat/root_system/type_super_A.py @@ -737,7 +737,7 @@ def _latex_draw_node(self, x, y, label, position="below=4pt"): x+.17, y-.17, x-.17, y+.17) return ret - def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. @@ -775,6 +775,8 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): \draw[-,thick] (0.17 cm, 0.17 cm) -- (-0.17 cm, -0.17 cm); \draw[-,thick] (0.17 cm, -0.17 cm) -- (-0.17 cm, 0.17 cm); """ + if label is None: + label = lambda i: i if node is None: node = self._latex_draw_node if self.n + self.m > 1: @@ -784,7 +786,7 @@ def _latex_dynkin_diagram(self, label=lambda i: i, node=None, node_dist=2): return ret + "".join(node((self.m+i)*node_dist, 0, label(i)) for i in self.index_set()) - def ascii_art(self, label=lambda i: i, node=None): + def ascii_art(self, label=None, node=None): """ Return an ascii art representation of the Dynkin diagram. @@ -812,6 +814,8 @@ def ascii_art(self, label=lambda i: i, node=None): O---O---O---O---O---X -5 -4 -3 -2 -1 0 """ + if label is None: + label = lambda i: i if node is None: node = lambda i: 'O' ret = "---".join(node(label(i)) for i in range(1,self.m+1)) diff --git a/src/sage/graphs/digraph_generators.py b/src/sage/graphs/digraph_generators.py index ec2f608e28c..2b29e0e73ef 100644 --- a/src/sage/graphs/digraph_generators.py +++ b/src/sage/graphs/digraph_generators.py @@ -1331,7 +1331,7 @@ def RandomDirectedAcyclicGraph(self, n, p, weight_max=None): return D - def RandomDirectedGN(self, n, kernel=lambda x: x, seed=None): + def RandomDirectedGN(self, n, kernel=None, seed=None): r""" Return a random growing network (GN) digraph with `n` vertices. @@ -1346,7 +1346,7 @@ def RandomDirectedGN(self, n, kernel=lambda x: x, seed=None): - ``n`` -- integer; number of vertices - - ``kernel`` -- the attachment kernel + - ``kernel`` -- the attachment kernel (default: identity function) - ``seed`` -- a ``random.Random`` seed or a Python ``int`` for the random number generator (default: ``None``) @@ -1365,6 +1365,8 @@ def RandomDirectedGN(self, n, kernel=lambda x: x, seed=None): True sage: D.show() # long time """ + if kernel is None: + kernel = lambda x: x if seed is None: seed = int(current_randstate().long_seed() % sys.maxsize) import networkx diff --git a/src/sage/graphs/graph_generators.py b/src/sage/graphs/graph_generators.py index e45371bc6d9..e7347c4a2c4 100644 --- a/src/sage/graphs/graph_generators.py +++ b/src/sage/graphs/graph_generators.py @@ -1192,7 +1192,7 @@ def nauty_genbg(self, options="", debug=False): G = BipartiteGraph(s[:-1], format='graph6', partition=partition) yield G - def cospectral_graphs(self, vertices, matrix_function=lambda g: g.adjacency_matrix(), graphs=None): + def cospectral_graphs(self, vertices, matrix_function=None, graphs=None): r""" Find all sets of graphs on ``vertices`` vertices (with possible restrictions) which are cospectral with respect to a @@ -1288,6 +1288,9 @@ def cospectral_graphs(self, vertices, matrix_function=lambda g: g.adjacency_matr ....: == g[0][1].laplacian_matrix(normalized=True).charpoly()) True """ + if matrix_function is None: + matrix_function = lambda g: g.adjacency_matrix() + from sage.graphs.graph_generators import graphs as graph_gen if graphs is None: graph_list = graph_gen(vertices, property=lambda _: True) diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py index f0545be7d81..63cdb3115eb 100644 --- a/src/sage/misc/sageinspect.py +++ b/src/sage/misc/sageinspect.py @@ -1810,10 +1810,10 @@ def formatannotation(annotation, base_module=None): def sage_formatargspec(args, varargs=None, varkw=None, defaults=None, kwonlyargs=(), kwonlydefaults=None, annotations={}, formatarg=str, - formatvarargs=lambda name: '*' + name, - formatvarkw=lambda name: '**' + name, - formatvalue=lambda value: '=' + repr(value), - formatreturns=lambda text: ' -> ' + text, + formatvarargs=None, + formatvarkw=None, + formatvalue=None, + formatreturns=None, formatannotation=formatannotation): """ Format an argument spec from the values returned by getfullargspec. @@ -1843,6 +1843,15 @@ def sage_formatargspec(args, varargs=None, varkw=None, defaults=None, sage: sage_formatargspec(args, defaults=defaults) '(a, b, c=3)' """ + if formatvarargs is None: + formatvarargs = lambda name: '*' + name + if formatvarkw is None: + formatvarkw = lambda name: '**' + name + if formatvalue is None: + formatvalue = lambda value: '=' + repr(value) + if formatreturns is None: + formatreturns = lambda text: ' -> ' + text + def formatargandannotation(arg): result = formatarg(arg) if arg in annotations: From 0baa6dee9e859128e947b823a3d49cf969b9488d Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 21:59:43 +0900 Subject: [PATCH 06/22] Improve doc-build.yml --- .github/workflows/doc-build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 6588eac882d..53c6cbe9bdb 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -62,7 +62,9 @@ jobs: new_version=$(cat src/VERSION.txt) mathjax_path_to=$(SAGE_USE_CDNS=yes /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") (cd /sage/local/share/doc/sage/html/en && \ - find . -name "*.html" | xargs sed -i '/class="sidebar-brand-text"/s/Sage [0-9a-z.]* /Sage '$new_version' /;s,'$mathjax_path_from,$mathjax_path_to,';'; \ + find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '$new_version' /' \ + -e 's_'"$mathjax_path_from"'_'"$mathjax_path_to"'_' \ + -e '\__ d' && \ git init && \ (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && \ (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; \ @@ -125,12 +127,16 @@ jobs: run: | set -ex mkdir -p ./docs + (cd /sage/local/share/doc/sage/html/en && git commit -a -m 'new') # Create changelog echo '## Preview of CHANGES.html' + (cd /sage/local/share/doc/sage/html/en && \ + find . -name "*.html" | xargs sed -i -e '\__ d' ) (cd /sage/local/share/doc/sage/html/en && git diff --name-only) | tee ./docs/CHANGES.txt (cd /sage/local/share/doc/sage/html/en && git diff; rm -rf .git) > ./docs/html.diff echo '## Preview of html.diff'; head -n 400 ./docs/html.diff (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html + (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder # We also need to replace the symlinks because netlify is not following them From c1d67045bbb14dd2033ce233ded2a7571c40e88c Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 22:24:56 +0900 Subject: [PATCH 07/22] Add back comma --- src/sage/calculus/transforms/dft.py | 3 ++- src/sage/combinat/finite_state_machine.py | 3 ++- src/sage/combinat/root_system/type_A_affine.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sage/calculus/transforms/dft.py b/src/sage/calculus/transforms/dft.py index c3cc0671503..1b165fa6503 100644 --- a/src/sage/calculus/transforms/dft.py +++ b/src/sage/calculus/transforms/dft.py @@ -340,7 +340,8 @@ def dft(self, chi=None): implemented Group (permutation, matrix), call .characters() and test if the index list is the set of conjugacy classes. """ - chi = (lambda x: x) if chi is None else chi + if chi is None: + chi = lambda x: x J = self.index_object() # index set of length N N = len(J) S = self.list() diff --git a/src/sage/combinat/finite_state_machine.py b/src/sage/combinat/finite_state_machine.py index 8397cd239cd..045a5de379c 100644 --- a/src/sage/combinat/finite_state_machine.py +++ b/src/sage/combinat/finite_state_machine.py @@ -1003,7 +1003,8 @@ def full_group_by(l, key=None): Here, the result ``r`` has been sorted in order to guarantee a consistent order for the doctest suite. """ - key = (lambda x: x) if key is None else key + if key is None: + key = lambda x: x elements = defaultdict(list) original_keys = {} for item in l: diff --git a/src/sage/combinat/root_system/type_A_affine.py b/src/sage/combinat/root_system/type_A_affine.py index 5fe7bab2883..57ed18afd01 100644 --- a/src/sage/combinat/root_system/type_A_affine.py +++ b/src/sage/combinat/root_system/type_A_affine.py @@ -111,7 +111,7 @@ def dynkin_diagram(self): g.add_edge(0, n) return g - def _latex_dynkin_diagram(self, label=None node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. From db5613a6f122506bebc75b9b9b3829f1fef34581 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 22:41:10 +0900 Subject: [PATCH 08/22] Minor error --- src/sage/combinat/root_system/type_marked.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/combinat/root_system/type_marked.py b/src/sage/combinat/root_system/type_marked.py index 3f76189bbc9..a9ca7d15a35 100644 --- a/src/sage/combinat/root_system/type_marked.py +++ b/src/sage/combinat/root_system/type_marked.py @@ -278,7 +278,7 @@ def _latex_draw_mark(self, x, y, color='black', thickness='thin'): ret += "\\draw[shift={{({}, {})}}, {}, {}] (0.25cm, -0.25cm) -- (-0.25cm, 0.25cm);\n".format(x, y, color, thickness) return ret - def _latex_dynkin_diagram(self, label=label, node=None, node_dist=2): + def _latex_dynkin_diagram(self, label=None, node=None, node_dist=2): r""" Return a latex representation of the Dynkin diagram. From 07b17c6d84f4aeab78c5ee44e76954503d1742b5 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 23:08:49 +0900 Subject: [PATCH 09/22] Compare with the old doc --- .github/workflows/doc-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 53c6cbe9bdb..24a03bb2b69 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -132,8 +132,8 @@ jobs: echo '## Preview of CHANGES.html' (cd /sage/local/share/doc/sage/html/en && \ find . -name "*.html" | xargs sed -i -e '\__ d' ) - (cd /sage/local/share/doc/sage/html/en && git diff --name-only) | tee ./docs/CHANGES.txt - (cd /sage/local/share/doc/sage/html/en && git diff; rm -rf .git) > ./docs/html.diff + (cd /sage/local/share/doc/sage/html/en && git diff HEAD^ --name-only) | tee ./docs/CHANGES.txt + (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/html.diff echo '## Preview of html.diff'; head -n 400 ./docs/html.diff (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) From 5a7d593270cd9767a5d5d52c30ae74bcd800015f Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Thu, 19 Oct 2023 23:44:05 +0900 Subject: [PATCH 10/22] Put on cosmetics --- .github/workflows/doc-build.yml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 24a03bb2b69..d30380b84e8 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -56,15 +56,19 @@ jobs: git config --global --add safe.directory $(pwd) git config --global user.email "ci-sage@example.com" git config --global user.name "Build & Test workflow" + # mathjax path in old doc mathjax_path_from=$(SAGE_USE_CDNS=no /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") .ci/retrofit-worktree.sh worktree-image /sage - # Keep track of changes to built HTML - new_version=$(cat src/VERSION.txt) + # mathjax path in new doc mathjax_path_to=$(SAGE_USE_CDNS=yes /sage/sage -python -c "from sage_docbuild.conf import mathjax_path; print(mathjax_path)") + new_version=$(cat src/VERSION.txt) + # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '$new_version' /' \ -e 's_'"$mathjax_path_from"'_'"$mathjax_path_to"'_' \ - -e '\__ d' && \ + -e '\__ d') + # Create git repo from old doc + (cd /sage/local/share/doc/sage/html/en && \ git init && \ (echo "*.svg binary"; echo "*.pdf binary") >> .gitattributes && \ (echo ".buildinfo"; echo '*.inv'; echo '.git*'; echo '*.svg'; echo '*.pdf'; echo '*.png'; echo 'searchindex.js') > .gitignore; \ @@ -130,10 +134,22 @@ jobs: (cd /sage/local/share/doc/sage/html/en && git commit -a -m 'new') # Create changelog echo '## Preview of CHANGES.html' + # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ - find . -name "*.html" | xargs sed -i -e '\__ d' ) + find . -name "*.html" | xargs sed -i -e '\__ d') (cd /sage/local/share/doc/sage/html/en && git diff HEAD^ --name-only) | tee ./docs/CHANGES.txt - (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/html.diff + # Create diff + echo '' > ./docs/html.diff + echo '' >> ./docs/html.diff + echo '' >> ./docs/html.diff + echo '' >> ./docs/html.diff + echo '' >> ./docs/html.diff + echo '' >> ./docs/html.diff + echo '

' >> ./docs/html.diff
+          (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) >> ./docs/html.diff
+          echo '
' >> ./docs/html.diff + echo '' >> ./docs/html.diff + # Preview of changes echo '## Preview of html.diff'; head -n 400 ./docs/html.diff (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) From 5be55e816cb9978088d27d5a369f6074f6a01695 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 00:32:16 +0900 Subject: [PATCH 11/22] diff.html not html.diff --- .github/workflows/doc-build.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index d30380b84e8..411f66ee215 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -139,19 +139,19 @@ jobs: find . -name "*.html" | xargs sed -i -e '\__ d') (cd /sage/local/share/doc/sage/html/en && git diff HEAD^ --name-only) | tee ./docs/CHANGES.txt # Create diff - echo '' > ./docs/html.diff - echo '' >> ./docs/html.diff - echo '' >> ./docs/html.diff - echo '' >> ./docs/html.diff - echo '' >> ./docs/html.diff - echo '' >> ./docs/html.diff - echo '

' >> ./docs/html.diff
-          (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) >> ./docs/html.diff
-          echo '
' >> ./docs/html.diff - echo '' >> ./docs/html.diff + echo '' > ./docs/diff.html + echo '' >> ./docs/diff.html + echo '' >> ./docs/diff.html + echo '' >> ./docs/diff.html + echo '' >> ./docs/diff.html + echo '' >> ./docs/diff.html + echo '
' >> ./docs/diff.html
+          (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) >> ./docs/diff.html
+          echo '
' >> ./docs/diff.html + echo '' >> ./docs/diff.html # Preview of changes - echo '## Preview of html.diff'; head -n 400 ./docs/html.diff - (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html + echo '## Preview of diff.html'; head -n 400 ./docs/diff.html + (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder From 46b86927a718a2d011762b35090787fcc55fb49e Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 02:02:12 +0900 Subject: [PATCH 12/22] Sanitize text for html --- .github/workflows/doc-build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 411f66ee215..6ab3b23db7f 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -146,12 +146,13 @@ jobs: echo '' >> ./docs/diff.html echo '' >> ./docs/diff.html echo '

' >> ./docs/diff.html
-          (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) >> ./docs/diff.html
+          (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt
+          sed 's/\&/\&/g; s//\>/g' ./docs/diff.txt >> ./docs/diff.html
           echo '
' >> ./docs/diff.html echo '' >> ./docs/diff.html # Preview of changes echo '## Preview of diff.html'; head -n 400 ./docs/diff.html - (echo '

HTML diff'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html + (echo '

diff.html diff.txt'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder From b3df3d6e25a2e53f8b879e8ea4ab87a9a892ff1b Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 12:44:22 +0900 Subject: [PATCH 13/22] Reformat CHANGES.html --- .github/workflows/doc-build.yml | 41 +++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 6ab3b23db7f..bb72125e83f 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -132,27 +132,38 @@ jobs: set -ex mkdir -p ./docs (cd /sage/local/share/doc/sage/html/en && git commit -a -m 'new') - # Create changelog echo '## Preview of CHANGES.html' # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ find . -name "*.html" | xargs sed -i -e '\__ d') - (cd /sage/local/share/doc/sage/html/en && git diff HEAD^ --name-only) | tee ./docs/CHANGES.txt - # Create diff - echo '' > ./docs/diff.html - echo '' >> ./docs/diff.html - echo '' >> ./docs/diff.html - echo '' >> ./docs/diff.html - echo '' >> ./docs/diff.html - echo '' >> ./docs/diff.html - echo '

' >> ./docs/diff.html
+          # Create CHANGES.html
+          echo '' > ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
+          echo '' >> ./docs/CHANGES.html
           (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt
-          sed 's/\&/\&/g; s//\>/g' ./docs/diff.txt >> ./docs/diff.html
-          echo '
' >> ./docs/diff.html - echo '' >> ./docs/diff.html + python -c "import re, html + with open('./docs/diff.txt ', 'r') as f: + diff_text = f.read() + diff_blocks = re.split(r'^(?=diff --git)', diff_text, flags=re.MULTILINE) + out_blocks = [] + for block in diff_blocks: + match = re.search(r'^diff --git a/(.*) b/\1', block, flags=re.MULTILINE) + if match: + path = match.group(1) + out_blocks.append(f'

{path}

\n
\n' + html.escape(block).strip() + '\n
') + output_text = '\n'.join(out_blocks) + + with open('./docs/diff.html' ', 'w') as f: + f.write(output_text)" + cat .docs/diff.html >> ./docs/CHANGES.html + echo '' >> ./docs/CHANGES.html + echo '' >>./docs/CHANGES.html # Preview of changes - echo '## Preview of diff.html'; head -n 400 ./docs/diff.html - (echo '

diff.html diff.txt'; sed -E 's,(.*),

\1,' ./docs/CHANGES.txt) > ./docs/CHANGES.html + echo '## Preview of diff.txt'; head -n 400 ./docs/diff.txt (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder From ce5595b7303b4d3c69b92074583a2f1c84a5b5f8 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 14:29:31 +0900 Subject: [PATCH 14/22] Use sage python --- .github/workflows/doc-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index bb72125e83f..3f8c03c1338 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -145,7 +145,7 @@ jobs: echo '' >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt - python -c "import re, html + /sage/sage -python -c "import re, html with open('./docs/diff.txt ', 'r') as f: diff_text = f.read() diff_blocks = re.split(r'^(?=diff --git)', diff_text, flags=re.MULTILINE) From 5de3957bb83859472609e5059188ba25877d9bc0 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 15:29:43 +0900 Subject: [PATCH 15/22] Use here document for python script --- .github/workflows/doc-build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 3f8c03c1338..72019f3be85 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -145,7 +145,8 @@ jobs: echo '' >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt - /sage/sage -python -c "import re, html + /sage/sage -python - << EOF + import re, html with open('./docs/diff.txt ', 'r') as f: diff_text = f.read() diff_blocks = re.split(r'^(?=diff --git)', diff_text, flags=re.MULTILINE) @@ -158,7 +159,8 @@ jobs: output_text = '\n'.join(out_blocks) with open('./docs/diff.html' ', 'w') as f: - f.write(output_text)" + f.write(output_text) + EOF cat .docs/diff.html >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html echo '' >>./docs/CHANGES.html From 2c04ca0e5f53150996503020aecf2fd4bd39634c Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 16:17:49 +0900 Subject: [PATCH 16/22] Fix an error --- .github/workflows/doc-build.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 72019f3be85..c2ad6d15797 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -147,7 +147,7 @@ jobs: (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt /sage/sage -python - << EOF import re, html - with open('./docs/diff.txt ', 'r') as f: + with open('./docs/diff.txt', 'r') as f: diff_text = f.read() diff_blocks = re.split(r'^(?=diff --git)', diff_text, flags=re.MULTILINE) out_blocks = [] @@ -157,11 +157,10 @@ jobs: path = match.group(1) out_blocks.append(f'

{path}

\n
\n' + html.escape(block).strip() + '\n
') output_text = '\n'.join(out_blocks) - - with open('./docs/diff.html' ', 'w') as f: + with open('./docs/diff.html', 'w') as f: f.write(output_text) EOF - cat .docs/diff.html >> ./docs/CHANGES.html + cat ./docs/diff.html >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html echo '' >>./docs/CHANGES.html # Preview of changes From b5b49e29af04993920aca6b08b1ba117d2967d04 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 20:57:19 +0900 Subject: [PATCH 17/22] Use diffsite --- .github/workflows/doc-build.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index c2ad6d15797..ead31bd0978 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -142,6 +142,25 @@ jobs: echo '' >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html + cat >> ./docs/CHANGES.html << EOF + + EOF echo '' >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html (cd /sage/local/share/doc/sage/html/en && git diff HEAD^; rm -rf .git) > ./docs/diff.txt @@ -155,7 +174,7 @@ jobs: match = re.search(r'^diff --git a/(.*) b/\1', block, flags=re.MULTILINE) if match: path = match.group(1) - out_blocks.append(f'

{path}

\n
\n' + html.escape(block).strip() + '\n
') + out_blocks.append(f'

{path}

\n
\n' + html.escape(block).strip() + '\n
') output_text = '\n'.join(out_blocks) with open('./docs/diff.html', 'w') as f: f.write(output_text) From 6522884bf44dbb07c439a7ef683686f43bc432d1 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 20 Oct 2023 22:54:49 +0900 Subject: [PATCH 18/22] Fix urls --- .github/workflows/doc-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index ead31bd0978..cc53309e186 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -151,10 +151,10 @@ jobs: diffParagraphs.forEach(paragraph => { const rootURL = window.location.origin; const docAnchor = paragraph.querySelector('a'); - const path = docAnchor.href; + const path = docAnchor.textContent; // .href doesn't work const anchor = document.createElement('a'); anchor.href = diffSite + '?url1=' + rootURL + path + '&url2=' + baseDocURL + path; - anchor.textContent = 'compare with the base doc'; + anchor.textContent = 'compare with the base'; anchor.setAttribute('target', '_blank'); paragraph.appendChild(anchor); }); @@ -174,7 +174,7 @@ jobs: match = re.search(r'^diff --git a/(.*) b/\1', block, flags=re.MULTILINE) if match: path = match.group(1) - out_blocks.append(f'

{path}

\n
\n' + html.escape(block).strip() + '\n
') + out_blocks.append(f'

{path} 

\n
\n' + html.escape(block).strip() + '\n
') output_text = '\n'.join(out_blocks) with open('./docs/diff.html', 'w') as f: f.write(output_text) From 15381f7c1cc899cf99dc49deedf162abc14cb085 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 21 Oct 2023 00:03:45 +0900 Subject: [PATCH 19/22] Minor tweak --- .github/workflows/doc-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index cc53309e186..1e099b06998 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -149,7 +149,7 @@ jobs: const baseDocURL = 'https://sagemath-tobias.netlify.app/' const diffParagraphs = document.querySelectorAll('p.diff'); diffParagraphs.forEach(paragraph => { - const rootURL = window.location.origin; + const rootURL = window.location.origin + '/'; const docAnchor = paragraph.querySelector('a'); const path = docAnchor.textContent; // .href doesn't work const anchor = document.createElement('a'); @@ -174,7 +174,7 @@ jobs: match = re.search(r'^diff --git a/(.*) b/\1', block, flags=re.MULTILINE) if match: path = match.group(1) - out_blocks.append(f'

{path} 

\n
\n' + html.escape(block).strip() + '\n
') + out_blocks.append(f'

{path}

\n
' + html.escape(block).strip() + '
') output_text = '\n'.join(out_blocks) with open('./docs/diff.html', 'w') as f: f.write(output_text) From 228cb67fcf43291bbb79ddd3d679fdcf57d05df1 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 21 Oct 2023 00:07:48 +0900 Subject: [PATCH 20/22] Change delimiters --- .github/workflows/doc-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 1e099b06998..889633cc0ba 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -64,9 +64,9 @@ jobs: new_version=$(cat src/VERSION.txt) # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ - find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '$new_version' /' \ - -e 's_'"$mathjax_path_from"'_'"$mathjax_path_to"'_' \ - -e '\__ d') + find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '"$new_version"' /' \ + -e 's;'"$mathjax_path_from"';'"$mathjax_path_to"';' \ + -e '\;; d') # Create git repo from old doc (cd /sage/local/share/doc/sage/html/en && \ git init && \ @@ -135,7 +135,7 @@ jobs: echo '## Preview of CHANGES.html' # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ - find . -name "*.html" | xargs sed -i -e '\__ d') + find . -name "*.html" | xargs sed -i -e '\;; d') # Create CHANGES.html echo '' > ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html From 3013bd5545b5d7a7a0960a98adfd24bc6a8245fd Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 21 Oct 2023 07:54:21 +0900 Subject: [PATCH 21/22] Remove another spurious diff --- src/sage/rings/polynomial/groebner_fan.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/groebner_fan.py b/src/sage/rings/polynomial/groebner_fan.py index 7e067a3a087..eb8928d09b5 100644 --- a/src/sage/rings/polynomial/groebner_fan.py +++ b/src/sage/rings/polynomial/groebner_fan.py @@ -1234,7 +1234,7 @@ def homogeneity_space(self): return h def render(self, file=None, larger=False, shift=0, rgbcolor=(0, 0, 0), - polyfill=max_degree, scale_colors=True): + polyfill=True, scale_colors=True): """ Render a Groebner fan as sage graphics or save as an xfig file. @@ -1295,6 +1295,8 @@ def render(self, file=None, larger=False, shift=0, rgbcolor=(0, 0, 0), ... NotImplementedError """ + if polyfill is True: + polyfill = max_degree S = self.__ring if S.ngens() < 3: print("For 2-D fan rendering the polynomial ring must have 3 variables (or more, which are ignored).") From c81d50f54b116349ab32c0ca11324574bedf9896 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 21 Oct 2023 12:54:59 +0900 Subject: [PATCH 22/22] Remove preview --- .github/workflows/doc-build.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 889633cc0ba..5eb3998feee 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -66,7 +66,7 @@ jobs: (cd /sage/local/share/doc/sage/html/en && \ find . -name "*.html" | xargs sed -i -e '/class="sidebar-brand-text"/ s/Sage [0-9a-z.]* /Sage '"$new_version"' /' \ -e 's;'"$mathjax_path_from"';'"$mathjax_path_to"';' \ - -e '\;; d') + -e '\;; d') # Create git repo from old doc (cd /sage/local/share/doc/sage/html/en && \ git init && \ @@ -132,10 +132,9 @@ jobs: set -ex mkdir -p ./docs (cd /sage/local/share/doc/sage/html/en && git commit -a -m 'new') - echo '## Preview of CHANGES.html' # Wipe out chronic diffs between old doc and new doc (cd /sage/local/share/doc/sage/html/en && \ - find . -name "*.html" | xargs sed -i -e '\;; d') + find . -name "*.html" | xargs sed -i -e '\;; d') # Create CHANGES.html echo '' > ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html @@ -182,8 +181,7 @@ jobs: cat ./docs/diff.html >> ./docs/CHANGES.html echo '' >> ./docs/CHANGES.html echo '' >>./docs/CHANGES.html - # Preview of changes - echo '## Preview of diff.txt'; head -n 400 ./docs/diff.txt + rm ./docs/diff.txt ./docs/diff.html (cd /sage/local/share/doc/sage/html/en && git reset --hard HEAD) # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder