Date: Tuesday, September 20, 2022 @ 08:44:47
  Author: arojas
Revision: 1305433

upgpkg: sagemath 9.7-1: Update to 9.7

Modified:
  sagemath/trunk/PKGBUILD
  sagemath/trunk/sagemath-bliss-0.77.patch
  sagemath/trunk/sagemath-gap-4.12.patch
  sagemath/trunk/sagemath-ipywidgets-8.patch
  sagemath/trunk/sagemath-optional-packages.patch
  sagemath/trunk/sagemath-tachyon-0.99.patch
  sagemath/trunk/test-optional.patch
Deleted:
  sagemath/trunk/sagemath-jupyter-jsmol.patch

----------------------------------+
 PKGBUILD                         |   25 --
 sagemath-bliss-0.77.patch        |   91 -------
 sagemath-gap-4.12.patch          |   13 +
 sagemath-ipywidgets-8.patch      |  443 +++++++++++++++++++++++++++++++++++++
 sagemath-jupyter-jsmol.patch     |   22 -
 sagemath-optional-packages.patch |    2 
 sagemath-tachyon-0.99.patch      |   31 +-
 test-optional.patch              |    5 
 8 files changed, 498 insertions(+), 134 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-09-20 08:18:39 UTC (rev 1305432)
+++ PKGBUILD    2022-09-20 08:44:47 UTC (rev 1305433)
@@ -6,8 +6,8 @@
 # Contributor: Stefan Husmann <stefan-husmann at t-online dot de>
 
 pkgname=sagemath
-pkgver=9.6
-pkgrel=11
+pkgver=9.7
+pkgrel=1
 pkgdesc='Open Source Mathematics Software, free alternative to Magma, Maple, 
Mathematica, and Matlab'
 arch=(x86_64)
 url='http://www.sagemath.org'
@@ -47,7 +47,8 @@
   'sage-notebook-exporter: convert flask notebooks to Jupyter'
   'python-database-knotinfo: interface to the KnotInfo and LinkInfo databases'
   'python-phitigra: graph editor'
-  'topcom: to compute triangulations of point configurations')
+  'topcom: to compute triangulations of point configurations'
+  'python-database-cubic-hecke: cubic Hecke algebras')
 makedepends=(cython boost python-jinja sirocco mcqd coxeter bliss tdlib 
python-pkgconfig shared_meataxe)
 conflicts=(sagemath-jupyter)
 replaces=(sagemath-jupyter)
@@ -58,20 +59,18 @@
         sagemath-linbox-1.7.patch
         sagemath-bliss-0.77.patch
         sagemath-tachyon-0.99.patch
-        sagemath-jupyter-jsmol.patch
         sagemath-gap-4.12.patch
         sagemath-ipywidgets-8.patch
         sagemath-tdlib-0.9.patch)
-sha256sums=('c6225d48f70ac955fceed5c1fddfdd7294001d460b43a686329d5d44d836f6a3'
-            'e24c075a9f8e562fe9d85e6fd5b01eac4691683c01d4d22c83cde145b63f4dba'
+sha256sums=('9f26f14aa322e3cf38a71835b12ac34b23026b467f74d54b064c5d025e76fbfd'
+            'eee5fa15d8c7be7e009166dbde3ea24bb10d7793dc12880516f278f86b1a6694'
             'bd188af45ce31579b82407adee8e9bf6033a996f7ea6e328fabca526f31c08ba'
-            '89c1f82dbba376087f08b39b11f43bf781cec199d7d894713167d09dc32e3e18'
+            '9d042070df3dfd53a1248659677798da888f733548eda91a6d5169c7aa1907e1'
             'eacea27b214d32cb886a75695153dfc36b5bad2fd2517e8e4eee18e74220e9e3'
-            'b467a41e1e0a0850f7722d875a743233751966a206c2f61401c7582aa722f84e'
-            '4ee8071efd7b9ad66ac5bbfe081fe670cc58cfcac8fb783d5a40b6da3593cbf4'
-            '14431ef93a68324ed276d79d7be66b0fb6b73df74f0e049be522480153e22afa'
-            'dfa0288904504065ffae13e19ccd11e625f5b4a61fd07bf2f78f90ca2e2cb0be'
-            '9d6ac3b241eaf6c110a090807d99643eae83b20708baa35f322cdfb70ac2b565'
+            '3e1f866944235b999d2d727ed1ced431bd67405b053701c21068607ec76f23c3'
+            '9760db6c6ec40cc16ab8a0cbf3d019df7f6a69ff292e35622f282b7c888aac77'
+            '84c1700e285ab1d94d16d0a602417a414447d8a23ac2e55a093285cc4bd2916d'
+            'bdf56f85b608da12074780271ae134b02a03278f7b53a183f6dd97d8d72073e0'
             '56a83abecf2ff5a500442adc7a50abbb70006037dd39c39dcdb04b3ca9fb51e2')
 
 prepare(){
@@ -96,8 +95,6 @@
   patch -p1 -i ../test-optional.patch
 # use correct latte-count binary name
   patch -p1 -i ../latte-count.patch
-# port to new jupyter-jsmol extension name
-  patch -p1 -i ../sagemath-jupyter-jsmol.patch
 # update to tdlib 0.9 (Fedora)
   patch -p1 -i ../sagemath-tdlib-0.9.patch
 

Modified: sagemath-bliss-0.77.patch
===================================================================
--- sagemath-bliss-0.77.patch   2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-bliss-0.77.patch   2022-09-20 08:44:47 UTC (rev 1305433)
@@ -1,34 +1,3 @@
-diff --git a/build/pkgs/bliss/SPKG.rst b/build/pkgs/bliss/SPKG.rst
-index 236b87a199..77407f16ac 100644
---- a/build/pkgs/bliss/SPKG.rst
-+++ b/build/pkgs/bliss/SPKG.rst
-@@ -10,20 +10,19 @@ canonical forms of graphs.
- License
- -------
- 
--LGPL
-+LGPL3
- 
- 
- Upstream Contact
- ----------------
- 
--Bliss is currently being maintained by Tommi Junttila and Petteri Kaski.
-+Bliss is currently being maintained by Tommi Junttila at
- 
--http://www.tcs.tkk.fi/Software/bliss/index.html
-+https://users.aalto.fi/~tjunttil/bliss/index.html
-+
-+Bliss used to be maintained by Tommi Junttila and Petteri Kaski up to version 
0.73 at
- 
--We apply patches generated from https://github.com/mkoeppe/bliss (branch
--apply_debian_patches) as our upstream. This tracks the patches from the
--Debian package, adding an autotools build system and adjusting the
--include file locations.
-+http://www.tcs.tkk.fi/Software/bliss/index.html
- 
- Dependencies
- ------------
 diff --git a/build/pkgs/bliss/checksums.ini b/build/pkgs/bliss/checksums.ini
 index e97d89587b..0c1ebf647b 100644
 --- a/build/pkgs/bliss/checksums.ini
@@ -44,7 +13,7 @@
 +cksum=1626493724
 
+upstream_url=https://users.aalto.fi/~tjunttil/bliss/downloads/bliss-VERSION.zip
 diff --git a/build/pkgs/bliss/dependencies b/build/pkgs/bliss/dependencies
-index 3546cda461..66d6773d90 100644
+index 4f00de2037..c225c495cc 100644
 --- a/build/pkgs/bliss/dependencies
 +++ b/build/pkgs/bliss/dependencies
 @@ -1,4 +1,4 @@
@@ -60,44 +29,6 @@
 @@ -1 +1 @@
 -0.73+debian-1+sage-2016-08-02.p0
 +0.77
-diff --git a/build/pkgs/bliss/patches/bliss-0.77-install.patch 
b/build/pkgs/bliss/patches/bliss-0.77-install.patch
-new file mode 100644
-index 0000000000..caab14aa40
---- /dev/null
-+++ b/build/pkgs/bliss/patches/bliss-0.77-install.patch
-@@ -0,0 +1,32 @@
-+diff --git a/CMakeLists.txt b/CMakeLists.txt
-+index 01ed093..cfdb0a6 100644
-+--- a/CMakeLists.txt
-++++ b/CMakeLists.txt
-+@@ -62,3 +62,27 @@ if(USE_GMP)
-+   target_link_libraries(bliss-executable ${GMP_LIBRARIES})
-+ endif(USE_GMP)
-+ set_target_properties(bliss-executable PROPERTIES OUTPUT_NAME bliss)
-++
-++include(GNUInstallDirs)
-++
-++set(
-++  BLISS_HEADERS
-++  src/bliss_C.h
-++  src/uintseqhash.hh
-++  src/abstractgraph.hh
-++  src/stats.hh
-++  src/digraph.hh
-++  src/defs.hh
-++  src/heap.hh
-++  src/graph.hh
-++  src/partition.hh
-++  src/kqueue.hh
-++  src/utils.hh
-++  src/orbit.hh
-++  src/timer.hh
-++  src/bignum.hh
-++)
-++
-++install(TARGETS bliss-executable RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-++install(TARGETS bliss LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-++install(FILES ${BLISS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bliss)
 diff --git a/build/pkgs/bliss/spkg-install.in 
b/build/pkgs/bliss/spkg-install.in
 index aaf4c3037b..4124a2338e 100644
 --- a/build/pkgs/bliss/spkg-install.in
@@ -143,7 +74,7 @@
 -
 -
 diff --git a/src/sage/graphs/bliss.pyx b/src/sage/graphs/bliss.pyx
-index bf15833664..4f4e0ee3ca 100644
+index 921bc6a765..1f1f502558 100644
 --- a/src/sage/graphs/bliss.pyx
 +++ b/src/sage/graphs/bliss.pyx
 @@ -47,22 +47,23 @@ cdef extern from "bliss/graph.hh" namespace "bliss":
@@ -150,11 +81,11 @@
      cdef cppclass Graph(AbstractGraph):
          Graph(const unsigned int)
          void add_edge(const unsigned int, const unsigned int)
--        void find_automorphisms(Stats&, void (*)(void* , unsigned int,
--                    const unsigned int*), void*)
+-        void find_automorphisms(Stats&, void (*)(void*, unsigned int,
+-                                                 const unsigned int*), void*)
          void change_color(const unsigned int, const unsigned int)
--        const unsigned int* canonical_form(Stats&, void (*)(void*,unsigned 
int,
--                    const unsigned int*), void*)
+-        const unsigned int* canonical_form(Stats&, void (*)(void*, unsigned 
int,
+-                                                            const unsigned 
int*), void*)
 +        const unsigned int* canonical_form(Stats&)
 +
 +cdef extern from "bliss/digraph.hh" namespace "bliss":
@@ -162,11 +93,11 @@
      cdef cppclass Digraph(AbstractGraph):
          Digraph(const unsigned int)
          void add_edge(const unsigned int, const unsigned int)
--        void find_automorphisms(Stats&, void (*)(void* , unsigned int,
--                    const unsigned int*), void*)
+-        void find_automorphisms(Stats&, void (*)(void*, unsigned int,
+-                                                 const unsigned int*), void*)
          void change_color(const unsigned int, const unsigned int)
--        const unsigned int* canonical_form(Stats&, void (*)(void*,unsigned 
int,
--                    const unsigned int*), void*)
+-        const unsigned int* canonical_form(Stats&, void (*)(void*, unsigned 
int,
+-                                                            const unsigned 
int*), void*)
 +        const unsigned int* canonical_form(Stats&)
          unsigned int get_hash()
  
@@ -182,7 +113,7 @@
  
      sig_free(done)
  
--cdef void empty_hook(void *user_param , unsigned int n, const unsigned int 
*aut):
+-cdef void empty_hook(void *user_param, unsigned int n, const unsigned int 
*aut):
 -    return
 -
  #####################################################

Modified: sagemath-gap-4.12.patch
===================================================================
--- sagemath-gap-4.12.patch     2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-gap-4.12.patch     2022-09-20 08:44:47 UTC (rev 1305433)
@@ -21,6 +21,19 @@
      X.10     4 -2  . -1  .  .  .  2  .  .  1  . -4
      X.11     4  2  . -1  .  .  . -2  .  .  1  . -4
      X.12     6  . -2  .  . -2 -2  .  .  .  .  2  6
+diff --git a/src/sage/coding/codecan/autgroup_can_label.pyx 
b/src/sage/coding/codecan/autgroup_can_label.pyx
+index de5db985e0..c83b9264e4 100644
+--- a/src/sage/coding/codecan/autgroup_can_label.pyx
++++ b/src/sage/coding/codecan/autgroup_can_label.pyx
+@@ -76,7 +76,7 @@ columns do share the same coloring::
+     ((1,),
+      (2,),
+      (3, 5, 4),
+-     (6, 19, 16, 9, 21, 10, 8, 15, 14, 11, 20, 13, 12, 7, 17, 18))
++     (6, 19, 16, 21, 9, 10, 15, 8, 20, 11, 14, 13, 7, 12, 18, 17))
+ 
+ We can also restrict the group action to linear isometries::
+ 
 diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py
 index e8e32f82c9..9d45160f44 100644
 --- a/src/sage/coding/linear_code.py

Modified: sagemath-ipywidgets-8.patch
===================================================================
--- sagemath-ipywidgets-8.patch 2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-ipywidgets-8.patch 2022-09-20 08:44:47 UTC (rev 1305433)
@@ -1,7 +1,29 @@
+diff --git a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py 
b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py
+index e65d605..d7c4d84 100644
+--- a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py
++++ b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py
+@@ -1062,7 +1062,7 @@ class ClusterSeed(SageObject):
+ 
+             sage: S = ClusterSeed(['A',4])
+             sage: S.interact()
+-            VBox(children=...
++            ...VBox(children=...
+         """
+         return cluster_interact(self, fig_size, circular, kind='seed')
+ 
 diff --git a/src/sage/combinat/cluster_algebra_quiver/interact.py 
b/src/sage/combinat/cluster_algebra_quiver/interact.py
 index 4e54c64..1c88e61 100644
 --- a/src/sage/combinat/cluster_algebra_quiver/interact.py
 +++ b/src/sage/combinat/cluster_algebra_quiver/interact.py
+@@ -27,7 +27,7 @@ def cluster_interact(self, fig_size=1, circular=True, 
kind='seed'):
+ 
+         sage: S = ClusterSeed(['A',4])
+         sage: S.interact()   # indirect doctest
+-        VBox(children=...
++        ...VBox(children=...
+     """
+     if kind not in ['seed', 'quiver']:
+         raise ValueError('kind must be "seed" or "quiver"')
 @@ -107,7 +107,7 @@ def cluster_interact(self, fig_size=1, circular=True, 
kind='seed'):
      show_lastmutation.observe(refresh, 'value')
      which_plot.observe(refresh, 'value')
@@ -11,10 +33,340 @@
  
      if kind == 'seed':
          top = widgets.HBox([show_seq, show_vars])
+diff --git a/src/sage/combinat/cluster_algebra_quiver/quiver.py 
b/src/sage/combinat/cluster_algebra_quiver/quiver.py
+index 4f6e16b..14a176c 100644
+--- a/src/sage/combinat/cluster_algebra_quiver/quiver.py
++++ b/src/sage/combinat/cluster_algebra_quiver/quiver.py
+@@ -699,7 +699,7 @@ class ClusterQuiver(SageObject):
+ 
+             sage: S = ClusterQuiver(['A',4])
+             sage: S.interact()
+-            VBox(children=...
++            ...VBox(children=...
+         """
+         return cluster_interact(self, fig_size, circular, kind="quiver")
+ 
+diff --git a/src/sage/dynamics/complex_dynamics/mandel_julia.py 
b/src/sage/dynamics/complex_dynamics/mandel_julia.py
+index 224a484..ce67274 100644
+--- a/src/sage/dynamics/complex_dynamics/mandel_julia.py
++++ b/src/sage/dynamics/complex_dynamics/mandel_julia.py
+@@ -130,7 +130,7 @@ def mandelbrot_plot(f=None, **kwds):
+     ``interact`` to ``True``. (This is only implemented for ``z^2 + c``)::
+ 
+         sage: mandelbrot_plot(interact=True)
+-        interactive(children=(FloatSlider(value=0.0, description='Real 
center', max=1.0, min=-1.0, step=1e-05),
++        ...interactive(children=(FloatSlider(value=0.0, description='Real 
center', max=1.0, min=-1.0, step=1e-05),
+         FloatSlider(value=0.0, description='Imag center', max=1.0, min=-1.0, 
step=1e-05),
+         FloatSlider(value=4.0, description='Width', max=4.0, min=1e-05, 
step=1e-05),
+         IntSlider(value=500, description='Iterations', max=1000),
+@@ -144,7 +144,7 @@ def mandelbrot_plot(f=None, **kwds):
+ 
+         sage: mandelbrot_plot(interact=True, x_center=-0.75, y_center=0.25,
+         ....: image_width=1/2, number_of_colors=75)
+-        interactive(children=(FloatSlider(value=-0.75, description='Real 
center', max=1.0, min=-1.0, step=1e-05),
++        ...interactive(children=(FloatSlider(value=-0.75, description='Real 
center', max=1.0, min=-1.0, step=1e-05),
+         FloatSlider(value=0.25, description='Imag center', max=1.0, min=-1.0, 
step=1e-05),
+         FloatSlider(value=0.5, description='Width', max=4.0, min=1e-05, 
step=1e-05),
+         IntSlider(value=500, description='Iterations', max=1000),
+@@ -600,14 +600,14 @@ def julia_plot(f=None, **kwds):
+     the form ``f = z^2 + c``)::
+ 
+         sage: julia_plot(interact=True)
+-        interactive(children=(FloatSlider(value=-1.0, description='Real c'...
++        ...interactive(children=(FloatSlider(value=-1.0, description='Real 
c'...
+ 
+         ::
+ 
+         sage: R.<z> = CC[]
+         sage: f = z^2 + 1/2
+         sage: julia_plot(f,interact=True)
+-        interactive(children=(FloatSlider(value=0.5, description='Real c'...
++        ...interactive(children=(FloatSlider(value=0.5, description='Real 
c'...
+ 
+     To return the Julia set of a random `c` value with (formal) cycle 
structure
+     `(2,3)`, set ``period = [2,3]``::
+diff --git a/src/sage/interacts/library.py b/src/sage/interacts/library.py
+index 8166014..6a982db 100644
+--- a/src/sage/interacts/library.py
++++ b/src/sage/interacts/library.py
+@@ -12,7 +12,7 @@ interactive mathlet.  In the command line, it will simply 
return the underlying
+ HTML and Sage code which creates the mathlet::
+ 
+     sage: interacts.calculus.taylor_polynomial()
+-    Interactive function <function taylor_polynomial at ...> with 3 widgets
++    ...Interactive function <function taylor_polynomial at ...> with 3 widgets
+       title: HTMLText(value='<h2>Taylor polynomial</h2>')
+       f: EvalText(value='e^(-x)*sin(x)', description='$f(x)=$', 
layout=Layout(max_width='81em'))
+       order: SelectionSlider(description='order', options=(1, 2, 3, 4, 5, 6, 
7, 8, 9, 10, 11, 12), value=1)
+@@ -101,7 +101,7 @@ def library_interact(
+         ....: def f(n):
+         ....:     print(n)
+         sage: f()  # an interact appears if using the notebook, else code
+-        Interactive function <function f at ...> with 1 widget
++        ...Interactive function <function f at ...> with 1 widget
+         n: TransformIntSlider(value=5, description='n', max=15, min=-5)
+ 
+     TESTS:
+@@ -117,7 +117,7 @@ def library_interact(
+         DeprecationWarning: Use decorator factory @library_interact(widgets) 
instead of @library_interact without any arguments.
+         See https://trac.sagemath.org/33382 for details.
+         sage: f()  # an interact appears if using the notebook, else code
+-        Interactive function <function f at ...> with 1 widget
++        ...Interactive function <function f at ...> with 1 widget
+         n: TransformIntSlider(value=5, description='n', max=15, min=-5)
+ 
+     .. NOTE::
+@@ -183,7 +183,7 @@ def demo(n: int, m: int):
+     creates the mathlet::
+ 
+         sage: interacts.demo()
+-        Interactive function <function demo at ...> with 2 widgets
++        ...Interactive function <function demo at ...> with 2 widgets
+           n: SelectionSlider(description='n', options=(0, 1, 2, 3, 4, 5, 6, 
7, 8, 9), value=0)
+           m: SelectionSlider(description='m', options=(0, 1, 2, 3, 4, 5, 6, 
7, 8, 9), value=0)
+     """
+@@ -213,7 +213,7 @@ def taylor_polynomial(title, f, order: int):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.taylor_polynomial()
+-        Interactive function <function taylor_polynomial at ...> with 3 
widgets
++        ...Interactive function <function taylor_polynomial at ...> with 3 
widgets
+           title: HTMLText(value='<h2>Taylor polynomial</h2>')
+           f: EvalText(value='e^(-x)*sin(x)', description='$f(x)=$', 
layout=Layout(max_width='81em'))
+           order: SelectionSlider(description='order', options=(1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11, 12), value=1)
+@@ -259,7 +259,7 @@ def definite_integral(title, f, g, interval, x_range, 
selection):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.definite_integral()
+-        Interactive function <function definite_integral at ...> with 6 
widgets
++        ...Interactive function <function definite_integral at ...> with 6 
widgets
+           title: HTMLText(value='<h2>Definite integral</h2>')
+           f: EvalText(value='3*x', description='$f(x)=$', 
layout=Layout(max_width='81em'))
+           g: EvalText(value='x^2', description='$g(x)=$', 
layout=Layout(max_width='81em'))
+@@ -345,7 +345,7 @@ def function_derivative(title, function, x_range, y_range):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.function_derivative()
+-        Interactive function <function function_derivative at ...> with 4 
widgets
++        ...Interactive function <function function_derivative at ...> with 4 
widgets
+           title: HTMLText(value='<h2>Derivative grapher</h2>')
+           function: EvalText(value='x^5-3*x^3+1', description='Function:', 
layout=Layout(max_width='81em'))
+           x_range: FloatRangeSlider(value=(-2.0, 2.0), description='Range 
(x)', max=15.0, min=-15.0)
+@@ -393,7 +393,7 @@ def difference_quotient(title, f, interval, a, x0):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.difference_quotient()
+-        Interactive function <function difference_quotient at ...> with 5 
widgets
++        ...Interactive function <function difference_quotient at ...> with 5 
widgets
+           title: HTMLText(value='<h2>Difference quotient</h2>')
+           f: EvalText(value='sin(x)', description='f(x)', 
layout=Layout(max_width='81em'))
+           interval: FloatRangeSlider(value=(0.0, 10.0), description='Range', 
max=10.0)
+@@ -458,7 +458,7 @@ def quadratic_equation(A, B, C):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.quadratic_equation()
+-        Interactive function <function quadratic_equation at ...> with 3 
widgets
++        ...Interactive function <function quadratic_equation at ...> with 3 
widgets
+           A: IntSlider(value=1, description='A', max=7, min=-7)
+           B: IntSlider(value=1, description='B', max=7, min=-7)
+           C: IntSlider(value=-2, description='C', max=7, min=-7)
+@@ -520,7 +520,7 @@ def trigonometric_properties_triangle(a0, a1, a2):
+     creates the mathlet::
+ 
+         sage: interacts.geometry.trigonometric_properties_triangle()
+-        Interactive function <function trigonometric_properties_triangle at 
...> with 3 widgets
++        ...Interactive function <function trigonometric_properties_triangle 
at ...> with 3 widgets
+           a0: IntSlider(value=30, description='A', max=360)
+           a1: IntSlider(value=180, description='B', max=360)
+           a2: IntSlider(value=300, description='C', max=360)
+@@ -601,7 +601,7 @@ def unit_circle(function, x):
+     creates the mathlet::
+ 
+         sage: interacts.geometry.unit_circle()
+-        Interactive function <function unit_circle at ...> with 2 widgets
++        ...Interactive function <function unit_circle at ...> with 2 widgets
+           function: Dropdown(description='function', options=(('sin(x)', 0), 
('cos(x)', 1), ('tan(x)', 2)), value=0)
+           x: TransformFloatSlider(value=0.0, description='x', 
max=6.283185307179586, step=0.015707963267948967)
+     """
+@@ -702,7 +702,7 @@ def special_points(
+     creates the mathlet::
+ 
+         sage: interacts.geometry.special_points()
+-        Interactive function <function special_points at ...> with 10 widgets
++        ...Interactive function <function special_points at ...> with 10 
widgets
+           title: HTMLText(value='<h2>Special points in triangle</h2>')
+           a0: IntSlider(value=30, description='A', max=360)
+           a1: IntSlider(value=180, description='B', max=360)
+@@ -875,7 +875,7 @@ def coin(n, interval):
+     creates the mathlet::
+ 
+         sage: interacts.statistics.coin()
+-        Interactive function <function coin at ...> with 2 widgets
++        ...Interactive function <function coin at ...> with 2 widgets
+           n: IntSlider(value=1000, description='Number of Tosses', max=10000, 
min=2, step=100)
+           interval: IntRangeSlider(value=(0, 0), description='Plotting range 
(y)', max=1)
+     """
+@@ -915,7 +915,7 @@ def bisection_method(title, f, interval, d, maxn):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.secant_method()
+-        Interactive function <function secant_method at ...> with 5 widgets
++        ...Interactive function <function secant_method at ...> with 5 widgets
+           title: HTMLText(value='<h2>Secant method for numerical root 
finding</h2>')
+           f: EvalText(value='x^2-2', description='f(x)', 
layout=Layout(max_width='81em'))
+           interval: IntRangeSlider(value=(0, 4), description='range', max=5, 
min=-5)
+@@ -995,7 +995,7 @@ def secant_method(title, f, interval, d, maxn):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.secant_method()
+-        Interactive function <function secant_method at ...> with 5 widgets
++        ...Interactive function <function secant_method at ...> with 5 widgets
+           title: HTMLText(value='<h2>Secant method for numerical root 
finding</h2>')
+           f: EvalText(value='x^2-2', description='f(x)', 
layout=Layout(max_width='81em'))
+           interval: IntRangeSlider(value=(0, 4), description='range', max=5, 
min=-5)
+@@ -1068,7 +1068,7 @@ def newton_method(title, f, c, d, maxn, interval, 
list_steps):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.newton_method()
+-        Interactive function <function newton_method at ...> with 7 widgets
++        ...Interactive function <function newton_method at ...> with 7 widgets
+           title: HTMLText(value='<h2>Newton method</h2>')
+           f: EvalText(value='x^2 - 2', description='f', 
layout=Layout(max_width='81em'))
+           c: IntSlider(value=6, description='Start ($x$)', max=10, min=-10)
+@@ -1152,7 +1152,7 @@ def trapezoid_integration(
+     creates the mathlet::
+ 
+         sage: interacts.calculus.trapezoid_integration()
+-        Interactive function <function trapezoid_integration at ...> with 7 
widgets
++        ...Interactive function <function trapezoid_integration at ...> with 
7 widgets
+           title: HTMLText(value='<h2>Trapezoid integration</h2>')
+           f: EvalText(value='x^2-5*x + 10', description='$f(x)=$', 
layout=Layout(max_width='81em'))
+           n: IntSlider(value=5, description='# divisions', min=1)
+@@ -1284,7 +1284,7 @@ def simpson_integration(
+     creates the mathlet::
+ 
+         sage: interacts.calculus.simpson_integration()
+-        Interactive function <function simpson_integration at ...> with 7 
widgets
++        ...Interactive function <function simpson_integration at ...> with 7 
widgets
+           title: HTMLText(value='<h2>Simpson integration</h2>')
+           f: EvalText(value='x*sin(x)+x+1', description='$f(x)=$', 
layout=Layout(max_width='81em'))
+           n: IntSlider(value=6, description='# divisions', min=2, step=2)
+@@ -1547,7 +1547,7 @@ def function_tool(f, g, xrange, yrange, a, action, 
do_plot):
+     creates the mathlet::
+ 
+         sage: interacts.calculus.function_tool()
+-        Interactive function <function function_tool at ...> with 7 widgets
++        ...Interactive function <function function_tool at ...> with 7 widgets
+           f: EvalText(value='sin(x)', description='f')
+           g: EvalText(value='cos(x)', description='g')
+           xrange: IntRangeSlider(value=(0, 1), description='x-range', max=3, 
min=-3)
+@@ -1677,7 +1677,7 @@ def julia(expo, c_real, c_imag, iterations, zoom_x, 
zoom_y, plot_points, dpi):
+     creates the mathlet::
+ 
+         sage: interacts.fractals.julia()
+-        Interactive function <function julia at ...> with 8 widgets
++        ...Interactive function <function julia at ...> with 8 widgets
+           expo: FloatSlider(value=2.0, description='expo', max=10.0, 
min=-10.0)
+           c_real: FloatSlider(value=0.5, description='real part const.', 
max=2.0, min=-2.0, step=0.01)
+           c_imag: FloatSlider(value=0.5, description='imag part const.', 
max=2.0, min=-2.0, step=0.01)
+@@ -1729,7 +1729,7 @@ def mandelbrot(expo, iterations, zoom_x, zoom_y, 
plot_points, dpi):
+     creates the mathlet::
+ 
+         sage: interacts.fractals.mandelbrot()
+-        Interactive function <function mandelbrot at ...> with 6 widgets
++        ...Interactive function <function mandelbrot at ...> with 6 widgets
+           expo: FloatSlider(value=2.0, description='expo', max=10.0, 
min=-10.0)
+           iterations: IntSlider(value=20, description='# iterations', min=1)
+           zoom_x: FloatRangeSlider(value=(-2.0, 1.0), description='Zoom X', 
max=2.0, min=-2.0, step=0.01)
+@@ -1774,7 +1774,7 @@ def cellular_automaton(N, rule_number, size):
+     creates the mathlet::
+ 
+         sage: interacts.fractals.cellular_automaton()
+-        Interactive function <function cellular_automaton at ...> with 3 
widgets
++        ...Interactive function <function cellular_automaton at ...> with 3 
widgets
+           N: IntSlider(value=100, description='Number of iterations', 
max=500, min=1)
+           rule_number: IntSlider(value=110, description='Rule number', 
max=255)
+           size: IntSlider(value=6, description='size of graphic', max=11, 
min=1)
+@@ -1833,7 +1833,7 @@ def polar_prime_spiral(interval, show_factors, 
highlight_primes, show_curves, n,
+     creates the mathlet::
+ 
+         sage: sage.interacts.algebra.polar_prime_spiral()
+-        Interactive function <function polar_prime_spiral at ...> with 6 
widgets
++        ...Interactive function <function polar_prime_spiral at ...> with 6 
widgets
+           interval: IntRangeSlider(value=(1, 1000), description='range', 
max=4000, min=1, step=10)
+           show_factors: Checkbox(value=True, description='show_factors')
+           highlight_primes: Checkbox(value=True, 
description='highlight_primes')
+diff --git a/src/sage/plot/plot3d/plot3d.py b/src/sage/plot/plot3d/plot3d.py
+index 44620a0..43e1ce9 100644
+--- a/src/sage/plot/plot3d/plot3d.py
++++ b/src/sage/plot/plot3d/plot3d.py
+@@ -1300,7 +1300,7 @@ def plot3d(f, urange, vrange, adaptive=False, 
transformation=None, **kwds):
+         sage: @interact
+         ....: def _(which_plot=[A,B,C,D,E]):
+         ....:     show(which_plot)
+-        Interactive function <function _ at ...> with 1 widget
++        ...Interactive function <function _ at ...> with 1 widget
+           which_plot: Dropdown(description='which_plot', options=(Graphics3d 
Object, Graphics3d Object, Graphics3d Object, Graphics3d Object, Graphics3d 
Object), value=Graphics3d Object)
+ 
+     Now plot a function::
+@@ -1314,7 +1314,7 @@ def plot3d(f, urange, vrange, adaptive=False, 
transformation=None, **kwds):
+         sage: @interact
+         ....: def _(which_plot=[F, G, H, I, J]):
+         ....:     show(which_plot)
+-        Interactive function <function _ at ...> with 1 widget
++        ...Interactive function <function _ at ...> with 1 widget
+           which_plot: Dropdown(description='which_plot', options=(Graphics3d 
Object, Graphics3d Object, Graphics3d Object, Graphics3d Object, Graphics3d 
Object), value=Graphics3d Object)
+ 
+     TESTS:
+diff --git a/src/sage/repl/display/formatter.py 
b/src/sage/repl/display/formatter.py
+index adde08d..62bde3b 100644
+--- a/src/sage/repl/display/formatter.py
++++ b/src/sage/repl/display/formatter.py
+@@ -169,8 +169,7 @@ class SageDisplayFormatter(DisplayFormatter):
+             sage: shell.run_cell('import ipywidgets')
+             sage: shell.run_cell('slider = ipywidgets.IntSlider()')
+             sage: 
shell.run_cell('get_ipython().display_formatter.format(slider)')
+-            IntSlider(value=0)
+-            ({}, {})
++            ...IntSlider(value=0)..., {})
+ 
+             sage: shell.run_cell('%display default')
+             sage: shell.quit()
 diff --git a/src/sage/repl/ipython_kernel/interact.py 
b/src/sage/repl/ipython_kernel/interact.py
 index 9b94bc4..a2665a4 100644
 --- a/src/sage/repl/ipython_kernel/interact.py
 +++ b/src/sage/repl/ipython_kernel/interact.py
+@@ -18,7 +18,7 @@ EXAMPLES::
+     sage: @interact
+     ....: def f(x=(0, 10)):
+     ....:     pass
+-    Interactive function <function f at ...> with 1 widget
++    ...Interactive function <function f at ...> with 1 widget
+       x: IntSlider(value=5, description='x', max=10)
+     sage: f.widget.children
+     (IntSlider(value=5, description='x', max=10), Output())
+@@ -69,7 +69,7 @@ class sage_interactive(interactive):
+         sage: from sage.repl.ipython_kernel.interact import sage_interactive
+         sage: def myfunc(x=10, y="hello", z=None): pass
+         sage: sage_interactive(myfunc, x=(0,100), z=["one", "two", "three"])
+-        Interactive function <function myfunc at ...> with 3 widgets
++        ...Interactive function <function myfunc at ...> with 3 widgets
+           x: IntSlider(value=10, description='x')
+           y: Text(value='hello', description='y')
+           z: Dropdown(description='z', options=('one', 'two', 'three'), 
value=None)
+@@ -99,10 +99,10 @@ class sage_interactive(interactive):
+ 
+             sage: def myfunc(auto_update=False): pass
+             sage: sage_interactive(myfunc)
+-            Manual interactive function <function myfunc ...> with 0 widgets
++            ...Manual interactive function <function myfunc ...> with 0 
widgets
+             sage: def myfunc(auto_update=None): pass
+             sage: sage_interactive(myfunc)
+-            Interactive function <function myfunc ...> with 0 widgets
++            ...Interactive function <function myfunc ...> with 0 widgets
+         """
+         # Use *args to avoid name clash with keyword arguments
+         if len(args) < 2:
 @@ -126,7 +126,7 @@ class sage_interactive(interactive):
          super(sage_interactive, self).__init__(f, options, **kwds)
          if self.manual:
@@ -24,6 +376,97 @@
          else:
              # In automatic mode, clicking on a ToggleButtons button
              # should also run the interact
+@@ -143,7 +143,7 @@ class sage_interactive(interactive):
+             sage: from sage.repl.ipython_kernel.interact import 
sage_interactive
+             sage: def myfunc(): pass
+             sage: sage_interactive(myfunc)
+-            Interactive function <function myfunc ...> with 0 widgets
++            ...Interactive function <function myfunc ...> with 0 widgets
+         """
+         s = "Manual interactive" if self.manual else "Interactive"
+         widgets = [w for w in self.children if isinstance(w, ValueWidget)]
+@@ -164,7 +164,7 @@ class sage_interactive(interactive):
+             sage: from sage.repl.ipython_kernel.interact import 
sage_interactive
+             sage: def myfunc(x=[1,2,3], auto_update=False): pass
+             sage: sage_interactive(myfunc).signature().parameters
+-            mappingproxy({'x': <Parameter "x=[1, 2, 3]">})
++            ...mappingproxy({'x': <Parameter "x=[1, 2, 3]">})
+         """
+         return self.__signature
+ 
+@@ -181,14 +181,14 @@ class sage_interactive(interactive):
+ 
+             sage: from sage.repl.ipython_kernel.interact import 
sage_interactive
+             sage: sage_interactive.widget_from_single_value("sin(x)")
+-            Text(value='sin(x)')
++            ...Text(value='sin(x)')
+             sage: sage_interactive.widget_from_single_value(sin(x))
+-            EvalText(value='sin(x)')
++            ...EvalText(value='sin(x)')
+             sage: from sage.plot.colors import Color
+             sage: sage_interactive.widget_from_single_value(matrix([[1, 2], 
[3, 4]]))
+-            Grid(value=[[1, 2], [3, 4]], children=(Label(value=''), 
VBox(children=(EvalText(value='1', layout=Layout(max_width='5em')), 
EvalText(value='3', layout=Layout(max_width='5em')))), 
VBox(children=(EvalText(value='2', layout=Layout(max_width='5em')), 
EvalText(value='4', layout=Layout(max_width='5em'))))))
++            ...Grid(value=[[1, 2], [3, 4]], children=(Label(value=''), 
VBox(children=(EvalText(value='1', layout=Layout(max_width='5em')), 
EvalText(value='3', layout=Layout(max_width='5em')))), 
VBox(children=(EvalText(value='2', layout=Layout(max_width='5em')), 
EvalText(value='4', layout=Layout(max_width='5em'))))))
+             sage: 
sage_interactive.widget_from_single_value(Color('cornflowerblue'))
+-            SageColorPicker(value='#6495ed')
++            ...SageColorPicker(value='#6495ed')
+         """
+         # Support Sage matrices and colors
+         if isinstance(abbrev, Matrix):
+@@ -219,15 +219,15 @@ class sage_interactive(interactive):
+ 
+             sage: from sage.repl.ipython_kernel.interact import 
sage_interactive
+             sage: sage_interactive.widget_from_tuple( (0, 10) )
+-            IntSlider(value=5, max=10)
++            ...IntSlider(value=5, max=10)
+             sage: sage_interactive.widget_from_tuple( ("number", (0, 10)) )
+-            IntSlider(value=5, description='number', max=10)
++            ...IntSlider(value=5, description='number', max=10)
+             sage: sage_interactive.widget_from_tuple( (3, (0, 10)) )
+-            IntSlider(value=3, max=10)
+-            sage: sage_interactive.widget_from_tuple((2, dict(one=1, two=2, 
three=3)))
+-            Dropdown(index=1, options={'one': 1, 'two': 2, 'three': 3}, 
value=2)
++            ...IntSlider(value=3, max=10)
++            sage: sage_interactive.widget_from_tuple((2, [('one', 1), ('two', 
2), ('three', 3)]))
++            ...Dropdown(index=1, options=(('one', 1), ('two', 2), ('three', 
3)), value=2)
+             sage: sage_interactive.widget_from_tuple( (sqrt(2), pi) )
+-            FloatSlider(value=2.277903107981444, max=3.141592653589793, 
min=1.4142135623730951)
++            ...FloatSlider(value=2.277903107981444, max=3.141592653589793, 
min=1.4142135623730951)
+ 
+         TESTS:
+ 
+@@ -235,7 +235,7 @@ class sage_interactive(interactive):
+ 
+             sage: SCR = SR.subring(no_variables=True)
+             sage: sage_interactive.widget_from_tuple( (SCR(sqrt(2)), SCR(pi)) 
)
+-            FloatSlider(value=2.277903107981444, max=3.141592653589793, 
min=1.4142135623730951)
++            ...FloatSlider(value=2.277903107981444, max=3.141592653589793, 
min=1.4142135623730951)
+         """
+         # Support (description, abbrev)
+         if len(abbrev) == 2 and isinstance(abbrev[0], str):
+@@ -269,17 +269,17 @@ class sage_interactive(interactive):
+ 
+             sage: from sage.repl.ipython_kernel.interact import 
sage_interactive
+             sage: sage_interactive.widget_from_iterable([1..5])
+-            Dropdown(options=(1, 2, 3, 4, 5), value=1)
++            ...Dropdown(options=(1, 2, 3, 4, 5), value=1)
+             sage: sage_interactive.widget_from_iterable(iter([1..5]))
+-            SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
++            ...SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
+             sage: sage_interactive.widget_from_iterable((1..5))
+-            SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
++            ...SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
+             sage: sage_interactive.widget_from_iterable(x for x in [1..5])
+-            SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
++            ...SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
+             sage: def gen():
+             ....:     yield 1; yield 2; yield 3; yield 4; yield 5
+             sage: sage_interactive.widget_from_iterable(gen())
+-            SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
++            ...SelectionSlider(options=(1, 2, 3, 4, 5), value=1)
+         """
+         if isinstance(abbrev, Iterator):
+             return SelectionSlider(options=list(abbrev))
 diff --git a/src/sage/repl/ipython_kernel/widgets_sagenb.py 
b/src/sage/repl/ipython_kernel/widgets_sagenb.py
 index 2ce59d7..76f4f52 100644
 --- a/src/sage/repl/ipython_kernel/widgets_sagenb.py

Deleted: sagemath-jupyter-jsmol.patch
===================================================================
--- sagemath-jupyter-jsmol.patch        2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-jupyter-jsmol.patch        2022-09-20 08:44:47 UTC (rev 1305433)
@@ -1,22 +0,0 @@
-diff --git a/src/sage/repl/display/jsmol_iframe.py 
b/src/sage/repl/display/jsmol_iframe.py
-index 0917a59d47..4775d2a02e 100644
---- a/src/sage/repl/display/jsmol_iframe.py
-+++ b/src/sage/repl/display/jsmol_iframe.py
-@@ -98,7 +98,7 @@ class JSMolHtml(SageObject):
-           instance. The 3-d scene to show.
- 
-         - ``path_to_jsmol`` -- string (optional, default is
--          ``'/nbextensions/jupyter_jsmol/jsmol'``). The path (relative or 
absolute)
-+          ``'/nbextensions/jupyter-jsmol/jsmol'``). The path (relative or 
absolute)
-           where ``JSmol.min.js`` is served on the web server.
- 
-         - ``width`` -- integer or string (optional, default:
-@@ -121,7 +121,7 @@ class JSMolHtml(SageObject):
-         self._jmol = jmol
-         self._zip = zipfile.ZipFile(io.BytesIO(self._jmol.scene_zip.get()))
-         if path_to_jsmol is None:
--            self._path = os.path.join('/', 'nbextensions', 'jupyter_jsmol', 
'jsmol')
-+            self._path = os.path.join('/', 'nbextensions', 'jupyter-jsmol', 
'jsmol')
-         else:
-             self._path = path_to_jsmol
-         self._width = width

Modified: sagemath-optional-packages.patch
===================================================================
--- sagemath-optional-packages.patch    2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-optional-packages.patch    2022-09-20 08:44:47 UTC (rev 1305433)
@@ -3,7 +3,7 @@
 --- a/pkgs/sagemath-standard/setup.py
 +++ b/pkgs/sagemath-standard/setup.py
 @@ -81,10 +81,9 @@ else:
-     from sage.misc.package import is_package_installed_and_updated
+     from sage_setup.optional_extension import is_package_installed_and_updated
      distributions = ['']
      optional_packages_with_extensions = ['mcqd', 'bliss', 'tdlib',
 -                                         'coxeter3', 'fes', 'sirocco', 
'meataxe']

Modified: sagemath-tachyon-0.99.patch
===================================================================
--- sagemath-tachyon-0.99.patch 2022-09-20 08:18:39 UTC (rev 1305432)
+++ sagemath-tachyon-0.99.patch 2022-09-20 08:44:47 UTC (rev 1305433)
@@ -1,21 +1,22 @@
 --- a/src/sage/interfaces/tachyon.py
 +++ b/src/sage/interfaces/tachyon.py
-@@ -261,13 +261,13 @@ written in the sequence they are listed in the examples 
in this section.
-   The {\bf PROJECTION} keyword must be followed by one of the supported
- camera projection mode identifiers {\bf PERSPECTIVE}, {\bf PERSPECTIVE_DOF},
- {\bf ORTHOGRAPHIC}, or {\bf FISHEYE}.  The {\bf FISHEYE} projection mode
--requires two extra parameters {\bf FOCALLENGTH} and {\bf APERTURE}
-+requires two extra parameters {\bf FOCALDIST} and {\bf APERTURE}
- which precede the regular camera options.
+@@ -140,14 +140,14 @@ written in the sequence they are listed in the examples 
in this section.
+ The ``PROJECTION`` keyword must be followed by one of the supported
+ camera projection mode identifiers ``PERSPECTIVE``, ``PERSPECTIVE_DOF``,
+ ``ORTHOGRAPHIC``, or ``FISHEYE``. The ``FISHEYE`` projection mode
+-requires two extra parameters ``FOCALLENGTH`` and ``APERTURE`` which
++requires two extra parameters ``FOCALDIST`` and ``APERTURE`` which
+ precede the regular camera options.
  
- \begin{verbatim}
- Camera
-   projection perspective_dof
--  focallength 0.75
-+  FOCALDIST 0.75
-   aperture 0.02
-   Zoom 0.666667
-   Aspectratio 1.000000
+ ::
+ 
+    Camera
+      projection perspective_dof
+-     focallength 0.75
++     FOCALDIST 0.75
+      aperture 0.02
+      Zoom 0.666667
+      Aspectratio 1.000000
 --- a/src/sage/plot/plot3d/tachyon.py
 +++ b/src/sage/plot/plot3d/tachyon.py
 @@ -92,7 +92,7 @@ angle, right angle)::

Modified: test-optional.patch
===================================================================
--- test-optional.patch 2022-09-20 08:18:39 UTC (rev 1305432)
+++ test-optional.patch 2022-09-20 08:44:47 UTC (rev 1305433)
@@ -2,7 +2,7 @@
 index 2d93841e50..937e20cd2e 100644
 --- a/src/sage/doctest/control.py
 +++ b/src/sage/doctest/control.py
-@@ -411,11 +411,6 @@ class DocTestController(SageObject):
+@@ -400,11 +400,6 @@ class DocTestController(SageObject):
                  # that the package is actually installed).
                  if 'optional' in options.optional:
                      options.optional.discard('optional')
@@ -13,4 +13,5 @@
 -
                      from sage.features import package_systems
                      options.optional.update(system.name
-                                             for system in package_systems())
+ 
+ 


Reply via email to