diff --git a/build/pkgs/sage_numerical_backends_coin/SPKG.rst b/build/pkgs/sage_numerical_backends_coin/SPKG.rst
deleted file mode 100644
index 54db2204600..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/SPKG.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-sage_numerical_backends_coin: COIN-OR backend for Sage MixedIntegerLinearProgram
-================================================================================
-
-Description
------------
-
-COIN-OR backend for Sage MixedIntegerLinearProgram
-
-License
--------
-
-GPLv2+
-
-Upstream Contact
-----------------
-
-https://pypi.org/project/sage-numerical-backends-coin/
-
diff --git a/build/pkgs/sage_numerical_backends_coin/checksums.ini b/build/pkgs/sage_numerical_backends_coin/checksums.ini
deleted file mode 100644
index 84784d5d282..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/checksums.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-tarball=sage_numerical_backends_coin-VERSION.tar.gz
-sha1=2033e1ba209315366a6dbfe249d5de5f7a1bc1b0
-sha256=6e34d48632d070e97dc37b724098c0f050026b166b328af78929b1ea079fa9e7
-upstream_url=https://files.pythonhosted.org/packages/source/s/sage_numerical_backends_coin/sage_numerical_backends_coin-VERSION.tar.gz
diff --git a/build/pkgs/sage_numerical_backends_coin/dependencies b/build/pkgs/sage_numerical_backends_coin/dependencies
deleted file mode 100644
index 0448728cea5..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/dependencies
+++ /dev/null
@@ -1,4 +0,0 @@
-cbc cysignals $(SAGE_SRC)/sage/numerical/backends/generic_backend.pxd $(SAGE_SRC)/sage/cpython/string.pxd $(SAGE_SRC)/sage/cpython/string_impl.h | $(SAGERUNTIME) $(PYTHON_TOOLCHAIN) cython ipywidgets $(PYTHON)
-
-----------
-All lines of this file are ignored except the first.
diff --git a/build/pkgs/sage_numerical_backends_coin/distros/repology.txt b/build/pkgs/sage_numerical_backends_coin/distros/repology.txt
deleted file mode 100644
index 60f079d7d90..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/distros/repology.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-sage-numerical-backends-coin
-python:sage-numerical-backends-coin
diff --git a/build/pkgs/sage_numerical_backends_coin/math b/build/pkgs/sage_numerical_backends_coin/math
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/build/pkgs/sage_numerical_backends_coin/package-version.txt b/build/pkgs/sage_numerical_backends_coin/package-version.txt
deleted file mode 100644
index 1be519cd2ec..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/package-version.txt
+++ /dev/null
@@ -1 +0,0 @@
-10.4
diff --git a/build/pkgs/sage_numerical_backends_coin/spkg-check.in b/build/pkgs/sage_numerical_backends_coin/spkg-check.in
deleted file mode 100644
index 1001e781387..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/spkg-check.in
+++ /dev/null
@@ -1,2 +0,0 @@
-cd src
-python3 setup.py test
diff --git a/build/pkgs/sage_numerical_backends_coin/spkg-install.in b/build/pkgs/sage_numerical_backends_coin/spkg-install.in
deleted file mode 100644
index 1104ddad5cf..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/spkg-install.in
+++ /dev/null
@@ -1,3 +0,0 @@
-cd src
-
-sdh_pip_install --no-build-isolation .
diff --git a/build/pkgs/sage_numerical_backends_coin/type b/build/pkgs/sage_numerical_backends_coin/type
deleted file mode 100644
index 134d9bc32d5..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/type
+++ /dev/null
@@ -1 +0,0 @@
-optional
diff --git a/build/pkgs/sage_numerical_backends_coin/version_requirements.txt b/build/pkgs/sage_numerical_backends_coin/version_requirements.txt
deleted file mode 100644
index 99021dc9d6d..00000000000
--- a/build/pkgs/sage_numerical_backends_coin/version_requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-sage_numerical_backends_coin >=9.0b12
diff --git a/environment-3.11-linux-aarch64.yml b/environment-3.11-linux-aarch64.yml
index bfe75b194e2..8d24e349be0 100644
--- a/environment-3.11-linux-aarch64.yml
+++ b/environment-3.11-linux-aarch64.yml
@@ -1,19 +1,25 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-aarch64
-# input_hash: 469912c30cc21eabab0fd99524f881f8635933f8faa69ec9d0a539ff5b42c6d6
+# input_hash: 8b3191ba64d828fde44e20297b264d07fdcd3ee78775a525f97e9718414800a3
channels:
- conda-forge
dependencies:
- _openmp_mutex=4.5=2_gnu
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
+ - alsa-lib=1.2.14=h86ecc28_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h6fc4d3a_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h1f2db35_3
+ - at-spi2-core=2.40.3=h1f2db35_0
+ - atk-1.0=2.38.0=hedc4a1f_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbecfd40_1
- automake=1.17=pl5321h8af1aa0_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -21,19 +27,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5ad3122_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=hf1166c9_2
- - binutils_impl_linux-aarch64=2.44=hdf4bb16_2
- - binutils_linux-aarch64=2.44=hf1166c9_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h9678261_openblas
+ - binutils=2.44=hf1166c9_4
+ - binutils_impl_linux-aarch64=2.44=ha36da51_4
+ - binutils_linux-aarch64=2.44=hf1166c9_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h9678261_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2a328a1_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hdad291f_4
- - brotli=1.1.0=he30d5cf_4
- - brotli-bin=1.1.0=he30d5cf_4
- - brotli-python=1.1.0=py311h2cb90db_4
+ - brotli=1.2.0=hec30622_0
+ - brotli-bin=1.2.0=hf3d421d_0
+ - brotli-python=1.2.0=py311hde5694d_0
- bwidget=1.10.1=h8af1aa0_1
- bzip2=1.0.8=h4777abc_8
- c-ares=1.34.5=h86ecc28_0
@@ -44,191 +50,243 @@ dependencies:
- cairo=1.18.4=h83712da_0
- cddlib=1!0.94m=h719063d_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py311h3324b35_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py311h460c349_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=he30d5cf_0
+ - coin-or-cbc=2.10.12=h3e6914b_4
+ - coin-or-cgl=0.60.9=h082c6d9_6
+ - coin-or-clp=1.17.10=h1805f0b_3
+ - coin-or-osi=0.108.11=h42e9861_7
+ - coin-or-utils=2.11.12=h6d11b10_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=h92dcf8a_5
+ - conda=25.9.1=py311hec3470c_0
+ - conda-gcc-specs=14.3.0=h92dcf8a_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py311hfca10b7_2
+ - contourpy=1.3.3=py311hfca10b7_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py311h2dad8b0_0
- - cpython=3.11.13=py311hd8ed1ab_0
+ - coverage=7.11.1=py311h2dad8b0_0
+ - cpp-expected=1.3.1=hdc560ac_0
+ - cpython=3.11.14=py311hd8ed1ab_2
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py311h2822d24_0
- - curl=8.14.1=h6702fde_0
+ - cryptography=46.0.3=py311h2822d24_0
+ - curl=8.17.0=h7bfdcfb_0
- cxx-compiler=1.11.0=h7b35c40_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py311hc8fbf20_0
+ - cyrus-sasl=2.1.28=h6c5dea3_0
- cysignals=1.12.5=py311h2cb90db_0
- - cython=3.1.4=py311h396fb50_2
- - dbus=1.13.6=h12b9eeb_3
+ - cython=3.2.0=py311hdc11669_0
+ - dbus=1.16.2=heda779d_0
- debugpy=1.8.17=py311h8e4e6a5_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
+ - double-conversion=3.3.1=h5ad3122_0
- dulwich=0.22.8=py311h0ca61a2_0
- ecl=24.5.10=h043f013_1
- eclib=20250627=h2fd3c11_0
- ecm=7.0.6=hd777dc2_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=he30d5cf_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hfae3067_0
- fflas-ffpack=2.5.0=h503e619_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h416241a_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h8dda3cd_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py311h164a683_0
- fortran-compiler=1.11.0=h151373c_0
- fplll=5.5.0=h45c7457_0
- fpylll=0.6.4=py311h2dc1a0e_0
- freetype=2.14.1=h8af1aa0_0
- fribidi=1.0.16=he30d5cf_0
+ - frozendict=2.4.6=py311h19352d5_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h1754e88_5
- - gap-defaults=4.14.0=h8af1aa0_5
- - gcc=14.3.0=h7408ef6_5
- - gcc_impl_linux-aarch64=14.3.0=h2b96704_5
- - gcc_linux-aarch64=14.3.0=h39d9346_11
+ - gap-core=4.15.1=h409ef3a_0
+ - gap-defaults=4.15.1=h8af1aa0_0
+ - gcc=14.3.0=h7408ef6_7
+ - gcc_impl_linux-aarch64=14.3.0=h2b96704_7
+ - gcc_linux-aarch64=14.3.0=h118592a_12
+ - gdk-pixbuf=2.44.4=h90308e0_0
- gf2x=1.3.0=h9af5f66_3
- gfan=0.6.2=h5f589ec_1003
- - gfortran=14.3.0=ha28f942_5
- - gfortran_impl_linux-aarch64=14.3.0=h8827d62_5
- - gfortran_linux-aarch64=14.3.0=hc530033_11
+ - gfortran=14.3.0=ha28f942_7
+ - gfortran_impl_linux-aarch64=14.3.0=h8827d62_7
+ - gfortran_linux-aarch64=14.3.0=he4becf7_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h3df9001_3
+ - glib-tools=2.86.1=hc87f4d4_1
- glpk=5.0=h66325d0_0
- gmp=6.3.0=h0a1ffab_2
- - gmpy2=2.1.5=py311h8dd2ae4_3
+ - gmpy2=2.2.1=py311hc14af3f_1
- graphite2=1.3.14=hfae3067_2
- - grayskull=2.9.1=pyhd8ed1ab_0
- - gsl=2.8=hac7f374_1
- - gxx=14.3.0=ha28f942_5
- - gxx_impl_linux-aarch64=14.3.0=h72695c8_5
- - gxx_linux-aarch64=14.3.0=h83defb1_11
+ - graphviz=13.1.2=hdb06ba2_0
+ - grayskull=2.9.2=pyhcf101f3_0
+ - gsl=2.7=h294027d_0
+ - gtk3=3.24.43=h4cd1324_6
+ - gts=0.7.6=he293c15_4
+ - gxx=14.3.0=ha28f942_7
+ - gxx_impl_linux-aarch64=14.3.0=h72695c8_7
+ - gxx_linux-aarch64=14.3.0=hda493e9_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=11.2.1=h405b6a2_0
+ - harfbuzz=12.2.0=he4899c9_0
+ - hicolor-icon-theme=0.17=h8af1aa0_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hf9b3779_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h1827c4d_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h15043fe_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py311hec3470c_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-aarch64=4.18.0=h05a177a_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=h86ecc28_0
- - kiwisolver=1.4.9=py311h229e7f7_1
+ - kiwisolver=1.4.9=py311h229e7f7_2
- krb5=1.21.3=h50a48e9_0
- lcalc=2.1.1=h30a6b3d_0
- lcms2=2.17=hc88f144_0
- - ld_impl_linux-aarch64=2.44=h9df1782_2
+ - ld_impl_linux-aarch64=2.44=hd32f0e1_4
- lerc=4.0.0=hfdc4d58_1
- - libblas=3.9.0=36_haddc8a3_openblas
+ - libarchive=3.8.2=gpl_hd746d8a_100
+ - libblas=3.9.0=38_haddc8a3_openblas
- libboost=1.85.0=h9fa81b4_4
- libboost-devel=1.85.0=h37bb5a9_4
- libboost-headers=1.85.0=h8af1aa0_4
- libbraiding=1.3.1=h5ad3122_0
- libbrial=1.2.15=hc86e37c_0
- - libbrotlicommon=1.1.0=he30d5cf_4
- - libbrotlidec=1.1.0=he30d5cf_4
- - libbrotlienc=1.1.0=he30d5cf_4
- - libcblas=3.9.0=36_hd72aa62_openblas
- - libcurl=8.14.1=h6702fde_0
- - libdeflate=1.24=he377734_0
+ - libbrotlicommon=1.2.0=hd4db518_0
+ - libbrotlidec=1.2.0=hb159aeb_0
+ - libbrotlienc=1.2.0=ha5a240b_0
+ - libcblas=3.9.0=38_hd72aa62_openblas
+ - libclang-cpp21.1=21.1.5=default_he95a3c9_1
+ - libclang13=21.1.5=default_h94a09a5_1
+ - libcups=2.3.3=h5cdc715_5
+ - libcurl=8.17.0=h7bfdcfb_0
+ - libdeflate=1.25=h1af38f5_0
+ - libdrm=2.4.125=he30d5cf_1
- libedit=3.1.20250104=pl5321h976ea20_0
+ - libegl=1.7.0=hd24410f_2
+ - libegl-devel=1.7.0=hd24410f_2
- libev=4.33=h31becfc_2
- libexpat=2.7.1=hfae3067_0
- - libffi=3.4.6=he21f813_1
+ - libffi=3.5.2=hd65408f_0
- libflint=3.2.2=hd878b8d_0
- libfreetype=2.14.1=h8af1aa0_0
- libfreetype6=2.14.1=hdae7a39_0
- - libgcc=15.1.0=he277a41_5
- - libgcc-devel_linux-aarch64=14.3.0=h370b906_105
- - libgcc-ng=15.1.0=he9431aa_5
+ - libgcc=15.2.0=he277a41_7
+ - libgcc-devel_linux-aarch64=14.3.0=h370b906_107
+ - libgcc-ng=15.2.0=he9431aa_7
- libgd=2.3.3=hc8d7b1d_11
- - libgfortran=15.1.0=he9431aa_5
- - libgfortran-ng=15.1.0=he9431aa_5
- - libgfortran5=15.1.0=hbc25352_5
- - libglib=2.84.1=hc486b8e_0
- - libgomp=15.1.0=he277a41_5
+ - libgfortran=15.2.0=he9431aa_7
+ - libgfortran-ng=15.2.0=he9431aa_7
+ - libgfortran5=15.2.0=h87db57e_7
+ - libgl=1.7.0=hd24410f_2
+ - libgl-devel=1.7.0=hd24410f_2
+ - libglib=2.86.1=he84ff74_1
+ - libglvnd=1.7.0=hd24410f_2
+ - libglx=1.7.0=hd24410f_2
+ - libglx-devel=1.7.0=hd24410f_2
+ - libgomp=15.2.0=he277a41_7
- libhomfly=1.03=he30d5cf_0
- libiconv=1.18=h90929bb_2
- - libjpeg-turbo=3.1.0=h86ecc28_0
- - liblapack=3.9.0=36_h88aeb00_openblas
- - liblapacke=3.9.0=36_hb558247_openblas
+ - libjpeg-turbo=3.1.2=he30d5cf_0
+ - liblapack=3.9.0=38_h88aeb00_openblas
+ - liblapacke=3.9.0=38_hb558247_openblas
+ - libllvm21=21.1.5=hfd2ba90_0
- liblzma=5.8.1=h86ecc28_2
- liblzma-devel=5.8.1=h86ecc28_2
+ - libmamba=2.3.3=hdcf0ffa_2
+ - libmambapy=2.3.3=py311h53fca1a_2
- libnghttp2=1.67.0=ha888d0e_0
- libnsl=2.0.1=h86ecc28_1
- - libopenblas=0.3.30=pthreads_h9d3fd7e_2
+ - libntlm=1.4=hf897c2e_1002
+ - libopenblas=0.3.30=pthreads_h9d3fd7e_3
+ - libopengl=1.7.0=hd24410f_2
+ - libpciaccess=0.18=h86ecc28_0
- libpng=1.6.50=h1abf092_1
- - libsanitizer=14.3.0=h48d3638_5
+ - libpq=18.0=hb4b1422_0
+ - librsvg=2.60.0=h8171147_0
+ - libsanitizer=14.3.0=h48d3638_7
- libsodium=1.0.20=h68df207_0
- - libsqlite=3.50.4=h022381a_0
+ - libsolv=0.7.35=hdda61c4_0
+ - libsqlite=3.51.0=h022381a_0
- libssh2=1.11.1=h18c354c_0
- - libstdcxx=15.1.0=h3f4de04_5
- - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_105
- - libstdcxx-ng=15.1.0=hf1166c9_5
- - libtiff=4.7.1=h7a57436_0
+ - libstdcxx=15.2.0=h3f4de04_7
+ - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_107
+ - libstdcxx-ng=15.2.0=hf1166c9_7
+ - libtiff=4.7.1=hdb009f0_1
- libuuid=2.41.2=h3e4203c_0
+ - libvulkan-loader=1.4.328.1=h8b8848b_0
- libwebp-base=1.6.0=ha2e29f5_0
- libxcb=1.17.0=h262b8f6_0
- libxcrypt=4.4.36=h31becfc_1
- - libxml2=2.15.0=h788dabe_1
- - libxml2-16=2.15.0=h8591a01_1
- - libxml2-devel=2.15.0=h788dabe_1
+ - libxkbcommon=1.13.0=h3c6a4c8_0
+ - libxml2=2.15.1=h788dabe_0
+ - libxml2-16=2.15.1=h8591a01_0
+ - libxml2-devel=2.15.1=h788dabe_0
+ - libxslt=1.1.43=h6700d25_1
- libzlib=1.3.1=h86ecc28_2
- linbox=1.7.1=h119cb06_0
- lrcalc=2.1=hfae3067_8
+ - lz4-c=1.10.0=h5ad3122_1
+ - lzo=2.10=h80f16a2_1002
- m4=1.4.20=h86ecc28_0
- m4ri=20250128=hd9db0c5_0
- m4rie=20250128=hd9db0c5_0
- make=4.4.1=h2a6d0cb_2
- markupsafe=3.0.3=py311h2dad8b0_0
- - matplotlib=3.9.1=py311hfecb2dc_1
- - matplotlib-base=3.9.1=py311ha1793d2_2
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py311hfecb2dc_0
+ - matplotlib-base=3.10.7=py311hb9c6b48_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h043f013_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py311ha879c10_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py311h19352d5_2
+ - menuinst=2.4.1=py311hec3470c_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -236,46 +294,47 @@ dependencies:
- mpfi=1.5.4=h846f343_1001
- mpfr=4.2.1=h2305555_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py311hfca10b7_1
+ - msgpack-python=1.1.2=py311hfca10b7_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=he30d5cf_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=ha32ae93_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=hdc560ac_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0d7519b_1
- - numpy=2.3.3=py311h669026d_0
- - openblas=0.3.30=pthreads_h3a8cbd8_2
+ - numpy=2.3.4=py311h669026d_0
+ - openblas=0.3.30=pthreads_h3a8cbd8_3
- openjpeg=2.5.4=h5da879a_0
+ - openldap=2.6.10=h30c48ee_0
- openssl=3.5.4=h8e36d6e_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=he30d5cf_0
- - pandoc=3.8.1=h8af1aa0_0
+ - pandoc=3.8.2.1=h8af1aa0_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- - pango=1.56.3=h1e6a6fd_1
+ - pango=1.56.4=he55ef5b_0
- pari=2.17.2=h45cace7_5_pthread
- pari-elldata=0.0.20161017=0
- pari-galdata=0.0.20180411=0
- pari-seadata=0.0.20090618=0
- pari-seadata-small=0.0.20090618=0
- parso=0.8.5=pyhcf101f3_0
- - pcre2=10.44=hf4ec17f_2
+ - pcre2=10.46=h15761aa_0
- perl=5.32.1=7_h31becfc_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py311h3bd873a_3
+ - pillow=12.0.0=py311h9a6517a_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h7ac5ae9_1
- pkg-config=0.29.2=hce167ba_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=he30d5cf_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=he30d5cf_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h984aac9_1006
- pplpy=0.8.9=py311h3d7cd5b_2
@@ -284,27 +343,30 @@ dependencies:
- primesieve=12.8=h5ad3122_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py311h19352d5_0
+ - psutil=7.1.3=py311h51cfe5d_0
- pthread-stubs=0.4=h86ecc28_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py311h19352d5_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py311h73012f0_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py311hddf1d3d_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py311h31f610e_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py311h19352d5_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
+ - pyside6=6.9.3=py311hf1caecd_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.11.13=h1683364_0_cpython
+ - python=3.11.14=h91f4b29_2_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
@@ -318,32 +380,35 @@ dependencies:
- pyzmq=27.1.0=py311h5e4e491_0
- qd=2.3.22=h05efe27_1004
- qhull=2020.2=h70be974_5
- - r-base=4.2.3=h6952844_18
- - r-lattice=0.22_6=r42h25e906a_0
- - rapidfuzz=3.14.1=py311h2cb90db_0
+ - qt6-main=6.9.3=h224e339_1
+ - r-base=4.4.3=h72cabac_5
+ - r-lattice=0.22_7=r44h0557e7b_1
+ - rapidfuzz=3.14.3=py311h2cb90db_1
- readline=8.2=h8382b9d_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h86ecc28_0
+ - reproc-cpp=14.2.5.post0=h5ad3122_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py311hc91c717_1
- - rpy2=3.5.11=py311r42hf13da56_3
- - ruamel.yaml=0.18.15=py311h19352d5_1
- - ruamel.yaml.clib=0.2.12=py311h19352d5_1
+ - rpds-py=0.28.0=py311hc91c717_1
+ - rpy2=3.6.4=py311r44hbb815b2_1
+ - ruamel.yaml=0.18.16=py311h19352d5_0
+ - ruamel.yaml.clib=0.2.14=py311h19352d5_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h46ed904_0
+ - ruff=0.14.4=h9564552_0
- rw=0.9=h31becfc_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py311h33b5a33_0
+ - scipy=1.16.3=py311h33b5a33_0
- secretstorage=3.4.0=py311hfecb2dc_0
- sed=4.9=hd4cd8d4_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- - simplegeneric=0.8.1=pyhd8ed1ab_2
+ - simdjson=4.0.7=hfefdfc9_0
- singular=4.4.1=hfdb71ee_1
- sirocco=2.1.0=h7fa4f89_1
- six=1.17.0=pyhe01879c_1
@@ -360,9 +425,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=he8854b5_0
+ - sqlite=3.51.0=he8854b5_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h7a35ef0_1
- symmetrica=3.1.0=he30d5cf_0
- sympow=2.023.6=h4d450c3_4
@@ -372,42 +437,62 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h5688188_102
- tktable=2.10=h89546af_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py311hb9158a3_1
+ - tornado=6.5.2=py311hb9158a3_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py311h19352d5_1
+ - unicodedata2=17.0.0=py311h19352d5_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h0157bdf_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.7=h0157bdf_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=h4f8a99f_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py311h19352d5_1
+ - xcb-util=0.4.1=hca56bd8_2
+ - xcb-util-cursor=0.1.5=h86ecc28_0
+ - xcb-util-image=0.4.0=h5c728e9_2
+ - xcb-util-keysyms=0.4.1=h5c728e9_0
+ - xcb-util-renderutil=0.3.10=h5c728e9_0
+ - xcb-util-wm=0.4.2=h5c728e9_0
+ - xkeyboard-config=2.46=he30d5cf_0
- xorg-libice=1.1.2=h86ecc28_0
- xorg-libsm=1.2.6=h0808dbd_0
- xorg-libx11=1.8.12=hca56bd8_0
- xorg-libxau=1.0.12=h86ecc28_0
+ - xorg-libxcomposite=0.4.6=h86ecc28_2
+ - xorg-libxcursor=1.2.3=h86ecc28_0
+ - xorg-libxdamage=1.1.6=h86ecc28_0
- xorg-libxdmcp=1.1.5=h57736b2_0
- xorg-libxext=1.3.6=h57736b2_0
+ - xorg-libxfixes=6.0.2=he30d5cf_0
+ - xorg-libxi=1.8.2=h57736b2_0
+ - xorg-libxinerama=1.1.5=h5ad3122_1
+ - xorg-libxrandr=1.5.4=h86ecc28_0
- xorg-libxrender=0.9.12=h86ecc28_0
- xorg-libxt=1.3.1=h57736b2_0
+ - xorg-libxtst=1.2.5=h57736b2_3
+ - xorg-libxxf86vm=1.1.6=h86ecc28_0
+ - xorg-xorgproto=2024.1=h86ecc28_1
- xz=5.8.1=h2dbfc1b_2
- xz-gpl-tools=5.8.1=h2dbfc1b_2
- xz-tools=5.8.1=h86ecc28_2
- yaml=0.2.5=h80f16a2_3
+ - yaml-cpp=0.8.0=h5ad3122_0
- zeromq=4.3.5=hefbcea8_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h86ecc28_2
- - zstandard=0.25.0=py311h51cfe5d_0
+ - zlib-ng=2.2.5=h92288e7_0
+ - zstandard=0.25.0=py311h51cfe5d_1
- zstd=1.5.7=hbcf94c1_2
diff --git a/environment-3.11-linux.yml b/environment-3.11-linux.yml
index cc33017bd18..fb36a59b680 100644
--- a/environment-3.11-linux.yml
+++ b/environment-3.11-linux.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-64
-# input_hash: 9818b363ca39ee4e06d33e21a0de85c13aa83ca31c653a7810dd297957fb797a
+# input_hash: 77e5f191801b68a95f52e21c2925bb0fec34e9849a081b475fd2be5525ea93bb
channels:
- conda-forge
@@ -10,13 +10,18 @@ dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- alsa-lib=1.2.14=hb9d3cd8_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hf03ea27_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h0630a04_3
+ - at-spi2-core=2.40.3=h0630a04_0
+ - atk-1.0=2.38.0=h04ea711_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbb4ee43_1
- automake=1.17=pl5321ha770c72_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -24,19 +29,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5888daf_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=h4852527_2
- - binutils_impl_linux-64=2.44=hdf8817f_2
- - binutils_linux-64=2.44=h4852527_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h1ea3ea9_openblas
+ - binutils=2.44=h4852527_4
+ - binutils_impl_linux-64=2.44=h9d8b0ac_4
+ - binutils_linux-64=2.44=h4852527_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h1ea3ea9_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h00ab1b0_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h3c6214e_4
- - brotli=1.1.0=hb03c661_4
- - brotli-bin=1.1.0=hb03c661_4
- - brotli-python=1.1.0=py311h1ddb823_4
+ - brotli=1.2.0=h41a2e66_0
+ - brotli-bin=1.2.0=hf2c8021_0
+ - brotli-python=1.2.0=py311h7c6b74e_0
- bwidget=1.10.1=ha770c72_1
- bzip2=1.0.8=hda65f42_8
- c-ares=1.34.5=hb9d3cd8_0
@@ -47,208 +52,244 @@ dependencies:
- cairo=1.18.4=h3394656_0
- cddlib=1!0.94m=h9202a9a_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py311h5b438cf_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py311h03d9500_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hb03c661_0
+ - coin-or-cbc=2.10.12=h4d16d09_4
+ - coin-or-cgl=0.60.9=hc46dffc_6
+ - coin-or-clp=1.17.10=hc03379b_3
+ - coin-or-osi=0.108.11=hf4fecb4_7
+ - coin-or-utils=2.11.12=hc93afbd_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=hb991d5c_5
+ - conda=25.9.1=py311h38be061_0
+ - conda-gcc-specs=14.3.0=hb991d5c_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py311hdf67eae_2
+ - contourpy=1.3.3=py311hdf67eae_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py311h3778330_0
- - cpython=3.11.13=py311hd8ed1ab_0
+ - coverage=7.11.1=py311h3778330_0
+ - cpp-expected=1.3.1=h171cf75_0
+ - cpython=3.11.14=py311hd8ed1ab_2
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py311h8488d03_0
- - curl=8.14.1=h332b0f4_0
+ - cryptography=46.0.3=py311h8488d03_0
+ - curl=8.17.0=h4e3cde8_0
- cxx-compiler=1.11.0=hfcd1e18_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py311h8699650_0
- cyrus-sasl=2.1.28=hd9c7081_0
- cysignals=1.12.5=py311h1ddb823_0
- - cython=3.1.4=py311h91b4c63_2
+ - cython=3.2.0=py311h0daaf2c_0
- dbus=1.16.2=h3c4dab8_0
- debugpy=1.8.17=py311hc665b79_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=h5888daf_0
- dulwich=0.22.8=py311h9e33e62_0
- ecl=24.5.10=h75482ee_1
- eclib=20250627=hd0dfdeb_0
- ecm=7.0.6=h90cbb55_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hb03c661_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hecca717_0
- fflas-ffpack=2.5.0=h4f9960b_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h2b0788b_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h7e30c49_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py311h3778330_0
- fortran-compiler=1.11.0=h9bea470_0
- fplll=5.5.0=hd20a173_0
- fpylll=0.6.4=py311hf0b6740_0
- freetype=2.14.1=ha770c72_0
- fribidi=1.0.16=hb03c661_0
+ - frozendict=2.4.6=py311h49ec1c0_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h3b03731_5
- - gap-defaults=4.14.0=ha770c72_5
- - gcc=14.3.0=h76bdaa0_5
- - gcc_impl_linux-64=14.3.0=hd9e9e21_5
- - gcc_linux-64=14.3.0=h1382650_11
+ - gap-core=4.15.1=h60ec763_0
+ - gap-defaults=4.15.1=ha770c72_0
+ - gcc=14.3.0=h76bdaa0_7
+ - gcc_impl_linux-64=14.3.0=hd9e9e21_7
+ - gcc_linux-64=14.3.0=h298d278_12
+ - gdk-pixbuf=2.44.4=h2b0a6b4_0
- gf2x=1.3.0=h55551d5_3
- gfan=0.6.2=hb86e20a_1003
- - gfortran=14.3.0=he448592_5
- - gfortran_impl_linux-64=14.3.0=h7db7018_5
- - gfortran_linux-64=14.3.0=h30a37f7_11
+ - gfortran=14.3.0=he448592_7
+ - gfortran_impl_linux-64=14.3.0=h7db7018_7
+ - gfortran_linux-64=14.3.0=h961de7f_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h49654ea_3
+ - glib-tools=2.86.1=hf516916_1
- glpk=5.0=h445213a_0
- gmp=6.3.0=hac33072_2
- - gmpy2=2.1.5=py311h0f6cedb_3
+ - gmpy2=2.2.1=py311h92a432a_1
- graphite2=1.3.14=hecca717_2
- - grayskull=2.9.1=pyhd8ed1ab_0
- - gsl=2.8=hbf7d49c_1
- - gxx=14.3.0=he448592_5
- - gxx_impl_linux-64=14.3.0=he663afc_5
- - gxx_linux-64=14.3.0=ha7acb78_11
+ - graphviz=13.1.2=h87b6fe6_0
+ - grayskull=2.9.2=pyhcf101f3_0
+ - gsl=2.7=he838d99_0
+ - gtk3=3.24.43=h993cebd_6
+ - gts=0.7.6=h977cf35_4
+ - gxx=14.3.0=he448592_7
+ - gxx_impl_linux-64=14.3.0=he663afc_7
+ - gxx_linux-64=14.3.0=h95f728e_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=11.4.5=h15599e2_0
+ - harfbuzz=12.2.0=h15599e2_0
+ - hicolor-icon-theme=0.17=ha770c72_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=0.10.16=h98b0679_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=hfe3e89f_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h623f65a_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py311h38be061_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-64=4.18.0=he073ed8_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=hb9d3cd8_0
- - kiwisolver=1.4.9=py311h724c32c_1
+ - kiwisolver=1.4.9=py311h724c32c_2
- krb5=1.21.3=h659f571_0
- lcalc=2.1.1=h9cf73fc_0
- lcms2=2.17=h717163a_0
- - ld_impl_linux-64=2.44=ha97dd6f_2
+ - ld_impl_linux-64=2.44=h1aa0949_4
- lerc=4.0.0=h0aef613_1
- - libblas=3.9.0=36_h4a7cf45_openblas
+ - libarchive=3.8.2=gpl_h7be2006_100
+ - libblas=3.9.0=38_h4a7cf45_openblas
- libboost=1.85.0=h0ccab89_4
- libboost-devel=1.85.0=h00ab1b0_4
- libboost-headers=1.85.0=ha770c72_4
- libbraiding=1.3.1=h5888daf_0
- libbrial=1.2.15=hf69d4a9_0
- - libbrotlicommon=1.1.0=hb03c661_4
- - libbrotlidec=1.1.0=hb03c661_4
- - libbrotlienc=1.1.0=hb03c661_4
- - libcblas=3.9.0=36_h0358290_openblas
- - libclang-cpp20.1=20.1.8=default_h99862b1_4
- - libclang13=21.1.0=default_h746c552_1
+ - libbrotlicommon=1.2.0=h09219d5_0
+ - libbrotlidec=1.2.0=hd53d788_0
+ - libbrotlienc=1.2.0=h02bd7ab_0
+ - libcblas=3.9.0=38_h0358290_openblas
+ - libclang-cpp21.1=21.1.5=default_h99862b1_1
+ - libclang13=21.1.5=default_h746c552_1
- libcups=2.3.3=hb8b1518_5
- - libcurl=8.14.1=h332b0f4_0
- - libdeflate=1.24=h86f0d12_0
+ - libcurl=8.17.0=h4e3cde8_0
+ - libdeflate=1.25=h17f619e_0
- libdrm=2.4.125=hb03c661_1
- libedit=3.1.20250104=pl5321h7949ede_0
- libegl=1.7.0=ha4b6fd6_2
+ - libegl-devel=1.7.0=ha4b6fd6_2
- libev=4.33=hd590300_2
- libexpat=2.7.1=hecca717_0
- - libffi=3.4.6=h2dba641_1
+ - libffi=3.5.2=h9ec8514_0
- libflint=3.2.2=h754cb6e_0
- libfreetype=2.14.1=ha770c72_0
- libfreetype6=2.14.1=h73754d4_0
- - libgcc=15.1.0=h767d61c_5
- - libgcc-devel_linux-64=14.3.0=h85bb3a7_105
- - libgcc-ng=15.1.0=h69a702a_5
+ - libgcc=15.2.0=h767d61c_7
+ - libgcc-devel_linux-64=14.3.0=h85bb3a7_107
+ - libgcc-ng=15.2.0=h69a702a_7
- libgd=2.3.3=h6f5c62b_11
- - libgfortran=15.1.0=h69a702a_5
- - libgfortran-ng=15.1.0=h69a702a_5
- - libgfortran5=15.1.0=hcea5267_5
+ - libgfortran=15.2.0=h69a702a_7
+ - libgfortran-ng=15.2.0=h69a702a_7
+ - libgfortran5=15.2.0=hcd61629_7
- libgl=1.7.0=ha4b6fd6_2
- - libglib=2.84.3=hf39c6af_0
+ - libgl-devel=1.7.0=ha4b6fd6_2
+ - libglib=2.86.1=h32235b2_1
- libglvnd=1.7.0=ha4b6fd6_2
- libglx=1.7.0=ha4b6fd6_2
- - libgomp=15.1.0=h767d61c_5
+ - libglx-devel=1.7.0=ha4b6fd6_2
+ - libgomp=15.2.0=h767d61c_7
- libhomfly=1.03=hb03c661_0
- libiconv=1.18=h3b78370_2
- - libjpeg-turbo=3.1.0=hb9d3cd8_0
- - liblapack=3.9.0=36_h47877c9_openblas
- - liblapacke=3.9.0=36_h6ae95b6_openblas
- - libllvm20=20.1.8=hecd9e04_0
- - libllvm21=21.1.0=hecd9e04_0
+ - libjpeg-turbo=3.1.2=hb03c661_0
+ - liblapack=3.9.0=38_h47877c9_openblas
+ - liblapacke=3.9.0=38_h6ae95b6_openblas
+ - libllvm21=21.1.5=hf7376ad_0
- liblzma=5.8.1=hb9d3cd8_2
- liblzma-devel=5.8.1=hb9d3cd8_2
+ - libmamba=2.3.3=h09abcb8_1
+ - libmambapy=2.3.3=py311hfb22bfb_1
- libnghttp2=1.67.0=had1ee68_0
- libnsl=2.0.1=hb9d3cd8_1
- libntlm=1.8=hb9d3cd8_0
- - libopenblas=0.3.30=pthreads_h94d23a6_2
+ - libopenblas=0.3.30=pthreads_h94d23a6_3
- libopengl=1.7.0=ha4b6fd6_2
- libpciaccess=0.18=hb9d3cd8_0
- libpng=1.6.50=h421ea60_1
- - libpq=17.6=h3675c94_2
- - libsanitizer=14.3.0=hd08acf3_5
+ - libpq=18.0=h3675c94_0
+ - librsvg=2.60.0=h61e6d4b_0
+ - libsanitizer=14.3.0=hd08acf3_7
- libsodium=1.0.20=h4ab18f5_0
- - libsqlite=3.50.4=h0c1763c_0
+ - libsolv=0.7.35=h9463b59_0
+ - libsqlite=3.51.0=hee844dc_0
- libssh2=1.11.1=hcf80075_0
- - libstdcxx=15.1.0=h8f9b012_5
- - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_105
- - libstdcxx-ng=15.1.0=h4852527_5
- - libtiff=4.7.1=h8261f1e_0
+ - libstdcxx=15.2.0=h8f9b012_7
+ - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_107
+ - libstdcxx-ng=15.2.0=h4852527_7
+ - libtiff=4.7.1=h9d88235_1
- libuuid=2.41.2=he9a06e4_0
+ - libvulkan-loader=1.4.328.1=h5279c79_0
- libwebp-base=1.6.0=hd42ef1d_0
- libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- - libxkbcommon=1.11.0=he8b52b9_0
- - libxml2=2.13.8=h04c0eec_1
- - libxslt=1.1.43=h7a3aeb2_0
+ - libxkbcommon=1.13.0=hca5e8e5_0
+ - libxml2=2.15.1=h26afc86_0
+ - libxml2-16=2.15.1=ha9997c6_0
+ - libxml2-devel=2.15.1=h26afc86_0
+ - libxslt=1.1.43=h711ed8c_1
- libzlib=1.3.1=hb9d3cd8_2
- linbox=1.7.1=he8fce6e_0
- lrcalc=2.1=h5888daf_7
- lrslib=71.b=h8aaf9c6_1
+ - lz4-c=1.10.0=h5888daf_1
+ - lzo=2.10=h280c20c_1002
- m4=1.4.20=hb9d3cd8_0
- m4ri=20250128=h36e74d4_0
- m4rie=20250128=h36e74d4_0
- make=4.4.1=hb9d3cd8_2
- markupsafe=3.0.3=py311h3778330_0
- - matplotlib=3.10.6=py311h38be061_1
- - matplotlib-base=3.10.6=py311h0f3be63_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py311h38be061_0
+ - matplotlib-base=3.10.7=py311h0f3be63_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h75482ee_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py311h9ecbd09_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py311h49ec1c0_2
+ - menuinst=2.4.1=py311h38be061_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -256,27 +297,28 @@ dependencies:
- mpfi=1.5.4=h9f54685_1001
- mpfr=4.2.1=h90cbb55_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py311hdf67eae_1
+ - msgpack-python=1.1.2=py311hdf67eae_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hb03c661_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h171cf75_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hef3c4d3_1
- - numpy=2.3.3=py311h2e04523_0
- - openblas=0.3.30=pthreads_h6ec200e_2
+ - numpy=2.3.4=py311h2e04523_0
+ - openblas=0.3.30=pthreads_h6ec200e_3
- openjpeg=2.5.4=h55fea9a_0
- openldap=2.6.10=he970967_0
- openssl=3.5.4=h26f9b46_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hb03c661_0
- - pandoc=3.8.1=ha770c72_0
+ - pandoc=3.8.2.1=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=hadf4263_0
- pari=2.17.2=ha40142e_5_pthread
@@ -285,18 +327,17 @@ dependencies:
- pari-seadata=0.0.20090618=0
- pari-seadata-small=0.0.20090618=0
- parso=0.8.5=pyhcf101f3_0
- - pcre2=10.45=hc749103_0
+ - pcre2=10.46=h1321c63_0
- perl=5.32.1=7_hd590300_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py311h98278a2_3
+ - pillow=12.0.0=py311h07c5bb8_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h54a6638_1
- pkg-config=0.29.2=h4bc722e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hb03c661_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hb03c661_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h6ec01c2_1006
- pplpy=0.8.9=py311h17071fb_2
@@ -305,28 +346,30 @@ dependencies:
- primesieve=12.8=h5888daf_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py311h49ec1c0_0
+ - psutil=7.1.3=py311haee01d2_0
- pthread-stubs=0.4=hb9d3cd8_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py311h49ec1c0_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py311hdae7d1d_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py311h902ca64_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py311hf824169_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py311h49ec1c0_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- - pyside6=6.9.2=py311h72d58bf_1
+ - pyside6=6.9.3=py311he4c1a5a_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.11.13=h9e4cc4f_0_cpython
+ - python=3.11.14=hd63d673_2_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
@@ -340,33 +383,35 @@ dependencies:
- pyzmq=27.1.0=py311h2315fbb_0
- qd=2.3.22=h2cc385e_1004
- qhull=2020.2=h434a139_5
- - qt6-main=6.9.2=h3fc9a0a_0
- - r-base=4.2.3=h2d83a99_19
- - r-lattice=0.22_6=r42h57805ef_0
- - rapidfuzz=3.14.1=py311h1ddb823_0
+ - qt6-main=6.9.3=h5c1c036_1
+ - r-base=4.4.3=hc038350_5
+ - r-lattice=0.22_7=r44h54b55ab_1
+ - rapidfuzz=3.14.3=py311h1ddb823_1
- readline=8.2=h8c095d6_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=hb9d3cd8_0
+ - reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py311h902ca64_1
- - rpy2=3.5.11=py311r42h1f0f07a_3
- - ruamel.yaml=0.18.15=py311h49ec1c0_1
- - ruamel.yaml.clib=0.2.12=py311h49ec1c0_1
+ - rpds-py=0.28.0=py311h902ca64_1
+ - rpy2=3.6.4=py311r44h307a326_1
+ - ruamel.yaml=0.18.16=py311h49ec1c0_0
+ - ruamel.yaml.clib=0.2.14=py311h49ec1c0_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=ha3a3aed_0
+ - ruff=0.14.4=h813ae00_0
- rw=0.9=hd590300_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py311h1e13796_0
+ - scipy=1.16.3=py311h1e13796_0
- secretstorage=3.4.0=py311h38be061_0
- sed=4.9=h6688a6e_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- - simplegeneric=0.8.1=pyhd8ed1ab_2
+ - simdjson=4.0.7=hb700be7_0
- singular=4.4.1=h7ee4ccf_1
- sirocco=2.1.0=hd7ee782_1
- six=1.17.0=pyhe01879c_1
@@ -383,9 +428,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hbc0de68_0
+ - sqlite=3.51.0=heff268d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h064106a_1
- symmetrica=3.1.0=hb03c661_0
- sympow=2.023.6=h3028977_4
@@ -395,28 +440,28 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_hd72426e_102
- tktable=2.10=h8d826fa_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py311h49ec1c0_1
+ - tornado=6.5.2=py311h49ec1c0_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py311h49ec1c0_1
+ - unicodedata2=17.0.0=py311h49ec1c0_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h30787bc_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - wayland=1.24.0=h3e06ad9_0
+ - uv=0.9.8=h76e24b7_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=hd6090a7_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py311h49ec1c0_1
- xcb-util=0.4.1=h4f16b4b_2
- xcb-util-cursor=0.1.5=hb9d3cd8_0
@@ -436,17 +481,21 @@ dependencies:
- xorg-libxext=1.3.6=hb9d3cd8_0
- xorg-libxfixes=6.0.2=hb03c661_0
- xorg-libxi=1.8.2=hb9d3cd8_0
+ - xorg-libxinerama=1.1.5=h5888daf_1
- xorg-libxrandr=1.5.4=hb9d3cd8_0
- xorg-libxrender=0.9.12=hb9d3cd8_0
- xorg-libxt=1.3.1=hb9d3cd8_0
- xorg-libxtst=1.2.5=hb9d3cd8_3
- xorg-libxxf86vm=1.1.6=hb9d3cd8_0
+ - xorg-xorgproto=2024.1=hb9d3cd8_1
- xz=5.8.1=hbcc6ac9_2
- xz-gpl-tools=5.8.1=hbcc6ac9_2
- xz-tools=5.8.1=hb9d3cd8_2
- yaml=0.2.5=h280c20c_3
+ - yaml-cpp=0.8.0=h3f2d84a_0
- zeromq=4.3.5=h387f397_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hb9d3cd8_2
- - zstandard=0.25.0=py311haee01d2_0
+ - zlib-ng=2.2.5=hde8ca8f_0
+ - zstandard=0.25.0=py311haee01d2_1
- zstd=1.5.7=hb8e6e7a_2
diff --git a/environment-3.11-macos-x86_64.yml b/environment-3.11-macos-x86_64.yml
index 102e32f7daf..c5532e57119 100644
--- a/environment-3.11-macos-x86_64.yml
+++ b/environment-3.11-macos-x86_64.yml
@@ -1,20 +1,23 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-64
-# input_hash: 3aa259922009a1d38088978c27f80157c0173030b678f90425b9d5c15ad59b62
+# input_hash: 0dbf41364a6d95960aebac70c3ffcab48f0c2f233ded334f42628fe67e01fa3d
channels:
- conda-forge
dependencies:
- 4ti2=1.6.13=he407a3c_0
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hdfe9103_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=h4bec284_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321had7229c_1
- automake=1.17=pl5321h694c41f_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -22,16 +25,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h240833e_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_hbf4f893_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_hbf4f893_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h7728843_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hfcd56d9_4
- - brotli=1.1.0=h1c43f85_4
- - brotli-bin=1.1.0=h1c43f85_4
- - brotli-python=1.1.0=py311h7b20566_4
+ - brotli=1.2.0=hb27157a_0
+ - brotli-bin=1.2.0=h5c1846c_0
+ - brotli-python=1.2.0=py311h55b82c4_0
- bwidget=1.10.1=h694c41f_1
- bzip2=1.0.8=h500dc9f_8
- c-ares=1.34.5=hf13058a_0
@@ -40,12 +43,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h950ec3b_0
- - cctools=1024.3=h67a6458_4
- - cctools_osx-64=1024.3=h3b512aa_4
+ - cctools=1024.3=h67a6458_9
+ - cctools_osx-64=1024.3=llvm19_1_h3b512aa_9
- cddlib=1!0.94m=h0f52abe_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py311h8ebb5ae_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py311h26bcf6e_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_h1323312_5
- clang-19=19.1.7=default_hc369343_5
- clang_impl_osx-64=19.1.7=hc73cdc9_25
@@ -53,182 +56,213 @@ dependencies:
- clangxx=19.1.7=default_h1c12a56_5
- clangxx_impl_osx-64=19.1.7=hb295874_25
- clangxx_osx-64=19.1.7=h7e5c614_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=h8616949_0
+ - coin-or-cbc=2.10.12=h084678f_4
+ - coin-or-cgl=0.60.9=hbb40df2_6
+ - coin-or-clp=1.17.10=heb008f4_3
+ - coin-or-osi=0.108.11=hd53559c_7
+ - coin-or-utils=2.11.12=h424655f_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=he914875_1
- compiler-rt_osx-64=19.1.7=h138dee1_1
+ - conda=25.9.1=py311h6eed73b_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py311hd4d69bb_2
+ - contourpy=1.3.3=py311haec20ae_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py311he13f9b5_0
- - cpython=3.11.13=py311hd8ed1ab_0
+ - coverage=7.11.1=py311he13f9b5_0
+ - cpp-expected=1.3.1=h0ba0a54_0
+ - cpython=3.11.14=py311hd8ed1ab_2
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py311h3e2dd55_0
- - curl=8.14.1=h5dec5d8_0
+ - cryptography=46.0.3=py311h3e2dd55_0
+ - curl=8.17.0=h7dd4100_0
- cxx-compiler=1.11.0=h307afc9_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py311h29339b9_0
- cysignals=1.12.5=py311h11ccb26_0
- - cython=3.1.4=py311h8726017_2
+ - cython=3.2.0=py311hb8ba39f_0
- debugpy=1.8.17=py311h1854d6b_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py311h3b9c2be_0
- ecl=24.5.10=ha6bf567_1
- eclib=20250627=h28d223a_0
- ecm=7.0.6=h5625669_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=h8616949_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=h21dd04a_0
- fflas-ffpack=2.5.0=h5898d61_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h7a3a4f9_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h37eeddb_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py311he13f9b5_0
- fortran-compiler=1.11.0=h9ab62e8_0
- fplll=5.5.0=h6ede486_0
- fpylll=0.6.4=py311h793c761_0
- freetype=2.14.1=h694c41f_0
- fribidi=1.0.16=h8616949_0
+ - frozendict=2.4.6=py311h13e5629_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=hb9686a1_5
- - gap-defaults=4.14.0=h694c41f_5
+ - gap-core=4.15.1=h94a3ca4_0
+ - gap-defaults=4.15.1=h694c41f_0
+ - gdk-pixbuf=2.44.4=h07555a4_0
- gf2x=1.3.0=h35ac7d9_3
- gfan=0.6.2=hd793b56_1003
- gfortran=14.3.0=hcc3c99d_0
- - gfortran_impl_osx-64=14.3.0=he320259_1
+ - gfortran_impl_osx-64=14.3.0=h94fe04d_1
- gfortran_osx-64=14.3.0=h3223c34_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=hbf3f340_3
+ - glib-tools=2.86.1=h8650975_1
- glpk=5.0=h3cb5acd_0
- gmp=6.3.0=hf036a51_2
- - gmpy2=2.1.5=py311h7945f45_3
+ - gmpy2=2.2.1=py311h2f44f96_1
- graphite2=1.3.14=h21dd04a_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=h42bfd48_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h93259b0_0
+ - gtk3=3.24.43=h5e629aa_6
+ - gts=0.7.6=h53e17e3_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=hc5d3ef4_0
+ - harfbuzz=12.2.0=hc5d3ef4_0
+ - hicolor-icon-theme=0.17=h694c41f_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=h120a0e1_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=1.0.0=h88b1ca6_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=h88b1ca6_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h61918c1_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h2e86a7b_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py311h6eed73b_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py311ha94bed4_1
+ - kiwisolver=1.4.9=py311h591569d_2
- krb5=1.21.3=h37d8d59_0
- lcalc=2.1.1=h0f747f7_0
- lcms2=2.17=h72f5680_0
- - ld64=955.13=hc3792c1_4
- - ld64_osx-64=955.13=h466f870_4
+ - ld64=955.13=hc3792c1_9
+ - ld64_osx-64=955.13=llvm19_1_h466f870_9
- lerc=4.0.0=hcca01a6_1
+ - libarchive=3.8.2=gpl_h889603c_100
- libasprintf=0.25.1=h3184127_1
- - libblas=3.9.0=36_he492b99_openblas
+ - libblas=3.9.0=38_he492b99_openblas
- libboost=1.85.0=hcca3243_4
- libboost-devel=1.85.0=h2b186f8_4
- libboost-headers=1.85.0=h694c41f_4
- libbraiding=1.3.1=h240833e_0
- libbrial=1.2.15=hca781cf_0
- - libbrotlicommon=1.1.0=h1c43f85_4
- - libbrotlidec=1.1.0=h1c43f85_4
- - libbrotlienc=1.1.0=h1c43f85_4
- - libcblas=3.9.0=36_h9b27e0a_openblas
+ - libbrotlicommon=1.2.0=h105ed1c_0
+ - libbrotlidec=1.2.0=h660c9da_0
+ - libbrotlienc=1.2.0=h2338291_0
+ - libcblas=3.9.0=38_h9b27e0a_openblas
- libclang-cpp19.1=19.1.7=default_hc369343_5
- - libcurl=8.14.1=h5dec5d8_0
- - libcxx=21.1.2=h3d58e20_0
+ - libcurl=8.17.0=h7dd4100_0
+ - libcxx=21.1.5=h3d58e20_0
- libcxx-devel=19.1.7=h7c275be_1
- - libdeflate=1.24=hcc1b750_0
+ - libdeflate=1.25=h517ebb2_0
- libedit=3.1.20250104=pl5321ha958ccf_0
- libev=4.33=h10d778d_2
- libexpat=2.7.1=h21dd04a_0
- - libffi=3.4.6=h281671d_1
+ - libffi=3.5.2=h750e83c_0
- libflint=3.2.2=h26b1ecd_0
- libfreetype=2.14.1=h694c41f_0
- libfreetype6=2.14.1=h6912278_0
- libgd=2.3.3=h8555400_11
- libgettextpo=0.25.1=h3184127_1
- - libgfortran=15.1.0=h5f6db21_1
+ - libgfortran=15.2.0=h306097a_1
- libgfortran-devel_osx-64=14.3.0=h660b60f_1
- - libgfortran5=15.1.0=hfa3c126_1
- - libglib=2.86.0=h7cafd41_0
+ - libgfortran5=15.2.0=h336fb69_1
+ - libglib=2.86.1=h6ca3a76_1
- libhomfly=1.03=h1c43f85_0
- libiconv=1.18=h57a12c2_2
- libintl=0.25.1=h3184127_1
- - libjpeg-turbo=3.1.0=h6e16a3a_0
- - liblapack=3.9.0=36_h859234e_openblas
- - liblapacke=3.9.0=36_h94b3770_openblas
+ - libjpeg-turbo=3.1.2=h8616949_0
+ - liblapack=3.9.0=38_h859234e_openblas
+ - liblapacke=3.9.0=38_h94b3770_openblas
- libllvm19=19.1.7=h56e7563_2
- liblzma=5.8.1=hd471939_2
- liblzma-devel=5.8.1=hd471939_2
+ - libmamba=2.3.3=hf3f6d74_1
+ - libmambapy=2.3.3=py311hb021567_1
- libnghttp2=1.67.0=h3338091_0
- - libopenblas=0.3.30=openmp_h83c2472_2
+ - libopenblas=0.3.30=openmp_h6006d49_3
- libpng=1.6.50=h84aeda2_1
+ - librsvg=2.60.0=h2da6fc3_0
- libsodium=1.0.20=hfdf4475_0
- - libsqlite=3.50.4=h39a8b3b_0
+ - libsolv=0.7.35=h6fd32b5_0
+ - libsqlite=3.51.0=h86bffb9_0
- libssh2=1.11.1=hed3591d_0
- - libtiff=4.7.1=haa3b502_0
+ - libtiff=4.7.1=ha0a348c_1
- libwebp-base=1.6.0=hb807250_0
- libxcb=1.17.0=hf1f96e2_0
- - libxml2=2.15.0=h7b7ecba_1
- - libxml2-16=2.15.0=ha1d9b0f_1
- - libxml2-devel=2.15.0=h7b7ecba_1
+ - libxml2=2.15.1=h7b7ecba_0
+ - libxml2-16=2.15.1=ha1d9b0f_0
+ - libxml2-devel=2.15.1=h7b7ecba_0
- libzlib=1.3.1=hd23fc13_2
- linbox=1.7.1=h1a86e0a_0
- - llvm-openmp=21.1.2=h472b3d1_3
+ - llvm-openmp=21.1.5=h472b3d1_0
- llvm-tools=19.1.7=hb0207f0_2
- llvm-tools-19=19.1.7=h879f4bc_2
- lrcalc=2.1=hac325c4_7
- lrslib=71.b=hda3377a_1
+ - lz4-c=1.10.0=h240833e_1
+ - lzo=2.10=h4132b18_1002
- m4=1.4.20=h6e16a3a_0
- m4ri=20250128=h95e091b_0
- m4rie=20250128=h95e091b_0
- make=4.4.1=h00291cd_2
- markupsafe=3.0.3=py311he13f9b5_0
- - matplotlib=3.10.6=py311h6eed73b_1
- - matplotlib-base=3.10.6=py311h48d7e91_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py311h6eed73b_0
+ - matplotlib-base=3.10.7=py311h48d7e91_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h3080a4d_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py311h3336109_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py311h13e5629_2
+ - menuinst=2.4.1=py311h6eed73b_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -236,26 +270,27 @@ dependencies:
- mpfi=1.5.4=h52b28e3_1001
- mpfr=4.2.1=haed47dc_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py311hd4d69bb_1
+ - msgpack-python=1.1.2=py311haec20ae_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=h8616949_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h0622a9a_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h0ba0a54_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0ab3c2f_1
- - numpy=2.3.3=py311hf157cb9_0
- - openblas=0.3.30=openmp_h30af337_2
+ - numpy=2.3.4=py311hf157cb9_0
+ - openblas=0.3.30=openmp_h30af337_3
- openjpeg=2.5.4=h87e8dc5_0
- openssl=3.5.4=h230baf5_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=h8616949_0
- - pandoc=3.8.1=h694c41f_0
+ - pandoc=3.8.2.1=h694c41f_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h6ef8af8_0
- pari=2.17.2=h1ed0f1a_5_pthread
@@ -267,15 +302,14 @@ dependencies:
- pcre2=10.46=ha3e7e28_0
- perl=5.32.1=7_h10d778d_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py311ha88f94d_3
+ - pillow=12.0.0=py311hc618505_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=ha059160_1
- pkg-config=0.29.2=hf7e621a_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=h8616949_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=h8616949_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=ha60d53e_1006
- pplpy=0.8.9=py311h221ab62_2
@@ -284,27 +318,29 @@ dependencies:
- primesieve=12.8=h240833e_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py311hf197a57_0
+ - psutil=7.1.3=py311h62e9434_0
- pthread-stubs=0.4=h00291cd_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py311h13e5629_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py311hd1a56c6_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py311hd2a4513_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py311hcebe98e_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py311hf197a57_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.11.13=h9ccd52b_0_cpython
+ - python=3.11.14=h74c2667_2_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
@@ -318,30 +354,33 @@ dependencies:
- pyzmq=27.1.0=py311h0ab6910_0
- qd=2.3.22=h2beb688_1004
- qhull=2020.2=h3c5361c_5
- - r-base=4.4.3=h56b9990_4
+ - r-base=4.4.3=h711e366_5
- r-lattice=0.22_7=r44h735ac91_1
- - rapidfuzz=3.14.1=py311h11ccb26_0
+ - rapidfuzz=3.14.3=py311h11ccb26_1
- readline=8.2=h7cca4af_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h6e16a3a_0
+ - reproc-cpp=14.2.5.post0=h240833e_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py311hd3d88a1_1
+ - rpds-py=0.28.0=py311hd2a4513_1
- rpy2=3.6.4=py311r44h52c6234_1
- - ruamel.yaml=0.18.15=py311hf197a57_1
- - ruamel.yaml.clib=0.2.12=py311h13e5629_1
+ - ruamel.yaml=0.18.16=py311hf197a57_0
+ - ruamel.yaml.clib=0.2.14=py311hf197a57_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=hba89d1c_0
- - rw=0.7=1
+ - ruff=0.14.4=hd9f4cfa_0
+ - rw=0.9=h10d778d_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py311h32c7e5c_0
+ - scipy=1.16.3=py311h32c7e5c_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h88f4db0_0
+ - simdjson=4.0.7=hcb651aa_0
- singular=4.4.1=haa275bf_1
- sirocco=2.1.0=hfc2cc1e_1
- six=1.17.0=pyhe01879c_1
@@ -358,9 +397,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=h64b5abc_0
+ - sqlite=3.51.0=hca40e9d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h79ccd14_1
- symmetrica=3.1.0=h8616949_0
- sympow=2.023.6=h7305399_4
@@ -370,37 +409,39 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=hf689a15_2
- tktable=2.10=h2c093e9_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py311h13e5629_1
+ - tornado=6.5.2=py311hf197a57_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py311h13e5629_1
+ - unicodedata2=17.0.0=py311hf197a57_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h66543e4_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h3315dae_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py311h13e5629_1
- - xattr=1.2.0=py311h8e62900_1
+ - xattr=1.3.0=py311hab88851_1
- xorg-libxau=1.0.12=h6e16a3a_0
- xorg-libxdmcp=1.1.5=h00291cd_0
- xz=5.8.1=h357f2ed_2
- xz-gpl-tools=5.8.1=h357f2ed_2
- xz-tools=5.8.1=hd471939_2
- yaml=0.2.5=h4132b18_3
+ - yaml-cpp=0.8.0=h92383a6_0
- zeromq=4.3.5=h6c33b1e_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hd23fc13_2
- - zstandard=0.25.0=py311h62e9434_0
+ - zlib-ng=2.2.5=h55e386d_0
+ - zstandard=0.25.0=py311h62e9434_1
- zstd=1.5.7=h8210216_2
diff --git a/environment-3.11-macos.yml b/environment-3.11-macos.yml
index 1db05184e49..a6d2f3677e1 100644
--- a/environment-3.11-macos.yml
+++ b/environment-3.11-macos.yml
@@ -1,19 +1,22 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-arm64
-# input_hash: 616075c960184e88c174fb059b2acc1ba4e38903ed068b8bbd92d1e3a1115a8e
+# input_hash: 3e27356c56630ca9e98b1473f2a7ba2071cd6f03da3a3b3e96aee40eb7e24563
channels:
- conda-forge
dependencies:
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h1f29f7c_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=hd03087b_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hd3c70e0_1
- automake=1.17=pl5321hce30654_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -21,16 +24,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h286801f_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h11c0a38_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h11c0a38_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2ffa867_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h103c1d6_4
- - brotli=1.1.0=h6caf38d_4
- - brotli-bin=1.1.0=h6caf38d_4
- - brotli-python=1.1.0=py311hf719da1_4
+ - brotli=1.2.0=hca488c2_0
+ - brotli-bin=1.2.0=hce9b42c_0
+ - brotli-python=1.2.0=py311h69b7e7c_0
- bwidget=1.10.1=hce30654_1
- bzip2=1.0.8=hd037594_8
- c-ares=1.34.5=h5505292_0
@@ -39,12 +42,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h6a3b0d2_0
- - cctools=1024.3=hd01ab73_4
- - cctools_osx-arm64=1024.3=h8c76c84_4
+ - cctools=1024.3=hd01ab73_9
+ - cctools_osx-arm64=1024.3=llvm19_1_h8c76c84_9
- cddlib=1!0.94m=h6d7a090_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py311hcfc1310_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py311hd10dc20_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hf9bcbb7_5
- clang-19=19.1.7=default_h73dfc95_5
- clang_impl_osx-arm64=19.1.7=h76e6a08_25
@@ -52,181 +55,212 @@ dependencies:
- clangxx=19.1.7=default_h36137df_5
- clangxx_impl_osx-arm64=19.1.7=h276745f_25
- clangxx_osx-arm64=19.1.7=h07b0088_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hc919400_0
+ - coin-or-cbc=2.10.12=h0c75da4_4
+ - coin-or-cgl=0.60.9=h24d7dbf_6
+ - coin-or-clp=1.17.10=ha5fe85a_3
+ - coin-or-osi=0.108.11=h95bd113_7
+ - coin-or-utils=2.11.12=hedb6bc8_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h855ad52_1
- compiler-rt_osx-arm64=19.1.7=he32a8d3_1
+ - conda=25.9.1=py311h267d04e_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py311h57a9ea7_2
+ - contourpy=1.3.3=py311h5a5e7c7_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py311ha9b3269_0
- - cpython=3.11.13=py311hd8ed1ab_0
+ - coverage=7.11.1=py311ha9b3269_0
+ - cpp-expected=1.3.1=h4f10f1e_0
+ - cpython=3.11.14=py311hd8ed1ab_2
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py311h054b3d0_0
- - curl=8.14.1=h73640d1_0
+ - cryptography=46.0.3=py311h054b3d0_0
+ - curl=8.17.0=hdece5d2_0
- cxx-compiler=1.11.0=h88570a1_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py311haabaa81_0
- cysignals=1.12.5=py311h251fd82_0
- - cython=3.1.4=py311h9342580_2
+ - cython=3.2.0=py311hac7d6c3_0
- debugpy=1.8.17=py311hc58e375_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py311h3ff9189_0
- ecl=24.5.10=hc6c598b_1
- eclib=20250627=h6592c3b_0
- ecm=7.0.6=hdd59bce_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hc919400_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hec049ff_0
- fflas-ffpack=2.5.0=h4bc3318_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h669d743_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h1383a14_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py311ha9b3269_0
- fortran-compiler=1.11.0=h81a4f41_0
- fplll=5.5.0=h2a2278a_0
- fpylll=0.6.4=py311h4044dbd_0
- freetype=2.14.1=hce30654_0
- fribidi=1.0.16=hc919400_0
+ - frozendict=2.4.6=py311h3696347_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h25f1785_5
- - gap-defaults=4.14.0=hce30654_5
+ - gap-core=4.15.1=h0c23a18_0
+ - gap-defaults=4.15.1=hce30654_0
+ - gdk-pixbuf=2.44.4=h7542897_0
- gf2x=1.3.0=hf8f8af4_3
- gfan=0.6.2=hec08f5c_1003
- gfortran=14.3.0=h3ef1dbf_0
- - gfortran_impl_osx-arm64=14.3.0=h969232b_1
+ - gfortran_impl_osx-arm64=14.3.0=h6d03799_1
- gfortran_osx-arm64=14.3.0=h3c33bd0_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h5331fe3_3
+ - glib-tools=2.86.1=hb9d6e3a_1
- glpk=5.0=h6d7a090_0
- gmp=6.3.0=h7bae524_2
- - gmpy2=2.1.5=py311hb5d9ff4_3
+ - gmpy2=2.2.1=py311hb9fe3ed_1
- graphite2=1.3.14=hec049ff_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=hcd33d8b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h6e638da_0
+ - gtk3=3.24.43=h5febe37_6
+ - gts=0.7.6=he42f4ea_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=haf38c7b_0
+ - harfbuzz=12.2.0=haf38c7b_0
+ - hicolor-icon-theme=0.17=hce30654_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hfee45f7_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h73cadaf_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=hd73f12c_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h347afa1_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py311h267d04e_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py311h63e5c0c_1
+ - kiwisolver=1.4.9=py311h26d6576_2
- krb5=1.21.3=h237132a_0
- lcalc=2.1.1=hdaf6845_0
- lcms2=2.17=h7eeda09_0
- - ld64=955.13=he86490a_4
- - ld64_osx-arm64=955.13=h6922315_4
+ - ld64=955.13=he86490a_9
+ - ld64_osx-arm64=955.13=llvm19_1_h6922315_9
- lerc=4.0.0=hd64df32_1
+ - libarchive=3.8.2=gpl_h46575ef_100
- libasprintf=0.25.1=h493aca8_0
- - libblas=3.9.0=36_h51639a9_openblas
+ - libblas=3.9.0=38_h51639a9_openblas
- libboost=1.85.0=hf763ba5_4
- libboost-devel=1.85.0=hf450f58_4
- libboost-headers=1.85.0=hce30654_4
- libbraiding=1.3.1=h286801f_0
- libbrial=1.2.15=he660457_0
- - libbrotlicommon=1.1.0=h6caf38d_4
- - libbrotlidec=1.1.0=h6caf38d_4
- - libbrotlienc=1.1.0=h6caf38d_4
- - libcblas=3.9.0=36_hb0561ab_openblas
+ - libbrotlicommon=1.2.0=h87ba0bc_0
+ - libbrotlidec=1.2.0=h95a88de_0
+ - libbrotlienc=1.2.0=hb1b9735_0
+ - libcblas=3.9.0=38_hb0561ab_openblas
- libclang-cpp19.1=19.1.7=default_h73dfc95_5
- - libcurl=8.14.1=h73640d1_0
- - libcxx=21.1.2=hf598326_0
+ - libcurl=8.17.0=hdece5d2_0
+ - libcxx=21.1.5=hf598326_0
- libcxx-devel=19.1.7=h6dc3340_1
- - libdeflate=1.24=h5773f1b_0
+ - libdeflate=1.25=hc11a715_0
- libedit=3.1.20250104=pl5321hafb1f1b_0
- libev=4.33=h93a5062_2
- libexpat=2.7.1=hec049ff_0
- - libffi=3.4.6=h1da3d7d_1
+ - libffi=3.5.2=he5f378a_0
- libflint=3.2.2=hf825d4a_0
- libfreetype=2.14.1=hce30654_0
- libfreetype6=2.14.1=h6da58f4_0
- libgd=2.3.3=hb2c3a21_11
- libgettextpo=0.25.1=h493aca8_0
- - libgfortran=15.1.0=hfdf1602_1
+ - libgfortran=15.2.0=hfcf01ff_1
- libgfortran-devel_osx-arm64=14.3.0=hc965647_1
- - libgfortran5=15.1.0=hb74de2c_1
- - libglib=2.86.0=h1bb475b_0
+ - libgfortran5=15.2.0=h742603c_1
+ - libglib=2.86.1=he69a767_1
- libhomfly=1.03=h6caf38d_0
- libiconv=1.18=h23cfdf5_2
- libintl=0.25.1=h493aca8_0
- - libjpeg-turbo=3.1.0=h5505292_0
- - liblapack=3.9.0=36_hd9741b5_openblas
- - liblapacke=3.9.0=36_h1b118fd_openblas
+ - libjpeg-turbo=3.1.2=hc919400_0
+ - liblapack=3.9.0=38_hd9741b5_openblas
+ - liblapacke=3.9.0=38_h1b118fd_openblas
- libllvm19=19.1.7=h8e0c9ce_2
- liblzma=5.8.1=h39f12f2_2
- liblzma-devel=5.8.1=h39f12f2_2
+ - libmamba=2.3.3=h1370271_2
+ - libmambapy=2.3.3=py311h72cf7df_2
- libnghttp2=1.67.0=hc438710_0
- - libopenblas=0.3.30=openmp_h60d53f8_2
+ - libopenblas=0.3.30=openmp_ha158390_3
- libpng=1.6.50=h280e0eb_1
+ - librsvg=2.60.0=h5c55ec3_0
- libsodium=1.0.20=h99b78c6_0
- - libsqlite=3.50.4=h4237e3c_0
+ - libsolv=0.7.35=h5f525b2_0
+ - libsqlite=3.51.0=h8adb53f_0
- libssh2=1.11.1=h1590b86_0
- - libtiff=4.7.1=h7dc4979_0
+ - libtiff=4.7.1=h4030677_1
- libwebp-base=1.6.0=h07db88b_0
- libxcb=1.17.0=hdb1d25a_0
- - libxml2=2.15.0=h9329255_1
- - libxml2-16=2.15.0=h0ff4647_1
- - libxml2-devel=2.15.0=h9329255_1
+ - libxml2=2.15.1=h9329255_0
+ - libxml2-16=2.15.1=h0ff4647_0
+ - libxml2-devel=2.15.1=h9329255_0
- libzlib=1.3.1=h8359307_2
- linbox=1.7.1=h08a833a_0
- - llvm-openmp=21.1.2=h4a912ad_3
+ - llvm-openmp=21.1.5=h4a912ad_0
- llvm-tools=19.1.7=h855ad52_2
- llvm-tools-19=19.1.7=h91fd4e7_2
- lrcalc=2.1=hec049ff_8
+ - lz4-c=1.10.0=h286801f_1
+ - lzo=2.10=h925e9cb_1002
- m4=1.4.20=h5505292_0
- m4ri=20250128=h0f65c67_0
- m4rie=20250128=h0f65c67_0
- make=4.4.1=hc9fafa5_2
- markupsafe=3.0.3=py311ha9b3269_0
- - matplotlib=3.10.6=py311ha1ab1f8_0
- - matplotlib-base=3.10.6=py311h66dac5a_0
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py311ha1ab1f8_0
+ - matplotlib-base=3.10.7=py311h29553df_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=hd2c4bfb_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py311h460d6c5_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py311h3696347_2
+ - menuinst=2.4.1=py311h267d04e_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -234,26 +268,27 @@ dependencies:
- mpfi=1.5.4=hbde5f5b_1001
- mpfr=4.2.1=hb693164_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py311h57a9ea7_1
+ - msgpack-python=1.1.2=py311h5a5e7c7_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hf22a7ee_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h5e97a16_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h4f10f1e_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hbb3f309_1
- - numpy=2.3.3=py311h8685306_0
- - openblas=0.3.30=openmp_hea878ba_2
+ - numpy=2.3.4=py311h8685306_0
+ - openblas=0.3.30=openmp_hea878ba_3
- openjpeg=2.5.4=hbfb3c88_0
- openssl=3.5.4=h5503f6c_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hc919400_0
- - pandoc=3.8.1=hce30654_0
+ - pandoc=3.8.2.1=hce30654_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h875632e_0
- pari=2.17.2=h49d18c7_5_pthread
@@ -265,15 +300,14 @@ dependencies:
- pcre2=10.46=h7125dd6_0
- perl=5.32.1=7_h4614cfb_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py311h1f9957d_3
+ - pillow=12.0.0=py311h890502c_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h81086ad_1
- pkg-config=0.29.2=hde07d2e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hc919400_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hc919400_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h8b147cf_1006
- pplpy=0.8.9=py311h911f23a_2
@@ -282,27 +316,29 @@ dependencies:
- primesieve=12.8=h286801f_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py311h9408147_0
+ - psutil=7.1.3=py311h5bb9006_0
- pthread-stubs=0.4=hd74edd7_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py311h3696347_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py311hf245fc6_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py311h71babbd_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py311hcada031_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py311h9408147_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.11.13=hc22306f_0_cpython
+ - python=3.11.14=h18782d2_2_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
@@ -316,30 +352,33 @@ dependencies:
- pyzmq=27.1.0=py311h13abfa4_0
- qd=2.3.22=hbec66e7_1004
- qhull=2020.2=h420ef59_5
- - r-base=4.4.3=hb7b3c91_4
+ - r-base=4.4.3=h04a9237_5
- r-lattice=0.22_7=r44h6168396_1
- - rapidfuzz=3.14.1=py311h251fd82_0
+ - rapidfuzz=3.14.3=py311h251fd82_1
- readline=8.2=h1d1bf99_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h5505292_0
+ - reproc-cpp=14.2.5.post0=h286801f_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py311h1c3fc1a_1
+ - rpds-py=0.28.0=py311h71babbd_1
- rpy2=3.6.4=py311r44h8940d94_1
- - ruamel.yaml=0.18.15=py311h9408147_1
- - ruamel.yaml.clib=0.2.8=py311hae2e1ce_1
+ - ruamel.yaml=0.18.16=py311h9408147_0
+ - ruamel.yaml.clib=0.2.14=py311h9408147_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h492a034_0
+ - ruff=0.14.4=h382de68_0
- rw=0.9=h93a5062_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py311h2734c94_0
+ - scipy=1.16.3=py311h2734c94_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h44b9a77_0
+ - simdjson=4.0.7=ha7d2532_0
- singular=4.4.1=h837545d_1
- sirocco=2.1.0=h41f8169_1
- six=1.17.0=pyhe01879c_1
@@ -356,9 +395,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hb5dd463_0
+ - sqlite=3.51.0=h81ab1b7_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=hddbed1c_1
- symmetrica=3.1.0=hc919400_0
- sympow=2.023.6=hc13a52f_4
@@ -368,37 +407,39 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h892fb3f_2
- tktable=2.10=h3c7de25_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py311h3696347_1
+ - tornado=6.5.2=py311h9408147_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py311h3696347_1
+ - unicodedata2=17.0.0=py311h9408147_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h194b5f9_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h1bde295_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py311h3696347_1
- - xattr=1.2.0=py311h7d51efc_1
+ - xattr=1.3.0=py311h9e99a0f_1
- xorg-libxau=1.0.12=h5505292_0
- xorg-libxdmcp=1.1.5=hd74edd7_0
- xz=5.8.1=h9a6d368_2
- xz-gpl-tools=5.8.1=h9a6d368_2
- xz-tools=5.8.1=h39f12f2_2
- yaml=0.2.5=h925e9cb_3
+ - yaml-cpp=0.8.0=ha1acc90_0
- zeromq=4.3.5=h888dc83_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h8359307_2
- - zstandard=0.25.0=py311h5bb9006_0
+ - zlib-ng=2.2.5=h3470cca_0
+ - zstandard=0.25.0=py311h5bb9006_1
- zstd=1.5.7=h6491c7d_2
diff --git a/environment-3.11-win.yml b/environment-3.11-win.yml
index 6858d000039..a615da70edf 100644
--- a/environment-3.11-win.yml
+++ b/environment-3.11-win.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: win-64
-# input_hash: 9780021208eb65d318623452cdd6eb90c0546cca9543dfcd386978e2ebe0bd84
+# input_hash: 36f62c1f8ad377e3b8a8e072e458346729d28c85e7da5024fbf793bf8675cbf2
channels:
- conda-forge
@@ -11,22 +11,23 @@ dependencies:
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - attrs=25.4.0=pyh71513ae_0
- babel=2.17.0=pyhd8ed1ab_0
- backports=1.0=pyhd8ed1ab_5
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils_impl_win-64=2.44=h095e170_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_ha590de0_openblas
+ - binutils_impl_win-64=2.44=h1226360_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_ha590de0_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=ha5ead02_4
- - brotli=1.1.0=hfd05255_4
- - brotli-bin=1.1.0=hfd05255_4
- - brotli-python=1.1.0=py311h3e6a449_4
+ - brotli=1.2.0=h17ff524_0
+ - brotli-bin=1.2.0=h6910e44_0
+ - brotli-python=1.2.0=py311h69b5583_0
- bwidget=1.10.1=h57928b3_1
- bzip2=1.0.8=h0ad9c76_8
- ca-certificates=2025.10.5=h4c7d964_0
@@ -34,190 +35,222 @@ dependencies:
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h5782bbf_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py311h3485c13_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py311h3485c13_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hac490eb_5
- clang-19=19.1.7=default_hac490eb_5
- - click=8.3.0=pyh7428d3b_0
+ - click=8.1.8=pyh7428d3b_0
- click-default-group=1.2.4=pyhd8ed1ab_1
+ - coin-or-cbc=2.10.12=hd3ed8bd_4
+ - coin-or-cgl=0.60.9=hacf86d0_6
+ - coin-or-clp=1.17.10=h626fd10_3
+ - coin-or-osi=0.108.11=h5b68f48_7
+ - coin-or-utils=2.11.12=hdb10741_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h49e36cd_1
- compiler-rt_win-64=19.1.7=h49e36cd_1
+ - conda=25.9.1=py311h1ea47a8_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyha6a9232_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py311h3fd045d_2
+ - contourpy=1.3.3=py311h3fd045d_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py311h3f79411_0
- - cpython=3.11.13=py311hd8ed1ab_0
+ - coverage=7.11.1=py311h3f79411_0
+ - cpp-expected=1.3.1=h477610d_0
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py311h5e0b3ae_0
- - curl=8.14.1=h88aaa65_0
+ - cryptography=46.0.3=py311h5e0b3ae_0
+ - curl=8.17.0=h43ecb02_0
- cycler=0.12.1=pyhd8ed1ab_1
- cysignals=1.12.5=py311h3e6a449_0
- - cython=3.1.4=py311hcaecfd5_2
+ - cython=3.2.0=py311h9990397_0
- debugpy=1.8.17=py311h5dfdfe8_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=he0c23c2_0
- dulwich=0.22.8=py311h533ab2d_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hac47afa_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
- flang=19.1.7=hbeecb71_0
- flang_impl_win-64=19.1.7=h719f0c7_0
- flang_win-64=19.1.7=h719f0c7_0
+ - fmt=12.0.0=h29169d4_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h765892d_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py311h3f79411_0
- fortran-compiler=1.11.0=h95e3450_0
- freetype=2.14.1=h57928b3_0
+ - fribidi=1.0.16=hfd05255_0
+ - frozendict=2.4.6=py311h3485c13_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gcc_impl_win-64=15.1.0=hb5bc704_5
- - gfortran_impl_win-64=15.1.0=h792c6fe_5
+ - gcc_impl_win-64=15.2.0=h90e0b34_7
+ - getopt-win32=0.1=h6a83c73_3
+ - gfortran_impl_win-64=15.2.0=hd3d1e43_7
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- glpk=5.0=h8ffe710_0
- gmp=6.3.0=hfeafd45_2
- - gmpy2=2.1.5=py311hb8385e8_3
+ - gmpy2=2.2.1=py311hf0a8809_1
- graphite2=1.3.14=hac47afa_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=ha5e8f4b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=hdfb1a43_0
- - gxx_impl_win-64=15.1.0=h91e354b_5
+ - gts=0.7.6=h6b5321d_4
+ - gxx_impl_win-64=15.2.0=h4517dcd_7
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=h5f2951f_0
+ - harfbuzz=12.2.0=h5f2951f_0
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he0c23c2_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=1.0.0=h9eeb67d_0
- imagesize=1.4.1=pyhd8ed1ab_0
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh3521513_0
- - ipython=9.5.0=pyh6be1c34_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh6dadd2b_0
+ - ipython=9.7.0=pyhe2676ad_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py311h1ea47a8_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh5737063_0
+ - jupyter_core=5.9.1=pyh6dadd2b_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh7428d3b_0
- - kiwisolver=1.4.9=py311h275cad7_1
+ - kiwisolver=1.4.9=py311h275cad7_2
- krb5=1.21.3=hdf4eb48_0
- lcms2=2.17=hbcf6048_0
- - ld_impl_win-64=2.44=hae1bf67_2
+ - ld_impl_win-64=2.44=h13c207b_4
- lerc=4.0.0=h6470a55_1
- - libblas=3.9.0=36_h0adab6e_openblas
+ - libarchive=3.8.2=gpl_h26aea39_100
+ - libblas=3.9.0=38_h0adab6e_openblas
- libboost=1.85.0=h444863b_4
- libboost-devel=1.85.0=h91493d7_4
- libboost-headers=1.85.0=h57928b3_4
- - libbrotlicommon=1.1.0=hfd05255_4
- - libbrotlidec=1.1.0=hfd05255_4
- - libbrotlienc=1.1.0=hfd05255_4
- - libcblas=3.9.0=36_h2a8eebe_openblas
- - libclang13=21.1.2=default_ha2db4b5_1
- - libcurl=8.14.1=h88aaa65_0
- - libdeflate=1.24=h76ddb4d_0
+ - libbrotlicommon=1.2.0=hc82b238_0
+ - libbrotlidec=1.2.0=h431afc6_0
+ - libbrotlienc=1.2.0=ha521d6b_0
+ - libcblas=3.9.0=38_h2a8eebe_openblas
+ - libclang13=21.1.5=default_ha2db4b5_0
+ - libcurl=8.17.0=h43ecb02_0
+ - libdeflate=1.25=h51727cc_0
- libexpat=2.7.1=hac47afa_0
- - libffi=3.4.6=h537db12_1
+ - libffi=3.5.2=h52bdfb6_0
- libflang=19.1.7=he0c23c2_0
- libflint=3.2.2=h4de658f_0
- libfreetype=2.14.1=h57928b3_0
- libfreetype6=2.14.1=hdbac1cb_0
- - libgcc=15.1.0=h1383e82_5
- - libgcc-devel_win-64=15.1.0=hec057c1_105
+ - libgcc=15.2.0=h1383e82_7
+ - libgcc-devel_win-64=15.2.0=h40631e7_107
- libgd=2.3.3=h7208af6_11
- - libgfortran=15.1.0=h719f0c7_5
- - libgfortran5=15.1.0=h997fb6f_5
- - libglib=2.86.0=h5f26cbf_0
- - libgomp=15.1.0=h1383e82_5
+ - libgfortran=15.2.0=h719f0c7_7
+ - libgfortran5=15.2.0=hf2bee02_7
+ - libglib=2.86.1=hd9c3897_1
+ - libgomp=15.2.0=h1383e82_7
+ - libhwloc=2.12.1=default_h64bd3f2_1002
- libiconv=1.18=hc1393d2_2
- libintl=0.22.5=h5728263_3
- - libjpeg-turbo=3.1.0=h2466b09_0
- - liblapack=3.9.0=36_hd232482_openblas
- - liblapacke=3.9.0=36_hbb0e6ff_openblas
+ - libjpeg-turbo=3.1.2=hfd05255_0
+ - liblapack=3.9.0=38_hd232482_openblas
+ - liblapacke=3.9.0=38_hbb0e6ff_openblas
- libllvm19=19.1.7=h830ff33_2
- liblzma=5.8.1=h2466b09_2
- liblzma-devel=5.8.1=h2466b09_2
- - libopenblas=0.3.30=pthreads_ha4fe6b2_2
+ - libmamba=2.3.3=h5fbfb43_1
+ - libmambapy=2.3.3=py311hd21cfaa_1
+ - libopenblas=0.3.30=pthreads_ha4fe6b2_3
- libpng=1.6.50=h7351971_1
- libsodium=1.0.20=hc70643c_0
- - libsqlite=3.50.4=hf5d6505_0
+ - libsolv=0.7.35=h8883371_0
+ - libsqlite=3.51.0=hf5d6505_0
- libssh2=1.11.1=h9aa295b_0
- - libstdcxx=15.1.0=h904f734_5
- - libstdcxx-devel_win-64=15.1.0=hec057c1_105
- - libtiff=4.7.1=h550210a_0
- - libvulkan-loader=1.4.313.0=h477610d_1
+ - libstdcxx=15.2.0=h904f734_7
+ - libstdcxx-devel_win-64=15.2.0=h40631e7_107
+ - libtiff=4.7.1=h8f73337_1
+ - libvulkan-loader=1.4.328.1=h477610d_0
- libwebp-base=1.6.0=h4d5522a_0
- - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- libxcb=1.17.0=h0e4246c_0
- - libxml2=2.15.0=ha29bfb0_1
- - libxml2-16=2.15.0=h06f855e_1
- - libxml2-devel=2.15.0=ha29bfb0_1
+ - libxml2=2.15.1=ha29bfb0_0
+ - libxml2-16=2.15.1=h06f855e_0
+ - libxml2-devel=2.15.1=ha29bfb0_0
- libxslt=1.1.43=h0fbe4c1_1
- libzlib=1.3.1=h2466b09_2
- - lld=21.1.2=hc465015_0
+ - lld=21.1.5=hc465015_0
+ - llvm-openmp=21.1.5=hfa2b4ca_0
- llvm-tools=19.1.7=h752b59f_2
- - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - lz4-c=1.10.0=h2466b09_1
+ - lzo=2.10=h6a83c73_1002
+ - m2-conda-epoch=20250515=0_x86_64
+ - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- m4ri=20250128=h26c196c_0
- markupsafe=3.0.3=py311h3f79411_0
- - matplotlib=3.10.6=py311h1ea47a8_1
- - matplotlib-base=3.10.6=py311h1675fdf_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py311h1ea47a8_0
+ - matplotlib-base=3.10.7=py311h1675fdf_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py311he736701_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py311h3485c13_2
+ - menuinst=2.4.1=py311h3e6a449_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
- - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
+ - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mingw-w64-ucrt-x86_64-windows-default-manifest=6.4=he206cdd_7
- - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mistune=3.1.4=pyhcf101f3_0
+ - mkl=2024.2.2=h57928b3_16
- more-itertools=10.8.0=pyhd8ed1ab_0
- mpc=1.3.1=h72bc38f_1
- mpfr=4.2.1=hbc20e70_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py311h3fd045d_1
+ - msgpack-python=1.1.2=py311h3fd045d_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.6.11=h2fa13f4_1
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h477610d_0
- - numpy=2.3.3=py311h80b3fa1_0
- - openblas=0.3.30=pthreads_h4a7f399_2
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
+ - numpy=2.3.4=py311h80b3fa1_0
+ - openblas=0.3.30=pthreads_h4a7f399_3
- openjpeg=2.5.4=h24db6dd_0
- openssl=3.5.4=h725018a_0
- packaging=25.0=pyh29332c3_1
- - pandoc=3.8.1=h57928b3_0
+ - pandoc=3.8.2.1=h57928b3_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
+ - pango=1.56.4=h03d888a_0
- pari=2.17.2=h637a547_5_pthread
- pari-elldata=0.0.20161017=0
- pari-galdata=0.0.20180411=0
@@ -227,31 +260,32 @@ dependencies:
- pcre2=10.46=h3402e2f_0
- perl=5.32.1.1=7_h57928b3_strawberry
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py311h26a3c52_3
+ - pillow=12.0.0=py311hf7ee305_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h5112557_1
- pkg-config=0.29.2=h88c491f_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hfd05255_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hfd05255_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- - primesieve=12.8=he0c23c2_0
+ - primesieve=12.10=hac47afa_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py311h3485c13_0
+ - psutil=7.1.3=py311hf893f09_0
- pthread-stubs=0.4=h0e40799_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py311h3485c13_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py311hc4022dc_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py311hf51aa87_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py311hb614d00_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py311h3485c13_0
- pyparsing=3.2.5=pyhcf101f3_0
@@ -259,9 +293,9 @@ dependencies:
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pyside6=6.9.3=py311hf70c7b4_1
- pysocks=1.7.1=pyh09c184e_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.11.13=h3f84c4b_0_cpython
+ - python=3.11.14=h0159041_2_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
@@ -271,31 +305,34 @@ dependencies:
- python_abi=3.11=8_cp311
- pytz=2025.2=pyhd8ed1ab_0
- pywin32=311=py311hefeebc8_1
- - pywin32-ctypes=0.2.3=py311h1ea47a8_2
+ - pywin32-ctypes=0.2.3=py311h1ea47a8_3
- pyyaml=6.0.3=py311h3f79411_0
- pyzmq=27.1.0=py311hb77b9c8_0
- qhull=2020.2=hc790b64_5
- - qt6-main=6.9.3=ha0de62e_0
- - r-base=4.5.1=h4076d79_3
+ - qt6-main=6.9.3=ha0de62e_1
+ - r-base=4.5.2=hd292d57_1
- r-lattice=0.22_7=r45heceb674_1
- - rapidfuzz=3.14.1=py311h3e6a449_0
- - referencing=0.36.2=pyh29332c3_0
+ - rapidfuzz=3.14.3=py311h3e6a449_1
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h2466b09_0
+ - reproc-cpp=14.2.5.post0=he0c23c2_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py311hf51aa87_1
- - ruamel.yaml=0.18.15=py311h3485c13_1
- - ruamel.yaml.clib=0.2.12=py311h3485c13_1
+ - rpds-py=0.28.0=py311hf51aa87_1
+ - ruamel.yaml=0.18.16=py311h3485c13_0
+ - ruamel.yaml.clib=0.2.14=py311h3485c13_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h3e3edff_0
+ - ruff=0.14.4=h15e3a1f_0
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py311h9a1c30b_0
+ - scipy=1.16.3=py311h9a1c30b_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
+ - simdjson=4.0.7=h49e36cd_0
- six=1.17.0=pyhe01879c_1
- smmap=5.0.2=pyhd8ed1ab_0
- snowballstemmer=3.0.1=pyhd8ed1ab_0
@@ -310,44 +347,45 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hdb435a2_0
+ - sqlite=3.51.0=hdb435a2_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h1ba984b_1
- symmetrica=3.1.0=h1056bf2_0
- sympy=1.14.0=pyh04b8f61_5
+ - tbb=2021.13.0=hd094cb3_4
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h2c6b04d_2
- tktable=2.10=h7e9e0db_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py311h3485c13_1
+ - tornado=6.5.2=py311h3485c13_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- ucrt=10.0.26100.0=h57928b3_0
- - unicodedata2=16.0.0=py311h3485c13_1
+ - unicodedata2=17.0.0=py311h3485c13_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=ha1006f7_0
- - vc=14.3=h41ae7f8_31
- - vc14_runtime=14.44.35208=h818238b_31
- - vcomp14=14.44.35208=h818238b_31
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - vs2015_runtime=14.44.35208=h38c0c73_31
- - vs2022_win-64=19.44.35207=ha74f236_31
+ - uv=0.9.8=h3bd95fe_0
+ - vc=14.3=h2b53caa_32
+ - vc14_runtime=14.44.35208=h818238b_32
+ - vcomp14=14.44.35208=h818238b_32
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - vs2015_runtime=14.44.35208=h38c0c73_32
+ - vs2022_win-64=19.44.35207=ha74f236_32
- vswhere=3.1.7=h40126e0_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- win_inet_pton=1.1.0=pyh7428d3b_8
- - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- wrapt=1.17.3=py311h3485c13_1
- xorg-libice=1.1.2=h0e40799_0
- xorg-libsm=1.2.6=h0e40799_0
@@ -360,8 +398,10 @@ dependencies:
- xz=5.8.1=h208afaa_2
- xz-tools=5.8.1=h2466b09_2
- yaml=0.2.5=h6a83c73_3
+ - yaml-cpp=0.8.0=he0c23c2_0
- zeromq=4.3.5=h5bddc39_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h2466b09_2
- - zstandard=0.25.0=py311hf893f09_0
+ - zlib-ng=2.2.5=h32d8bfd_0
+ - zstandard=0.25.0=py311hf893f09_1
- zstd=1.5.7=hbeecb71_2
diff --git a/environment-3.12-linux-aarch64.yml b/environment-3.12-linux-aarch64.yml
index 88d92dd6580..0a0731f7638 100644
--- a/environment-3.12-linux-aarch64.yml
+++ b/environment-3.12-linux-aarch64.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-aarch64
-# input_hash: 2b428ab96f1c5e248049d9ce5c2203cd5c93c9120ce3a6134a6961378c9c9e9a
+# input_hash: 55f398cdb251f7f0014539b3d44b5444919e96d73386958d083ce84c6245f51b
channels:
- conda-forge
@@ -9,12 +9,18 @@ dependencies:
- _openmp_mutex=4.5=2_gnu
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
+ - alsa-lib=1.2.14=h86ecc28_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h6fc4d3a_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h1f2db35_3
+ - at-spi2-core=2.40.3=h1f2db35_0
+ - atk-1.0=2.38.0=hedc4a1f_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbecfd40_1
- automake=1.17=pl5321h8af1aa0_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -22,19 +28,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5ad3122_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=hf1166c9_2
- - binutils_impl_linux-aarch64=2.44=hdf4bb16_2
- - binutils_linux-aarch64=2.44=hf1166c9_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h9678261_openblas
+ - binutils=2.44=hf1166c9_4
+ - binutils_impl_linux-aarch64=2.44=ha36da51_4
+ - binutils_linux-aarch64=2.44=hf1166c9_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h9678261_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2a328a1_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hdad291f_4
- - brotli=1.1.0=he30d5cf_4
- - brotli-bin=1.1.0=he30d5cf_4
- - brotli-python=1.1.0=py312h1ab2c47_4
+ - brotli=1.2.0=hec30622_0
+ - brotli-bin=1.2.0=hf3d421d_0
+ - brotli-python=1.2.0=py312hedec397_0
- bwidget=1.10.1=h8af1aa0_1
- bzip2=1.0.8=h4777abc_8
- c-ares=1.34.5=h86ecc28_0
@@ -45,191 +51,243 @@ dependencies:
- cairo=1.18.4=h83712da_0
- cddlib=1!0.94m=h719063d_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py312h2fc7fbd_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py312h1b372e3_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=he30d5cf_0
+ - coin-or-cbc=2.10.12=h3e6914b_4
+ - coin-or-cgl=0.60.9=h082c6d9_6
+ - coin-or-clp=1.17.10=h1805f0b_3
+ - coin-or-osi=0.108.11=h42e9861_7
+ - coin-or-utils=2.11.12=h6d11b10_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=h92dcf8a_5
+ - conda=25.9.1=py312h996f985_0
+ - conda-gcc-specs=14.3.0=h92dcf8a_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py312h4f740d2_2
+ - contourpy=1.3.3=py312h4f740d2_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py312hd077ced_0
- - cpython=3.12.11=py312hd8ed1ab_0
+ - coverage=7.11.1=py312hd077ced_0
+ - cpp-expected=1.3.1=hdc560ac_0
+ - cpython=3.12.12=py312hd8ed1ab_1
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py312h4cd2d69_0
- - curl=8.14.1=h6702fde_0
+ - cryptography=46.0.3=py312h4cd2d69_0
+ - curl=8.17.0=h7bfdcfb_0
- cxx-compiler=1.11.0=h7b35c40_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py312hb80cc37_0
+ - cyrus-sasl=2.1.28=h6c5dea3_0
- cysignals=1.12.5=py312h1ab2c47_0
- - cython=3.1.4=py312hfce37a5_2
- - dbus=1.13.6=h12b9eeb_3
+ - cython=3.2.0=py312he940de5_0
+ - dbus=1.16.2=heda779d_0
- debugpy=1.8.17=py312hf55c4e8_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
+ - double-conversion=3.3.1=h5ad3122_0
- dulwich=0.22.8=py312h8cbf658_0
- ecl=24.5.10=h043f013_1
- eclib=20250627=h2fd3c11_0
- ecm=7.0.6=hd777dc2_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=he30d5cf_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hfae3067_0
- fflas-ffpack=2.5.0=h503e619_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h416241a_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h8dda3cd_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py312ha4530ae_0
- fortran-compiler=1.11.0=h151373c_0
- fplll=5.5.0=h45c7457_0
- fpylll=0.6.4=py312h37c3976_0
- freetype=2.14.1=h8af1aa0_0
- fribidi=1.0.16=he30d5cf_0
+ - frozendict=2.4.6=py312hcd1a082_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h1754e88_5
- - gap-defaults=4.14.0=h8af1aa0_5
- - gcc=14.3.0=h7408ef6_5
- - gcc_impl_linux-aarch64=14.3.0=h2b96704_5
- - gcc_linux-aarch64=14.3.0=h39d9346_11
+ - gap-core=4.15.1=h409ef3a_0
+ - gap-defaults=4.15.1=h8af1aa0_0
+ - gcc=14.3.0=h7408ef6_7
+ - gcc_impl_linux-aarch64=14.3.0=h2b96704_7
+ - gcc_linux-aarch64=14.3.0=h118592a_12
+ - gdk-pixbuf=2.44.4=h90308e0_0
- gf2x=1.3.0=h9af5f66_3
- gfan=0.6.2=h5f589ec_1003
- - gfortran=14.3.0=ha28f942_5
- - gfortran_impl_linux-aarch64=14.3.0=h8827d62_5
- - gfortran_linux-aarch64=14.3.0=hc530033_11
+ - gfortran=14.3.0=ha28f942_7
+ - gfortran_impl_linux-aarch64=14.3.0=h8827d62_7
+ - gfortran_linux-aarch64=14.3.0=he4becf7_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h3df9001_3
+ - glib-tools=2.86.1=hc87f4d4_1
- glpk=5.0=h66325d0_0
- gmp=6.3.0=h0a1ffab_2
- - gmpy2=2.1.5=py312he9d48ea_3
+ - gmpy2=2.2.1=py312h35d709e_1
- graphite2=1.3.14=hfae3067_2
- - grayskull=2.9.1=pyhd8ed1ab_0
- - gsl=2.8=hac7f374_1
- - gxx=14.3.0=ha28f942_5
- - gxx_impl_linux-aarch64=14.3.0=h72695c8_5
- - gxx_linux-aarch64=14.3.0=h83defb1_11
+ - graphviz=13.1.2=hdb06ba2_0
+ - grayskull=2.9.2=pyhcf101f3_0
+ - gsl=2.7=h294027d_0
+ - gtk3=3.24.43=h4cd1324_6
+ - gts=0.7.6=he293c15_4
+ - gxx=14.3.0=ha28f942_7
+ - gxx_impl_linux-aarch64=14.3.0=h72695c8_7
+ - gxx_linux-aarch64=14.3.0=hda493e9_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=11.2.1=h405b6a2_0
+ - harfbuzz=12.2.0=he4899c9_0
+ - hicolor-icon-theme=0.17=h8af1aa0_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hf9b3779_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h1827c4d_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h15043fe_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py312h996f985_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-aarch64=4.18.0=h05a177a_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=h86ecc28_0
- - kiwisolver=1.4.9=py312h1683e8e_1
+ - kiwisolver=1.4.9=py312h1683e8e_2
- krb5=1.21.3=h50a48e9_0
- lcalc=2.1.1=h30a6b3d_0
- lcms2=2.17=hc88f144_0
- - ld_impl_linux-aarch64=2.44=h9df1782_2
+ - ld_impl_linux-aarch64=2.44=hd32f0e1_4
- lerc=4.0.0=hfdc4d58_1
- - libblas=3.9.0=36_haddc8a3_openblas
+ - libarchive=3.8.2=gpl_hd746d8a_100
+ - libblas=3.9.0=38_haddc8a3_openblas
- libboost=1.85.0=h9fa81b4_4
- libboost-devel=1.85.0=h37bb5a9_4
- libboost-headers=1.85.0=h8af1aa0_4
- libbraiding=1.3.1=h5ad3122_0
- libbrial=1.2.15=hc86e37c_0
- - libbrotlicommon=1.1.0=he30d5cf_4
- - libbrotlidec=1.1.0=he30d5cf_4
- - libbrotlienc=1.1.0=he30d5cf_4
- - libcblas=3.9.0=36_hd72aa62_openblas
- - libcurl=8.14.1=h6702fde_0
- - libdeflate=1.24=he377734_0
+ - libbrotlicommon=1.2.0=hd4db518_0
+ - libbrotlidec=1.2.0=hb159aeb_0
+ - libbrotlienc=1.2.0=ha5a240b_0
+ - libcblas=3.9.0=38_hd72aa62_openblas
+ - libclang-cpp21.1=21.1.5=default_he95a3c9_1
+ - libclang13=21.1.5=default_h94a09a5_1
+ - libcups=2.3.3=h5cdc715_5
+ - libcurl=8.17.0=h7bfdcfb_0
+ - libdeflate=1.25=h1af38f5_0
+ - libdrm=2.4.125=he30d5cf_1
- libedit=3.1.20250104=pl5321h976ea20_0
+ - libegl=1.7.0=hd24410f_2
+ - libegl-devel=1.7.0=hd24410f_2
- libev=4.33=h31becfc_2
- libexpat=2.7.1=hfae3067_0
- - libffi=3.4.6=he21f813_1
+ - libffi=3.5.2=hd65408f_0
- libflint=3.2.2=hd878b8d_0
- libfreetype=2.14.1=h8af1aa0_0
- libfreetype6=2.14.1=hdae7a39_0
- - libgcc=15.1.0=he277a41_5
- - libgcc-devel_linux-aarch64=14.3.0=h370b906_105
- - libgcc-ng=15.1.0=he9431aa_5
+ - libgcc=15.2.0=he277a41_7
+ - libgcc-devel_linux-aarch64=14.3.0=h370b906_107
+ - libgcc-ng=15.2.0=he9431aa_7
- libgd=2.3.3=hc8d7b1d_11
- - libgfortran=15.1.0=he9431aa_5
- - libgfortran-ng=15.1.0=he9431aa_5
- - libgfortran5=15.1.0=hbc25352_5
- - libglib=2.84.1=hc486b8e_0
- - libgomp=15.1.0=he277a41_5
+ - libgfortran=15.2.0=he9431aa_7
+ - libgfortran-ng=15.2.0=he9431aa_7
+ - libgfortran5=15.2.0=h87db57e_7
+ - libgl=1.7.0=hd24410f_2
+ - libgl-devel=1.7.0=hd24410f_2
+ - libglib=2.86.1=he84ff74_1
+ - libglvnd=1.7.0=hd24410f_2
+ - libglx=1.7.0=hd24410f_2
+ - libglx-devel=1.7.0=hd24410f_2
+ - libgomp=15.2.0=he277a41_7
- libhomfly=1.03=he30d5cf_0
- libiconv=1.18=h90929bb_2
- - libjpeg-turbo=3.1.0=h86ecc28_0
- - liblapack=3.9.0=36_h88aeb00_openblas
- - liblapacke=3.9.0=36_hb558247_openblas
+ - libjpeg-turbo=3.1.2=he30d5cf_0
+ - liblapack=3.9.0=38_h88aeb00_openblas
+ - liblapacke=3.9.0=38_hb558247_openblas
+ - libllvm21=21.1.5=hfd2ba90_0
- liblzma=5.8.1=h86ecc28_2
- liblzma-devel=5.8.1=h86ecc28_2
+ - libmamba=2.3.3=hdcf0ffa_2
+ - libmambapy=2.3.3=py312h208ee69_2
- libnghttp2=1.67.0=ha888d0e_0
- libnsl=2.0.1=h86ecc28_1
- - libopenblas=0.3.30=pthreads_h9d3fd7e_2
+ - libntlm=1.4=hf897c2e_1002
+ - libopenblas=0.3.30=pthreads_h9d3fd7e_3
+ - libopengl=1.7.0=hd24410f_2
+ - libpciaccess=0.18=h86ecc28_0
- libpng=1.6.50=h1abf092_1
- - libsanitizer=14.3.0=h48d3638_5
+ - libpq=18.0=hb4b1422_0
+ - librsvg=2.60.0=h8171147_0
+ - libsanitizer=14.3.0=h48d3638_7
- libsodium=1.0.20=h68df207_0
- - libsqlite=3.50.4=h022381a_0
+ - libsolv=0.7.35=hdda61c4_0
+ - libsqlite=3.51.0=h022381a_0
- libssh2=1.11.1=h18c354c_0
- - libstdcxx=15.1.0=h3f4de04_5
- - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_105
- - libstdcxx-ng=15.1.0=hf1166c9_5
- - libtiff=4.7.1=h7a57436_0
+ - libstdcxx=15.2.0=h3f4de04_7
+ - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_107
+ - libstdcxx-ng=15.2.0=hf1166c9_7
+ - libtiff=4.7.1=hdb009f0_1
- libuuid=2.41.2=h3e4203c_0
+ - libvulkan-loader=1.4.328.1=h8b8848b_0
- libwebp-base=1.6.0=ha2e29f5_0
- libxcb=1.17.0=h262b8f6_0
- libxcrypt=4.4.36=h31becfc_1
- - libxml2=2.15.0=h788dabe_1
- - libxml2-16=2.15.0=h8591a01_1
- - libxml2-devel=2.15.0=h788dabe_1
+ - libxkbcommon=1.13.0=h3c6a4c8_0
+ - libxml2=2.15.1=h788dabe_0
+ - libxml2-16=2.15.1=h8591a01_0
+ - libxml2-devel=2.15.1=h788dabe_0
+ - libxslt=1.1.43=h6700d25_1
- libzlib=1.3.1=h86ecc28_2
- linbox=1.7.1=h119cb06_0
- lrcalc=2.1=hfae3067_8
+ - lz4-c=1.10.0=h5ad3122_1
+ - lzo=2.10=h80f16a2_1002
- m4=1.4.20=h86ecc28_0
- m4ri=20250128=hd9db0c5_0
- m4rie=20250128=hd9db0c5_0
- make=4.4.1=h2a6d0cb_2
- markupsafe=3.0.3=py312hd077ced_0
- - matplotlib=3.9.1=py312h8025657_1
- - matplotlib-base=3.9.1=py312h97afc53_2
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py312h8025657_0
+ - matplotlib-base=3.10.7=py312h9d0c5ba_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h043f013_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py312hb2c0f52_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py312hcd1a082_2
+ - menuinst=2.4.1=py312h996f985_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -237,46 +295,47 @@ dependencies:
- mpfi=1.5.4=h846f343_1001
- mpfr=4.2.1=h2305555_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py312h4f740d2_1
+ - msgpack-python=1.1.2=py312h4f740d2_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=he30d5cf_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=ha32ae93_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=hdc560ac_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0d7519b_1
- - numpy=2.3.3=py312h6615c27_0
- - openblas=0.3.30=pthreads_h3a8cbd8_2
+ - numpy=2.3.4=py312h6615c27_0
+ - openblas=0.3.30=pthreads_h3a8cbd8_3
- openjpeg=2.5.4=h5da879a_0
+ - openldap=2.6.10=h30c48ee_0
- openssl=3.5.4=h8e36d6e_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=he30d5cf_0
- - pandoc=3.8.1=h8af1aa0_0
+ - pandoc=3.8.2.1=h8af1aa0_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- - pango=1.56.3=h1e6a6fd_1
+ - pango=1.56.4=he55ef5b_0
- pari=2.17.2=h45cace7_5_pthread
- pari-elldata=0.0.20161017=0
- pari-galdata=0.0.20180411=0
- pari-seadata=0.0.20090618=0
- pari-seadata-small=0.0.20090618=0
- parso=0.8.5=pyhcf101f3_0
- - pcre2=10.44=hf4ec17f_2
+ - pcre2=10.46=h15761aa_0
- perl=5.32.1=7_h31becfc_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py312h6e23c8a_3
+ - pillow=12.0.0=py312h659b9f1_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h7ac5ae9_1
- pkg-config=0.29.2=hce167ba_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=he30d5cf_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=he30d5cf_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h984aac9_1006
- pplpy=0.8.9=py312h372cae2_2
@@ -285,31 +344,34 @@ dependencies:
- primesieve=12.8=h5ad3122_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py312hcd1a082_0
+ - psutil=7.1.3=py312hd41f8a7_0
- pthread-stubs=0.4=h86ecc28_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py312hcd1a082_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py312h1c19210_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py312h5eb8f6c_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py312hdab6b20_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py312hcd1a082_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
+ - pyside6=6.9.3=py312h4810df5_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.12.11=h1683364_0_cpython
+ - python=3.12.12=h91f4b29_1_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.12.11=hd8ed1ab_0
+ - python-gil=3.12.12=hd8ed1ab_1
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py312h1ab2c47_8
- python-symengine=0.14.0=py312h70ee296_1
@@ -320,32 +382,35 @@ dependencies:
- pyzmq=27.1.0=py312h4552c38_0
- qd=2.3.22=h05efe27_1004
- qhull=2020.2=h70be974_5
- - r-base=4.2.3=h6952844_18
- - r-lattice=0.22_6=r42h25e906a_0
- - rapidfuzz=3.14.1=py312h1ab2c47_0
+ - qt6-main=6.9.3=h224e339_1
+ - r-base=4.4.3=h72cabac_5
+ - r-lattice=0.22_7=r44h0557e7b_1
+ - rapidfuzz=3.14.3=py312h1ab2c47_1
- readline=8.2=h8382b9d_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h86ecc28_0
+ - reproc-cpp=14.2.5.post0=h5ad3122_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py312h75d7d99_1
- - rpy2=3.5.11=py312r42h3e17d05_3
- - ruamel.yaml=0.18.15=py312hcd1a082_1
- - ruamel.yaml.clib=0.2.12=py312hcd1a082_1
+ - rpds-py=0.28.0=py312h75d7d99_1
+ - rpy2=3.6.4=py312r44h8fac79a_1
+ - ruamel.yaml=0.18.16=py312hcd1a082_0
+ - ruamel.yaml.clib=0.2.14=py312hcd1a082_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h46ed904_0
+ - ruff=0.14.4=h9564552_0
- rw=0.9=h31becfc_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py312h410a068_0
+ - scipy=1.16.3=py312h410a068_0
- secretstorage=3.4.0=py312h8025657_0
- sed=4.9=hd4cd8d4_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- - simplegeneric=0.8.1=pyhd8ed1ab_2
+ - simdjson=4.0.7=hfefdfc9_0
- singular=4.4.1=hfdb71ee_1
- sirocco=2.1.0=h7fa4f89_1
- six=1.17.0=pyhe01879c_1
@@ -362,9 +427,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=he8854b5_0
+ - sqlite=3.51.0=he8854b5_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h7a35ef0_1
- symmetrica=3.1.0=he30d5cf_0
- sympow=2.023.6=h4d450c3_4
@@ -374,42 +439,62 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h5688188_102
- tktable=2.10=h89546af_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py312hefbd42c_1
+ - tornado=6.5.2=py312hefbd42c_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py312hcd1a082_1
+ - unicodedata2=17.0.0=py312hcd1a082_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h0157bdf_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.7=h0157bdf_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=h4f8a99f_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py312hcd1a082_1
+ - xcb-util=0.4.1=hca56bd8_2
+ - xcb-util-cursor=0.1.5=h86ecc28_0
+ - xcb-util-image=0.4.0=h5c728e9_2
+ - xcb-util-keysyms=0.4.1=h5c728e9_0
+ - xcb-util-renderutil=0.3.10=h5c728e9_0
+ - xcb-util-wm=0.4.2=h5c728e9_0
+ - xkeyboard-config=2.46=he30d5cf_0
- xorg-libice=1.1.2=h86ecc28_0
- xorg-libsm=1.2.6=h0808dbd_0
- xorg-libx11=1.8.12=hca56bd8_0
- xorg-libxau=1.0.12=h86ecc28_0
+ - xorg-libxcomposite=0.4.6=h86ecc28_2
+ - xorg-libxcursor=1.2.3=h86ecc28_0
+ - xorg-libxdamage=1.1.6=h86ecc28_0
- xorg-libxdmcp=1.1.5=h57736b2_0
- xorg-libxext=1.3.6=h57736b2_0
+ - xorg-libxfixes=6.0.2=he30d5cf_0
+ - xorg-libxi=1.8.2=h57736b2_0
+ - xorg-libxinerama=1.1.5=h5ad3122_1
+ - xorg-libxrandr=1.5.4=h86ecc28_0
- xorg-libxrender=0.9.12=h86ecc28_0
- xorg-libxt=1.3.1=h57736b2_0
+ - xorg-libxtst=1.2.5=h57736b2_3
+ - xorg-libxxf86vm=1.1.6=h86ecc28_0
+ - xorg-xorgproto=2024.1=h86ecc28_1
- xz=5.8.1=h2dbfc1b_2
- xz-gpl-tools=5.8.1=h2dbfc1b_2
- xz-tools=5.8.1=h86ecc28_2
- yaml=0.2.5=h80f16a2_3
+ - yaml-cpp=0.8.0=h5ad3122_0
- zeromq=4.3.5=hefbcea8_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h86ecc28_2
- - zstandard=0.25.0=py312hd41f8a7_0
+ - zlib-ng=2.2.5=h92288e7_0
+ - zstandard=0.25.0=py312hd41f8a7_1
- zstd=1.5.7=hbcf94c1_2
diff --git a/environment-3.12-linux.yml b/environment-3.12-linux.yml
index 4880632e58a..18bfffc7d5a 100644
--- a/environment-3.12-linux.yml
+++ b/environment-3.12-linux.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-64
-# input_hash: cd73f2bbd15303fb58185dccde09fc5ee37a2c41b41afd395bb8aae1f39fa22c
+# input_hash: 7f92b973dc32fe9acb461d06099c5058fe62128ab468702dfa8c5c92e2932756
channels:
- conda-forge
@@ -11,13 +11,18 @@ dependencies:
- _openmp_mutex=4.5=2_gnu
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- alsa-lib=1.2.14=hb9d3cd8_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hf03ea27_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h0630a04_3
+ - at-spi2-core=2.40.3=h0630a04_0
+ - atk-1.0=2.38.0=h04ea711_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbb4ee43_1
- automake=1.17=pl5321ha770c72_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -25,19 +30,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5888daf_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=h4852527_2
- - binutils_impl_linux-64=2.44=hdf8817f_2
- - binutils_linux-64=2.44=h4852527_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h1ea3ea9_openblas
+ - binutils=2.44=h4852527_4
+ - binutils_impl_linux-64=2.44=h9d8b0ac_4
+ - binutils_linux-64=2.44=h4852527_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h1ea3ea9_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h00ab1b0_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h3c6214e_4
- - brotli=1.1.0=hb03c661_4
- - brotli-bin=1.1.0=hb03c661_4
- - brotli-python=1.1.0=py312h1289d80_4
+ - brotli=1.2.0=h41a2e66_0
+ - brotli-bin=1.2.0=hf2c8021_0
+ - brotli-python=1.2.0=py312h67db365_0
- bwidget=1.10.1=ha770c72_1
- bzip2=1.0.8=hda65f42_8
- c-ares=1.34.5=hb9d3cd8_0
@@ -48,208 +53,244 @@ dependencies:
- cairo=1.18.4=h3394656_0
- cddlib=1!0.94m=h9202a9a_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py312h35888ee_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py312h460c074_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hb03c661_0
+ - coin-or-cbc=2.10.12=h4d16d09_4
+ - coin-or-cgl=0.60.9=hc46dffc_6
+ - coin-or-clp=1.17.10=hc03379b_3
+ - coin-or-osi=0.108.11=hf4fecb4_7
+ - coin-or-utils=2.11.12=hc93afbd_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=hb991d5c_5
+ - conda=25.9.1=py312h7900ff3_0
+ - conda-gcc-specs=14.3.0=hb991d5c_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py312hd9148b4_2
+ - contourpy=1.3.3=py312hd9148b4_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py312h8a5da7c_0
- - cpython=3.12.11=py312hd8ed1ab_0
+ - coverage=7.11.1=py312h8a5da7c_0
+ - cpp-expected=1.3.1=h171cf75_0
+ - cpython=3.12.12=py312hd8ed1ab_1
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py312hee9fe19_0
- - curl=8.14.1=h332b0f4_0
+ - cryptography=46.0.3=py312hee9fe19_0
+ - curl=8.17.0=h4e3cde8_0
- cxx-compiler=1.11.0=hfcd1e18_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py312hb7bab4f_0
- cyrus-sasl=2.1.28=hd9c7081_0
- cysignals=1.12.5=py312h1289d80_0
- - cython=3.1.4=py312h7c45ced_2
+ - cython=3.2.0=py312h68e6be4_0
- dbus=1.16.2=h3c4dab8_0
- debugpy=1.8.17=py312h8285ef7_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=h5888daf_0
- dulwich=0.22.8=py312h12e396e_0
- ecl=24.5.10=h75482ee_1
- eclib=20250627=hd0dfdeb_0
- ecm=7.0.6=h90cbb55_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hb03c661_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hecca717_0
- fflas-ffpack=2.5.0=h4f9960b_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h2b0788b_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h7e30c49_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py312h8a5da7c_0
- fortran-compiler=1.11.0=h9bea470_0
- fplll=5.5.0=hd20a173_0
- fpylll=0.6.4=py312ha4ee43a_0
- freetype=2.14.1=ha770c72_0
- fribidi=1.0.16=hb03c661_0
+ - frozendict=2.4.6=py312h4c3975b_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h3b03731_5
- - gap-defaults=4.14.0=ha770c72_5
- - gcc=14.3.0=h76bdaa0_5
- - gcc_impl_linux-64=14.3.0=hd9e9e21_5
- - gcc_linux-64=14.3.0=h1382650_11
+ - gap-core=4.15.1=h60ec763_0
+ - gap-defaults=4.15.1=ha770c72_0
+ - gcc=14.3.0=h76bdaa0_7
+ - gcc_impl_linux-64=14.3.0=hd9e9e21_7
+ - gcc_linux-64=14.3.0=h298d278_12
+ - gdk-pixbuf=2.44.4=h2b0a6b4_0
- gf2x=1.3.0=h55551d5_3
- gfan=0.6.2=hb86e20a_1003
- - gfortran=14.3.0=he448592_5
- - gfortran_impl_linux-64=14.3.0=h7db7018_5
- - gfortran_linux-64=14.3.0=h30a37f7_11
+ - gfortran=14.3.0=he448592_7
+ - gfortran_impl_linux-64=14.3.0=h7db7018_7
+ - gfortran_linux-64=14.3.0=h961de7f_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h49654ea_3
+ - glib-tools=2.86.1=hf516916_1
- glpk=5.0=h445213a_0
- gmp=6.3.0=hac33072_2
- - gmpy2=2.1.5=py312h7201bc8_3
+ - gmpy2=2.2.1=py312hcaba1f9_1
- graphite2=1.3.14=hecca717_2
- - grayskull=2.9.1=pyhd8ed1ab_0
- - gsl=2.8=hbf7d49c_1
- - gxx=14.3.0=he448592_5
- - gxx_impl_linux-64=14.3.0=he663afc_5
- - gxx_linux-64=14.3.0=ha7acb78_11
+ - graphviz=13.1.2=h87b6fe6_0
+ - grayskull=2.9.2=pyhcf101f3_0
+ - gsl=2.7=he838d99_0
+ - gtk3=3.24.43=h993cebd_6
+ - gts=0.7.6=h977cf35_4
+ - gxx=14.3.0=he448592_7
+ - gxx_impl_linux-64=14.3.0=he663afc_7
+ - gxx_linux-64=14.3.0=h95f728e_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=11.4.5=h15599e2_0
+ - harfbuzz=12.2.0=h15599e2_0
+ - hicolor-icon-theme=0.17=ha770c72_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=0.10.16=h98b0679_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=hfe3e89f_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h623f65a_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py312h7900ff3_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-64=4.18.0=he073ed8_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=hb9d3cd8_0
- - kiwisolver=1.4.9=py312h0a2e395_1
+ - kiwisolver=1.4.9=py312h0a2e395_2
- krb5=1.21.3=h659f571_0
- lcalc=2.1.1=h9cf73fc_0
- lcms2=2.17=h717163a_0
- - ld_impl_linux-64=2.44=ha97dd6f_2
+ - ld_impl_linux-64=2.44=h1aa0949_4
- lerc=4.0.0=h0aef613_1
- - libblas=3.9.0=36_h4a7cf45_openblas
+ - libarchive=3.8.2=gpl_h7be2006_100
+ - libblas=3.9.0=38_h4a7cf45_openblas
- libboost=1.85.0=h0ccab89_4
- libboost-devel=1.85.0=h00ab1b0_4
- libboost-headers=1.85.0=ha770c72_4
- libbraiding=1.3.1=h5888daf_0
- libbrial=1.2.15=hf69d4a9_0
- - libbrotlicommon=1.1.0=hb03c661_4
- - libbrotlidec=1.1.0=hb03c661_4
- - libbrotlienc=1.1.0=hb03c661_4
- - libcblas=3.9.0=36_h0358290_openblas
- - libclang-cpp20.1=20.1.8=default_h99862b1_4
- - libclang13=21.1.0=default_h746c552_1
+ - libbrotlicommon=1.2.0=h09219d5_0
+ - libbrotlidec=1.2.0=hd53d788_0
+ - libbrotlienc=1.2.0=h02bd7ab_0
+ - libcblas=3.9.0=38_h0358290_openblas
+ - libclang-cpp21.1=21.1.5=default_h99862b1_1
+ - libclang13=21.1.5=default_h746c552_1
- libcups=2.3.3=hb8b1518_5
- - libcurl=8.14.1=h332b0f4_0
- - libdeflate=1.24=h86f0d12_0
+ - libcurl=8.17.0=h4e3cde8_0
+ - libdeflate=1.25=h17f619e_0
- libdrm=2.4.125=hb03c661_1
- libedit=3.1.20250104=pl5321h7949ede_0
- libegl=1.7.0=ha4b6fd6_2
+ - libegl-devel=1.7.0=ha4b6fd6_2
- libev=4.33=hd590300_2
- libexpat=2.7.1=hecca717_0
- - libffi=3.4.6=h2dba641_1
+ - libffi=3.5.2=h9ec8514_0
- libflint=3.2.2=h754cb6e_0
- libfreetype=2.14.1=ha770c72_0
- libfreetype6=2.14.1=h73754d4_0
- - libgcc=15.1.0=h767d61c_5
- - libgcc-devel_linux-64=14.3.0=h85bb3a7_105
- - libgcc-ng=15.1.0=h69a702a_5
+ - libgcc=15.2.0=h767d61c_7
+ - libgcc-devel_linux-64=14.3.0=h85bb3a7_107
+ - libgcc-ng=15.2.0=h69a702a_7
- libgd=2.3.3=h6f5c62b_11
- - libgfortran=15.1.0=h69a702a_5
- - libgfortran-ng=15.1.0=h69a702a_5
- - libgfortran5=15.1.0=hcea5267_5
+ - libgfortran=15.2.0=h69a702a_7
+ - libgfortran-ng=15.2.0=h69a702a_7
+ - libgfortran5=15.2.0=hcd61629_7
- libgl=1.7.0=ha4b6fd6_2
- - libglib=2.84.3=hf39c6af_0
+ - libgl-devel=1.7.0=ha4b6fd6_2
+ - libglib=2.86.1=h32235b2_1
- libglvnd=1.7.0=ha4b6fd6_2
- libglx=1.7.0=ha4b6fd6_2
- - libgomp=15.1.0=h767d61c_5
+ - libglx-devel=1.7.0=ha4b6fd6_2
+ - libgomp=15.2.0=h767d61c_7
- libhomfly=1.03=hb03c661_0
- libiconv=1.18=h3b78370_2
- - libjpeg-turbo=3.1.0=hb9d3cd8_0
- - liblapack=3.9.0=36_h47877c9_openblas
- - liblapacke=3.9.0=36_h6ae95b6_openblas
- - libllvm20=20.1.8=hecd9e04_0
- - libllvm21=21.1.0=hecd9e04_0
+ - libjpeg-turbo=3.1.2=hb03c661_0
+ - liblapack=3.9.0=38_h47877c9_openblas
+ - liblapacke=3.9.0=38_h6ae95b6_openblas
+ - libllvm21=21.1.5=hf7376ad_0
- liblzma=5.8.1=hb9d3cd8_2
- liblzma-devel=5.8.1=hb9d3cd8_2
+ - libmamba=2.3.3=h09abcb8_1
+ - libmambapy=2.3.3=py312h9b917ee_1
- libnghttp2=1.67.0=had1ee68_0
- libnsl=2.0.1=hb9d3cd8_1
- libntlm=1.8=hb9d3cd8_0
- - libopenblas=0.3.30=pthreads_h94d23a6_2
+ - libopenblas=0.3.30=pthreads_h94d23a6_3
- libopengl=1.7.0=ha4b6fd6_2
- libpciaccess=0.18=hb9d3cd8_0
- libpng=1.6.50=h421ea60_1
- - libpq=17.6=h3675c94_2
- - libsanitizer=14.3.0=hd08acf3_5
+ - libpq=18.0=h3675c94_0
+ - librsvg=2.60.0=h61e6d4b_0
+ - libsanitizer=14.3.0=hd08acf3_7
- libsodium=1.0.20=h4ab18f5_0
- - libsqlite=3.50.4=h0c1763c_0
+ - libsolv=0.7.35=h9463b59_0
+ - libsqlite=3.51.0=hee844dc_0
- libssh2=1.11.1=hcf80075_0
- - libstdcxx=15.1.0=h8f9b012_5
- - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_105
- - libstdcxx-ng=15.1.0=h4852527_5
- - libtiff=4.7.1=h8261f1e_0
+ - libstdcxx=15.2.0=h8f9b012_7
+ - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_107
+ - libstdcxx-ng=15.2.0=h4852527_7
+ - libtiff=4.7.1=h9d88235_1
- libuuid=2.41.2=he9a06e4_0
+ - libvulkan-loader=1.4.328.1=h5279c79_0
- libwebp-base=1.6.0=hd42ef1d_0
- libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- - libxkbcommon=1.11.0=he8b52b9_0
- - libxml2=2.13.8=h04c0eec_1
- - libxslt=1.1.43=h7a3aeb2_0
+ - libxkbcommon=1.13.0=hca5e8e5_0
+ - libxml2=2.15.1=h26afc86_0
+ - libxml2-16=2.15.1=ha9997c6_0
+ - libxml2-devel=2.15.1=h26afc86_0
+ - libxslt=1.1.43=h711ed8c_1
- libzlib=1.3.1=hb9d3cd8_2
- linbox=1.7.1=he8fce6e_0
- lrcalc=2.1=h5888daf_7
- lrslib=71.b=h8aaf9c6_1
+ - lz4-c=1.10.0=h5888daf_1
+ - lzo=2.10=h280c20c_1002
- m4=1.4.20=hb9d3cd8_0
- m4ri=20250128=h36e74d4_0
- m4rie=20250128=h36e74d4_0
- make=4.4.1=hb9d3cd8_2
- markupsafe=3.0.3=py312h8a5da7c_0
- - matplotlib=3.10.6=py312h7900ff3_1
- - matplotlib-base=3.10.6=py312he3d6523_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py312h7900ff3_0
+ - matplotlib-base=3.10.7=py312he3d6523_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h75482ee_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py312h66e93f0_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py312h4c3975b_2
+ - menuinst=2.4.1=py312h7900ff3_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -257,27 +298,28 @@ dependencies:
- mpfi=1.5.4=h9f54685_1001
- mpfr=4.2.1=h90cbb55_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py312hd9148b4_1
+ - msgpack-python=1.1.2=py312hd9148b4_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hb03c661_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h171cf75_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hef3c4d3_1
- - numpy=2.3.3=py312h33ff503_0
- - openblas=0.3.30=pthreads_h6ec200e_2
+ - numpy=2.3.4=py312h33ff503_0
+ - openblas=0.3.30=pthreads_h6ec200e_3
- openjpeg=2.5.4=h55fea9a_0
- openldap=2.6.10=he970967_0
- openssl=3.5.4=h26f9b46_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hb03c661_0
- - pandoc=3.8.1=ha770c72_0
+ - pandoc=3.8.2.1=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=hadf4263_0
- pari=2.17.2=ha40142e_5_pthread
@@ -286,18 +328,17 @@ dependencies:
- pari-seadata=0.0.20090618=0
- pari-seadata-small=0.0.20090618=0
- parso=0.8.5=pyhcf101f3_0
- - pcre2=10.45=hc749103_0
+ - pcre2=10.46=h1321c63_0
- perl=5.32.1=7_hd590300_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py312h7b42cdd_3
+ - pillow=12.0.0=py312h0889fd4_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h54a6638_1
- pkg-config=0.29.2=h4bc722e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hb03c661_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hb03c661_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h6ec01c2_1006
- pplpy=0.8.9=py312h7383a07_2
@@ -306,32 +347,34 @@ dependencies:
- primesieve=12.8=h5888daf_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py312h4c3975b_0
+ - psutil=7.1.3=py312h5253ce2_0
- pthread-stubs=0.4=hb9d3cd8_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py312h4c3975b_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py312h680f630_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py312h868fb18_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py312hdfa1987_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py312h4c3975b_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- - pyside6=6.9.2=py312h5654102_1
+ - pyside6=6.9.3=py312h9da60e5_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.12.11=h9e4cc4f_0_cpython
+ - python=3.12.12=hd63d673_1_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.12.11=hd8ed1ab_0
+ - python-gil=3.12.12=hd8ed1ab_1
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py312h2ec8cdc_7
- python-symengine=0.14.0=py312h406a2a9_1
@@ -342,33 +385,35 @@ dependencies:
- pyzmq=27.1.0=py312hfb55c3c_0
- qd=2.3.22=h2cc385e_1004
- qhull=2020.2=h434a139_5
- - qt6-main=6.9.2=h3fc9a0a_0
- - r-base=4.2.3=h2d83a99_19
- - r-lattice=0.22_6=r42h57805ef_0
- - rapidfuzz=3.14.1=py312h1289d80_0
+ - qt6-main=6.9.3=h5c1c036_1
+ - r-base=4.4.3=hc038350_5
+ - r-lattice=0.22_7=r44h54b55ab_1
+ - rapidfuzz=3.14.3=py312h1289d80_1
- readline=8.2=h8c095d6_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=hb9d3cd8_0
+ - reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py312h868fb18_1
- - rpy2=3.5.11=py312r42hc7c0aa3_3
- - ruamel.yaml=0.18.15=py312h4c3975b_1
- - ruamel.yaml.clib=0.2.12=py312h4c3975b_1
+ - rpds-py=0.28.0=py312h868fb18_1
+ - rpy2=3.6.4=py312r44h5afe730_1
+ - ruamel.yaml=0.18.16=py312h4c3975b_0
+ - ruamel.yaml.clib=0.2.14=py312h4c3975b_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=ha3a3aed_0
+ - ruff=0.14.4=h813ae00_0
- rw=0.9=hd590300_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py312h7a1785b_0
+ - scipy=1.16.3=py312h7a1785b_0
- secretstorage=3.4.0=py312h7900ff3_0
- sed=4.9=h6688a6e_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- - simplegeneric=0.8.1=pyhd8ed1ab_2
+ - simdjson=4.0.7=hb700be7_0
- singular=4.4.1=h7ee4ccf_1
- sirocco=2.1.0=hd7ee782_1
- six=1.17.0=pyhe01879c_1
@@ -385,9 +430,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hbc0de68_0
+ - sqlite=3.51.0=heff268d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h064106a_1
- symmetrica=3.1.0=hb03c661_0
- sympow=2.023.6=h3028977_4
@@ -397,28 +442,28 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_hd72426e_102
- tktable=2.10=h8d826fa_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py312h4c3975b_1
+ - tornado=6.5.2=py312h4c3975b_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py312h4c3975b_1
+ - unicodedata2=17.0.0=py312h4c3975b_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h30787bc_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - wayland=1.24.0=h3e06ad9_0
+ - uv=0.9.8=h76e24b7_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=hd6090a7_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py312h4c3975b_1
- xcb-util=0.4.1=h4f16b4b_2
- xcb-util-cursor=0.1.5=hb9d3cd8_0
@@ -438,17 +483,21 @@ dependencies:
- xorg-libxext=1.3.6=hb9d3cd8_0
- xorg-libxfixes=6.0.2=hb03c661_0
- xorg-libxi=1.8.2=hb9d3cd8_0
+ - xorg-libxinerama=1.1.5=h5888daf_1
- xorg-libxrandr=1.5.4=hb9d3cd8_0
- xorg-libxrender=0.9.12=hb9d3cd8_0
- xorg-libxt=1.3.1=hb9d3cd8_0
- xorg-libxtst=1.2.5=hb9d3cd8_3
- xorg-libxxf86vm=1.1.6=hb9d3cd8_0
+ - xorg-xorgproto=2024.1=hb9d3cd8_1
- xz=5.8.1=hbcc6ac9_2
- xz-gpl-tools=5.8.1=hbcc6ac9_2
- xz-tools=5.8.1=hb9d3cd8_2
- yaml=0.2.5=h280c20c_3
+ - yaml-cpp=0.8.0=h3f2d84a_0
- zeromq=4.3.5=h387f397_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hb9d3cd8_2
- - zstandard=0.25.0=py312h5253ce2_0
+ - zlib-ng=2.2.5=hde8ca8f_0
+ - zstandard=0.25.0=py312h5253ce2_1
- zstd=1.5.7=hb8e6e7a_2
diff --git a/environment-3.12-macos-x86_64.yml b/environment-3.12-macos-x86_64.yml
index d420132eba5..3eb990c1c02 100644
--- a/environment-3.12-macos-x86_64.yml
+++ b/environment-3.12-macos-x86_64.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-64
-# input_hash: d9c49af23eba1ef91677d7e66f8364f7317fe389f209d27e21b161a16c442ae2
+# input_hash: 7497e85834738d7a8781bc2c6abc555fa17ba1c61ebeb9398c6e4fc2d02c436f
channels:
- conda-forge
@@ -9,13 +9,16 @@ dependencies:
- 4ti2=1.6.13=he407a3c_0
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hdfe9103_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=h4bec284_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321had7229c_1
- automake=1.17=pl5321h694c41f_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -23,16 +26,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h240833e_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_hbf4f893_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_hbf4f893_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h7728843_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hfcd56d9_4
- - brotli=1.1.0=h1c43f85_4
- - brotli-bin=1.1.0=h1c43f85_4
- - brotli-python=1.1.0=py312h462f358_4
+ - brotli=1.2.0=hb27157a_0
+ - brotli-bin=1.2.0=h5c1846c_0
+ - brotli-python=1.2.0=py312hbe43a26_0
- bwidget=1.10.1=h694c41f_1
- bzip2=1.0.8=h500dc9f_8
- c-ares=1.34.5=hf13058a_0
@@ -41,12 +44,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h950ec3b_0
- - cctools=1024.3=h67a6458_4
- - cctools_osx-64=1024.3=h3b512aa_4
+ - cctools=1024.3=h67a6458_9
+ - cctools_osx-64=1024.3=llvm19_1_h3b512aa_9
- cddlib=1!0.94m=h0f52abe_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py312hf9bc6d9_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py312he90777b_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_h1323312_5
- clang-19=19.1.7=default_hc369343_5
- clang_impl_osx-64=19.1.7=hc73cdc9_25
@@ -54,182 +57,213 @@ dependencies:
- clangxx=19.1.7=default_h1c12a56_5
- clangxx_impl_osx-64=19.1.7=hb295874_25
- clangxx_osx-64=19.1.7=h7e5c614_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=h8616949_0
+ - coin-or-cbc=2.10.12=h084678f_4
+ - coin-or-cgl=0.60.9=hbb40df2_6
+ - coin-or-clp=1.17.10=heb008f4_3
+ - coin-or-osi=0.108.11=hd53559c_7
+ - coin-or-utils=2.11.12=h424655f_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=he914875_1
- compiler-rt_osx-64=19.1.7=h138dee1_1
+ - conda=25.9.1=py312hb401068_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py312hedd4973_2
+ - contourpy=1.3.3=py312hd099df3_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py312hacf3034_0
- - cpython=3.12.11=py312hd8ed1ab_0
+ - coverage=7.11.1=py312hacf3034_0
+ - cpp-expected=1.3.1=h0ba0a54_0
+ - cpython=3.12.12=py312hd8ed1ab_1
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py312hb922d34_0
- - curl=8.14.1=h5dec5d8_0
+ - cryptography=46.0.3=py312hb922d34_0
+ - curl=8.17.0=h7dd4100_0
- cxx-compiler=1.11.0=h307afc9_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py312hcedb801_0
- cysignals=1.12.4=py312h462f358_0
- - cython=3.1.4=py312hfbda96f_2
+ - cython=3.2.0=py312h33b39b6_0
- debugpy=1.8.17=py312hbfd3414_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py312h0d0de52_0
- ecl=24.5.10=ha6bf567_1
- eclib=20250627=h28d223a_0
- ecm=7.0.6=h5625669_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=h8616949_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=h21dd04a_0
- fflas-ffpack=2.5.0=h5898d61_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h7a3a4f9_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h37eeddb_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py312hacf3034_0
- fortran-compiler=1.11.0=h9ab62e8_0
- fplll=5.5.0=h6ede486_0
- fpylll=0.6.4=py312hfffdf69_0
- freetype=2.14.1=h694c41f_0
- fribidi=1.0.16=h8616949_0
+ - frozendict=2.4.6=py312h2f459f6_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=hb9686a1_5
- - gap-defaults=4.14.0=h694c41f_5
+ - gap-core=4.15.1=h94a3ca4_0
+ - gap-defaults=4.15.1=h694c41f_0
+ - gdk-pixbuf=2.44.4=h07555a4_0
- gf2x=1.3.0=h35ac7d9_3
- gfan=0.6.2=hd793b56_1003
- gfortran=14.3.0=hcc3c99d_0
- - gfortran_impl_osx-64=14.3.0=he320259_1
+ - gfortran_impl_osx-64=14.3.0=h94fe04d_1
- gfortran_osx-64=14.3.0=h3223c34_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=hbf3f340_3
+ - glib-tools=2.86.1=h8650975_1
- glpk=5.0=h3cb5acd_0
- gmp=6.3.0=hf036a51_2
- - gmpy2=2.1.5=py312h068713c_3
+ - gmpy2=2.2.1=py312he31a90d_1
- graphite2=1.3.14=h21dd04a_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=h42bfd48_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h93259b0_0
+ - gtk3=3.24.43=h5e629aa_6
+ - gts=0.7.6=h53e17e3_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=hc5d3ef4_0
+ - harfbuzz=12.2.0=hc5d3ef4_0
+ - hicolor-icon-theme=0.17=h694c41f_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=h120a0e1_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=1.0.0=h88b1ca6_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=h88b1ca6_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h61918c1_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h2e86a7b_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py312hb401068_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py312hef387a8_1
+ - kiwisolver=1.4.9=py312h90e26e8_2
- krb5=1.21.3=h37d8d59_0
- lcalc=2.1.1=h0f747f7_0
- lcms2=2.17=h72f5680_0
- - ld64=955.13=hc3792c1_4
- - ld64_osx-64=955.13=h466f870_4
+ - ld64=955.13=hc3792c1_9
+ - ld64_osx-64=955.13=llvm19_1_h466f870_9
- lerc=4.0.0=hcca01a6_1
+ - libarchive=3.8.2=gpl_h889603c_100
- libasprintf=0.25.1=h3184127_1
- - libblas=3.9.0=36_he492b99_openblas
+ - libblas=3.9.0=38_he492b99_openblas
- libboost=1.85.0=hcca3243_4
- libboost-devel=1.85.0=h2b186f8_4
- libboost-headers=1.85.0=h694c41f_4
- libbraiding=1.3.1=h240833e_0
- libbrial=1.2.15=hca781cf_0
- - libbrotlicommon=1.1.0=h1c43f85_4
- - libbrotlidec=1.1.0=h1c43f85_4
- - libbrotlienc=1.1.0=h1c43f85_4
- - libcblas=3.9.0=36_h9b27e0a_openblas
+ - libbrotlicommon=1.2.0=h105ed1c_0
+ - libbrotlidec=1.2.0=h660c9da_0
+ - libbrotlienc=1.2.0=h2338291_0
+ - libcblas=3.9.0=38_h9b27e0a_openblas
- libclang-cpp19.1=19.1.7=default_hc369343_5
- - libcurl=8.14.1=h5dec5d8_0
- - libcxx=21.1.2=h3d58e20_0
+ - libcurl=8.17.0=h7dd4100_0
+ - libcxx=21.1.5=h3d58e20_0
- libcxx-devel=19.1.7=h7c275be_1
- - libdeflate=1.24=hcc1b750_0
+ - libdeflate=1.25=h517ebb2_0
- libedit=3.1.20250104=pl5321ha958ccf_0
- libev=4.33=h10d778d_2
- libexpat=2.7.1=h21dd04a_0
- - libffi=3.4.6=h281671d_1
+ - libffi=3.5.2=h750e83c_0
- libflint=3.2.2=h26b1ecd_0
- libfreetype=2.14.1=h694c41f_0
- libfreetype6=2.14.1=h6912278_0
- libgd=2.3.3=h8555400_11
- libgettextpo=0.25.1=h3184127_1
- - libgfortran=15.1.0=h5f6db21_1
+ - libgfortran=15.2.0=h306097a_1
- libgfortran-devel_osx-64=14.3.0=h660b60f_1
- - libgfortran5=15.1.0=hfa3c126_1
- - libglib=2.86.0=h7cafd41_0
+ - libgfortran5=15.2.0=h336fb69_1
+ - libglib=2.86.1=h6ca3a76_1
- libhomfly=1.03=h1c43f85_0
- libiconv=1.18=h57a12c2_2
- libintl=0.25.1=h3184127_1
- - libjpeg-turbo=3.1.0=h6e16a3a_0
- - liblapack=3.9.0=36_h859234e_openblas
- - liblapacke=3.9.0=36_h94b3770_openblas
+ - libjpeg-turbo=3.1.2=h8616949_0
+ - liblapack=3.9.0=38_h859234e_openblas
+ - liblapacke=3.9.0=38_h94b3770_openblas
- libllvm19=19.1.7=h56e7563_2
- liblzma=5.8.1=hd471939_2
- liblzma-devel=5.8.1=hd471939_2
+ - libmamba=2.3.3=hf3f6d74_1
+ - libmambapy=2.3.3=py312h1d4d8eb_1
- libnghttp2=1.67.0=h3338091_0
- - libopenblas=0.3.30=openmp_h83c2472_2
+ - libopenblas=0.3.30=openmp_h6006d49_3
- libpng=1.6.50=h84aeda2_1
+ - librsvg=2.60.0=h2da6fc3_0
- libsodium=1.0.20=hfdf4475_0
- - libsqlite=3.50.4=h39a8b3b_0
+ - libsolv=0.7.35=h6fd32b5_0
+ - libsqlite=3.51.0=h86bffb9_0
- libssh2=1.11.1=hed3591d_0
- - libtiff=4.7.1=haa3b502_0
+ - libtiff=4.7.1=ha0a348c_1
- libwebp-base=1.6.0=hb807250_0
- libxcb=1.17.0=hf1f96e2_0
- - libxml2=2.15.0=h7b7ecba_1
- - libxml2-16=2.15.0=ha1d9b0f_1
- - libxml2-devel=2.15.0=h7b7ecba_1
+ - libxml2=2.15.1=h7b7ecba_0
+ - libxml2-16=2.15.1=ha1d9b0f_0
+ - libxml2-devel=2.15.1=h7b7ecba_0
- libzlib=1.3.1=hd23fc13_2
- linbox=1.7.1=h1a86e0a_0
- - llvm-openmp=21.1.2=h472b3d1_3
+ - llvm-openmp=21.1.5=h472b3d1_0
- llvm-tools=19.1.7=hb0207f0_2
- llvm-tools-19=19.1.7=h879f4bc_2
- lrcalc=2.1=hac325c4_7
- lrslib=71.b=hda3377a_1
+ - lz4-c=1.10.0=h240833e_1
+ - lzo=2.10=h4132b18_1002
- m4=1.4.20=h6e16a3a_0
- m4ri=20250128=h95e091b_0
- m4rie=20250128=h95e091b_0
- make=4.4.1=h00291cd_2
- markupsafe=3.0.3=py312hacf3034_0
- - matplotlib=3.10.6=py312hb401068_1
- - matplotlib-base=3.10.6=py312h7894933_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py312hb401068_0
+ - matplotlib-base=3.10.7=py312h7894933_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h3080a4d_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py312hb553811_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py312h2f459f6_2
+ - menuinst=2.4.1=py312hb401068_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -237,26 +271,27 @@ dependencies:
- mpfi=1.5.4=h52b28e3_1001
- mpfr=4.2.1=haed47dc_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py312hedd4973_1
+ - msgpack-python=1.1.2=py312hd099df3_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=h8616949_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h0622a9a_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h0ba0a54_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0ab3c2f_1
- - numpy=2.3.3=py312ha3982b3_0
- - openblas=0.3.30=openmp_h30af337_2
+ - numpy=2.3.4=py312ha3982b3_0
+ - openblas=0.3.30=openmp_h30af337_3
- openjpeg=2.5.4=h87e8dc5_0
- openssl=3.5.4=h230baf5_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=h8616949_0
- - pandoc=3.8.1=h694c41f_0
+ - pandoc=3.8.2.1=h694c41f_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h6ef8af8_0
- pari=2.17.2=h1ed0f1a_5_pthread
@@ -268,15 +303,14 @@ dependencies:
- pcre2=10.46=ha3e7e28_0
- perl=5.32.1=7_h10d778d_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py312h051e184_3
+ - pillow=12.0.0=py312h6000a1f_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=ha059160_1
- pkg-config=0.29.2=hf7e621a_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=h8616949_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=h8616949_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=ha60d53e_1006
- pplpy=0.8.9=py312h045e30c_2
@@ -285,31 +319,33 @@ dependencies:
- primesieve=12.8=h240833e_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py312h80b0991_0
+ - psutil=7.1.3=py312h01f6755_0
- pthread-stubs=0.4=h00291cd_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py312h2f459f6_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py312haba3716_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py312h8a6388b_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py312h8a3153c_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py312h80b0991_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.12.11=h9ccd52b_0_cpython
+ - python=3.12.12=h74c2667_1_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.12.11=hd8ed1ab_0
+ - python-gil=3.12.12=hd8ed1ab_1
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py312h5861a67_7
- python-symengine=0.14.0=py312h33d1391_1
@@ -320,30 +356,33 @@ dependencies:
- pyzmq=27.1.0=py312hb7d603e_0
- qd=2.3.22=h2beb688_1004
- qhull=2020.2=h3c5361c_5
- - r-base=4.4.3=h56b9990_4
+ - r-base=4.4.3=h711e366_5
- r-lattice=0.22_7=r44h735ac91_1
- - rapidfuzz=3.14.1=py312h69bf00f_0
+ - rapidfuzz=3.14.3=py312h69bf00f_1
- readline=8.2=h7cca4af_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h6e16a3a_0
+ - reproc-cpp=14.2.5.post0=h240833e_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py312h00ff6fd_1
+ - rpds-py=0.28.0=py312h8a6388b_1
- rpy2=3.6.4=py312r44h33757c0_1
- - ruamel.yaml=0.18.15=py312h80b0991_1
- - ruamel.yaml.clib=0.2.12=py312h2f459f6_1
+ - ruamel.yaml=0.18.16=py312h80b0991_0
+ - ruamel.yaml.clib=0.2.14=py312h80b0991_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=hba89d1c_0
- - rw=0.7=1
+ - ruff=0.14.4=hd9f4cfa_0
+ - rw=0.9=h10d778d_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py312he2acf2f_0
+ - scipy=1.16.3=py312he2acf2f_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h88f4db0_0
+ - simdjson=4.0.7=hcb651aa_0
- singular=4.4.1=haa275bf_1
- sirocco=2.1.0=hfc2cc1e_1
- six=1.17.0=pyhe01879c_1
@@ -360,9 +399,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=h64b5abc_0
+ - sqlite=3.51.0=hca40e9d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h79ccd14_1
- symmetrica=3.1.0=h8616949_0
- sympow=2.023.6=h7305399_4
@@ -372,37 +411,39 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=hf689a15_2
- tktable=2.10=h2c093e9_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py312h2f459f6_1
+ - tornado=6.5.2=py312h80b0991_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py312h2f459f6_1
+ - unicodedata2=17.0.0=py312h80b0991_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h66543e4_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h3315dae_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py312h2f459f6_1
- - xattr=1.2.0=py312hff0d1ab_1
+ - xattr=1.3.0=py312h04b4356_1
- xorg-libxau=1.0.12=h6e16a3a_0
- xorg-libxdmcp=1.1.5=h00291cd_0
- xz=5.8.1=h357f2ed_2
- xz-gpl-tools=5.8.1=h357f2ed_2
- xz-tools=5.8.1=hd471939_2
- yaml=0.2.5=h4132b18_3
+ - yaml-cpp=0.8.0=h92383a6_0
- zeromq=4.3.5=h6c33b1e_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hd23fc13_2
- - zstandard=0.25.0=py312h01f6755_0
+ - zlib-ng=2.2.5=h55e386d_0
+ - zstandard=0.25.0=py312h01f6755_1
- zstd=1.5.7=h8210216_2
diff --git a/environment-3.12-macos.yml b/environment-3.12-macos.yml
index 84d22c66050..b8033f79c87 100644
--- a/environment-3.12-macos.yml
+++ b/environment-3.12-macos.yml
@@ -1,20 +1,23 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-arm64
-# input_hash: 457d1ad192fc88dae132599d9f1f0a147549a959938e8c3c7e36b2415a272532
+# input_hash: 4baba174a60ae6617f68525deb4faf3e3bb0433f49be827969bfd89681f8e5d2
channels:
- conda-forge
dependencies:
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h1f29f7c_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=hd03087b_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hd3c70e0_1
- automake=1.17=pl5321hce30654_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -22,16 +25,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h286801f_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h11c0a38_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h11c0a38_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2ffa867_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h103c1d6_4
- - brotli=1.1.0=h6caf38d_4
- - brotli-bin=1.1.0=h6caf38d_4
- - brotli-python=1.1.0=py312h6b01ec3_4
+ - brotli=1.2.0=hca488c2_0
+ - brotli-bin=1.2.0=hce9b42c_0
+ - brotli-python=1.2.0=py312hcae0c51_0
- bwidget=1.10.1=hce30654_1
- bzip2=1.0.8=hd037594_8
- c-ares=1.34.5=h5505292_0
@@ -40,12 +43,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h6a3b0d2_0
- - cctools=1024.3=hd01ab73_4
- - cctools_osx-arm64=1024.3=h8c76c84_4
+ - cctools=1024.3=hd01ab73_9
+ - cctools_osx-arm64=1024.3=llvm19_1_h8c76c84_9
- cddlib=1!0.94m=h6d7a090_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py312hb65edc0_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py312h1b4d9a2_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hf9bcbb7_5
- clang-19=19.1.7=default_h73dfc95_5
- clang_impl_osx-arm64=19.1.7=h76e6a08_25
@@ -53,181 +56,212 @@ dependencies:
- clangxx=19.1.7=default_h36137df_5
- clangxx_impl_osx-arm64=19.1.7=h276745f_25
- clangxx_osx-arm64=19.1.7=h07b0088_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hc919400_0
+ - coin-or-cbc=2.10.12=h0c75da4_4
+ - coin-or-cgl=0.60.9=h24d7dbf_6
+ - coin-or-clp=1.17.10=ha5fe85a_3
+ - coin-or-osi=0.108.11=h95bd113_7
+ - coin-or-utils=2.11.12=hedb6bc8_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h855ad52_1
- compiler-rt_osx-arm64=19.1.7=he32a8d3_1
+ - conda=25.9.1=py312h81bd7bf_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py312ha0dd364_2
+ - contourpy=1.3.3=py312h84eede6_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py312h5748b74_0
- - cpython=3.12.11=py312hd8ed1ab_0
+ - coverage=7.11.1=py312h5748b74_0
+ - cpp-expected=1.3.1=h4f10f1e_0
+ - cpython=3.12.12=py312hd8ed1ab_1
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py312h05a80bc_0
- - curl=8.14.1=h73640d1_0
+ - cryptography=46.0.3=py312h05a80bc_0
+ - curl=8.17.0=hdece5d2_0
- cxx-compiler=1.11.0=h88570a1_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py312he7c0534_0
- cysignals=1.12.5=py312h455b684_0
- - cython=3.1.4=py312hd9aa7d2_2
+ - cython=3.2.0=py312h6868a3c_0
- debugpy=1.8.17=py312h56d30c9_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py312hcd83bfe_0
- ecl=24.5.10=hc6c598b_1
- eclib=20250627=h6592c3b_0
- ecm=7.0.6=hdd59bce_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hc919400_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hec049ff_0
- fflas-ffpack=2.5.0=h4bc3318_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h669d743_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h1383a14_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py312h5748b74_0
- fortran-compiler=1.11.0=h81a4f41_0
- fplll=5.5.0=h2a2278a_0
- fpylll=0.6.4=py312h03fe13c_0
- freetype=2.14.1=hce30654_0
- fribidi=1.0.16=hc919400_0
+ - frozendict=2.4.6=py312h163523d_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h25f1785_5
- - gap-defaults=4.14.0=hce30654_5
+ - gap-core=4.15.1=h0c23a18_0
+ - gap-defaults=4.15.1=hce30654_0
+ - gdk-pixbuf=2.44.4=h7542897_0
- gf2x=1.3.0=hf8f8af4_3
- gfan=0.6.2=hec08f5c_1003
- gfortran=14.3.0=h3ef1dbf_0
- - gfortran_impl_osx-arm64=14.3.0=h969232b_1
+ - gfortran_impl_osx-arm64=14.3.0=h6d03799_1
- gfortran_osx-arm64=14.3.0=h3c33bd0_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h5331fe3_3
+ - glib-tools=2.86.1=hb9d6e3a_1
- glpk=5.0=h6d7a090_0
- gmp=6.3.0=h7bae524_2
- - gmpy2=2.1.5=py312h524cf62_3
+ - gmpy2=2.2.1=py312h711ec26_1
- graphite2=1.3.14=hec049ff_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=hcd33d8b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h6e638da_0
+ - gtk3=3.24.43=h5febe37_6
+ - gts=0.7.6=he42f4ea_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=haf38c7b_0
+ - harfbuzz=12.2.0=haf38c7b_0
+ - hicolor-icon-theme=0.17=hce30654_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hfee45f7_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h73cadaf_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=hd73f12c_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h347afa1_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py312h81bd7bf_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py312hdc12c9d_1
+ - kiwisolver=1.4.9=py312hd8c8125_2
- krb5=1.21.3=h237132a_0
- lcalc=2.1.1=hdaf6845_0
- lcms2=2.17=h7eeda09_0
- - ld64=955.13=he86490a_4
- - ld64_osx-arm64=955.13=h6922315_4
+ - ld64=955.13=he86490a_9
+ - ld64_osx-arm64=955.13=llvm19_1_h6922315_9
- lerc=4.0.0=hd64df32_1
+ - libarchive=3.8.2=gpl_h46575ef_100
- libasprintf=0.25.1=h493aca8_0
- - libblas=3.9.0=36_h51639a9_openblas
+ - libblas=3.9.0=38_h51639a9_openblas
- libboost=1.85.0=hf763ba5_4
- libboost-devel=1.85.0=hf450f58_4
- libboost-headers=1.85.0=hce30654_4
- libbraiding=1.3.1=h286801f_0
- libbrial=1.2.15=he660457_0
- - libbrotlicommon=1.1.0=h6caf38d_4
- - libbrotlidec=1.1.0=h6caf38d_4
- - libbrotlienc=1.1.0=h6caf38d_4
- - libcblas=3.9.0=36_hb0561ab_openblas
+ - libbrotlicommon=1.2.0=h87ba0bc_0
+ - libbrotlidec=1.2.0=h95a88de_0
+ - libbrotlienc=1.2.0=hb1b9735_0
+ - libcblas=3.9.0=38_hb0561ab_openblas
- libclang-cpp19.1=19.1.7=default_h73dfc95_5
- - libcurl=8.14.1=h73640d1_0
- - libcxx=21.1.2=hf598326_0
+ - libcurl=8.17.0=hdece5d2_0
+ - libcxx=21.1.5=hf598326_0
- libcxx-devel=19.1.7=h6dc3340_1
- - libdeflate=1.24=h5773f1b_0
+ - libdeflate=1.25=hc11a715_0
- libedit=3.1.20250104=pl5321hafb1f1b_0
- libev=4.33=h93a5062_2
- libexpat=2.7.1=hec049ff_0
- - libffi=3.4.6=h1da3d7d_1
+ - libffi=3.5.2=he5f378a_0
- libflint=3.2.2=hf825d4a_0
- libfreetype=2.14.1=hce30654_0
- libfreetype6=2.14.1=h6da58f4_0
- libgd=2.3.3=hb2c3a21_11
- libgettextpo=0.25.1=h493aca8_0
- - libgfortran=15.1.0=hfdf1602_1
+ - libgfortran=15.2.0=hfcf01ff_1
- libgfortran-devel_osx-arm64=14.3.0=hc965647_1
- - libgfortran5=15.1.0=hb74de2c_1
- - libglib=2.86.0=h1bb475b_0
+ - libgfortran5=15.2.0=h742603c_1
+ - libglib=2.86.1=he69a767_1
- libhomfly=1.03=h6caf38d_0
- libiconv=1.18=h23cfdf5_2
- libintl=0.25.1=h493aca8_0
- - libjpeg-turbo=3.1.0=h5505292_0
- - liblapack=3.9.0=36_hd9741b5_openblas
- - liblapacke=3.9.0=36_h1b118fd_openblas
+ - libjpeg-turbo=3.1.2=hc919400_0
+ - liblapack=3.9.0=38_hd9741b5_openblas
+ - liblapacke=3.9.0=38_h1b118fd_openblas
- libllvm19=19.1.7=h8e0c9ce_2
- liblzma=5.8.1=h39f12f2_2
- liblzma-devel=5.8.1=h39f12f2_2
+ - libmamba=2.3.3=h1370271_2
+ - libmambapy=2.3.3=py312haad32af_2
- libnghttp2=1.67.0=hc438710_0
- - libopenblas=0.3.30=openmp_h60d53f8_2
+ - libopenblas=0.3.30=openmp_ha158390_3
- libpng=1.6.50=h280e0eb_1
+ - librsvg=2.60.0=h5c55ec3_0
- libsodium=1.0.20=h99b78c6_0
- - libsqlite=3.50.4=h4237e3c_0
+ - libsolv=0.7.35=h5f525b2_0
+ - libsqlite=3.51.0=h8adb53f_0
- libssh2=1.11.1=h1590b86_0
- - libtiff=4.7.1=h7dc4979_0
+ - libtiff=4.7.1=h4030677_1
- libwebp-base=1.6.0=h07db88b_0
- libxcb=1.17.0=hdb1d25a_0
- - libxml2=2.15.0=h9329255_1
- - libxml2-16=2.15.0=h0ff4647_1
- - libxml2-devel=2.15.0=h9329255_1
+ - libxml2=2.15.1=h9329255_0
+ - libxml2-16=2.15.1=h0ff4647_0
+ - libxml2-devel=2.15.1=h9329255_0
- libzlib=1.3.1=h8359307_2
- linbox=1.7.1=h08a833a_0
- - llvm-openmp=21.1.2=h4a912ad_3
+ - llvm-openmp=21.1.5=h4a912ad_0
- llvm-tools=19.1.7=h855ad52_2
- llvm-tools-19=19.1.7=h91fd4e7_2
- lrcalc=2.1=hec049ff_8
+ - lz4-c=1.10.0=h286801f_1
+ - lzo=2.10=h925e9cb_1002
- m4=1.4.20=h5505292_0
- m4ri=20250128=h0f65c67_0
- m4rie=20250128=h0f65c67_0
- make=4.4.1=hc9fafa5_2
- markupsafe=3.0.3=py312h5748b74_0
- - matplotlib=3.10.6=py312h1f38498_1
- - matplotlib-base=3.10.6=py312h605b88b_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py312h1f38498_0
+ - matplotlib-base=3.10.7=py312h605b88b_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=hd2c4bfb_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py312h024a12e_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py312h163523d_2
+ - menuinst=2.4.1=py312h81bd7bf_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -235,26 +269,27 @@ dependencies:
- mpfi=1.5.4=hbde5f5b_1001
- mpfr=4.2.1=hb693164_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py312ha0dd364_1
+ - msgpack-python=1.1.2=py312h84eede6_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hf22a7ee_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h5e97a16_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h4f10f1e_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hbb3f309_1
- - numpy=2.3.3=py312h85ea64e_0
- - openblas=0.3.30=openmp_hea878ba_2
+ - numpy=2.3.4=py312h85ea64e_0
+ - openblas=0.3.30=openmp_hea878ba_3
- openjpeg=2.5.4=hbfb3c88_0
- openssl=3.5.4=h5503f6c_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hc919400_0
- - pandoc=3.8.1=hce30654_0
+ - pandoc=3.8.2.1=hce30654_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h875632e_0
- pari=2.17.2=h49d18c7_5_pthread
@@ -266,15 +301,14 @@ dependencies:
- pcre2=10.46=h7125dd6_0
- perl=5.32.1=7_h4614cfb_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py312h2525f64_3
+ - pillow=12.0.0=py312h16e1670_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h81086ad_1
- pkg-config=0.29.2=hde07d2e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hc919400_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hc919400_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h8b147cf_1006
- pplpy=0.8.9=py312he1ec6da_2
@@ -283,31 +317,33 @@ dependencies:
- primesieve=12.8=h286801f_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py312h4409184_0
+ - psutil=7.1.3=py312h37e1c23_0
- pthread-stubs=0.4=hd74edd7_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py312h163523d_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py312hd3c0895_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py312h6ef9ec0_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py312he738534_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py312h4409184_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.12.11=hc22306f_0_cpython
+ - python=3.12.12=h18782d2_1_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.12.11=hd8ed1ab_0
+ - python-gil=3.12.12=hd8ed1ab_1
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py312h6b01ec3_8
- python-symengine=0.14.0=py312hb005d12_1
@@ -318,30 +354,33 @@ dependencies:
- pyzmq=27.1.0=py312hd65ceae_0
- qd=2.3.22=hbec66e7_1004
- qhull=2020.2=h420ef59_5
- - r-base=4.4.3=hb7b3c91_4
+ - r-base=4.4.3=h04a9237_5
- r-lattice=0.22_7=r44h6168396_1
- - rapidfuzz=3.14.1=py312h455b684_0
+ - rapidfuzz=3.14.3=py312h455b684_1
- readline=8.2=h1d1bf99_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h5505292_0
+ - reproc-cpp=14.2.5.post0=h286801f_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py312h6f58b40_1
+ - rpds-py=0.28.0=py312h6ef9ec0_1
- rpy2=3.6.4=py312r44hd99f0fb_1
- - ruamel.yaml=0.18.15=py312h4409184_1
- - ruamel.yaml.clib=0.2.12=py312h163523d_1
+ - ruamel.yaml=0.18.16=py312h4409184_0
+ - ruamel.yaml.clib=0.2.14=py312h4409184_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h492a034_0
+ - ruff=0.14.4=h382de68_0
- rw=0.9=h93a5062_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py312ha6bbf71_0
+ - scipy=1.16.3=py312ha6bbf71_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h44b9a77_0
+ - simdjson=4.0.7=ha7d2532_0
- singular=4.4.1=h837545d_1
- sirocco=2.1.0=h41f8169_1
- six=1.17.0=pyhe01879c_1
@@ -358,9 +397,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hb5dd463_0
+ - sqlite=3.51.0=h81ab1b7_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=hddbed1c_1
- symmetrica=3.1.0=hc919400_0
- sympow=2.023.6=hc13a52f_4
@@ -370,37 +409,39 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h892fb3f_2
- tktable=2.10=h3c7de25_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py312h163523d_1
+ - tornado=6.5.2=py312h4409184_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- - unicodedata2=16.0.0=py312h163523d_1
+ - unicodedata2=17.0.0=py312h4409184_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h194b5f9_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h1bde295_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py312h163523d_1
- - xattr=1.2.0=py312h10e72bf_1
+ - xattr=1.3.0=py312hdb5c506_1
- xorg-libxau=1.0.12=h5505292_0
- xorg-libxdmcp=1.1.5=hd74edd7_0
- xz=5.8.1=h9a6d368_2
- xz-gpl-tools=5.8.1=h9a6d368_2
- xz-tools=5.8.1=h39f12f2_2
- yaml=0.2.5=h925e9cb_3
+ - yaml-cpp=0.8.0=ha1acc90_0
- zeromq=4.3.5=h888dc83_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h8359307_2
- - zstandard=0.25.0=py312h37e1c23_0
+ - zlib-ng=2.2.5=h3470cca_0
+ - zstandard=0.25.0=py312h37e1c23_1
- zstd=1.5.7=h6491c7d_2
diff --git a/environment-3.12-win.yml b/environment-3.12-win.yml
index 04551842c20..c55c91d323c 100644
--- a/environment-3.12-win.yml
+++ b/environment-3.12-win.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: win-64
-# input_hash: 5dcbca182aa34b89ddee59e0a0c4d031df96d99c0758250b5492f45b1113f2b2
+# input_hash: beedf47b56cc362f3774af6a278fb6d51d54b477a3b3b44862d3fb357d7762c5
channels:
- conda-forge
@@ -12,22 +12,23 @@ dependencies:
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - attrs=25.4.0=pyh71513ae_0
- babel=2.17.0=pyhd8ed1ab_0
- backports=1.0=pyhd8ed1ab_5
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils_impl_win-64=2.44=h095e170_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_ha590de0_openblas
+ - binutils_impl_win-64=2.44=h1226360_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_ha590de0_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=ha5ead02_4
- - brotli=1.1.0=hfd05255_4
- - brotli-bin=1.1.0=hfd05255_4
- - brotli-python=1.1.0=py312hbb81ca0_4
+ - brotli=1.2.0=h17ff524_0
+ - brotli-bin=1.2.0=h6910e44_0
+ - brotli-python=1.2.0=py312h9d5906e_0
- bwidget=1.10.1=h57928b3_1
- bzip2=1.0.8=h0ad9c76_8
- ca-certificates=2025.10.5=h4c7d964_0
@@ -35,190 +36,223 @@ dependencies:
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h5782bbf_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py312he06e257_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py312he06e257_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hac490eb_5
- clang-19=19.1.7=default_hac490eb_5
- - click=8.3.0=pyh7428d3b_0
+ - click=8.1.8=pyh7428d3b_0
- click-default-group=1.2.4=pyhd8ed1ab_1
+ - coin-or-cbc=2.10.12=hd3ed8bd_4
+ - coin-or-cgl=0.60.9=hacf86d0_6
+ - coin-or-clp=1.17.10=h626fd10_3
+ - coin-or-osi=0.108.11=h5b68f48_7
+ - coin-or-utils=2.11.12=hdb10741_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h49e36cd_1
- compiler-rt_win-64=19.1.7=h49e36cd_1
+ - conda=25.9.1=py312h2e8e312_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyha6a9232_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py312hf90b1b7_2
+ - contourpy=1.3.3=py312hf90b1b7_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py312h05f76fc_0
- - cpython=3.12.11=py312hd8ed1ab_0
+ - coverage=7.11.1=py312h05f76fc_0
+ - cpp-expected=1.3.1=h477610d_0
+ - cpython=3.12.12=py312hd8ed1ab_1
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py312h84d000f_0
- - curl=8.14.1=h88aaa65_0
+ - cryptography=46.0.3=py312h84d000f_0
+ - curl=8.17.0=h43ecb02_0
- cycler=0.12.1=pyhd8ed1ab_1
- cysignals=1.12.5=py312hbb81ca0_0
- - cython=3.1.4=py312h21c92d1_2
+ - cython=3.2.0=py312hd245ac3_0
- debugpy=1.8.17=py312ha1a9051_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=he0c23c2_0
- dulwich=0.22.8=py312h2615798_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hac47afa_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
- flang=19.1.7=hbeecb71_0
- flang_impl_win-64=19.1.7=h719f0c7_0
- flang_win-64=19.1.7=h719f0c7_0
+ - fmt=12.0.0=h29169d4_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h765892d_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py312h05f76fc_0
- fortran-compiler=1.11.0=h95e3450_0
- freetype=2.14.1=h57928b3_0
+ - fribidi=1.0.16=hfd05255_0
+ - frozendict=2.4.6=py312he06e257_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gcc_impl_win-64=15.1.0=hb5bc704_5
- - gfortran_impl_win-64=15.1.0=h792c6fe_5
+ - gcc_impl_win-64=15.2.0=h90e0b34_7
+ - getopt-win32=0.1=h6a83c73_3
+ - gfortran_impl_win-64=15.2.0=hd3d1e43_7
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- glpk=5.0=h8ffe710_0
- gmp=6.3.0=hfeafd45_2
- - gmpy2=2.1.5=py312h64bf746_3
+ - gmpy2=2.2.1=py312he85694f_1
- graphite2=1.3.14=hac47afa_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=ha5e8f4b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=hdfb1a43_0
- - gxx_impl_win-64=15.1.0=h91e354b_5
+ - gts=0.7.6=h6b5321d_4
+ - gxx_impl_win-64=15.2.0=h4517dcd_7
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=h5f2951f_0
+ - harfbuzz=12.2.0=h5f2951f_0
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he0c23c2_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=1.0.0=h9eeb67d_0
- imagesize=1.4.1=pyhd8ed1ab_0
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh3521513_0
- - ipython=9.5.0=pyh6be1c34_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh6dadd2b_0
+ - ipython=9.7.0=pyhe2676ad_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py312h2e8e312_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh5737063_0
+ - jupyter_core=5.9.1=pyh6dadd2b_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh7428d3b_0
- - kiwisolver=1.4.9=py312h78d62e6_1
+ - kiwisolver=1.4.9=py312h78d62e6_2
- krb5=1.21.3=hdf4eb48_0
- lcms2=2.17=hbcf6048_0
- - ld_impl_win-64=2.44=hae1bf67_2
+ - ld_impl_win-64=2.44=h13c207b_4
- lerc=4.0.0=h6470a55_1
- - libblas=3.9.0=36_h0adab6e_openblas
+ - libarchive=3.8.2=gpl_h26aea39_100
+ - libblas=3.9.0=38_h0adab6e_openblas
- libboost=1.85.0=h444863b_4
- libboost-devel=1.85.0=h91493d7_4
- libboost-headers=1.85.0=h57928b3_4
- - libbrotlicommon=1.1.0=hfd05255_4
- - libbrotlidec=1.1.0=hfd05255_4
- - libbrotlienc=1.1.0=hfd05255_4
- - libcblas=3.9.0=36_h2a8eebe_openblas
- - libclang13=21.1.2=default_ha2db4b5_1
- - libcurl=8.14.1=h88aaa65_0
- - libdeflate=1.24=h76ddb4d_0
+ - libbrotlicommon=1.2.0=hc82b238_0
+ - libbrotlidec=1.2.0=h431afc6_0
+ - libbrotlienc=1.2.0=ha521d6b_0
+ - libcblas=3.9.0=38_h2a8eebe_openblas
+ - libclang13=21.1.5=default_ha2db4b5_0
+ - libcurl=8.17.0=h43ecb02_0
+ - libdeflate=1.25=h51727cc_0
- libexpat=2.7.1=hac47afa_0
- - libffi=3.4.6=h537db12_1
+ - libffi=3.5.2=h52bdfb6_0
- libflang=19.1.7=he0c23c2_0
- libflint=3.2.2=h4de658f_0
- libfreetype=2.14.1=h57928b3_0
- libfreetype6=2.14.1=hdbac1cb_0
- - libgcc=15.1.0=h1383e82_5
- - libgcc-devel_win-64=15.1.0=hec057c1_105
+ - libgcc=15.2.0=h1383e82_7
+ - libgcc-devel_win-64=15.2.0=h40631e7_107
- libgd=2.3.3=h7208af6_11
- - libgfortran=15.1.0=h719f0c7_5
- - libgfortran5=15.1.0=h997fb6f_5
- - libglib=2.86.0=h5f26cbf_0
- - libgomp=15.1.0=h1383e82_5
+ - libgfortran=15.2.0=h719f0c7_7
+ - libgfortran5=15.2.0=hf2bee02_7
+ - libglib=2.86.1=hd9c3897_1
+ - libgomp=15.2.0=h1383e82_7
+ - libhwloc=2.12.1=default_h64bd3f2_1002
- libiconv=1.18=hc1393d2_2
- libintl=0.22.5=h5728263_3
- - libjpeg-turbo=3.1.0=h2466b09_0
- - liblapack=3.9.0=36_hd232482_openblas
- - liblapacke=3.9.0=36_hbb0e6ff_openblas
+ - libjpeg-turbo=3.1.2=hfd05255_0
+ - liblapack=3.9.0=38_hd232482_openblas
+ - liblapacke=3.9.0=38_hbb0e6ff_openblas
- libllvm19=19.1.7=h830ff33_2
- liblzma=5.8.1=h2466b09_2
- liblzma-devel=5.8.1=h2466b09_2
- - libopenblas=0.3.30=pthreads_ha4fe6b2_2
+ - libmamba=2.3.3=h5fbfb43_1
+ - libmambapy=2.3.3=py312hc175272_1
+ - libopenblas=0.3.30=pthreads_ha4fe6b2_3
- libpng=1.6.50=h7351971_1
- libsodium=1.0.20=hc70643c_0
- - libsqlite=3.50.4=hf5d6505_0
+ - libsolv=0.7.35=h8883371_0
+ - libsqlite=3.51.0=hf5d6505_0
- libssh2=1.11.1=h9aa295b_0
- - libstdcxx=15.1.0=h904f734_5
- - libstdcxx-devel_win-64=15.1.0=hec057c1_105
- - libtiff=4.7.1=h550210a_0
- - libvulkan-loader=1.4.313.0=h477610d_1
+ - libstdcxx=15.2.0=h904f734_7
+ - libstdcxx-devel_win-64=15.2.0=h40631e7_107
+ - libtiff=4.7.1=h8f73337_1
+ - libvulkan-loader=1.4.328.1=h477610d_0
- libwebp-base=1.6.0=h4d5522a_0
- - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- libxcb=1.17.0=h0e4246c_0
- - libxml2=2.15.0=ha29bfb0_1
- - libxml2-16=2.15.0=h06f855e_1
- - libxml2-devel=2.15.0=ha29bfb0_1
+ - libxml2=2.15.1=ha29bfb0_0
+ - libxml2-16=2.15.1=h06f855e_0
+ - libxml2-devel=2.15.1=ha29bfb0_0
- libxslt=1.1.43=h0fbe4c1_1
- libzlib=1.3.1=h2466b09_2
- - lld=21.1.2=hc465015_0
+ - lld=21.1.5=hc465015_0
+ - llvm-openmp=21.1.5=hfa2b4ca_0
- llvm-tools=19.1.7=h752b59f_2
- - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - lz4-c=1.10.0=h2466b09_1
+ - lzo=2.10=h6a83c73_1002
+ - m2-conda-epoch=20250515=0_x86_64
+ - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- m4ri=20250128=h26c196c_0
- markupsafe=3.0.3=py312h05f76fc_0
- - matplotlib=3.10.6=py312h2e8e312_1
- - matplotlib-base=3.10.6=py312h0ebf65c_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py312h2e8e312_0
+ - matplotlib-base=3.10.7=py312h0ebf65c_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py312h4389bb4_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py312he06e257_2
+ - menuinst=2.4.1=py312hbb81ca0_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
- - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
+ - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mingw-w64-ucrt-x86_64-windows-default-manifest=6.4=he206cdd_7
- - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mistune=3.1.4=pyhcf101f3_0
+ - mkl=2024.2.2=h57928b3_16
- more-itertools=10.8.0=pyhd8ed1ab_0
- mpc=1.3.1=h72bc38f_1
- mpfr=4.2.1=hbc20e70_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py312hf90b1b7_1
+ - msgpack-python=1.1.2=py312hf90b1b7_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.6.11=h2fa13f4_1
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h477610d_0
- - numpy=2.3.3=py312ha72d056_0
- - openblas=0.3.30=pthreads_h4a7f399_2
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
+ - numpy=2.3.4=py312ha72d056_0
+ - openblas=0.3.30=pthreads_h4a7f399_3
- openjpeg=2.5.4=h24db6dd_0
- openssl=3.5.4=h725018a_0
- packaging=25.0=pyh29332c3_1
- - pandoc=3.8.1=h57928b3_0
+ - pandoc=3.8.2.1=h57928b3_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
+ - pango=1.56.4=h03d888a_0
- pari=2.17.2=h637a547_5_pthread
- pari-elldata=0.0.20161017=0
- pari-galdata=0.0.20180411=0
@@ -228,31 +262,32 @@ dependencies:
- pcre2=10.46=h3402e2f_0
- perl=5.32.1.1=7_h57928b3_strawberry
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py312h5ee8bfe_3
+ - pillow=12.0.0=py312h036897e_0
- pip=25.2=pyh8b19718_0
- pixman=0.46.4=h5112557_1
- pkg-config=0.29.2=h88c491f_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hfd05255_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hfd05255_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- - primesieve=12.8=he0c23c2_0
+ - primesieve=12.10=hac47afa_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py312he06e257_0
+ - psutil=7.1.3=py312he5662c2_0
- pthread-stubs=0.4=h0e40799_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py312he06e257_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py312h8422cdd_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py312hdabe01f_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py312h7f62ece_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py312he06e257_0
- pyparsing=3.2.5=pyhcf101f3_0
@@ -260,44 +295,47 @@ dependencies:
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pyside6=6.9.3=py312h0c8bdd4_1
- pysocks=1.7.1=pyh09c184e_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.12.11=h3f84c4b_0_cpython
+ - python=3.12.12=h0159041_1_cpython
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.12.11=hd8ed1ab_0
+ - python-gil=3.12.12=hd8ed1ab_1
- python-installer=0.7.0=pyhff2d567_1
- python-symengine=0.14.0=py312hda2f51c_1
- python-utils=3.9.1=pyhff2d567_1
- python_abi=3.12=8_cp312
- pytz=2025.2=pyhd8ed1ab_0
- pywin32=311=py312h829343e_1
- - pywin32-ctypes=0.2.3=py312h2e8e312_2
+ - pywin32-ctypes=0.2.3=py312h2e8e312_3
- pyyaml=6.0.3=py312h05f76fc_0
- pyzmq=27.1.0=py312hbb5da91_0
- qhull=2020.2=hc790b64_5
- - qt6-main=6.9.3=ha0de62e_0
- - r-base=4.5.1=h4076d79_3
+ - qt6-main=6.9.3=ha0de62e_1
+ - r-base=4.5.2=hd292d57_1
- r-lattice=0.22_7=r45heceb674_1
- - rapidfuzz=3.14.1=py312hbb81ca0_0
- - referencing=0.36.2=pyh29332c3_0
+ - rapidfuzz=3.14.3=py312hbb81ca0_1
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h2466b09_0
+ - reproc-cpp=14.2.5.post0=he0c23c2_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py312hdabe01f_1
- - ruamel.yaml=0.18.15=py312he06e257_1
- - ruamel.yaml.clib=0.2.12=py312he06e257_1
+ - rpds-py=0.28.0=py312hdabe01f_1
+ - ruamel.yaml=0.18.16=py312he06e257_0
+ - ruamel.yaml.clib=0.2.14=py312he06e257_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h3e3edff_0
+ - ruff=0.14.4=h15e3a1f_0
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py312h33376e8_0
+ - scipy=1.16.3=py312h33376e8_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
+ - simdjson=4.0.7=h49e36cd_0
- six=1.17.0=pyhe01879c_1
- smmap=5.0.2=pyhd8ed1ab_0
- snowballstemmer=3.0.1=pyhd8ed1ab_0
@@ -312,44 +350,45 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hdb435a2_0
+ - sqlite=3.51.0=hdb435a2_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h1ba984b_1
- symmetrica=3.1.0=h1056bf2_0
- sympy=1.14.0=pyh04b8f61_5
+ - tbb=2021.13.0=hd094cb3_4
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h2c6b04d_2
- tktable=2.10=h7e9e0db_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py312he06e257_1
+ - tornado=6.5.2=py312he06e257_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- ucrt=10.0.26100.0=h57928b3_0
- - unicodedata2=16.0.0=py312he06e257_1
+ - unicodedata2=17.0.0=py312he06e257_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=ha1006f7_0
- - vc=14.3=h41ae7f8_31
- - vc14_runtime=14.44.35208=h818238b_31
- - vcomp14=14.44.35208=h818238b_31
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - vs2015_runtime=14.44.35208=h38c0c73_31
- - vs2022_win-64=19.44.35207=ha74f236_31
+ - uv=0.9.8=h3bd95fe_0
+ - vc=14.3=h2b53caa_32
+ - vc14_runtime=14.44.35208=h818238b_32
+ - vcomp14=14.44.35208=h818238b_32
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - vs2015_runtime=14.44.35208=h38c0c73_32
+ - vs2022_win-64=19.44.35207=ha74f236_32
- vswhere=3.1.7=h40126e0_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- wheel=0.45.1=pyhd8ed1ab_1
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- win_inet_pton=1.1.0=pyh7428d3b_8
- - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- wrapt=1.17.3=py312he06e257_1
- xorg-libice=1.1.2=h0e40799_0
- xorg-libsm=1.2.6=h0e40799_0
@@ -362,8 +401,10 @@ dependencies:
- xz=5.8.1=h208afaa_2
- xz-tools=5.8.1=h2466b09_2
- yaml=0.2.5=h6a83c73_3
+ - yaml-cpp=0.8.0=he0c23c2_0
- zeromq=4.3.5=h5bddc39_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h2466b09_2
- - zstandard=0.25.0=py312he5662c2_0
+ - zlib-ng=2.2.5=h32d8bfd_0
+ - zstandard=0.25.0=py312he5662c2_1
- zstd=1.5.7=hbeecb71_2
diff --git a/environment-3.13-linux-aarch64.yml b/environment-3.13-linux-aarch64.yml
index c272a20a7f4..a59558d8bcd 100644
--- a/environment-3.13-linux-aarch64.yml
+++ b/environment-3.13-linux-aarch64.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-aarch64
-# input_hash: 7f478f62aacbfba94c048847abde66dce2a93693f79ee639f9c04044e9466a6b
+# input_hash: b69d09afa3bf320e91bff2b628acbc59005e26293e54938a2c518928288d5eb0
channels:
- conda-forge
@@ -9,13 +9,18 @@ dependencies:
- _openmp_mutex=4.5=2_gnu
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- alsa-lib=1.2.14=h86ecc28_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h6fc4d3a_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h1f2db35_3
+ - at-spi2-core=2.40.3=h1f2db35_0
+ - atk-1.0=2.38.0=hedc4a1f_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbecfd40_1
- automake=1.17=pl5321h8af1aa0_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -23,19 +28,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5ad3122_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=hf1166c9_2
- - binutils_impl_linux-aarch64=2.44=hdf4bb16_2
- - binutils_linux-aarch64=2.44=hf1166c9_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h9678261_openblas
+ - binutils=2.44=hf1166c9_4
+ - binutils_impl_linux-aarch64=2.44=ha36da51_4
+ - binutils_linux-aarch64=2.44=hf1166c9_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h9678261_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2a328a1_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hdad291f_4
- - brotli=1.1.0=he30d5cf_4
- - brotli-bin=1.1.0=he30d5cf_4
- - brotli-python=1.1.0=py313he352c24_4
+ - brotli=1.2.0=hec30622_0
+ - brotli-bin=1.2.0=hf3d421d_0
+ - brotli-python=1.2.0=py313h41095e9_0
- bwidget=1.10.1=h8af1aa0_1
- bzip2=1.0.8=h4777abc_8
- c-ares=1.34.5=h86ecc28_0
@@ -46,209 +51,243 @@ dependencies:
- cairo=1.18.4=h83712da_0
- cddlib=1!0.94m=h719063d_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py313h0f41b0d_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py313h897158f_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=he30d5cf_0
+ - coin-or-cbc=2.10.12=h3e6914b_4
+ - coin-or-cgl=0.60.9=h082c6d9_6
+ - coin-or-clp=1.17.10=h1805f0b_3
+ - coin-or-osi=0.108.11=h42e9861_7
+ - coin-or-utils=2.11.12=h6d11b10_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=h92dcf8a_5
+ - conda=25.9.1=py313hd81a959_0
+ - conda-gcc-specs=14.3.0=h92dcf8a_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py313he6111f0_2
+ - contourpy=1.3.3=py313he6111f0_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py313hfa222a2_0
- - cpython=3.13.7=py313hd8ed1ab_100
+ - coverage=7.11.1=py313hfa222a2_0
+ - cpp-expected=1.3.1=hdc560ac_0
+ - cpython=3.13.9=py313hd8ed1ab_101
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py313hbc6eba2_0
- - curl=8.14.1=h6702fde_0
+ - cryptography=46.0.3=py313hbc6eba2_0
+ - curl=8.17.0=h7bfdcfb_0
- cxx-compiler=1.11.0=h7b35c40_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py313h9954bcd_0
- cyrus-sasl=2.1.28=h6c5dea3_0
- cysignals=1.12.5=py313he352c24_0
- - cython=3.1.4=py313h34093b6_2
+ - cython=3.2.0=py313h4aae401_0
- dbus=1.16.2=heda779d_0
- debugpy=1.8.17=py313h59403f9_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=h5ad3122_0
- dulwich=0.22.8=py313h8aa417a_0
- ecl=24.5.10=h043f013_1
- eclib=20250627=h2fd3c11_0
- ecm=7.0.6=hd777dc2_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=he30d5cf_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hfae3067_0
- fflas-ffpack=2.5.0=h503e619_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h416241a_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h8dda3cd_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py313hd3a54cf_0
- fortran-compiler=1.11.0=h151373c_0
- fplll=5.5.0=h45c7457_0
- fpylll=0.6.4=py313hf5933f0_0
- freetype=2.14.1=h8af1aa0_0
- fribidi=1.0.16=he30d5cf_0
+ - frozendict=2.4.6=py313h6194ac5_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h1754e88_5
- - gap-defaults=4.14.0=h8af1aa0_5
- - gcc=14.3.0=h7408ef6_5
- - gcc_impl_linux-aarch64=14.3.0=h2b96704_5
- - gcc_linux-aarch64=14.3.0=h39d9346_11
+ - gap-core=4.15.1=h409ef3a_0
+ - gap-defaults=4.15.1=h8af1aa0_0
+ - gcc=14.3.0=h7408ef6_7
+ - gcc_impl_linux-aarch64=14.3.0=h2b96704_7
+ - gcc_linux-aarch64=14.3.0=h118592a_12
+ - gdk-pixbuf=2.44.4=h90308e0_0
- gf2x=1.3.0=h9af5f66_3
- gfan=0.6.2=h5f589ec_1003
- - gfortran=14.3.0=ha28f942_5
- - gfortran_impl_linux-aarch64=14.3.0=h8827d62_5
- - gfortran_linux-aarch64=14.3.0=hc530033_11
+ - gfortran=14.3.0=ha28f942_7
+ - gfortran_impl_linux-aarch64=14.3.0=h8827d62_7
+ - gfortran_linux-aarch64=14.3.0=he4becf7_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h3df9001_3
+ - glib-tools=2.86.1=hc87f4d4_1
- glpk=5.0=h66325d0_0
- gmp=6.3.0=h0a1ffab_2
- - gmpy2=2.1.5=py313h0c041f1_3
+ - gmpy2=2.2.1=py313h4ba42fe_1
- graphite2=1.3.14=hfae3067_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=hdb06ba2_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h294027d_0
- - gxx=14.3.0=ha28f942_5
- - gxx_impl_linux-aarch64=14.3.0=h72695c8_5
- - gxx_linux-aarch64=14.3.0=h83defb1_11
+ - gtk3=3.24.43=h4cd1324_6
+ - gts=0.7.6=he293c15_4
+ - gxx=14.3.0=ha28f942_7
+ - gxx_impl_linux-aarch64=14.3.0=h72695c8_7
+ - gxx_linux-aarch64=14.3.0=hda493e9_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=he4899c9_0
+ - harfbuzz=12.2.0=he4899c9_0
+ - hicolor-icon-theme=0.17=h8af1aa0_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hf9b3779_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h1827c4d_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h15043fe_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py313hd81a959_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-aarch64=4.18.0=h05a177a_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=h86ecc28_0
- - kiwisolver=1.4.9=py313h314c631_1
+ - kiwisolver=1.4.9=py313h314c631_2
- krb5=1.21.3=h50a48e9_0
- lcalc=2.1.1=h30a6b3d_0
- lcms2=2.17=hc88f144_0
- - ld_impl_linux-aarch64=2.44=h9df1782_2
+ - ld_impl_linux-aarch64=2.44=hd32f0e1_4
- lerc=4.0.0=hfdc4d58_1
- - libblas=3.9.0=36_haddc8a3_openblas
+ - libarchive=3.8.2=gpl_hd746d8a_100
+ - libblas=3.9.0=38_haddc8a3_openblas
- libboost=1.85.0=h9fa81b4_4
- libboost-devel=1.85.0=h37bb5a9_4
- libboost-headers=1.85.0=h8af1aa0_4
- libbraiding=1.3.1=h5ad3122_0
- libbrial=1.2.15=hc86e37c_0
- - libbrotlicommon=1.1.0=he30d5cf_4
- - libbrotlidec=1.1.0=he30d5cf_4
- - libbrotlienc=1.1.0=he30d5cf_4
- - libcblas=3.9.0=36_hd72aa62_openblas
- - libclang-cpp21.1=21.1.2=default_he95a3c9_1
- - libclang13=21.1.2=default_h94a09a5_1
+ - libbrotlicommon=1.2.0=hd4db518_0
+ - libbrotlidec=1.2.0=hb159aeb_0
+ - libbrotlienc=1.2.0=ha5a240b_0
+ - libcblas=3.9.0=38_hd72aa62_openblas
+ - libclang-cpp21.1=21.1.5=default_he95a3c9_1
+ - libclang13=21.1.5=default_h94a09a5_1
- libcups=2.3.3=h5cdc715_5
- - libcurl=8.14.1=h6702fde_0
- - libdeflate=1.24=he377734_0
+ - libcurl=8.17.0=h7bfdcfb_0
+ - libdeflate=1.25=h1af38f5_0
- libdrm=2.4.125=he30d5cf_1
- libedit=3.1.20250104=pl5321h976ea20_0
- libegl=1.7.0=hd24410f_2
+ - libegl-devel=1.7.0=hd24410f_2
- libev=4.33=h31becfc_2
- libexpat=2.7.1=hfae3067_0
- - libffi=3.4.6=he21f813_1
+ - libffi=3.5.2=hd65408f_0
- libflint=3.2.2=hd878b8d_0
- libfreetype=2.14.1=h8af1aa0_0
- libfreetype6=2.14.1=hdae7a39_0
- - libgcc=15.1.0=he277a41_5
- - libgcc-devel_linux-aarch64=14.3.0=h370b906_105
- - libgcc-ng=15.1.0=he9431aa_5
+ - libgcc=15.2.0=he277a41_7
+ - libgcc-devel_linux-aarch64=14.3.0=h370b906_107
+ - libgcc-ng=15.2.0=he9431aa_7
- libgd=2.3.3=hc8d7b1d_11
- - libgfortran=15.1.0=he9431aa_5
- - libgfortran-ng=15.1.0=he9431aa_5
- - libgfortran5=15.1.0=hbc25352_5
+ - libgfortran=15.2.0=he9431aa_7
+ - libgfortran-ng=15.2.0=he9431aa_7
+ - libgfortran5=15.2.0=h87db57e_7
- libgl=1.7.0=hd24410f_2
- - libglib=2.86.0=h7cdfd2c_0
+ - libgl-devel=1.7.0=hd24410f_2
+ - libglib=2.86.1=he84ff74_1
- libglvnd=1.7.0=hd24410f_2
- libglx=1.7.0=hd24410f_2
- - libgomp=15.1.0=he277a41_5
+ - libglx-devel=1.7.0=hd24410f_2
+ - libgomp=15.2.0=he277a41_7
- libhomfly=1.03=he30d5cf_0
- libiconv=1.18=h90929bb_2
- - libjpeg-turbo=3.1.0=h86ecc28_0
- - liblapack=3.9.0=36_h88aeb00_openblas
- - liblapacke=3.9.0=36_hb558247_openblas
- - libllvm21=21.1.2=hfd2ba90_0
+ - libjpeg-turbo=3.1.2=he30d5cf_0
+ - liblapack=3.9.0=38_h88aeb00_openblas
+ - liblapacke=3.9.0=38_hb558247_openblas
+ - libllvm21=21.1.5=hfd2ba90_0
- liblzma=5.8.1=h86ecc28_2
- liblzma-devel=5.8.1=h86ecc28_2
+ - libmamba=2.3.3=hdcf0ffa_2
+ - libmambapy=2.3.3=py313h363f11b_2
- libmpdec=4.0.0=h86ecc28_0
- libnghttp2=1.67.0=ha888d0e_0
- libntlm=1.4=hf897c2e_1002
- - libopenblas=0.3.30=pthreads_h9d3fd7e_2
+ - libopenblas=0.3.30=pthreads_h9d3fd7e_3
- libopengl=1.7.0=hd24410f_2
- libpciaccess=0.18=h86ecc28_0
- libpng=1.6.50=h1abf092_1
- libpq=18.0=hb4b1422_0
- - libsanitizer=14.3.0=h48d3638_5
+ - librsvg=2.60.0=h8171147_0
+ - libsanitizer=14.3.0=h48d3638_7
- libsodium=1.0.20=h68df207_0
- - libsqlite=3.50.4=h022381a_0
+ - libsolv=0.7.35=hdda61c4_0
+ - libsqlite=3.51.0=h022381a_0
- libssh2=1.11.1=h18c354c_0
- - libstdcxx=15.1.0=h3f4de04_5
- - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_105
- - libstdcxx-ng=15.1.0=hf1166c9_5
- - libtiff=4.7.1=h7a57436_0
+ - libstdcxx=15.2.0=h3f4de04_7
+ - libstdcxx-devel_linux-aarch64=14.3.0=h370b906_107
+ - libstdcxx-ng=15.2.0=hf1166c9_7
+ - libtiff=4.7.1=hdb009f0_1
- libuuid=2.41.2=h3e4203c_0
- - libvulkan-loader=1.4.313.0=h8b8848b_1
+ - libvulkan-loader=1.4.328.1=h8b8848b_0
- libwebp-base=1.6.0=ha2e29f5_0
- libxcb=1.17.0=h262b8f6_0
- libxcrypt=4.4.36=h31becfc_1
- - libxkbcommon=1.11.0=h3c6a4c8_1
- - libxml2=2.15.0=h788dabe_1
- - libxml2-16=2.15.0=h8591a01_1
- - libxml2-devel=2.15.0=h788dabe_1
+ - libxkbcommon=1.13.0=h3c6a4c8_0
+ - libxml2=2.15.1=h788dabe_0
+ - libxml2-16=2.15.1=h8591a01_0
+ - libxml2-devel=2.15.1=h788dabe_0
- libxslt=1.1.43=h6700d25_1
- libzlib=1.3.1=h86ecc28_2
- linbox=1.7.1=h119cb06_0
- lrcalc=2.1=hfae3067_8
+ - lz4-c=1.10.0=h5ad3122_1
+ - lzo=2.10=h80f16a2_1002
- m4=1.4.20=h86ecc28_0
- m4ri=20250128=hd9db0c5_0
- m4rie=20250128=hd9db0c5_0
- make=4.4.1=h2a6d0cb_2
- markupsafe=3.0.3=py313hfa222a2_0
- - matplotlib=3.10.6=py313h1258fbd_1
- - matplotlib-base=3.10.6=py313h5dbd8ee_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py313h1258fbd_0
+ - matplotlib-base=3.10.7=py313h5dbd8ee_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h043f013_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py313h31d5739_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py313h6194ac5_2
+ - menuinst=2.4.1=py313hd81a959_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -256,27 +295,28 @@ dependencies:
- mpfi=1.5.4=h846f343_1001
- mpfr=4.2.1=h2305555_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py313he6111f0_1
+ - msgpack-python=1.1.2=py313he6111f0_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=he30d5cf_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=ha32ae93_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=hdc560ac_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0d7519b_1
- - numpy=2.3.3=py313h11e5ff7_0
- - openblas=0.3.30=pthreads_h3a8cbd8_2
+ - numpy=2.3.4=py313h11e5ff7_0
+ - openblas=0.3.30=pthreads_h3a8cbd8_3
- openjpeg=2.5.4=h5da879a_0
- openldap=2.6.10=h30c48ee_0
- openssl=3.5.4=h8e36d6e_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=he30d5cf_0
- - pandoc=3.8.1=h8af1aa0_0
+ - pandoc=3.8.2.1=h8af1aa0_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=he55ef5b_0
- pari=2.17.2=h45cace7_5_pthread
@@ -288,15 +328,14 @@ dependencies:
- pcre2=10.46=h15761aa_0
- perl=5.32.1=7_h31becfc_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py313ha01fe87_3
+ - pillow=12.0.0=py313h248b466_0
- pip=25.2=pyh145f28c_0
- pixman=0.46.4=h7ac5ae9_1
- pkg-config=0.29.2=hce167ba_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=he30d5cf_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=he30d5cf_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h984aac9_1006
- pplpy=0.8.9=py313hb6c4517_2
@@ -305,18 +344,20 @@ dependencies:
- primesieve=12.8=h5ad3122_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py313h6194ac5_0
+ - psutil=7.1.3=py313h62ef0ea_0
- pthread-stubs=0.4=h86ecc28_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py313h6194ac5_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py313h023b233_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py313h5e7b836_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py313h6211ea7_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py313h6194ac5_0
- pyparsing=3.2.5=pyhcf101f3_0
@@ -324,13 +365,13 @@ dependencies:
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pyside6=6.9.3=py313h871b3e4_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.13.7=h23354eb_100_cp313
+ - python=3.13.9=h4c0d347_101_cp313
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.13.7=h4df99d1_100
+ - python-gil=3.13.9=h4df99d1_101
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py313he352c24_8
- python-symengine=0.14.0=py313h267d6ee_1
@@ -341,32 +382,35 @@ dependencies:
- pyzmq=27.1.0=py312h4552c38_0
- qd=2.3.22=h05efe27_1004
- qhull=2020.2=h70be974_5
- - qt6-main=6.9.3=h224e339_0
- - r-base=4.4.3=h63885c9_4
+ - qt6-main=6.9.3=h224e339_1
+ - r-base=4.4.3=h72cabac_5
- r-lattice=0.22_7=r44h0557e7b_1
- - rapidfuzz=3.14.1=py313he352c24_0
+ - rapidfuzz=3.14.3=py313he352c24_1
- readline=8.2=h8382b9d_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h86ecc28_0
+ - reproc-cpp=14.2.5.post0=h5ad3122_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py313h8f1d341_1
+ - rpds-py=0.28.0=py313h8f1d341_1
- rpy2=3.6.4=py313r44h65fa22d_1
- - ruamel.yaml=0.18.15=py313h6194ac5_1
- - ruamel.yaml.clib=0.2.12=py313h6194ac5_1
+ - ruamel.yaml=0.18.16=py313h6194ac5_0
+ - ruamel.yaml.clib=0.2.14=py313h6194ac5_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h46ed904_0
+ - ruff=0.14.4=h9564552_0
- rw=0.9=h31becfc_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py313he5bcb21_0
+ - scipy=1.16.3=py313he5bcb21_0
- secretstorage=3.4.0=py313h1258fbd_0
- sed=4.9=hd4cd8d4_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
+ - simdjson=4.0.7=hfefdfc9_0
- singular=4.4.1=hfdb71ee_1
- sirocco=2.1.0=h7fa4f89_1
- six=1.17.0=pyhe01879c_1
@@ -383,9 +427,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=he8854b5_0
+ - sqlite=3.51.0=he8854b5_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h7a35ef0_1
- symmetrica=3.1.0=he30d5cf_0
- sympow=2.023.6=h4d450c3_4
@@ -395,26 +439,26 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h5688188_102
- tktable=2.10=h89546af_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py313he149459_1
+ - tornado=6.5.2=py313he149459_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h0157bdf_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - wayland=1.24.0=h698ed42_0
+ - uv=0.9.7=h0157bdf_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=h4f8a99f_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py313h6194ac5_1
- xcb-util=0.4.1=hca56bd8_2
- xcb-util-cursor=0.1.5=h86ecc28_0
@@ -434,17 +478,21 @@ dependencies:
- xorg-libxext=1.3.6=h57736b2_0
- xorg-libxfixes=6.0.2=he30d5cf_0
- xorg-libxi=1.8.2=h57736b2_0
+ - xorg-libxinerama=1.1.5=h5ad3122_1
- xorg-libxrandr=1.5.4=h86ecc28_0
- xorg-libxrender=0.9.12=h86ecc28_0
- xorg-libxt=1.3.1=h57736b2_0
- xorg-libxtst=1.2.5=h57736b2_3
- xorg-libxxf86vm=1.1.6=h86ecc28_0
+ - xorg-xorgproto=2024.1=h86ecc28_1
- xz=5.8.1=h2dbfc1b_2
- xz-gpl-tools=5.8.1=h2dbfc1b_2
- xz-tools=5.8.1=h86ecc28_2
- yaml=0.2.5=h80f16a2_3
+ - yaml-cpp=0.8.0=h5ad3122_0
- zeromq=4.3.5=hefbcea8_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h86ecc28_2
- - zstandard=0.25.0=py313h62ef0ea_0
+ - zlib-ng=2.2.5=h92288e7_0
+ - zstandard=0.25.0=py313h62ef0ea_1
- zstd=1.5.7=hbcf94c1_2
diff --git a/environment-3.13-linux.yml b/environment-3.13-linux.yml
index af2379353fe..d4ad7d0a1ef 100644
--- a/environment-3.13-linux.yml
+++ b/environment-3.13-linux.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: linux-64
-# input_hash: ad6e37a07d00e01612f8e5f20580a4dfaf17edc8b3b6161ddd7bfde56516fe46
+# input_hash: 6e46b2d985201902bf0bf1d8ac3705a1d832d7a47450c6a7d8a15a4681cafc3c
channels:
- conda-forge
@@ -11,13 +11,18 @@ dependencies:
- _openmp_mutex=4.5=2_gnu
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- alsa-lib=1.2.14=hb9d3cd8_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hf03ea27_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - at-spi2-atk=2.38.0=h0630a04_3
+ - at-spi2-core=2.40.3=h0630a04_0
+ - atk-1.0=2.38.0=h04ea711_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hbb4ee43_1
- automake=1.17=pl5321ha770c72_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -25,19 +30,19 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h5888daf_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils=2.44=h4852527_2
- - binutils_impl_linux-64=2.44=hdf8817f_2
- - binutils_linux-64=2.44=h4852527_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h1ea3ea9_openblas
+ - binutils=2.44=h4852527_4
+ - binutils_impl_linux-64=2.44=h9d8b0ac_4
+ - binutils_linux-64=2.44=h4852527_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h1ea3ea9_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h00ab1b0_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h3c6214e_4
- - brotli=1.1.0=hb03c661_4
- - brotli-bin=1.1.0=hb03c661_4
- - brotli-python=1.1.0=py313h7033f15_4
+ - brotli=1.2.0=h41a2e66_0
+ - brotli-bin=1.2.0=hf2c8021_0
+ - brotli-python=1.2.0=py313h09d1b84_0
- bwidget=1.10.1=ha770c72_1
- bzip2=1.0.8=hda65f42_8
- c-ares=1.34.5=hb9d3cd8_0
@@ -48,210 +53,244 @@ dependencies:
- cairo=1.18.4=h3394656_0
- cddlib=1!0.94m=h9202a9a_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py313hf01b4d8_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
- - click=8.3.0=pyh707e725_0
+ - cffi=2.0.0=py313hf46b229_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hb03c661_0
+ - coin-or-cbc=2.10.12=h4d16d09_4
+ - coin-or-cgl=0.60.9=hc46dffc_6
+ - coin-or-clp=1.17.10=hc03379b_3
+ - coin-or-osi=0.108.11=hf4fecb4_7
+ - coin-or-utils=2.11.12=hc93afbd_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- - conda-gcc-specs=14.3.0=hb991d5c_5
+ - conda=25.9.1=py313h78bf25f_0
+ - conda-gcc-specs=14.3.0=hb991d5c_7
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyh367d9c9_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py313h7037e92_2
+ - contourpy=1.3.3=py313h7037e92_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py313h3dea7bd_0
- - cpython=3.13.7=py313hd8ed1ab_100
+ - coverage=7.11.1=py313h3dea7bd_0
+ - cpp-expected=1.3.1=h171cf75_0
+ - cpython=3.13.9=py313hd8ed1ab_101
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py313hafb0bba_0
- - curl=8.14.1=h332b0f4_0
+ - cryptography=46.0.3=py313hafb0bba_0
+ - curl=8.17.0=h4e3cde8_0
- cxx-compiler=1.11.0=hfcd1e18_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py313h69fe8d1_0
- cyrus-sasl=2.1.28=hd9c7081_0
- cysignals=1.12.5=py313h7033f15_0
- - cython=3.1.4=py313h3484ee8_2
+ - cython=3.2.0=py313hc80a56d_0
- dbus=1.16.2=h3c4dab8_0
- debugpy=1.8.17=py313h5d5ffb9_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=h5888daf_0
- dulwich=0.22.8=py313h920b4c0_0
- ecl=24.5.10=h75482ee_1
- eclib=20250627=hd0dfdeb_0
- ecm=7.0.6=h90cbb55_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hb03c661_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hecca717_0
- fflas-ffpack=2.5.0=h4f9960b_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h2b0788b_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h7e30c49_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py313h3dea7bd_0
- fortran-compiler=1.11.0=h9bea470_0
- fplll=5.5.0=hd20a173_0
- fpylll=0.6.4=py313ha800b53_0
- freetype=2.14.1=ha770c72_0
- fribidi=1.0.16=hb03c661_0
+ - frozendict=2.4.6=py313h07c4f96_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h3b03731_5
- - gap-defaults=4.14.0=ha770c72_5
- - gcc=14.3.0=h76bdaa0_5
- - gcc_impl_linux-64=14.3.0=hd9e9e21_5
- - gcc_linux-64=14.3.0=h1382650_11
+ - gap-core=4.15.1=h60ec763_0
+ - gap-defaults=4.15.1=ha770c72_0
+ - gcc=14.3.0=h76bdaa0_7
+ - gcc_impl_linux-64=14.3.0=hd9e9e21_7
+ - gcc_linux-64=14.3.0=h298d278_12
+ - gdk-pixbuf=2.44.4=h2b0a6b4_0
- gf2x=1.3.0=h55551d5_3
- gfan=0.6.2=hb86e20a_1003
- - gfortran=14.3.0=he448592_5
- - gfortran_impl_linux-64=14.3.0=h7db7018_5
- - gfortran_linux-64=14.3.0=h30a37f7_11
+ - gfortran=14.3.0=he448592_7
+ - gfortran_impl_linux-64=14.3.0=h7db7018_7
+ - gfortran_linux-64=14.3.0=h961de7f_12
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h49654ea_3
+ - glib-tools=2.86.1=hf516916_1
- glpk=5.0=h445213a_0
- gmp=6.3.0=hac33072_2
- - gmpy2=2.1.5=py313h11186cd_3
+ - gmpy2=2.2.1=py313h86d8783_1
- graphite2=1.3.14=hecca717_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=h87b6fe6_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=he838d99_0
- - gxx=14.3.0=he448592_5
- - gxx_impl_linux-64=14.3.0=he663afc_5
- - gxx_linux-64=14.3.0=ha7acb78_11
+ - gtk3=3.24.43=h993cebd_6
+ - gts=0.7.6=h977cf35_4
+ - gxx=14.3.0=he448592_7
+ - gxx_impl_linux-64=14.3.0=he663afc_7
+ - gxx_linux-64=14.3.0=h95f728e_12
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=h15599e2_0
+ - harfbuzz=12.2.0=h15599e2_0
+ - hicolor-icon-theme=0.17=ha770c72_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=1.0.0=hfe3e89f_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=hfe3e89f_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h623f65a_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh82676e8_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyha191276_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jeepney=0.9.0=pyhd8ed1ab_0
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py313h78bf25f_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- kernel-headers_linux-64=4.18.0=he073ed8_8
- keyring=25.6.0=pyha804496_0
- keyutils=1.6.3=hb9d3cd8_0
- - kiwisolver=1.4.9=py313hc8edb43_1
+ - kiwisolver=1.4.9=py313hc8edb43_2
- krb5=1.21.3=h659f571_0
- lcalc=2.1.1=h9cf73fc_0
- lcms2=2.17=h717163a_0
- - ld_impl_linux-64=2.44=ha97dd6f_2
+ - ld_impl_linux-64=2.44=h1aa0949_4
- lerc=4.0.0=h0aef613_1
- - libblas=3.9.0=36_h4a7cf45_openblas
+ - libarchive=3.8.2=gpl_h7be2006_100
+ - libblas=3.9.0=38_h4a7cf45_openblas
- libboost=1.85.0=h0ccab89_4
- libboost-devel=1.85.0=h00ab1b0_4
- libboost-headers=1.85.0=ha770c72_4
- libbraiding=1.3.1=h5888daf_0
- libbrial=1.2.15=hf69d4a9_0
- - libbrotlicommon=1.1.0=hb03c661_4
- - libbrotlidec=1.1.0=hb03c661_4
- - libbrotlienc=1.1.0=hb03c661_4
- - libcblas=3.9.0=36_h0358290_openblas
- - libclang-cpp21.1=21.1.2=default_h99862b1_1
- - libclang13=21.1.2=default_h746c552_1
+ - libbrotlicommon=1.2.0=h09219d5_0
+ - libbrotlidec=1.2.0=hd53d788_0
+ - libbrotlienc=1.2.0=h02bd7ab_0
+ - libcblas=3.9.0=38_h0358290_openblas
+ - libclang-cpp21.1=21.1.5=default_h99862b1_1
+ - libclang13=21.1.5=default_h746c552_1
- libcups=2.3.3=hb8b1518_5
- - libcurl=8.14.1=h332b0f4_0
- - libdeflate=1.24=h86f0d12_0
+ - libcurl=8.17.0=h4e3cde8_0
+ - libdeflate=1.25=h17f619e_0
- libdrm=2.4.125=hb03c661_1
- libedit=3.1.20250104=pl5321h7949ede_0
- libegl=1.7.0=ha4b6fd6_2
+ - libegl-devel=1.7.0=ha4b6fd6_2
- libev=4.33=hd590300_2
- libexpat=2.7.1=hecca717_0
- - libffi=3.4.6=h2dba641_1
+ - libffi=3.5.2=h9ec8514_0
- libflint=3.2.2=h754cb6e_0
- libfreetype=2.14.1=ha770c72_0
- libfreetype6=2.14.1=h73754d4_0
- - libgcc=15.1.0=h767d61c_5
- - libgcc-devel_linux-64=14.3.0=h85bb3a7_105
- - libgcc-ng=15.1.0=h69a702a_5
+ - libgcc=15.2.0=h767d61c_7
+ - libgcc-devel_linux-64=14.3.0=h85bb3a7_107
+ - libgcc-ng=15.2.0=h69a702a_7
- libgd=2.3.3=h6f5c62b_11
- - libgfortran=15.1.0=h69a702a_5
- - libgfortran-ng=15.1.0=h69a702a_5
- - libgfortran5=15.1.0=hcea5267_5
+ - libgfortran=15.2.0=h69a702a_7
+ - libgfortran-ng=15.2.0=h69a702a_7
+ - libgfortran5=15.2.0=hcd61629_7
- libgl=1.7.0=ha4b6fd6_2
- - libglib=2.86.0=h1fed272_0
+ - libgl-devel=1.7.0=ha4b6fd6_2
+ - libglib=2.86.1=h32235b2_1
- libglvnd=1.7.0=ha4b6fd6_2
- libglx=1.7.0=ha4b6fd6_2
- - libgomp=15.1.0=h767d61c_5
+ - libglx-devel=1.7.0=ha4b6fd6_2
+ - libgomp=15.2.0=h767d61c_7
- libhomfly=1.03=hb03c661_0
- libiconv=1.18=h3b78370_2
- - libjpeg-turbo=3.1.0=hb9d3cd8_0
- - liblapack=3.9.0=36_h47877c9_openblas
- - liblapacke=3.9.0=36_h6ae95b6_openblas
- - libllvm21=21.1.2=hf7376ad_0
+ - libjpeg-turbo=3.1.2=hb03c661_0
+ - liblapack=3.9.0=38_h47877c9_openblas
+ - liblapacke=3.9.0=38_h6ae95b6_openblas
+ - libllvm21=21.1.5=hf7376ad_0
- liblzma=5.8.1=hb9d3cd8_2
- liblzma-devel=5.8.1=hb9d3cd8_2
+ - libmamba=2.3.3=h09abcb8_1
+ - libmambapy=2.3.3=py313hda67085_1
- libmpdec=4.0.0=hb9d3cd8_0
- libnghttp2=1.67.0=had1ee68_0
- libntlm=1.8=hb9d3cd8_0
- - libopenblas=0.3.30=pthreads_h94d23a6_2
+ - libopenblas=0.3.30=pthreads_h94d23a6_3
- libopengl=1.7.0=ha4b6fd6_2
- libpciaccess=0.18=hb9d3cd8_0
- libpng=1.6.50=h421ea60_1
- libpq=18.0=h3675c94_0
- - libsanitizer=14.3.0=hd08acf3_5
+ - librsvg=2.60.0=h61e6d4b_0
+ - libsanitizer=14.3.0=hd08acf3_7
- libsodium=1.0.20=h4ab18f5_0
- - libsqlite=3.50.4=h0c1763c_0
+ - libsolv=0.7.35=h9463b59_0
+ - libsqlite=3.51.0=hee844dc_0
- libssh2=1.11.1=hcf80075_0
- - libstdcxx=15.1.0=h8f9b012_5
- - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_105
- - libstdcxx-ng=15.1.0=h4852527_5
- - libtiff=4.7.1=h8261f1e_0
+ - libstdcxx=15.2.0=h8f9b012_7
+ - libstdcxx-devel_linux-64=14.3.0=h85bb3a7_107
+ - libstdcxx-ng=15.2.0=h4852527_7
+ - libtiff=4.7.1=h9d88235_1
- libuuid=2.41.2=he9a06e4_0
- - libvulkan-loader=1.4.313.0=h5279c79_1
+ - libvulkan-loader=1.4.328.1=h5279c79_0
- libwebp-base=1.6.0=hd42ef1d_0
- libxcb=1.17.0=h8a09558_0
- libxcrypt=4.4.36=hd590300_1
- - libxkbcommon=1.11.0=hca5e8e5_1
- - libxml2=2.15.0=h26afc86_1
- - libxml2-16=2.15.0=ha9997c6_1
- - libxml2-devel=2.15.0=h26afc86_1
+ - libxkbcommon=1.13.0=hca5e8e5_0
+ - libxml2=2.15.1=h26afc86_0
+ - libxml2-16=2.15.1=ha9997c6_0
+ - libxml2-devel=2.15.1=h26afc86_0
- libxslt=1.1.43=h711ed8c_1
- libzlib=1.3.1=hb9d3cd8_2
- linbox=1.7.1=he8fce6e_0
- lrcalc=2.1=h5888daf_7
- lrslib=71.b=h8aaf9c6_1
+ - lz4-c=1.10.0=h5888daf_1
+ - lzo=2.10=h280c20c_1002
- m4=1.4.20=hb9d3cd8_0
- m4ri=20250128=h36e74d4_0
- m4rie=20250128=h36e74d4_0
- make=4.4.1=hb9d3cd8_2
- markupsafe=3.0.3=py313h3dea7bd_0
- - matplotlib=3.10.6=py313h78bf25f_1
- - matplotlib-base=3.10.6=py313h683a580_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py313h78bf25f_0
+ - matplotlib-base=3.10.7=py313h683a580_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h75482ee_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py313h536fd9c_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py313h07c4f96_2
+ - menuinst=2.4.1=py313h78bf25f_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -259,27 +298,28 @@ dependencies:
- mpfi=1.5.4=h9f54685_1001
- mpfr=4.2.1=h90cbb55_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py313h7037e92_1
+ - msgpack-python=1.1.2=py313h7037e92_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hb03c661_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h171cf75_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hef3c4d3_1
- - numpy=2.3.3=py313hf6604e3_0
- - openblas=0.3.30=pthreads_h6ec200e_2
+ - numpy=2.3.4=py313hf6604e3_0
+ - openblas=0.3.30=pthreads_h6ec200e_3
- openjpeg=2.5.4=h55fea9a_0
- openldap=2.6.10=he970967_0
- openssl=3.5.4=h26f9b46_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hb03c661_0
- - pandoc=3.8.1=ha770c72_0
+ - pandoc=3.8.2.1=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=hadf4263_0
- pari=2.17.2=ha40142e_5_pthread
@@ -291,15 +331,14 @@ dependencies:
- pcre2=10.46=h1321c63_0
- perl=5.32.1=7_hd590300_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py313ha492abd_3
+ - pillow=12.0.0=py313h50355cd_0
- pip=25.2=pyh145f28c_0
- pixman=0.46.4=h54a6638_1
- pkg-config=0.29.2=h4bc722e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hb03c661_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hb03c661_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h6ec01c2_1006
- pplpy=0.8.9=py313hf19506d_2
@@ -308,18 +347,20 @@ dependencies:
- primesieve=12.8=h5888daf_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py313h07c4f96_0
+ - psutil=7.1.3=py313h54dd161_0
- pthread-stubs=0.4=hb9d3cd8_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py313h07c4f96_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py313h4b2b08d_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py313h843e2db_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py313h45fd7b0_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py313h07c4f96_0
- pyparsing=3.2.5=pyhcf101f3_0
@@ -327,13 +368,13 @@ dependencies:
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pyside6=6.9.3=py313h85046ba_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.13.7=h2b335a9_100_cp313
+ - python=3.13.9=hc97d973_101_cp313
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.13.7=h4df99d1_100
+ - python-gil=3.13.9=h4df99d1_101
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py313h46c70d0_7
- python-symengine=0.14.0=py313hf59a7b8_1
@@ -344,32 +385,35 @@ dependencies:
- pyzmq=27.1.0=py312hfb55c3c_0
- qd=2.3.22=h2cc385e_1004
- qhull=2020.2=h434a139_5
- - qt6-main=6.9.3=h5c1c036_0
- - r-base=4.4.3=h14df4e6_4
+ - qt6-main=6.9.3=h5c1c036_1
+ - r-base=4.4.3=hc038350_5
- r-lattice=0.22_7=r44h54b55ab_1
- - rapidfuzz=3.14.1=py313h7033f15_0
+ - rapidfuzz=3.14.3=py313h7033f15_1
- readline=8.2=h8c095d6_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=hb9d3cd8_0
+ - reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py313h843e2db_1
+ - rpds-py=0.28.0=py313h843e2db_1
- rpy2=3.6.4=py313r44h67dc6d7_1
- - ruamel.yaml=0.18.15=py313h07c4f96_1
- - ruamel.yaml.clib=0.2.12=py313h07c4f96_1
+ - ruamel.yaml=0.18.16=py313h07c4f96_0
+ - ruamel.yaml.clib=0.2.14=py313h07c4f96_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=ha3a3aed_0
- - rw=0.7=1
+ - ruff=0.14.4=h813ae00_0
+ - rw=0.9=hd590300_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py313h11c21cd_0
+ - scipy=1.16.3=py313h11c21cd_0
- secretstorage=3.4.0=py313h78bf25f_0
- sed=4.9=h6688a6e_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
+ - simdjson=4.0.7=hb700be7_0
- singular=4.4.1=h7ee4ccf_1
- sirocco=2.1.0=hd7ee782_1
- six=1.17.0=pyhe01879c_1
@@ -386,9 +430,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hbc0de68_0
+ - sqlite=3.51.0=heff268d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h064106a_1
- symmetrica=3.1.0=hb03c661_0
- sympow=2.023.6=h3028977_4
@@ -398,26 +442,26 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_hd72426e_102
- tktable=2.10=h8d826fa_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py313h07c4f96_1
+ - tornado=6.5.2=py313h07c4f96_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h30787bc_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - wayland=1.24.0=h3e06ad9_0
+ - uv=0.9.8=h76e24b7_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - wayland=1.24.0=hd6090a7_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py313h07c4f96_1
- xcb-util=0.4.1=h4f16b4b_2
- xcb-util-cursor=0.1.5=hb9d3cd8_0
@@ -437,17 +481,21 @@ dependencies:
- xorg-libxext=1.3.6=hb9d3cd8_0
- xorg-libxfixes=6.0.2=hb03c661_0
- xorg-libxi=1.8.2=hb9d3cd8_0
+ - xorg-libxinerama=1.1.5=h5888daf_1
- xorg-libxrandr=1.5.4=hb9d3cd8_0
- xorg-libxrender=0.9.12=hb9d3cd8_0
- xorg-libxt=1.3.1=hb9d3cd8_0
- xorg-libxtst=1.2.5=hb9d3cd8_3
- xorg-libxxf86vm=1.1.6=hb9d3cd8_0
+ - xorg-xorgproto=2024.1=hb9d3cd8_1
- xz=5.8.1=hbcc6ac9_2
- xz-gpl-tools=5.8.1=hbcc6ac9_2
- xz-tools=5.8.1=hb9d3cd8_2
- yaml=0.2.5=h280c20c_3
+ - yaml-cpp=0.8.0=h3f2d84a_0
- zeromq=4.3.5=h387f397_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hb9d3cd8_2
- - zstandard=0.25.0=py313h54dd161_0
+ - zlib-ng=2.2.5=hde8ca8f_0
+ - zstandard=0.25.0=py313h54dd161_1
- zstd=1.5.7=hb8e6e7a_2
diff --git a/environment-3.13-macos-x86_64.yml b/environment-3.13-macos-x86_64.yml
index 9f051d4c581..2add92b468b 100644
--- a/environment-3.13-macos-x86_64.yml
+++ b/environment-3.13-macos-x86_64.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-64
-# input_hash: 380aa928a27b02842ec53ad80405fcb083e22ecec49c5eb945bbc9396b74650c
+# input_hash: 12db9a11e39e6499cfe996f0baac3f28ae6071aeb6dbe4b0bf8001ad4b0127fa
channels:
- conda-forge
@@ -9,13 +9,16 @@ dependencies:
- 4ti2=1.6.13=he407a3c_0
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_hdfe9103_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=h4bec284_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321had7229c_1
- automake=1.17=pl5321h694c41f_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -23,16 +26,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h240833e_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_hbf4f893_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_hbf4f893_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h7728843_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=hfcd56d9_4
- - brotli=1.1.0=h1c43f85_4
- - brotli-bin=1.1.0=h1c43f85_4
- - brotli-python=1.1.0=py313h253db18_4
+ - brotli=1.2.0=hb27157a_0
+ - brotli-bin=1.2.0=h5c1846c_0
+ - brotli-python=1.2.0=py313hd4eab94_0
- bwidget=1.10.1=h694c41f_1
- bzip2=1.0.8=h500dc9f_8
- c-ares=1.34.5=hf13058a_0
@@ -41,12 +44,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h950ec3b_0
- - cctools=1024.3=h67a6458_4
- - cctools_osx-64=1024.3=h3b512aa_4
+ - cctools=1024.3=h67a6458_9
+ - cctools_osx-64=1024.3=llvm19_1_h3b512aa_9
- cddlib=1!0.94m=h0f52abe_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py313h8715ba9_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py313hf57695f_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_h1323312_5
- clang-19=19.1.7=default_hc369343_5
- clang_impl_osx-64=19.1.7=hc73cdc9_25
@@ -54,183 +57,214 @@ dependencies:
- clangxx=19.1.7=default_h1c12a56_5
- clangxx_impl_osx-64=19.1.7=hb295874_25
- clangxx_osx-64=19.1.7=h7e5c614_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=h8616949_0
+ - coin-or-cbc=2.10.12=h084678f_4
+ - coin-or-cgl=0.60.9=hbb40df2_6
+ - coin-or-clp=1.17.10=heb008f4_3
+ - coin-or-osi=0.108.11=hd53559c_7
+ - coin-or-utils=2.11.12=h424655f_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=he914875_1
- compiler-rt_osx-64=19.1.7=h138dee1_1
+ - conda=25.9.1=py313habf4b1d_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py313hc551f4f_2
+ - contourpy=1.3.3=py313h5eff275_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py313h0f4d31d_0
- - cpython=3.13.7=py313hd8ed1ab_100
+ - coverage=7.11.1=py313h0f4d31d_0
+ - cpp-expected=1.3.1=h0ba0a54_0
+ - cpython=3.13.9=py313hd8ed1ab_101
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py313h0218d6d_0
- - curl=8.14.1=h5dec5d8_0
+ - cryptography=46.0.3=py313h0218d6d_0
+ - curl=8.17.0=h7dd4100_0
- cxx-compiler=1.11.0=h307afc9_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py313h9f47f76_0
- cysignals=1.12.5=py313hc4a83b5_0
- - cython=3.1.4=py313ha8e042b_2
+ - cython=3.2.0=py313hdeca933_0
- debugpy=1.8.17=py313hff8d55d_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py313h3c055b9_0
- ecl=24.5.10=ha6bf567_1
- eclib=20250627=h28d223a_0
- ecm=7.0.6=h5625669_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=h8616949_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=h21dd04a_0
- fflas-ffpack=2.5.0=h5898d61_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h7a3a4f9_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h37eeddb_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py313h0f4d31d_0
- fortran-compiler=1.11.0=h9ab62e8_0
- fplll=5.5.0=h6ede486_0
- fpylll=0.6.4=py313h454044b_0
- freetype=2.14.1=h694c41f_0
- fribidi=1.0.16=h8616949_0
+ - frozendict=2.4.6=py313h585f44e_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=hb9686a1_5
- - gap-defaults=4.14.0=h694c41f_5
+ - gap-core=4.15.1=h94a3ca4_0
+ - gap-defaults=4.15.1=h694c41f_0
+ - gdk-pixbuf=2.44.4=h07555a4_0
- gf2x=1.3.0=h35ac7d9_3
- gfan=0.6.2=hd793b56_1003
- gfortran=14.3.0=hcc3c99d_0
- - gfortran_impl_osx-64=14.3.0=he320259_1
+ - gfortran_impl_osx-64=14.3.0=h94fe04d_1
- gfortran_osx-64=14.3.0=h3223c34_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=hbf3f340_3
+ - glib-tools=2.86.1=h8650975_1
- glpk=5.0=h3cb5acd_0
- gmp=6.3.0=hf036a51_2
- - gmpy2=2.1.5=py313hc0d4f81_3
+ - gmpy2=2.2.1=py313h904ca6e_1
- graphite2=1.3.14=h21dd04a_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=h42bfd48_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h93259b0_0
+ - gtk3=3.24.43=h5e629aa_6
+ - gts=0.7.6=h53e17e3_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=hc5d3ef4_0
+ - harfbuzz=12.2.0=hc5d3ef4_0
+ - hicolor-icon-theme=0.17=h694c41f_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=h120a0e1_0
- - idna=3.10=pyhd8ed1ab_1
- - igraph=1.0.0=h88b1ca6_0
+ - idna=3.11=pyhd8ed1ab_0
+ - igraph=0.10.17=h88b1ca6_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=h61918c1_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h2e86a7b_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py313habf4b1d_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py313hb91e98b_1
+ - kiwisolver=1.4.9=py313ha1c5e85_2
- krb5=1.21.3=h37d8d59_0
- lcalc=2.1.1=h0f747f7_0
- lcms2=2.17=h72f5680_0
- - ld64=955.13=hc3792c1_4
- - ld64_osx-64=955.13=h466f870_4
+ - ld64=955.13=hc3792c1_9
+ - ld64_osx-64=955.13=llvm19_1_h466f870_9
- lerc=4.0.0=hcca01a6_1
+ - libarchive=3.8.2=gpl_h889603c_100
- libasprintf=0.25.1=h3184127_1
- - libblas=3.9.0=36_he492b99_openblas
+ - libblas=3.9.0=38_he492b99_openblas
- libboost=1.85.0=hcca3243_4
- libboost-devel=1.85.0=h2b186f8_4
- libboost-headers=1.85.0=h694c41f_4
- libbraiding=1.3.1=h240833e_0
- libbrial=1.2.15=hca781cf_0
- - libbrotlicommon=1.1.0=h1c43f85_4
- - libbrotlidec=1.1.0=h1c43f85_4
- - libbrotlienc=1.1.0=h1c43f85_4
- - libcblas=3.9.0=36_h9b27e0a_openblas
+ - libbrotlicommon=1.2.0=h105ed1c_0
+ - libbrotlidec=1.2.0=h660c9da_0
+ - libbrotlienc=1.2.0=h2338291_0
+ - libcblas=3.9.0=38_h9b27e0a_openblas
- libclang-cpp19.1=19.1.7=default_hc369343_5
- - libcurl=8.14.1=h5dec5d8_0
- - libcxx=21.1.2=h3d58e20_0
+ - libcurl=8.17.0=h7dd4100_0
+ - libcxx=21.1.5=h3d58e20_0
- libcxx-devel=19.1.7=h7c275be_1
- - libdeflate=1.24=hcc1b750_0
+ - libdeflate=1.25=h517ebb2_0
- libedit=3.1.20250104=pl5321ha958ccf_0
- libev=4.33=h10d778d_2
- libexpat=2.7.1=h21dd04a_0
- - libffi=3.4.6=h281671d_1
+ - libffi=3.5.2=h750e83c_0
- libflint=3.2.2=h26b1ecd_0
- libfreetype=2.14.1=h694c41f_0
- libfreetype6=2.14.1=h6912278_0
- libgd=2.3.3=h8555400_11
- libgettextpo=0.25.1=h3184127_1
- - libgfortran=15.1.0=h5f6db21_1
+ - libgfortran=15.2.0=h306097a_1
- libgfortran-devel_osx-64=14.3.0=h660b60f_1
- - libgfortran5=15.1.0=hfa3c126_1
- - libglib=2.86.0=h7cafd41_0
+ - libgfortran5=15.2.0=h336fb69_1
+ - libglib=2.86.1=h6ca3a76_1
- libhomfly=1.03=h1c43f85_0
- libiconv=1.18=h57a12c2_2
- libintl=0.25.1=h3184127_1
- - libjpeg-turbo=3.1.0=h6e16a3a_0
- - liblapack=3.9.0=36_h859234e_openblas
- - liblapacke=3.9.0=36_h94b3770_openblas
+ - libjpeg-turbo=3.1.2=h8616949_0
+ - liblapack=3.9.0=38_h859234e_openblas
+ - liblapacke=3.9.0=38_h94b3770_openblas
- libllvm19=19.1.7=h56e7563_2
- liblzma=5.8.1=hd471939_2
- liblzma-devel=5.8.1=hd471939_2
+ - libmamba=2.3.3=hf3f6d74_1
+ - libmambapy=2.3.3=py313h512d30b_1
- libmpdec=4.0.0=h6e16a3a_0
- libnghttp2=1.67.0=h3338091_0
- - libopenblas=0.3.30=openmp_h83c2472_2
+ - libopenblas=0.3.30=openmp_h6006d49_3
- libpng=1.6.50=h84aeda2_1
+ - librsvg=2.60.0=h2da6fc3_0
- libsodium=1.0.20=hfdf4475_0
- - libsqlite=3.50.4=h39a8b3b_0
+ - libsolv=0.7.35=h6fd32b5_0
+ - libsqlite=3.51.0=h86bffb9_0
- libssh2=1.11.1=hed3591d_0
- - libtiff=4.7.1=haa3b502_0
+ - libtiff=4.7.1=ha0a348c_1
- libwebp-base=1.6.0=hb807250_0
- libxcb=1.17.0=hf1f96e2_0
- - libxml2=2.15.0=h7b7ecba_1
- - libxml2-16=2.15.0=ha1d9b0f_1
- - libxml2-devel=2.15.0=h7b7ecba_1
+ - libxml2=2.15.1=h7b7ecba_0
+ - libxml2-16=2.15.1=ha1d9b0f_0
+ - libxml2-devel=2.15.1=h7b7ecba_0
- libzlib=1.3.1=hd23fc13_2
- linbox=1.7.1=h1a86e0a_0
- - llvm-openmp=21.1.2=h472b3d1_3
+ - llvm-openmp=21.1.5=h472b3d1_0
- llvm-tools=19.1.7=hb0207f0_2
- llvm-tools-19=19.1.7=h879f4bc_2
- lrcalc=2.1=hac325c4_7
- lrslib=71.b=hda3377a_1
+ - lz4-c=1.10.0=h240833e_1
+ - lzo=2.10=h4132b18_1002
- m4=1.4.20=h6e16a3a_0
- m4ri=20250128=h95e091b_0
- m4rie=20250128=h95e091b_0
- make=4.4.1=h00291cd_2
- markupsafe=3.0.3=py313h0f4d31d_0
- - matplotlib=3.10.6=py313habf4b1d_1
- - matplotlib-base=3.10.6=py313h4ad75b8_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py313habf4b1d_0
+ - matplotlib-base=3.10.7=py313h4ad75b8_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=h3080a4d_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py313ha37c0e0_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py313h585f44e_2
+ - menuinst=2.4.1=py313habf4b1d_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -238,26 +272,27 @@ dependencies:
- mpfi=1.5.4=h52b28e3_1001
- mpfr=4.2.1=haed47dc_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py313hc551f4f_1
+ - msgpack-python=1.1.2=py313h5eff275_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=h8616949_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h0622a9a_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h0ba0a54_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=h0ab3c2f_1
- - numpy=2.3.3=py313ha99c057_0
- - openblas=0.3.30=openmp_h30af337_2
+ - numpy=2.3.4=py313ha99c057_0
+ - openblas=0.3.30=openmp_h30af337_3
- openjpeg=2.5.4=h87e8dc5_0
- openssl=3.5.4=h230baf5_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=h8616949_0
- - pandoc=3.8.1=h694c41f_0
+ - pandoc=3.8.2.1=h694c41f_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h6ef8af8_0
- pari=2.17.2=h1ed0f1a_5_pthread
@@ -269,15 +304,14 @@ dependencies:
- pcre2=10.46=ha3e7e28_0
- perl=5.32.1=7_h10d778d_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py313hcfd0557_3
+ - pillow=12.0.0=py313he918548_0
- pip=25.2=pyh145f28c_0
- pixman=0.46.4=ha059160_1
- pkg-config=0.29.2=hf7e621a_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=h8616949_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=h8616949_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=ha60d53e_1006
- pplpy=0.8.9=py313h65e192f_2
@@ -286,31 +320,33 @@ dependencies:
- primesieve=12.8=h240833e_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py313hf050af9_0
+ - psutil=7.1.3=py313hcb05632_0
- pthread-stubs=0.4=h00291cd_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py313h585f44e_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py313hb35714d_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py313hcc225dc_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py313heed2c0d_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py313hf050af9_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.13.7=h5eba815_100_cp313
+ - python=3.13.9=h17c18a5_101_cp313
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.13.7=h4df99d1_100
+ - python-gil=3.13.9=h4df99d1_101
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py313h9ea2907_7
- python-symengine=0.14.0=py313ha96cbe4_1
@@ -321,30 +357,33 @@ dependencies:
- pyzmq=27.1.0=py312hb7d603e_0
- qd=2.3.22=h2beb688_1004
- qhull=2020.2=h3c5361c_5
- - r-base=4.4.3=h56b9990_4
+ - r-base=4.4.3=h711e366_5
- r-lattice=0.22_7=r44h735ac91_1
- - rapidfuzz=3.14.1=py313hc4a83b5_0
+ - rapidfuzz=3.14.3=py313hc4a83b5_1
- readline=8.2=h7cca4af_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h6e16a3a_0
+ - reproc-cpp=14.2.5.post0=h240833e_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py313h66e1e84_1
+ - rpds-py=0.28.0=py313hcc225dc_1
- rpy2=3.6.4=py313r44h91f4b35_1
- - ruamel.yaml=0.18.15=py313hf050af9_1
- - ruamel.yaml.clib=0.2.12=py313h585f44e_1
+ - ruamel.yaml=0.18.16=py313hf050af9_0
+ - ruamel.yaml.clib=0.2.14=py313hf050af9_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=hba89d1c_0
- - rw=0.7=1
+ - ruff=0.14.4=hd9f4cfa_0
+ - rw=0.9=h10d778d_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py313h61f8160_0
+ - scipy=1.16.3=py313h61f8160_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h88f4db0_0
+ - simdjson=4.0.7=hcb651aa_0
- singular=4.4.1=haa275bf_1
- sirocco=2.1.0=hfc2cc1e_1
- six=1.17.0=pyhe01879c_1
@@ -361,9 +400,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=h64b5abc_0
+ - sqlite=3.51.0=hca40e9d_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h79ccd14_1
- symmetrica=3.1.0=h8616949_0
- sympow=2.023.6=h7305399_4
@@ -373,35 +412,37 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=hf689a15_2
- tktable=2.10=h2c093e9_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py313h585f44e_1
+ - tornado=6.5.2=py313hf050af9_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h66543e4_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h3315dae_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py313h585f44e_1
- - xattr=1.2.0=py313h6d86140_1
+ - xattr=1.3.0=py313h2960249_1
- xorg-libxau=1.0.12=h6e16a3a_0
- xorg-libxdmcp=1.1.5=h00291cd_0
- xz=5.8.1=h357f2ed_2
- xz-gpl-tools=5.8.1=h357f2ed_2
- xz-tools=5.8.1=hd471939_2
- yaml=0.2.5=h4132b18_3
+ - yaml-cpp=0.8.0=h92383a6_0
- zeromq=4.3.5=h6c33b1e_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=hd23fc13_2
- - zstandard=0.25.0=py313hcb05632_0
+ - zlib-ng=2.2.5=h55e386d_0
+ - zstandard=0.25.0=py313hcb05632_1
- zstd=1.5.7=h8210216_2
diff --git a/environment-3.13-macos.yml b/environment-3.13-macos.yml
index 3080ac1009a..83262aa0f95 100644
--- a/environment-3.13-macos.yml
+++ b/environment-3.13-macos.yml
@@ -1,20 +1,23 @@
name: sage-dev
# Generated by conda-lock.
# platform: osx-arm64
-# input_hash: f69cdaab0c5776f98a4160f45afa4155ddb87c78c9fe43cc12302d6b08af9f51
+# input_hash: dec27d89c8350e911da7441c9becc87fc640a2ef9183df95a10393b47e9e772b
channels:
- conda-forge
dependencies:
- _python_abi3_support=1.0=hd8ed1ab_2
- _r-mutex=1.0.1=anacondar_1
+ - adwaita-icon-theme=49.0=unix_0
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
- appnope=0.1.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- arpack=3.9.1=nompi_h1f29f7c_102
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - atk-1.0=2.38.0=hd03087b_2
+ - attrs=25.4.0=pyh71513ae_0
- autoconf=2.72=pl5321hd3c70e0_1
- automake=1.17=pl5321hce30654_0
- babel=2.17.0=pyhd8ed1ab_0
@@ -22,16 +25,16 @@ dependencies:
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- bdw-gc=8.2.8=h286801f_2
- beautifulsoup4=4.14.2=pyha770c72_0
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_h11c0a38_openblas
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_h11c0a38_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- bliss=0.77=h2ffa867_1
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=h103c1d6_4
- - brotli=1.1.0=h6caf38d_4
- - brotli-bin=1.1.0=h6caf38d_4
- - brotli-python=1.1.0=py313hb4b7877_4
+ - brotli=1.2.0=hca488c2_0
+ - brotli-bin=1.2.0=hce9b42c_0
+ - brotli-python=1.2.0=py313h79bbab8_0
- bwidget=1.10.1=hce30654_1
- bzip2=1.0.8=hd037594_8
- c-ares=1.34.5=h5505292_0
@@ -40,12 +43,12 @@ dependencies:
- cachecontrol=0.14.3=pyha770c72_0
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h6a3b0d2_0
- - cctools=1024.3=hd01ab73_4
- - cctools_osx-arm64=1024.3=h8c76c84_4
+ - cctools=1024.3=hd01ab73_9
+ - cctools_osx-arm64=1024.3=llvm19_1_h8c76c84_9
- cddlib=1!0.94m=h6d7a090_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py313h89bd988_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py313h224173a_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hf9bcbb7_5
- clang-19=19.1.7=default_h73dfc95_5
- clang_impl_osx-arm64=19.1.7=h76e6a08_25
@@ -53,182 +56,213 @@ dependencies:
- clangxx=19.1.7=default_h36137df_5
- clangxx_impl_osx-arm64=19.1.7=h276745f_25
- clangxx_osx-arm64=19.1.7=h07b0088_25
- - click=8.3.0=pyh707e725_0
+ - click=8.1.8=pyh707e725_0
- click-default-group=1.2.4=pyhd8ed1ab_1
- cliquer=1.23=hc919400_0
+ - coin-or-cbc=2.10.12=h0c75da4_4
+ - coin-or-cgl=0.60.9=h24d7dbf_6
+ - coin-or-clp=1.17.10=ha5fe85a_3
+ - coin-or-osi=0.108.11=h95bd113_7
+ - coin-or-utils=2.11.12=hedb6bc8_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h855ad52_1
- compiler-rt_osx-arm64=19.1.7=he32a8d3_1
+ - conda=25.9.1=py313h8f79df9_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyhb3ed7dc_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py313hc50a443_2
+ - contourpy=1.3.3=py313ha61f8ec_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py313h7d74516_0
- - cpython=3.13.7=py313hd8ed1ab_100
+ - coverage=7.11.1=py313h7d74516_0
+ - cpp-expected=1.3.1=h4f10f1e_0
+ - cpython=3.13.9=py313hd8ed1ab_101
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py313h4d9e278_0
- - curl=8.14.1=h73640d1_0
+ - cryptography=46.0.3=py313h4d9e278_0
+ - curl=8.17.0=hdece5d2_0
- cxx-compiler=1.11.0=h88570a1_0
- cycler=0.12.1=pyhd8ed1ab_1
- cypari2=2.2.2=py313ha4cfd47_0
- cysignals=1.12.5=py313h0e822ff_0
- - cython=3.1.4=py313h4e8f416_2
+ - cython=3.2.0=py313h66a7184_0
- debugpy=1.8.17=py313hc37fe24_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- dulwich=0.22.8=py313hdde674f_0
- ecl=24.5.10=hc6c598b_1
- eclib=20250627=h6592c3b_0
- ecm=7.0.6=hdd59bce_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
+ - epoxy=1.5.10=hc919400_2
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hec049ff_0
- fflas-ffpack=2.5.0=h4bc3318_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
+ - fmt=12.0.0=h669d743_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h1383a14_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py313h7d74516_0
- fortran-compiler=1.11.0=h81a4f41_0
- fplll=5.5.0=h2a2278a_0
- fpylll=0.6.4=py313h15e87fc_0
- freetype=2.14.1=hce30654_0
- fribidi=1.0.16=hc919400_0
+ - frozendict=2.4.6=py313hcdf3177_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gap-core=4.14.0=h25f1785_5
- - gap-defaults=4.14.0=hce30654_5
+ - gap-core=4.15.1=h0c23a18_0
+ - gap-defaults=4.15.1=hce30654_0
+ - gdk-pixbuf=2.44.4=h7542897_0
- gf2x=1.3.0=hf8f8af4_3
- gfan=0.6.2=hec08f5c_1003
- gfortran=14.3.0=h3ef1dbf_0
- - gfortran_impl_osx-arm64=14.3.0=h969232b_1
+ - gfortran_impl_osx-arm64=14.3.0=h6d03799_1
- gfortran_osx-arm64=14.3.0=h3c33bd0_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- givaro=4.2.0=h5331fe3_3
+ - glib-tools=2.86.1=hb9d6e3a_1
- glpk=5.0=h6d7a090_0
- gmp=6.3.0=h7bae524_2
- - gmpy2=2.1.5=py313h2cdc120_3
+ - gmpy2=2.2.1=py313h6d8efe1_1
- graphite2=1.3.14=hec049ff_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=hcd33d8b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=h6e638da_0
+ - gtk3=3.24.43=h5febe37_6
+ - gts=0.7.6=he42f4ea_4
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=haf38c7b_0
+ - harfbuzz=12.2.0=haf38c7b_0
+ - hicolor-icon-theme=0.17=hce30654_2
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=hfee45f7_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=0.10.17=h73cadaf_1
- imagesize=1.4.1=pyhd8ed1ab_0
- iml=1.0.5=hd73f12c_1004
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh92f572d_0
- - ipython=9.5.0=pyhfa0c392_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh5552912_0
+ - ipython=9.7.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- isl=0.26=imath32_h347afa1_101
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py313h8f79df9_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh31011fe_0
+ - jupyter_core=5.9.1=pyhc90fa1f_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh534df25_0
- - kiwisolver=1.4.9=py313hf88c9ab_1
+ - kiwisolver=1.4.9=py313h7add70c_2
- krb5=1.21.3=h237132a_0
- lcalc=2.1.1=hdaf6845_0
- lcms2=2.17=h7eeda09_0
- - ld64=955.13=he86490a_4
- - ld64_osx-arm64=955.13=h6922315_4
+ - ld64=955.13=he86490a_9
+ - ld64_osx-arm64=955.13=llvm19_1_h6922315_9
- lerc=4.0.0=hd64df32_1
+ - libarchive=3.8.2=gpl_h46575ef_100
- libasprintf=0.25.1=h493aca8_0
- - libblas=3.9.0=36_h51639a9_openblas
+ - libblas=3.9.0=38_h51639a9_openblas
- libboost=1.85.0=hf763ba5_4
- libboost-devel=1.85.0=hf450f58_4
- libboost-headers=1.85.0=hce30654_4
- libbraiding=1.3.1=h286801f_0
- libbrial=1.2.15=he660457_0
- - libbrotlicommon=1.1.0=h6caf38d_4
- - libbrotlidec=1.1.0=h6caf38d_4
- - libbrotlienc=1.1.0=h6caf38d_4
- - libcblas=3.9.0=36_hb0561ab_openblas
+ - libbrotlicommon=1.2.0=h87ba0bc_0
+ - libbrotlidec=1.2.0=h95a88de_0
+ - libbrotlienc=1.2.0=hb1b9735_0
+ - libcblas=3.9.0=38_hb0561ab_openblas
- libclang-cpp19.1=19.1.7=default_h73dfc95_5
- - libcurl=8.14.1=h73640d1_0
- - libcxx=21.1.2=hf598326_0
+ - libcurl=8.17.0=hdece5d2_0
+ - libcxx=21.1.5=hf598326_0
- libcxx-devel=19.1.7=h6dc3340_1
- - libdeflate=1.24=h5773f1b_0
+ - libdeflate=1.25=hc11a715_0
- libedit=3.1.20250104=pl5321hafb1f1b_0
- libev=4.33=h93a5062_2
- libexpat=2.7.1=hec049ff_0
- - libffi=3.4.6=h1da3d7d_1
+ - libffi=3.5.2=he5f378a_0
- libflint=3.2.2=hf825d4a_0
- libfreetype=2.14.1=hce30654_0
- libfreetype6=2.14.1=h6da58f4_0
- libgd=2.3.3=hb2c3a21_11
- libgettextpo=0.25.1=h493aca8_0
- - libgfortran=15.1.0=hfdf1602_1
+ - libgfortran=15.2.0=hfcf01ff_1
- libgfortran-devel_osx-arm64=14.3.0=hc965647_1
- - libgfortran5=15.1.0=hb74de2c_1
- - libglib=2.86.0=h1bb475b_0
+ - libgfortran5=15.2.0=h742603c_1
+ - libglib=2.86.1=he69a767_1
- libhomfly=1.03=h6caf38d_0
- libiconv=1.18=h23cfdf5_2
- libintl=0.25.1=h493aca8_0
- - libjpeg-turbo=3.1.0=h5505292_0
- - liblapack=3.9.0=36_hd9741b5_openblas
- - liblapacke=3.9.0=36_h1b118fd_openblas
+ - libjpeg-turbo=3.1.2=hc919400_0
+ - liblapack=3.9.0=38_hd9741b5_openblas
+ - liblapacke=3.9.0=38_h1b118fd_openblas
- libllvm19=19.1.7=h8e0c9ce_2
- liblzma=5.8.1=h39f12f2_2
- liblzma-devel=5.8.1=h39f12f2_2
+ - libmamba=2.3.3=h1370271_2
+ - libmambapy=2.3.3=py313h7196231_2
- libmpdec=4.0.0=h5505292_0
- libnghttp2=1.67.0=hc438710_0
- - libopenblas=0.3.30=openmp_h60d53f8_2
+ - libopenblas=0.3.30=openmp_ha158390_3
- libpng=1.6.50=h280e0eb_1
+ - librsvg=2.60.0=h5c55ec3_0
- libsodium=1.0.20=h99b78c6_0
- - libsqlite=3.50.4=h4237e3c_0
+ - libsolv=0.7.35=h5f525b2_0
+ - libsqlite=3.51.0=h8adb53f_0
- libssh2=1.11.1=h1590b86_0
- - libtiff=4.7.1=h7dc4979_0
+ - libtiff=4.7.1=h4030677_1
- libwebp-base=1.6.0=h07db88b_0
- libxcb=1.17.0=hdb1d25a_0
- - libxml2=2.15.0=h9329255_1
- - libxml2-16=2.15.0=h0ff4647_1
- - libxml2-devel=2.15.0=h9329255_1
+ - libxml2=2.15.1=h9329255_0
+ - libxml2-16=2.15.1=h0ff4647_0
+ - libxml2-devel=2.15.1=h9329255_0
- libzlib=1.3.1=h8359307_2
- linbox=1.7.1=h08a833a_0
- - llvm-openmp=21.1.2=h4a912ad_3
+ - llvm-openmp=21.1.5=h4a912ad_0
- llvm-tools=19.1.7=h855ad52_2
- llvm-tools-19=19.1.7=h91fd4e7_2
- lrcalc=2.1=hec049ff_8
+ - lz4-c=1.10.0=h286801f_1
+ - lzo=2.10=h925e9cb_1002
- m4=1.4.20=h5505292_0
- m4ri=20250128=h0f65c67_0
- m4rie=20250128=h0f65c67_0
- make=4.4.1=hc9fafa5_2
- markupsafe=3.0.3=py313h7d74516_0
- - matplotlib=3.10.6=py313h39782a4_1
- - matplotlib-base=3.10.6=py313h58042b9_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py313h39782a4_0
+ - matplotlib-base=3.10.7=py313h58042b9_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- maxima=5.47.0=hd2c4bfb_3
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py313h20a7fcf_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py313hcdf3177_2
+ - menuinst=2.4.1=py313h8f79df9_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- mistune=3.1.4=pyhcf101f3_0
- more-itertools=10.8.0=pyhd8ed1ab_0
@@ -236,26 +270,27 @@ dependencies:
- mpfi=1.5.4=hbde5f5b_1001
- mpfr=4.2.1=hb693164_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py313hc50a443_1
+ - msgpack-python=1.1.2=py313ha61f8ec_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.9.1=hf22a7ee_0
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h5e97a16_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h4f10f1e_0
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
- ntl=11.4.3=hbb3f309_1
- - numpy=2.3.3=py313h9771d21_0
- - openblas=0.3.30=openmp_hea878ba_2
+ - numpy=2.3.4=py313h9771d21_0
+ - openblas=0.3.30=openmp_hea878ba_3
- openjpeg=2.5.4=hbfb3c88_0
- openssl=3.5.4=h5503f6c_0
- packaging=25.0=pyh29332c3_1
- palp=2.21=hc919400_0
- - pandoc=3.8.1=hce30654_0
+ - pandoc=3.8.2.1=hce30654_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- pango=1.56.4=h875632e_0
- pari=2.17.2=h49d18c7_5_pthread
@@ -267,15 +302,14 @@ dependencies:
- pcre2=10.46=h7125dd6_0
- perl=5.32.1=7_h4614cfb_perl5
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py313he4c6d0d_3
+ - pillow=12.0.0=py313h54da0cd_0
- pip=25.2=pyh145f28c_0
- pixman=0.46.4=h81086ad_1
- pkg-config=0.29.2=hde07d2e_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hc919400_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hc919400_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- ppl=1.2=h8b147cf_1006
- pplpy=0.8.9=py313h6afad4e_2
@@ -284,31 +318,33 @@ dependencies:
- primesieve=12.8=h286801f_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py313h6535dbc_0
+ - psutil=7.1.3=py313h9734d34_0
- pthread-stubs=0.4=hd74edd7_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=11=hc364b38_1
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py313hcdf3177_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py313hf3ab51e_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py313h2c089d5_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py313hbf151f7_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py313h6535dbc_0
- pyparsing=3.2.5=pyhcf101f3_0
- pyproject-metadata=0.9.1=pyhd8ed1ab_0
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pysocks=1.7.1=pyha55dd90_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.13.7=h5c937ed_100_cp313
+ - python=3.13.9=hfc2f54d_101_cp313
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.13.7=h4df99d1_100
+ - python-gil=3.13.9=h4df99d1_101
- python-installer=0.7.0=pyhff2d567_1
- python-lrcalc=2.1=py313hb4b7877_8
- python-symengine=0.14.0=py313h17761ef_1
@@ -319,30 +355,33 @@ dependencies:
- pyzmq=27.1.0=py312hd65ceae_0
- qd=2.3.22=hbec66e7_1004
- qhull=2020.2=h420ef59_5
- - r-base=4.4.3=hb7b3c91_4
+ - r-base=4.4.3=h04a9237_5
- r-lattice=0.22_7=r44h6168396_1
- - rapidfuzz=3.14.1=py313h0e822ff_0
+ - rapidfuzz=3.14.3=py313h0e822ff_1
- readline=8.2=h1d1bf99_2
- - referencing=0.36.2=pyh29332c3_0
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h5505292_0
+ - reproc-cpp=14.2.5.post0=h286801f_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py313h80e0809_1
+ - rpds-py=0.28.0=py313h2c089d5_1
- rpy2=3.6.4=py313r44hba5b986_1
- - ruamel.yaml=0.18.15=py313h6535dbc_1
- - ruamel.yaml.clib=0.2.12=py313hcdf3177_1
+ - ruamel.yaml=0.18.16=py313h6535dbc_0
+ - ruamel.yaml.clib=0.2.14=py313h6535dbc_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h492a034_0
+ - ruff=0.14.4=h382de68_0
- rw=0.9=h93a5062_2
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py313h0d10b07_0
+ - scipy=1.16.3=py313h0d10b07_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
- sigtool=0.1.3=h44b9a77_0
+ - simdjson=4.0.7=ha7d2532_0
- singular=4.4.1=h837545d_1
- sirocco=2.1.0=h41f8169_1
- six=1.17.0=pyhe01879c_1
@@ -359,9 +398,9 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hb5dd463_0
+ - sqlite=3.51.0=h81ab1b7_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=hddbed1c_1
- symmetrica=3.1.0=hc919400_0
- sympow=2.023.6=hc13a52f_4
@@ -371,35 +410,37 @@ dependencies:
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h892fb3f_2
- tktable=2.10=h3c7de25_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py313hcdf3177_1
+ - tornado=6.5.2=py313h6535dbc_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- tzlocal=5.3.1=pyh8f84b5b_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=h194b5f9_0
- - virtualenv=20.34.0=pyhd8ed1ab_0
+ - uv=0.9.8=h1bde295_0
+ - virtualenv=20.35.4=pyhd8ed1ab_0
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- wrapt=1.17.3=py313hcdf3177_1
- - xattr=1.2.0=py313he42fbfc_1
+ - xattr=1.3.0=py313h41b806d_1
- xorg-libxau=1.0.12=h5505292_0
- xorg-libxdmcp=1.1.5=hd74edd7_0
- xz=5.8.1=h9a6d368_2
- xz-gpl-tools=5.8.1=h9a6d368_2
- xz-tools=5.8.1=h39f12f2_2
- yaml=0.2.5=h925e9cb_3
+ - yaml-cpp=0.8.0=ha1acc90_0
- zeromq=4.3.5=h888dc83_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h8359307_2
- - zstandard=0.25.0=py313h9734d34_0
+ - zlib-ng=2.2.5=h3470cca_0
+ - zstandard=0.25.0=py313h9734d34_1
- zstd=1.5.7=h6491c7d_2
diff --git a/environment-3.13-win.yml b/environment-3.13-win.yml
index bf23e391447..8595ab366a6 100644
--- a/environment-3.13-win.yml
+++ b/environment-3.13-win.yml
@@ -1,7 +1,7 @@
name: sage-dev
# Generated by conda-lock.
# platform: win-64
-# input_hash: f4b04654e48d28bf58d7dc20604e4ceb00343d0ba41c3bb9bdce898c9db2c6a3
+# input_hash: 367064b5503c4b1f6faef7f35bd9fcc0b0341971939a0356ade5ec1fc004c649
channels:
- conda-forge
@@ -12,22 +12,23 @@ dependencies:
- alabaster=1.0.0=pyhd8ed1ab_1
- annotated-types=0.7.0=pyhd8ed1ab_1
- appdirs=1.4.4=pyhd8ed1ab_1
+ - archspec=0.2.5=pyhd8ed1ab_0
- asttokens=3.0.0=pyhd8ed1ab_1
- - attrs=25.3.0=pyh71513ae_0
+ - attrs=25.4.0=pyh71513ae_0
- babel=2.17.0=pyhd8ed1ab_0
- backports=1.0=pyhd8ed1ab_5
- backports.tarfile=1.2.0=pyhd8ed1ab_1
- beautifulsoup4=4.14.2=pyha770c72_0
- - binutils_impl_win-64=2.44=h095e170_2
- - blas=2.136=openblas
- - blas-devel=3.9.0=36_ha590de0_openblas
+ - binutils_impl_win-64=2.44=h1226360_4
+ - blas=2.138=openblas
+ - blas-devel=3.9.0=38_ha590de0_openblas
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- boltons=25.0.0=pyhd8ed1ab_0
- boost-cpp=1.85.0=ha5ead02_4
- - brotli=1.1.0=hfd05255_4
- - brotli-bin=1.1.0=hfd05255_4
- - brotli-python=1.1.0=py313hfe59770_4
+ - brotli=1.2.0=h17ff524_0
+ - brotli-bin=1.2.0=h6910e44_0
+ - brotli-python=1.2.0=py313hf510273_0
- bwidget=1.10.1=h57928b3_1
- bzip2=1.0.8=h0ad9c76_8
- ca-certificates=2025.10.5=h4c7d964_0
@@ -35,191 +36,224 @@ dependencies:
- cachecontrol-with-filecache=0.14.3=pyhd8ed1ab_0
- cairo=1.18.4=h5782bbf_0
- certifi=2025.10.5=pyhd8ed1ab_0
- - cffi=2.0.0=py313h5ea7bf4_0
- - charset-normalizer=3.4.3=pyhd8ed1ab_0
+ - cffi=2.0.0=py313h5ea7bf4_1
+ - charset-normalizer=3.4.4=pyhd8ed1ab_0
- clang=19.1.7=default_hac490eb_5
- clang-19=19.1.7=default_hac490eb_5
- - click=8.3.0=pyh7428d3b_0
+ - click=8.1.8=pyh7428d3b_0
- click-default-group=1.2.4=pyhd8ed1ab_1
+ - coin-or-cbc=2.10.12=hd3ed8bd_4
+ - coin-or-cgl=0.60.9=hacf86d0_6
+ - coin-or-clp=1.17.10=h626fd10_3
+ - coin-or-osi=0.108.11=h5b68f48_7
+ - coin-or-utils=2.11.12=hdb10741_6
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.3=pyhe01879c_0
- compiler-rt=19.1.7=h49e36cd_1
- compiler-rt_win-64=19.1.7=h49e36cd_1
+ - conda=25.9.1=py313hfa70ccb_0
+ - conda-libmamba-solver=25.4.0=pyhd8ed1ab_0
- conda-lock=3.0.4=pyha6a9232_1
+ - conda-package-handling=2.4.0=pyh7900ff3_2
+ - conda-package-streaming=0.12.0=pyhd8ed1ab_0
+ - conda-recipe-manager=0.8.1=pyhd8ed1ab_0
- conda-souschef=2.2.3=pyhd8ed1ab_0
- - contourpy=1.3.3=py313hf069bd2_2
+ - contourpy=1.3.3=py313hf069bd2_3
- conway-polynomials=0.10=pyhd8ed1ab_1
- - coverage=7.10.7=py313hd650c13_0
- - cpython=3.13.7=py313hd8ed1ab_100
+ - coverage=7.11.1=py313hd650c13_0
+ - cpp-expected=1.3.1=h477610d_0
+ - cpython=3.13.9=py313hd8ed1ab_101
- crashtest=0.4.1=pyhd8ed1ab_1
- - cryptography=46.0.2=py313h392ebe0_0
- - curl=8.14.1=h88aaa65_0
+ - cryptography=46.0.3=py313h392ebe0_0
+ - curl=8.17.0=h43ecb02_0
- cycler=0.12.1=pyhd8ed1ab_1
- cysignals=1.12.5=py313hfe59770_0
- - cython=3.1.4=py313hb1c8229_2
+ - cython=3.2.0=py313h560b0a0_0
- debugpy=1.8.17=py313h927ade5_0
- decorator=5.2.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- - deprecated=1.2.18=pyhd8ed1ab_0
+ - deprecated=1.3.1=pyhd8ed1ab_0
- distlib=0.4.0=pyhd8ed1ab_0
+ - distro=1.9.0=pyhd8ed1ab_1
- docutils=0.21.2=pyhd8ed1ab_1
- double-conversion=3.3.1=he0c23c2_0
- dulwich=0.22.8=py313hf3b5b86_0
- - ensureconda=1.4.7=pyh29332c3_0
+ - ensureconda=1.6.0=pyhcf101f3_0
- exceptiongroup=1.3.0=pyhd8ed1ab_0
- execnet=2.1.1=pyhd8ed1ab_1
- executing=2.2.1=pyhd8ed1ab_0
- expat=2.7.1=hac47afa_0
- - filelock=3.19.1=pyhd8ed1ab_0
+ - filelock=3.20.0=pyhd8ed1ab_0
- flake8=7.3.0=pyhd8ed1ab_0
- - flake8-rst-docstrings=0.3.1=pyhd8ed1ab_0
+ - flake8-rst-docstrings=0.4.0=pyhd8ed1ab_0
- flang=19.1.7=hbeecb71_0
- flang_impl_win-64=19.1.7=h719f0c7_0
- flang_win-64=19.1.7=h719f0c7_0
+ - fmt=12.0.0=h29169d4_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_3
- fontconfig=2.15.0=h765892d_1
- fonts-conda-ecosystem=1=0
- - fonts-conda-forge=1=0
+ - fonts-conda-forge=1=hc364b38_1
- fonttools=4.60.1=py313hd650c13_0
- fortran-compiler=1.11.0=h95e3450_0
- freetype=2.14.1=h57928b3_0
+ - fribidi=1.0.16=hfd05255_0
+ - frozendict=2.4.6=py313h5ea7bf4_1
- furo=2024.8.6=pyhd8ed1ab_2
- - gcc_impl_win-64=15.1.0=hb5bc704_5
- - gfortran_impl_win-64=15.1.0=h792c6fe_5
+ - gcc_impl_win-64=15.2.0=h90e0b34_7
+ - getopt-win32=0.1=h6a83c73_3
+ - gfortran_impl_win-64=15.2.0=hd3d1e43_7
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.45=pyhff2d567_0
- glpk=5.0=h8ffe710_0
- gmp=6.3.0=hfeafd45_2
- - gmpy2=2.1.5=py313h0a46711_3
+ - gmpy2=2.2.1=py313hb6bface_1
- graphite2=1.3.14=hac47afa_2
- - grayskull=2.9.1=pyhd8ed1ab_0
+ - graphviz=13.1.2=ha5e8f4b_0
+ - grayskull=2.9.2=pyhcf101f3_0
- gsl=2.7=hdfb1a43_0
- - gxx_impl_win-64=15.1.0=h91e354b_5
+ - gts=0.7.6=h6b5321d_4
+ - gxx_impl_win-64=15.2.0=h4517dcd_7
- h2=4.3.0=pyhcf101f3_0
- - harfbuzz=12.1.0=h5f2951f_0
+ - harfbuzz=12.2.0=h5f2951f_0
- hpack=4.1.0=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he0c23c2_0
- - idna=3.10=pyhd8ed1ab_1
+ - idna=3.11=pyhd8ed1ab_0
- igraph=1.0.0=h9eeb67d_0
- imagesize=1.4.1=pyhd8ed1ab_0
- importlib-metadata=8.7.0=pyhe01879c_1
- importlib_resources=6.5.2=pyhd8ed1ab_0
- - iniconfig=2.0.0=pyhd8ed1ab_1
- - ipykernel=6.30.1=pyh3521513_0
- - ipython=9.5.0=pyh6be1c34_0
+ - iniconfig=2.3.0=pyhd8ed1ab_0
+ - ipykernel=7.1.0=pyh6dadd2b_0
+ - ipython=9.7.0=pyhe2676ad_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- - ipywidgets=8.1.7=pyhd8ed1ab_0
+ - ipywidgets=8.1.8=pyhd8ed1ab_0
- jaraco.classes=3.4.0=pyhd8ed1ab_2
- jaraco.context=6.0.1=pyhd8ed1ab_0
- jaraco.functools=4.3.0=pyhd8ed1ab_0
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
+ - jsonpatch=1.33=pyhd8ed1ab_1
+ - jsonpointer=3.0.0=py313hfa70ccb_2
- jsonschema=4.25.1=pyhe01879c_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jupyter-sphinx=0.5.3=pyha770c72_5
- jupyter_client=8.6.3=pyhd8ed1ab_1
- - jupyter_core=5.8.1=pyh5737063_0
+ - jupyter_core=5.9.1=pyh6dadd2b_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0
+ - jupyterlab_widgets=3.0.16=pyhcf101f3_1
- keyring=25.6.0=pyh7428d3b_0
- - kiwisolver=1.4.9=py313h1a38498_1
+ - kiwisolver=1.4.9=py313h1a38498_2
- krb5=1.21.3=hdf4eb48_0
- lcms2=2.17=hbcf6048_0
- - ld_impl_win-64=2.44=hae1bf67_2
+ - ld_impl_win-64=2.44=h13c207b_4
- lerc=4.0.0=h6470a55_1
- - libblas=3.9.0=36_h0adab6e_openblas
+ - libarchive=3.8.2=gpl_h26aea39_100
+ - libblas=3.9.0=38_h0adab6e_openblas
- libboost=1.85.0=h444863b_4
- libboost-devel=1.85.0=h91493d7_4
- libboost-headers=1.85.0=h57928b3_4
- - libbrotlicommon=1.1.0=hfd05255_4
- - libbrotlidec=1.1.0=hfd05255_4
- - libbrotlienc=1.1.0=hfd05255_4
- - libcblas=3.9.0=36_h2a8eebe_openblas
- - libclang13=21.1.2=default_ha2db4b5_1
- - libcurl=8.14.1=h88aaa65_0
- - libdeflate=1.24=h76ddb4d_0
+ - libbrotlicommon=1.2.0=hc82b238_0
+ - libbrotlidec=1.2.0=h431afc6_0
+ - libbrotlienc=1.2.0=ha521d6b_0
+ - libcblas=3.9.0=38_h2a8eebe_openblas
+ - libclang13=21.1.5=default_ha2db4b5_0
+ - libcurl=8.17.0=h43ecb02_0
+ - libdeflate=1.25=h51727cc_0
- libexpat=2.7.1=hac47afa_0
- - libffi=3.4.6=h537db12_1
+ - libffi=3.5.2=h52bdfb6_0
- libflang=19.1.7=he0c23c2_0
- libflint=3.2.2=h4de658f_0
- libfreetype=2.14.1=h57928b3_0
- libfreetype6=2.14.1=hdbac1cb_0
- - libgcc=15.1.0=h1383e82_5
- - libgcc-devel_win-64=15.1.0=hec057c1_105
+ - libgcc=15.2.0=h1383e82_7
+ - libgcc-devel_win-64=15.2.0=h40631e7_107
- libgd=2.3.3=h7208af6_11
- - libgfortran=15.1.0=h719f0c7_5
- - libgfortran5=15.1.0=h997fb6f_5
- - libglib=2.86.0=h5f26cbf_0
- - libgomp=15.1.0=h1383e82_5
+ - libgfortran=15.2.0=h719f0c7_7
+ - libgfortran5=15.2.0=hf2bee02_7
+ - libglib=2.86.1=hd9c3897_1
+ - libgomp=15.2.0=h1383e82_7
+ - libhwloc=2.12.1=default_h64bd3f2_1002
- libiconv=1.18=hc1393d2_2
- libintl=0.22.5=h5728263_3
- - libjpeg-turbo=3.1.0=h2466b09_0
- - liblapack=3.9.0=36_hd232482_openblas
- - liblapacke=3.9.0=36_hbb0e6ff_openblas
+ - libjpeg-turbo=3.1.2=hfd05255_0
+ - liblapack=3.9.0=38_hd232482_openblas
+ - liblapacke=3.9.0=38_hbb0e6ff_openblas
- libllvm19=19.1.7=h830ff33_2
- liblzma=5.8.1=h2466b09_2
- liblzma-devel=5.8.1=h2466b09_2
+ - libmamba=2.3.3=h5fbfb43_1
+ - libmambapy=2.3.3=py313h17165e1_1
- libmpdec=4.0.0=h2466b09_0
- - libopenblas=0.3.30=pthreads_ha4fe6b2_2
+ - libopenblas=0.3.30=pthreads_ha4fe6b2_3
- libpng=1.6.50=h7351971_1
- libsodium=1.0.20=hc70643c_0
- - libsqlite=3.50.4=hf5d6505_0
+ - libsolv=0.7.35=h8883371_0
+ - libsqlite=3.51.0=hf5d6505_0
- libssh2=1.11.1=h9aa295b_0
- - libstdcxx=15.1.0=h904f734_5
- - libstdcxx-devel_win-64=15.1.0=hec057c1_105
- - libtiff=4.7.1=h550210a_0
- - libvulkan-loader=1.4.313.0=h477610d_1
+ - libstdcxx=15.2.0=h904f734_7
+ - libstdcxx-devel_win-64=15.2.0=h40631e7_107
+ - libtiff=4.7.1=h8f73337_1
+ - libvulkan-loader=1.4.328.1=h477610d_0
- libwebp-base=1.6.0=h4d5522a_0
- - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- libxcb=1.17.0=h0e4246c_0
- - libxml2=2.15.0=ha29bfb0_1
- - libxml2-16=2.15.0=h06f855e_1
- - libxml2-devel=2.15.0=ha29bfb0_1
+ - libxml2=2.15.1=ha29bfb0_0
+ - libxml2-16=2.15.1=h06f855e_0
+ - libxml2-devel=2.15.1=ha29bfb0_0
- libxslt=1.1.43=h0fbe4c1_1
- libzlib=1.3.1=h2466b09_2
- - lld=21.1.2=hc465015_0
+ - lld=21.1.5=hc465015_0
+ - llvm-openmp=21.1.5=hfa2b4ca_0
- llvm-tools=19.1.7=h752b59f_2
- - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - lz4-c=1.10.0=h2466b09_1
+ - lzo=2.10=h6a83c73_1002
+ - m2-conda-epoch=20250515=0_x86_64
+ - m2w64-sysroot_win-64=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- m4ri=20250128=h26c196c_0
- markupsafe=3.0.3=py313hd650c13_0
- - matplotlib=3.10.6=py313hfa70ccb_1
- - matplotlib-base=3.10.6=py313he1ded55_1
- - matplotlib-inline=0.1.7=pyhd8ed1ab_1
+ - matplotlib=3.10.7=py313hfa70ccb_0
+ - matplotlib-base=3.10.7=py313he1ded55_0
+ - matplotlib-inline=0.2.1=pyhd8ed1ab_0
- mccabe=0.7.0=pyhd8ed1ab_1
- - memory-allocator=0.1.3=py313ha7868ed_1
- - meson=1.9.0=pyhcf101f3_0
+ - memory-allocator=0.1.3=py313h5ea7bf4_2
+ - menuinst=2.4.1=py313hfe59770_0
+ - meson=1.9.1=pyhcf101f3_0
- meson-python=0.18.0=pyh70fd9c4_0
- - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
- - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-crt-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
+ - mingw-w64-ucrt-x86_64-headers-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mingw-w64-ucrt-x86_64-windows-default-manifest=6.4=he206cdd_7
- - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=h7428d3b_9
+ - mingw-w64-ucrt-x86_64-winpthreads-git=12.0.0.r4.gg4f2fc60ca=hd8ed1ab_10
- mistune=3.1.4=pyhcf101f3_0
+ - mkl=2024.2.2=h57928b3_16
- more-itertools=10.8.0=pyhd8ed1ab_0
- mpc=1.3.1=h72bc38f_1
- mpfr=4.2.1=hbc20e70_3
- mpmath=1.3.0=pyhd8ed1ab_1
- - msgpack-python=1.1.1=py313hf069bd2_1
+ - msgpack-python=1.1.2=py313hf069bd2_1
- munkres=1.1.4=pyhd8ed1ab_1
- nauty=2.6.11=h2fa13f4_1
- nbclient=0.10.2=pyhd8ed1ab_0
- - nbconvert=7.16.6=hb482800_0
- - nbconvert-core=7.16.6=pyh29332c3_0
- - nbconvert-pandoc=7.16.6=hed9df3c_0
+ - nbconvert=7.16.6=hc388f54_1
+ - nbconvert-core=7.16.6=pyhcf101f3_1
+ - nbconvert-pandoc=7.16.6=h7d6f222_1
- nbformat=5.10.4=pyhd8ed1ab_1
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- networkx=3.5=pyhe01879c_0
- ninja=1.13.1=h477610d_0
- - numpy=2.3.3=py313hce7ae62_0
- - openblas=0.3.30=pthreads_h4a7f399_2
+ - nlohmann_json-abi=3.12.0=h0f90c79_1
+ - numpy=2.3.4=py313hce7ae62_0
+ - openblas=0.3.30=pthreads_h4a7f399_3
- openjpeg=2.5.4=h24db6dd_0
- openssl=3.5.4=h725018a_0
- packaging=25.0=pyh29332c3_1
- - pandoc=3.8.1=h57928b3_0
+ - pandoc=3.8.2.1=h57928b3_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
+ - pango=1.56.4=h03d888a_0
- pari=2.17.2=h637a547_5_pthread
- pari-elldata=0.0.20161017=0
- pari-galdata=0.0.20180411=0
@@ -229,31 +263,32 @@ dependencies:
- pcre2=10.46=h3402e2f_0
- perl=5.32.1.1=7_h57928b3_strawberry
- pexpect=4.9.0=pyhd8ed1ab_1
- - pickleshare=0.7.5=pyhd8ed1ab_1004
- - pillow=11.3.0=py313hf455b62_3
+ - pillow=12.0.0=py313hf6db949_0
- pip=25.2=pyh145f28c_0
- pixman=0.46.4=h5112557_1
- pkg-config=0.29.2=h88c491f_1009
- pkgconfig=1.5.5=pyhd8ed1ab_5
- pkginfo=1.12.1.2=pyhd8ed1ab_0
- - planarity=4.0.0.0=hfd05255_0
- - platformdirs=4.4.0=pyhcf101f3_0
+ - planarity=4.0.1.0=hfd05255_0
+ - platformdirs=4.5.0=pyhcf101f3_0
- pluggy=1.6.0=pyhd8ed1ab_0
- - primesieve=12.8=he0c23c2_0
+ - primesieve=12.10=hac47afa_0
- progressbar2=4.5.0=pyhd8ed1ab_1
- prompt-toolkit=3.0.52=pyha770c72_0
- - psutil=7.1.0=py313h5ea7bf4_0
+ - psutil=7.1.3=py313h5fd188c_0
- pthread-stubs=0.4=h0e40799_1002
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
+ - pybind11-abi=4=hd8ed1ab_3
- pycodestyle=2.14.0=pyhd8ed1ab_0
- pycosat=0.6.6=py313h5ea7bf4_3
- pycparser=2.22=pyh29332c3_1
- - pydantic=2.11.10=pyh3cfb1c2_0
- - pydantic-core=2.33.2=py313ha8a9a3c_0
+ - pydantic=2.12.4=pyh3cfb1c2_0
+ - pydantic-core=2.41.5=py313hfbe8231_0
- pyflakes=3.4.0=pyhd8ed1ab_0
- pygithub=2.8.1=pyhd8ed1ab_0
- pygments=2.19.2=pyhd8ed1ab_0
+ - pygraphviz=1.14=py313ha0607a2_2
- pyjwt=2.10.1=pyhd8ed1ab_0
- pynacl=1.6.0=py313h5ea7bf4_0
- pyparsing=3.2.5=pyhcf101f3_0
@@ -261,44 +296,47 @@ dependencies:
- pyproject_hooks=1.2.0=pyhd8ed1ab_1
- pyside6=6.9.3=py313h475ba69_1
- pysocks=1.7.1=pyh09c184e_7
- - pytest=8.4.2=pyhd8ed1ab_0
+ - pytest=8.4.2=pyhcf101f3_1
- pytest-xdist=3.8.0=pyhd8ed1ab_0
- - python=3.13.7=hdf00ec1_100_cp313
+ - python=3.13.9=h09917c8_101_cp313
- python-build=1.3.0=pyhff2d567_0
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- - python-gil=3.13.7=h4df99d1_100
+ - python-gil=3.13.9=h4df99d1_101
- python-installer=0.7.0=pyhff2d567_1
- python-symengine=0.14.0=py313h9ea13ff_1
- python-utils=3.9.1=pyhff2d567_1
- python_abi=3.13=8_cp313
- pytz=2025.2=pyhd8ed1ab_0
- pywin32=311=py313h40c08fc_1
- - pywin32-ctypes=0.2.3=py313hfa70ccb_2
+ - pywin32-ctypes=0.2.3=py313hfa70ccb_3
- pyyaml=6.0.3=py313hd650c13_0
- pyzmq=27.1.0=py312hbb5da91_0
- qhull=2020.2=hc790b64_5
- - qt6-main=6.9.3=ha0de62e_0
- - r-base=4.5.1=h4076d79_3
+ - qt6-main=6.9.3=ha0de62e_1
+ - r-base=4.5.2=hd292d57_1
- r-lattice=0.22_7=r45heceb674_1
- - rapidfuzz=3.14.1=py313hfe59770_0
- - referencing=0.36.2=pyh29332c3_0
+ - rapidfuzz=3.14.3=py313hfe59770_1
+ - referencing=0.37.0=pyhcf101f3_0
+ - reproc=14.2.5.post0=h2466b09_0
+ - reproc-cpp=14.2.5.post0=he0c23c2_0
- requests=2.32.5=pyhd8ed1ab_0
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- restructuredtext_lint=1.4.0=pyhd8ed1ab_1
- roman-numerals-py=3.1.0=pyhd8ed1ab_0
- - rpds-py=0.27.1=py313hfbe8231_1
- - ruamel.yaml=0.18.15=py313h5ea7bf4_1
- - ruamel.yaml.clib=0.2.12=py313h5ea7bf4_1
+ - rpds-py=0.28.0=py313hfbe8231_1
+ - ruamel.yaml=0.18.16=py313h5ea7bf4_0
+ - ruamel.yaml.clib=0.2.14=py313h5ea7bf4_0
- ruamel.yaml.jinja2=0.2.7=pyhd8ed1ab_1
- - ruff=0.13.3=h3e3edff_0
+ - ruff=0.14.4=h15e3a1f_0
- sagemath-db-elliptic-curves=0.8.1=hecc5488_0
- sagemath-db-graphs=20210214=hd8ed1ab_0
- sagemath-db-polytopes=20170220=1
- - scipy=1.16.2=py313h62a08ca_0
+ - scipy=1.16.3=py313h62a08ca_0
- semver=3.0.4=pyhd8ed1ab_0
- setuptools=80.9.0=pyhff2d567_0
- shellingham=1.5.4=pyhd8ed1ab_1
+ - simdjson=4.0.7=h49e36cd_0
- six=1.17.0=pyhe01879c_1
- smmap=5.0.2=pyhd8ed1ab_0
- snowballstemmer=3.0.1=pyhd8ed1ab_0
@@ -313,42 +351,43 @@ dependencies:
- sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
- sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
- sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
- - sqlite=3.50.4=hdb435a2_0
+ - sqlite=3.51.0=hdb435a2_0
- stack_data=0.6.3=pyhd8ed1ab_1
- - stdlib-list=0.11.1=pyhd8ed1ab_0
+ - stdlib-list=0.12.0=pyhd8ed1ab_0
- symengine=0.14.0=h1ba984b_1
- symmetrica=3.1.0=h1056bf2_0
- sympy=1.14.0=pyh04b8f61_5
+ - tbb=2021.13.0=hd094cb3_4
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h2c6b04d_2
- tktable=2.10=h7e9e0db_7
- - toml=0.10.2=pyhd8ed1ab_1
- - tomli=2.2.1=pyhe01879c_2
+ - tomli=2.3.0=pyhcf101f3_0
- tomli-w=1.2.0=pyhd8ed1ab_0
- tomlkit=0.13.3=pyha770c72_0
- - tornado=6.5.2=py313h5ea7bf4_1
+ - tornado=6.5.2=py313h5ea7bf4_2
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- trove-classifiers=2025.9.11.17=pyhd8ed1ab_0
+ - truststore=0.10.3=pyhe01879c_0
- typing-extensions=4.15.0=h396c80c_0
- typing-inspection=0.4.2=pyhd8ed1ab_0
- typing_extensions=4.15.0=pyhcf101f3_0
- tzdata=2025b=h78e105d_0
- ucrt=10.0.26100.0=h57928b3_0
- urllib3=2.5.0=pyhd8ed1ab_0
- - uv=0.8.22=ha1006f7_0
- - vc=14.3=h41ae7f8_31
- - vc14_runtime=14.44.35208=h818238b_31
- - vcomp14=14.44.35208=h818238b_31
- - virtualenv=20.34.0=pyhd8ed1ab_0
- - vs2015_runtime=14.44.35208=h38c0c73_31
- - vs2022_win-64=19.44.35207=ha74f236_31
+ - uv=0.9.8=h3bd95fe_0
+ - vc=14.3=h2b53caa_32
+ - vc14_runtime=14.44.35208=h818238b_32
+ - vcomp14=14.44.35208=h818238b_32
+ - virtualenv=20.35.4=pyhd8ed1ab_0
+ - vs2015_runtime=14.44.35208=h38c0c73_32
+ - vs2022_win-64=19.44.35207=ha74f236_32
- vswhere=3.1.7=h40126e0_1
- wcwidth=0.2.14=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- - widgetsnbextension=4.0.14=pyhd8ed1ab_0
+ - widgetsnbextension=4.0.15=pyhd8ed1ab_0
- win_inet_pton=1.1.0=pyh7428d3b_8
- - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_9
+ - winpthreads-devel=12.0.0.r4.gg4f2fc60ca=h57928b3_10
- wrapt=1.17.3=py313h5ea7bf4_1
- xorg-libice=1.1.2=h0e40799_0
- xorg-libsm=1.2.6=h0e40799_0
@@ -361,8 +400,10 @@ dependencies:
- xz=5.8.1=h208afaa_2
- xz-tools=5.8.1=h2466b09_2
- yaml=0.2.5=h6a83c73_3
+ - yaml-cpp=0.8.0=he0c23c2_0
- zeromq=4.3.5=h5bddc39_9
- zipp=3.23.0=pyhd8ed1ab_0
- zlib=1.3.1=h2466b09_2
- - zstandard=0.25.0=py313h5fd188c_0
+ - zlib-ng=2.2.5=h32d8bfd_0
+ - zstandard=0.25.0=py313h5fd188c_1
- zstd=1.5.7=hbeecb71_2
diff --git a/pyproject.toml b/pyproject.toml
index f615d222af8..adcd71f0803 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -93,7 +93,6 @@ extra = [
#'p_group_cohomology >=3.3', # Only used in tests, not available on PyPI
'pycosat >=0.6.3',
'pynormaliz >=2.18; platform_machine != "aarch64" and platform_machine != "arm64"', # Not yet available for Linux aarch64
- 'sage_numerical_backends_coin',
'symengine >= 0.6.1', # Only used in tests
]
#giac = ['sagemath_giac'] # Not yet available on PyPI (https://github.com/sagemath/sagemath-giac/issues/3)
@@ -182,6 +181,7 @@ dependencies = [
extra = [
"pkg:generic/bliss",
"pkg:generic/brial",
+ "pkg:generic/cbc",
"pkg:generic/coxeter3",
"pkg:generic/eclib",
"pkg:generic/mcqd",
diff --git a/src/doc/en/thematic_tutorials/linear_programming.rst b/src/doc/en/thematic_tutorials/linear_programming.rst
index 4baf2936f93..36611054794 100644
--- a/src/doc/en/thematic_tutorials/linear_programming.rst
+++ b/src/doc/en/thematic_tutorials/linear_programming.rst
@@ -448,9 +448,10 @@ following libraries are currently supported:
`COIN-OR `_,
provided under the Eclipse Public License (EPL), which is an open source
license but incompatible with GPL. CBC and the Sage CBC backend can be
- installed using the shell command::
+ installed by enabling cbc::
- $ sage -i -c sage_numerical_backends_coin
+ $ ./configure --enable-cbc=yes # other options omitted
+ $ make # possibly build cbc, rebuild sagelib using it
* `CPLEX
`_:
diff --git a/src/sage/combinat/bijectionist.py b/src/sage/combinat/bijectionist.py
index 3e03063a1a7..677fd2537f6 100644
--- a/src/sage/combinat/bijectionist.py
+++ b/src/sage/combinat/bijectionist.py
@@ -159,8 +159,8 @@
sage: bij.set_statistics((lambda a: a.size(), lambda b: b.number_of_nodes()-1))
sage: from sage.combinat.cyclic_sieving_phenomenon import orbit_decomposition
sage: bij.set_constant_blocks(orbit_decomposition(A, theta))
- sage: list(bij.solutions_iterator())
- []
+ sage: len(list(bij.solutions_iterator()))
+ 0
Next we demonstrate how to search for a bijection. To do so, we identify `s`
and `S`::
diff --git a/src/sage/features/mip_backends.py b/src/sage/features/mip_backends.py
index 98b4766c1f5..736754836ba 100644
--- a/src/sage/features/mip_backends.py
+++ b/src/sage/features/mip_backends.py
@@ -84,7 +84,8 @@ def __init__(self):
"""
JoinFeature.__init__(self, 'sage_numerical_backends_coin',
[MIPBackend('coin')],
- spkg='sage_numerical_backends_coin')
+ spkg='cbc',
+ type='optional')
class CVXOPT(JoinFeature):
diff --git a/src/sage/numerical/backends/coin_backend.pxd b/src/sage/numerical/backends/coin_backend.pxd
new file mode 100644
index 00000000000..8cab06264dc
--- /dev/null
+++ b/src/sage/numerical/backends/coin_backend.pxd
@@ -0,0 +1,211 @@
+#*****************************************************************************
+# Copyright (C) 2010-2015 Nathann Cohen
+# Copyright (C) 2010 Martin Albrecht
+# Copyright (C) 2012 John Perry
+# Copyright (C) 2012-2019 Jeroen Demeyer
+# Copyright (C) 2013 Julien Puydt
+# Copyright (C) 2014 Nils Bruin
+# Copyright (C) 2014-2018 Dima Pasechnik
+# Copyright (C) 2015 Yuan Zhou
+# Copyright (C) 2015 Zeyi Wang
+# Copyright (C) 2016 Matthias Koeppe
+# Copyright (C) 2017 Jori Mäntysalo
+# Copyright (C) 2018 Erik M. Bray
+# Copyright (C) 2019 David Coudert
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+# https://www.gnu.org/licenses/
+#*****************************************************************************
+
+from sage.numerical.backends.generic_backend cimport GenericBackend
+
+from libcpp cimport bool
+
+
+cdef extern from "CbcStrategy.hpp":
+ cdef cppclass CbcStrategy:
+ pass
+ cdef cppclass CbcStrategyDefault(CbcStrategy):
+ CbcStrategyDefault()
+
+cdef extern from "CoinPackedVectorBase.hpp":
+ cdef cppclass CoinPackedVectorBase:
+ pass
+
+cdef extern from "CoinPackedVector.hpp":
+ cdef cppclass CoinPackedVector(CoinPackedVectorBase):
+ void insert(float, float)
+
+cdef extern from "CoinShallowPackedVector.hpp":
+ cdef cppclass CoinShallowPackedVector:
+ void insert(float, float)
+ int * getIndices ()
+ double * getElements ()
+ int getNumElements ()
+
+cdef extern from "CoinPackedMatrix.hpp":
+ cdef cppclass CoinPackedMatrix:
+ void setDimensions(int, int)
+ void appendRow(CoinPackedVector)
+ CoinShallowPackedVector getVector(int)
+
+cdef extern from "CoinMessageHandler.hpp":
+ cdef cppclass CoinMessageHandler:
+ void setLogLevel (int)
+ int LogLevel ()
+
+
+cdef extern from "OsiSolverParameters.hpp":
+ cdef enum OsiIntParam:
+ OsiMaxNumIteration = 0, OsiMaxNumIterationHotStart, OsiNameDiscipline, OsiLastIntParam
+
+cdef extern from "OsiSolverInterface.hpp":
+
+ cdef cppclass OsiSolverInterface:
+
+ # clone
+ OsiSolverInterface * clone(bool copyData)
+
+ # info about LP -- see also info about variable data
+ int getNumCols()
+ int getNumRows()
+ double * getObjCoefficients()
+ double getObjSense()
+ double * getRowLower()
+ double * getRowUpper()
+ CoinPackedMatrix * getMatrixByRow()
+ #string getRowName(int rowIndex, unsigned maxLen=?)
+ #string setObjName(int ndx, string name)
+ #string getObjName(unsigned maxLen=?)
+ #void setObjName(string name)
+
+ # info about solution or solver
+ int isAbandoned()
+ int isProvenPrimalInfeasible()
+ int isProvenDualInfeasible()
+ int isPrimalObjectiveLimitReached()
+ int isDualObjectiveLimitReached()
+ int isIterationLimitReached()
+ int isProvenOptimal()
+ double getObjValue()
+ double * getColSolution()
+
+ # initialization
+ int setIntParam(OsiIntParam key, int value)
+ void setObjSense(double s)
+
+ # set upper, lower bounds
+ void setColLower(double * array)
+ void setColLower(int elementIndex, double elementValue)
+ void setColUpper(double * array)
+ void setColUpper(int elementIndex, double elementValue)
+
+ # set variable data
+ void setContinuous(int index)
+ void setInteger(int index)
+ void setObjCoeff( int elementIndex, double elementValue )
+ void addCol(int numberElements, int * rows, double * elements, double collb, double colub, double obj)
+
+ # info about variable data -- see also info about solution or solver
+ int isContinuous(int colNumber)
+ double * getColLower()
+ double * getColUpper()
+
+ # add, delete rows
+ void addRow(CoinPackedVectorBase & vec, double rowlb, double rowub)
+ void deleteRows(int num, int *)
+
+ # io
+ void writeMps(char *filename, char *extension, double objSense)
+ void writeLp(char *filename, char *extension, double epsilon, int numberAcross, int decimals, double objSense, bool useRowNames)
+
+ # miscellaneous
+ double getInfinity()
+
+ # info about basis status
+ void getBasisStatus(int * cstat, int * rstat)
+ int setBasisStatus(int * cstat, int * rstat)
+
+ # Enable Simplex
+ void enableSimplexInterface(bool doingPrimal)
+
+ # Get tableau
+ void getBInvARow(int row, double* z, double * slack)
+ void getBInvACol(int col, double* vec)
+
+ # Get indices of basic variables
+ void getBasics(int* index)
+
+ # Get objective coefficients
+ double * getRowPrice()
+ double * getReducedCost()
+
+ #Solve initial LP relaxation
+ void initialSolve()
+
+ # Resolve an LP relaxation after problem modification
+ void resolve()
+
+cdef extern from "CbcModel.hpp":
+ cdef cppclass CbcModel:
+ # default constructor
+ CbcModel()
+ # constructor from solver
+ CbcModel(OsiSolverInterface & si)
+ # assigning, owning solver
+ void assignSolver(OsiSolverInterface * & solver)
+ void setModelOwnsSolver(bool ourSolver)
+ # get solver
+ OsiSolverInterface * solver()
+ # copy constructor
+ CbcModel(CbcModel & rhs)
+ # shut up
+ void setLogLevel(int value)
+ int logLevel()
+ # assign strategy
+ void setStrategy(CbcStrategy & strategy)
+ # threads
+ void setNumberThreads (int)
+ int getSolutionCount()
+ # solve
+ void branchAndBound()
+ # not sure we need this but it can't hurt
+ CoinMessageHandler * messageHandler ()
+ void CbcMain0(CbcModel m)
+
+cdef extern from "ClpSimplex.hpp":
+ cdef cppclass ClpSimplex:
+ void setNumberThreads(int)
+
+cdef extern from "OsiClpSolverInterface.hpp":
+
+ cdef cppclass OsiClpSolverInterface(OsiSolverInterface):
+
+ # ordinary constructor
+ OsiClpSolverInterface()
+ # copy constructor
+ OsiClpSolverInterface(OsiClpSolverInterface &si)
+ # log level
+ void setLogLevel(int value)
+
+
+cdef class CoinBackend(GenericBackend):
+
+ cdef OsiSolverInterface * si
+ cdef CbcModel * model
+ cdef int log_level
+
+ cdef list col_names, row_names
+ cdef str prob_name
+
+ cpdef __copy__(self)
+ cpdef get_basis_status(self)
+ cpdef int set_basis_status(self, list cstat, list rstat) except -1
+ cpdef get_binva_row(self, int i)
+ cpdef get_binva_col(self, int j)
+ cpdef get_basics(self)
+ cpdef get_row_price(self)
+ cpdef get_reduced_cost(self)
diff --git a/src/sage/numerical/backends/coin_backend.pyx b/src/sage/numerical/backends/coin_backend.pyx
new file mode 100644
index 00000000000..ed54cd919f6
--- /dev/null
+++ b/src/sage/numerical/backends/coin_backend.pyx
@@ -0,0 +1,1696 @@
+"""
+COIN Backend
+"""
+
+#*****************************************************************************
+# Copyright (C) 2010-2015 Nathann Cohen
+# Copyright (C) 2010 Martin Albrecht
+# Copyright (C) 2012 John Perry
+# Copyright (C) 2012-2019 Jeroen Demeyer
+# Copyright (C) 2013 Julien Puydt
+# Copyright (C) 2014 Nils Bruin
+# Copyright (C) 2014-2025 Dima Pasechnik
+# Copyright (C) 2015 Yuan Zhou
+# Copyright (C) 2015 Zeyi Wang
+# Copyright (C) 2016-2025 Matthias Koeppe
+# Copyright (C) 2017 Jori Mäntysalo
+# Copyright (C) 2018 Erik M. Bray
+# Copyright (C) 2019 David Coudert
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+# https://www.gnu.org/licenses/
+#*****************************************************************************
+
+from cysignals.memory cimport check_malloc, sig_free
+from cysignals.signals cimport sig_on, sig_off
+
+from sage.numerical.mip import MIPSolverException
+from copy import copy
+
+from sage.cpython.string cimport str_to_bytes
+from sage.cpython.string import FS_ENCODING
+from sage.parallel.ncpus import ncpus
+
+
+cdef class CoinBackend(GenericBackend):
+
+ """
+ MIP Backend that uses the COIN solver (CBC).
+
+ TESTS:
+
+ General backend testsuite::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: TestSuite(p).run() # known bug on 32 bit (#21550)
+ sage: TestSuite(p).run(skip=["_test_pickling", "_test_solve"])
+ """
+
+ def __cinit__(self, maximization = True):
+ """
+ Cython constructor
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+
+ """
+
+ # Coin devs seem to favor OsiClpSolverInterface
+ self.si = new OsiClpSolverInterface()
+ self.model = new CbcModel(self.si[0])
+ self.prob_name = None
+ self.row_names = []
+ self.col_names = []
+ self.set_verbosity(0)
+
+ if maximization:
+ self.set_sense(+1)
+ else:
+ self.set_sense(-1)
+
+ self.obj_constant_term = 0.0
+
+ def __dealloc__(self):
+ r"""
+ Destructor function
+ """
+ del self.model
+ del self.si
+
+ def __reduce__(self):
+ r"""
+ Explicitly disallows pickling for backend instances.
+ """
+ raise NotImplementedError("__reduce__ not implemented for %s" % type(self))
+
+ cpdef int add_variable(self, lower_bound=0.0, upper_bound=None, binary=False, continuous=False, integer=False, obj=0.0, name=None) except -1:
+ r"""
+ Add a variable.
+
+ This amounts to adding a new column to the matrix. By default,
+ the variable is both positive and real.
+
+ INPUT:
+
+ - ``lower_bound`` - the lower bound of the variable (default: 0)
+
+ - ``upper_bound`` - the upper bound of the variable (default: ``None``)
+
+ - ``binary`` - whether the variable is binary (default: ``False``).
+
+ - ``continuous`` - whether the variable is continuous (default: ``True``).
+
+ - ``integer`` - whether the variable is integer (default: ``False``).
+
+ - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0.0)
+
+ - ``name`` - an optional name for the newly added variable (default: ``None``).
+
+ OUTPUT: The index of the newly created variable
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variable()
+ 0
+ sage: p.ncols()
+ 1
+ sage: p.add_variable(binary=True)
+ 1
+ sage: p.add_variable(lower_bound=-2.0, integer=True)
+ 2
+ sage: p.add_variable(continuous=True, integer=True)
+ Traceback (most recent call last):
+ ...
+ ValueError: ...
+ sage: p.add_variable(name='x',obj=1.0)
+ 3
+ sage: p.col_name(3)
+ 'x'
+ sage: p.objective_coefficient(3)
+ 1.0
+ """
+
+ # for some reason, Cython is not accepting the line below, which appears
+ #cdef int vtype = int(bool(binary)) + int(bool(continuous)) + int(bool(integer))
+ cdef int vtype = int(binary) + int(continuous) + int(integer)
+ if vtype == 0:
+ continuous = True
+ elif vtype != 1:
+ raise ValueError("Exactly one parameter of 'binary', 'integer' and 'continuous' must be 'True'.")
+
+ self.si.addCol(0, NULL, NULL, 0, self.si.getInfinity(), 0)
+
+ cdef int n
+ n = self.si.getNumCols() - 1
+
+ if lower_bound != 0.0:
+ self.variable_lower_bound(n, lower_bound)
+ if upper_bound is not None:
+ self.variable_upper_bound(n, upper_bound)
+
+ if binary:
+ self.set_variable_type(n,0)
+ elif integer:
+ self.set_variable_type(n,1)
+
+ if name:
+ self.col_names.append(name)
+ else:
+ self.col_names.append("")
+
+ if obj:
+ self.si.setObjCoeff(n, obj)
+
+ return n
+
+ cpdef int add_variables(self, int number, lower_bound=0.0, upper_bound=None, binary=False, continuous=False, integer=False, obj=0.0, names=None) except -1:
+ """
+ Add ``number`` new variables.
+
+ This amounts to adding new columns to the matrix. By default,
+ the variables are both positive and real.
+
+ INPUT:
+
+ - ``n`` - the number of new variables (must be > 0)
+
+ - ``lower_bound`` - the lower bound of the variable (default: 0)
+
+ - ``upper_bound`` - the upper bound of the variable (default: ``None``)
+
+ - ``binary`` - ``True`` if the variable is binary (default: ``False``).
+
+ - ``continuous`` - ``True`` if the variable is binary (default: ``True``).
+
+ - ``integer`` - ``True`` if the variable is binary (default: ``False``).
+
+ - ``obj`` - (optional) coefficient of all variables in the objective function (default: 0.0)
+
+ - ``names`` - optional list of names (default: ``None``)
+
+ OUTPUT: The index of the variable created last.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variables(5)
+ 4
+ sage: p.ncols()
+ 5
+ sage: p.add_variables(2, lower_bound=-2.0, integer=True, obj=42.0, names=['a','b'])
+ 6
+
+ TESTS:
+
+ Check that arguments are used::
+
+ sage: p.col_bounds(5) # tol 1e-8
+ (-2.0, None)
+ sage: p.is_variable_integer(5)
+ True
+ sage: p.col_name(5)
+ 'a'
+ sage: p.objective_coefficient(5) # tol 1e-8
+ 42.0
+ """
+ #cdef int vtype = int(bool(binary)) + int(bool(continuous)) + int(bool(integer))
+ cdef int vtype = int(binary) + int(continuous) + int(integer)
+ if vtype == 0:
+ continuous = True
+ elif vtype != 1:
+ raise ValueError("Exactly one parameter of 'binary', 'integer' and 'continuous' must be 'True'.")
+
+ cdef int n
+ n = self.si.getNumCols()
+
+ cdef int i
+
+ for 0<= i < number:
+
+ self.si.addCol(0, NULL, NULL, 0, self.si.getInfinity(), 0)
+
+ if lower_bound != 0.0:
+ self.variable_lower_bound(n + i, lower_bound)
+ if upper_bound is not None:
+ self.variable_upper_bound(n + i, upper_bound)
+
+ if binary:
+ self.set_variable_type(n + i,0)
+ elif integer:
+ self.set_variable_type(n + i,1)
+
+ if obj:
+ self.si.setObjCoeff(n + i, obj)
+
+ if names is not None:
+ for name in names:
+ self.col_names.append(name)
+ else:
+ self.col_names.extend(['' for i in range(number)])
+
+ return n + number -1
+
+ cpdef set_variable_type(self, int variable, int vtype) noexcept:
+ r"""
+ Sets the type of a variable
+
+ INPUT:
+
+ - ``variable`` (integer) -- the variable's id
+
+ - ``vtype`` (integer) :
+
+ * 1 Integer
+ * 0 Binary
+ * -1 Real
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variable()
+ 0
+ sage: p.set_variable_type(0,1)
+ sage: p.is_variable_integer(0)
+ True
+ """
+
+ if vtype == 1:
+ self.si.setInteger(variable)
+ elif vtype == 0:
+ self.si.setColLower(variable, 0)
+ self.si.setInteger(variable)
+ self.si.setColUpper(variable, 1)
+ else:
+ self.si.setContinuous(variable)
+
+ cpdef set_sense(self, int sense) noexcept:
+ r"""
+ Sets the direction (maximization/minimization).
+
+ INPUT:
+
+ - ``sense`` (integer) :
+
+ * +1 => Maximization
+ * -1 => Minimization
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.is_maximization()
+ True
+ sage: p.set_sense(-1)
+ sage: p.is_maximization()
+ False
+ """
+ self.si.setObjSense(-sense)
+
+ cpdef objective_coefficient(self, int variable, coeff=None) noexcept:
+ """
+ Set or get the coefficient of a variable in the objective function
+
+ INPUT:
+
+ - ``variable`` (integer) -- the variable's id
+
+ - ``coeff`` (double) -- its coefficient or ``None`` for
+ reading (default: ``None``)
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable()
+ 0
+ sage: p.objective_coefficient(0)
+ 0.0
+ sage: p.objective_coefficient(0,2)
+ sage: p.objective_coefficient(0)
+ 2.0
+ """
+ if coeff is not None:
+ self.si.setObjCoeff(variable, coeff)
+ else:
+ return self.si.getObjCoefficients()[variable]
+
+ cpdef set_objective(self, list coeff, d = 0.0) noexcept:
+ r"""
+ Sets the objective function.
+
+ INPUT:
+
+ - ``coeff`` -- a list of real values, whose ith element is the
+ coefficient of the ith variable in the objective function.
+
+ - ``d`` (double) -- the constant term in the linear function (set to `0` by default)
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(5)
+ 4
+ sage: p.set_objective([1, 1, 2, 1, 3])
+ sage: [p.objective_coefficient(x) for x in range(5)]
+ [1.0, 1.0, 2.0, 1.0, 3.0]
+
+ Constants in the objective function are respected::
+
+ sage: p = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = p.new_variable(nonnegative=True)
+ sage: x,y = v[0], v[1]
+ sage: p.add_constraint(2*x + 3*y, max = 6)
+ sage: p.add_constraint(3*x + 2*y, max = 6)
+ sage: p.set_objective(x + y + 7)
+ sage: p.set_integer(x); p.set_integer(y)
+ sage: p.solve()
+ 9.0
+ """
+
+ cdef int i
+
+ for i,v in enumerate(coeff):
+ self.si.setObjCoeff(i, v)
+
+ self.obj_constant_term = d
+
+ cpdef set_verbosity(self, int level) noexcept:
+ r"""
+ Sets the log (verbosity) level
+
+ INPUT:
+
+ - ``level`` (integer) -- From 0 (no verbosity) to 3.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.set_verbosity(2)
+
+ """
+ self.model.setLogLevel(level)
+
+ cpdef remove_constraint(self, int i) noexcept:
+ r"""
+ Remove a constraint from self.
+
+ INPUT:
+
+ - ``i`` -- index of the constraint to remove
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = p.new_variable(nonnegative=True)
+ sage: x,y = v[0], v[1]
+ sage: p.add_constraint(2*x + 3*y, max = 6)
+ sage: p.add_constraint(3*x + 2*y, max = 6)
+ sage: p.set_objective(x + y + 7)
+ sage: p.set_integer(x); p.set_integer(y)
+ sage: p.solve()
+ 9.0
+ sage: p.remove_constraint(0)
+ sage: p.solve()
+ 10.0
+ sage: p.get_values([x,y])
+ [0, 3]
+
+ TESTS:
+
+ Removing fancy constraints does not make Sage crash::
+
+ sage: MixedIntegerLinearProgram(solver=CoinBackend).remove_constraint(-2)
+ Traceback (most recent call last):
+ ...
+ ValueError: The constraint's index i must satisfy 0 <= i < number_of_constraints
+ """
+ cdef int rows [1]
+
+ if i < 0 or i >= self.si.getNumRows():
+ raise ValueError("The constraint's index i must satisfy 0 <= i < number_of_constraints")
+ rows[0] = i
+ self.si.deleteRows(1,rows)
+
+ cpdef remove_constraints(self, constraints) noexcept:
+ r"""
+ Remove several constraints.
+
+ INPUT:
+
+ - ``constraints`` -- an iterable containing the indices of the rows to remove
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = p.new_variable(nonnegative=True)
+ sage: x,y = v[0], v[1]
+ sage: p.add_constraint(2*x + 3*y, max = 6)
+ sage: p.add_constraint(3*x + 2*y, max = 6)
+ sage: p.set_objective(x + y + 7)
+ sage: p.set_integer(x); p.set_integer(y)
+ sage: p.solve()
+ 9.0
+ sage: p.get_values(x) # random
+ 2
+ sage: p.get_values(y) # random
+ 0
+ sage: p.remove_constraints([0])
+ sage: p.solve()
+ 10.0
+ sage: p.get_values([x,y])
+ [0, 3]
+
+ TESTS:
+
+ Removing fancy constraints do not make Sage crash::
+
+ sage: MixedIntegerLinearProgram(solver=CoinBackend).remove_constraints([0, -2])
+ Traceback (most recent call last):
+ ...
+ ValueError: The constraint's index i must satisfy 0 <= i < number_of_constraints
+ """
+ cdef int i, c
+ cdef int m = len(constraints)
+ cdef int * rows = check_malloc(m * sizeof(int *))
+ cdef int nrows = self.si.getNumRows()
+
+ for i in xrange(m):
+
+ c = constraints[i]
+ if c < 0 or c >= nrows:
+ sig_free(rows)
+ raise ValueError("The constraint's index i must satisfy 0 <= i < number_of_constraints")
+
+ rows[i] = c
+
+ self.si.deleteRows(m,rows)
+ sig_free(rows)
+
+ cpdef add_linear_constraint(self, coefficients, lower_bound, upper_bound, name = None) noexcept:
+ """
+ Add a linear constraint.
+
+ INPUT:
+
+ - ``coefficients`` an iterable with ``(c,v)`` pairs where ``c``
+ is a variable index (integer) and ``v`` is a value (real
+ value).
+
+ - ``lower_bound`` - a lower bound, either a real value or ``None``
+
+ - ``upper_bound`` - an upper bound, either a real value or ``None``
+
+ - ``name`` - an optional name for this row (default: ``None``)
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(5)
+ 4
+ sage: p.add_linear_constraint( zip(range(5), range(5)), 2.0, 2.0)
+ sage: p.row(0)
+ ([0, 1, 2, 3, 4], [0.0, 1.0, 2.0, 3.0, 4.0])
+ sage: p.row_bounds(0)
+ (2.0, 2.0)
+ sage: p.add_linear_constraint( zip(range(5), range(5)), 1.0, 1.0, name='foo')
+ sage: p.row_name(1)
+ 'foo'
+ """
+ if lower_bound is None and upper_bound is None:
+ raise ValueError("At least one of 'upper_bound' or 'lower_bound' must be set.")
+
+ cdef int i
+ cdef double c
+ cdef CoinPackedVector* row
+ row = new CoinPackedVector();
+
+
+ for i,c in coefficients:
+ row.insert(i, c)
+
+ self.si.addRow (row[0],
+ lower_bound if lower_bound is not None else -self.si.getInfinity(),
+ upper_bound if upper_bound is not None else +self.si.getInfinity())
+ if name is not None:
+ self.row_names.append(name)
+ else:
+ self.row_names.append("")
+ del *row
+
+ cpdef row(self, int index) noexcept:
+ r"""
+ Returns a row
+
+ INPUT:
+
+ - ``index`` (integer) -- the constraint's id.
+
+ OUTPUT:
+
+ A pair ``(indices, coeffs)`` where ``indices`` lists the
+ entries whose coefficient is nonzero, and to which ``coeffs``
+ associates their coefficient on the model of the
+ ``add_linear_constraint`` method.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(5)
+ 4
+ sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2)
+ sage: p.row(0)
+ ([0, 1, 2, 3, 4], [0.0, 1.0, 2.0, 3.0, 4.0])
+ sage: p.row_bounds(0)
+ (2.0, 2.0)
+ """
+
+ cdef list indices = []
+ cdef list values = []
+ cdef int * c_indices
+ cdef int i
+ cdef double * c_values
+ cdef CoinPackedMatrix * M = self.si.getMatrixByRow()
+ cdef CoinShallowPackedVector V = M.getVector(index)
+ cdef int n = V.getNumElements()
+
+ c_indices = V.getIndices()
+ c_values = V.getElements()
+
+ for 0<= i < n:
+ indices.append(c_indices[i])
+ values.append(c_values[i])
+
+ return (indices, values)
+
+ cpdef row_bounds(self, int i) noexcept:
+ r"""
+ Returns the bounds of a specific constraint.
+
+ INPUT:
+
+ - ``index`` (integer) -- the constraint's id.
+
+ OUTPUT:
+
+ A pair ``(lower_bound, upper_bound)``. Each of them can be set
+ to ``None`` if the constraint is not bounded in the
+ corresponding direction, and is a real value otherwise.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(5)
+ 4
+ sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2)
+ sage: p.row(0)
+ ([0, 1, 2, 3, 4], [0.0, 1.0, 2.0, 3.0, 4.0])
+ sage: p.row_bounds(0)
+ (2.0, 2.0)
+ """
+
+ cdef double * ub
+ cdef double * lb
+
+ ub = self.si.getRowUpper()
+ lb = self.si.getRowLower()
+
+ return (lb[i] if lb[i] != - self.si.getInfinity() else None,
+ ub[i] if ub[i] != + self.si.getInfinity() else None)
+
+ cpdef col_bounds(self, int i) noexcept:
+ r"""
+ Returns the bounds of a specific variable.
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id.
+
+ OUTPUT:
+
+ A pair ``(lower_bound, upper_bound)``. Each of them can be set
+ to ``None`` if the variable is not bounded in the
+ corresponding direction, and is a real value otherwise.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable()
+ 0
+ sage: p.col_bounds(0)
+ (0.0, None)
+ sage: p.variable_upper_bound(0, 5)
+ sage: p.col_bounds(0)
+ (0.0, 5.0)
+ """
+
+ cdef double * ub
+ cdef double * lb
+
+ ub = self.si.getColUpper()
+ lb = self.si.getColLower()
+
+ return (lb[i] if lb[i] != - self.si.getInfinity() else None,
+ ub[i] if ub[i] != + self.si.getInfinity() else None)
+
+ cpdef add_col(self, indices, coeffs) noexcept:
+ r"""
+ Adds a column.
+
+ INPUT:
+
+ - ``indices`` (list of integers) -- this list contains the
+ indices of the constraints in which the variable's
+ coefficient is nonzero
+
+ - ``coeffs`` (list of real values) -- associates a coefficient
+ to the variable in each of the constraints in which it
+ appears. Namely, the ith entry of ``coeffs`` corresponds to
+ the coefficient of the variable in the constraint
+ represented by the ith entry in ``indices``.
+
+ .. NOTE::
+
+ ``indices`` and ``coeffs`` are expected to be of the same
+ length.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.nrows()
+ 0
+ sage: p.add_linear_constraints(5, 0, None)
+ sage: p.add_col(list(range(5)), list(range(5)))
+ sage: p.nrows()
+ 5
+ """
+
+ cdef list list_indices
+ cdef list list_coeffs
+
+ if type(indices) is not list:
+ list_indices = list(indices)
+ else:
+ list_indices = indices
+
+ if type(coeffs) is not list:
+ list_coeffs = list(coeffs)
+ else:
+ list_coeffs = coeffs
+
+ cdef int n = len(list_indices)
+ cdef int * c_indices = check_malloc(n*sizeof(int))
+ cdef double * c_values = check_malloc(n*sizeof(double))
+ cdef int i
+
+ for 0<= i< n:
+ c_indices[i] = list_indices[i]
+ c_values[i] = list_coeffs[i]
+
+ self.si.addCol (n, c_indices, c_values, 0, self.si.getInfinity(), 0)
+
+ self.col_names.append("")
+ sig_free(c_indices)
+ sig_free(c_values)
+
+ cpdef int solve(self) except -1:
+ r"""
+ Solves the problem.
+
+ .. NOTE::
+
+ This method raises ``MIPSolverException`` exceptions when
+ the solution can not be computed for any reason (none
+ exists, or the LP solver was not able to find it, etc...)
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_linear_constraints(5, 0, None)
+ sage: p.add_col(list(range(5)), [1,2,3,4,5])
+ sage: p.solve()
+ 0
+
+ TESTS::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable()
+ 0
+ sage: p.add_linear_constraint([(0, 1)], None, 4)
+ sage: p.add_linear_constraint([(0, 1)], 6, None)
+ sage: p.objective_coefficient(0,1)
+ sage: p.solve()
+ Traceback (most recent call last):
+ ...
+ MIPSolverException: ...
+ """
+
+ # set up the model
+ cdef OsiSolverInterface * si = self.si
+
+ cdef CbcModel * model
+ cdef int old_logLevel = self.model.logLevel()
+
+ model = new CbcModel(si[0])
+ del self.model
+ self.model = model
+
+ #we immediately commit to the new model so that the user has access
+ #to it even when something goes wrong.
+
+ model.setLogLevel(old_logLevel)
+
+ # multithreading
+ # import multiprocessing
+ # model.setNumberThreads(ncpus())
+
+ model.branchAndBound()
+
+ if model.solver().isAbandoned():
+ raise MIPSolverException("CBC : The solver has abandoned!")
+
+ elif model.solver().isProvenPrimalInfeasible() or model.solver().isProvenDualInfeasible():
+ raise MIPSolverException("CBC : The problem or its dual has been proven infeasible!")
+
+ elif (model.solver().isPrimalObjectiveLimitReached() or model.solver().isDualObjectiveLimitReached()):
+ raise MIPSolverException("CBC : The objective limit has been reached for the problem or its dual!")
+
+ elif model.solver().isIterationLimitReached():
+ raise MIPSolverException("CBC : The iteration limit has been reached!")
+
+ elif not model.solver().isProvenOptimal():
+ raise MIPSolverException("CBC : Unknown error")
+
+ return 0
+
+ cpdef get_objective_value(self) noexcept:
+ r"""
+ Returns the value of the objective function.
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status`` has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 1), (1, 2)], None, 3)
+ sage: p.set_objective([2, 5])
+ sage: p.solve()
+ 0
+ sage: p.get_objective_value()
+ 7.5
+ sage: p.get_variable_value(0)
+ 0.0
+ sage: p.get_variable_value(1)
+ 1.5
+ """
+ return self.model.solver().getObjValue() + self.obj_constant_term
+
+ cpdef get_variable_value(self, int variable) noexcept:
+ r"""
+ Returns the value of a variable given by the solver.
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status`` has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 1), (1, 2)], None, 3)
+ sage: p.set_objective([2, 5])
+ sage: p.solve()
+ 0
+ sage: p.get_objective_value()
+ 7.5
+ sage: p.get_variable_value(0)
+ 0.0
+ sage: p.get_variable_value(1)
+ 1.5
+ sage: p = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: x = p.new_variable(nonnegative=True)
+ sage: p.set_min(x[0], 0.0)
+ sage: p.get_values(x)
+ {0: 0.0}
+ """
+
+ cdef double * solution
+ cdef double v
+ solution = self.model.solver().getColSolution()
+ if solution == NULL:
+ v = 0.0
+ else:
+ v = solution[variable]
+ if self.is_variable_continuous(variable):
+ return v
+ else:
+ return int(round(v))
+
+ cpdef int ncols(self) noexcept:
+ r"""
+ Returns the number of columns/variables.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variables(2)
+ 1
+ sage: p.ncols()
+ 2
+ """
+
+ return self.si.getNumCols()
+
+ cpdef int nrows(self) noexcept:
+ r"""
+ Returns the number of rows/constraints.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.nrows()
+ 0
+ sage: p.add_linear_constraints(2, 2, None)
+ sage: p.nrows()
+ 2
+ """
+ return self.si.getNumRows()
+
+
+ cpdef bint is_variable_binary(self, int index) noexcept:
+ r"""
+ Tests whether the given variable is of binary type.
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variable()
+ 0
+ sage: p.set_variable_type(0,0)
+ sage: p.is_variable_binary(0)
+ True
+
+ """
+
+ return (0 == self.si.isContinuous(index) and
+ self.variable_lower_bound(index) == 0 and
+ self.variable_upper_bound(index) == 1)
+
+ cpdef bint is_variable_integer(self, int index) noexcept:
+ r"""
+ Tests whether the given variable is of integer type.
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variable()
+ 0
+ sage: p.set_variable_type(0,1)
+ sage: p.is_variable_integer(0)
+ True
+ """
+ return (0 == self.si.isContinuous(index) and
+ (self.variable_lower_bound(index) != 0 or
+ self.variable_upper_bound(index) != 1))
+
+ cpdef bint is_variable_continuous(self, int index) noexcept:
+ r"""
+ Tests whether the given variable is of continuous/real type.
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.ncols()
+ 0
+ sage: p.add_variable()
+ 0
+ sage: p.is_variable_continuous(0)
+ True
+ sage: p.set_variable_type(0,1)
+ sage: p.is_variable_continuous(0)
+ False
+
+ """
+ return 1 == self.si.isContinuous(index)
+
+
+ cpdef bint is_maximization(self) noexcept:
+ r"""
+ Tests whether the problem is a maximization
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.is_maximization()
+ True
+ sage: p.set_sense(-1)
+ sage: p.is_maximization()
+ False
+ """
+
+ return self.si.getObjSense() == -1
+
+ cpdef variable_upper_bound(self, int index, value = False):
+ r"""
+ Returns or defines the upper bound on a variable
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id
+
+ - ``value`` -- real value, or ``None`` to mean that the
+ variable has not upper bound. When set to ``False``
+ (default), the method returns the current value.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable()
+ 0
+ sage: p.col_bounds(0)
+ (0.0, None)
+ sage: p.variable_upper_bound(0, 5)
+ sage: p.col_bounds(0)
+ (0.0, 5.0)
+
+ TESTS:
+
+ :trac:`14581`::
+
+ sage: P = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = P.new_variable(nonnegative=True)
+ sage: x = v["x"]
+ sage: P.set_max(x, 0)
+ sage: P.get_max(x)
+ 0.0
+
+ """
+ cdef double * ub
+
+ if value is False:
+ ub = self.si.getColUpper()
+ return ub[index] if ub[index] != + self.si.getInfinity() else None
+ else:
+ self.si.setColUpper(index, value if value is not None else +self.si.getInfinity())
+
+ cpdef variable_lower_bound(self, int index, value = False):
+ r"""
+ Returns or defines the lower bound on a variable
+
+ INPUT:
+
+ - ``index`` (integer) -- the variable's id
+
+ - ``value`` -- real value, or ``None`` to mean that the
+ variable has not lower bound. When set to ``False``
+ (default), the method returns the current value.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable()
+ 0
+ sage: p.col_bounds(0)
+ (0.0, None)
+ sage: p.variable_lower_bound(0, 5)
+ sage: p.col_bounds(0)
+ (5.0, None)
+
+ TESTS:
+
+ :trac:`14581`::
+
+ sage: P = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = P.new_variable(nonnegative=True)
+ sage: x = v["x"]
+ sage: P.set_min(x, 5)
+ sage: P.set_min(x, 0)
+ sage: P.get_min(x)
+ 0.0
+ """
+ cdef double * lb
+
+ if value is False:
+ lb = self.si.getColLower()
+ return lb[index] if lb[index] != - self.si.getInfinity() else None
+ else:
+ self.si.setColLower(index, value if value is not None else -self.si.getInfinity())
+
+ cpdef write_lp(self, filename):
+ r"""
+ Writes the problem to a .lp file
+
+ INPUT:
+
+ - ``filename`` (string)
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: import tempfile
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 1), (1, 2)], None, 3)
+ sage: p.set_objective([2, 5])
+ sage: with tempfile.TemporaryDirectory() as f:
+ ....: p.write_lp(os.path.join(f, "lp_problem.lp"))
+ """
+
+ cdef char * lp = "lp"
+ filename = str_to_bytes(filename, FS_ENCODING, 'surrogateescape')
+ self.si.writeLp(filename, lp, 0.00001, 10, 5, -1 if self.is_maximization() else 1, 1)
+
+
+ cpdef problem_name(self, name=None):
+ r"""
+ Returns or defines the problem's name
+
+ INPUT:
+
+ - ``name`` (``str``) -- the problem's name. When set to
+ ``None`` (default), the method returns the problem's name.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.problem_name("There once was a french fry")
+ sage: print(p.problem_name())
+ There once was a french fry
+ """
+ if name is None:
+ if self.prob_name is not None:
+ return self.prob_name
+ else:
+ return ""
+ else:
+ self.prob_name = str(name)
+
+ cpdef row_name(self, int index):
+ r"""
+ Returns the ``index`` th row name
+
+ INPUT:
+
+ - ``index`` (integer) -- the row's id
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_linear_constraints(1, 2, None, names=['Empty constraint 1'])
+ sage: print(p.row_name(0))
+ Empty constraint 1
+ """
+ if self.row_names is not None:
+ return self.row_names[index]
+ else:
+ return ""
+
+ cpdef col_name(self, int index):
+ r"""
+ Returns the ``index`` th col name
+
+ INPUT:
+
+ - ``index`` (integer) -- the col's id
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variable(name='I am a variable')
+ 0
+ sage: print(p.col_name(0))
+ I am a variable
+ """
+ if self.col_names is not None:
+ return self.col_names[index]
+ else:
+ return ""
+
+ cpdef __copy__(self):
+ """
+ Returns a copy of self.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: b = p.new_variable(nonnegative=True)
+ sage: p.add_constraint(b[1] + b[2] <= 6)
+ sage: p.set_objective(b[1] + b[2])
+ sage: copy(p).solve()
+ 6.0
+ """
+ # create new backend
+ cdef CoinBackend p = type(self)(maximization = (1 if self.is_maximization() else -1))
+
+ # replace solver with copy of self's solver
+ del p.si
+ p.si = self.si.clone(1)
+ p.row_names = copy(self.row_names)
+ p.col_names = copy(self.col_names)
+ p.obj_constant_term = self.obj_constant_term
+ # Maybe I should copy this, not sure -- seems complicated, though
+ p.prob_name = self.prob_name
+
+ return p
+
+ cpdef get_basis_status(self):
+ """
+ Retrieve status information for column and row variables.
+
+ This method returns status as integer codes:
+
+ * 0: free
+ * 1: basic
+ * 2: nonbasic at upper bound
+ * 3: nonbasic at lower bound
+
+ OUTPUT:
+
+ - ``cstat`` -- The status of the column variables
+
+ - ``rstat`` -- The status of the row variables
+
+ .. NOTE::
+
+ Logical variables associated with rows are all assumed to have +1
+ coefficients, so for a <= constraint the logical will be at lower
+ bound if the constraint is tight.
+
+ Behaviour is undefined unless ``solve`` or ``set_basis_status``
+ has been called before.
+
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, 3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1], 7)
+ sage: p.solve()
+ 0
+ sage: p.get_basis_status()
+ ([1, 1], [3, 3])
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+ sage: p.solve()
+ 0
+ sage: p.get_basis_status()
+ ([3, 1], [1, 3])
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(3)
+ 2
+ sage: p.add_linear_constraint(zip([0, 1, 2], [8, 6, 1]), None, 48)
+ sage: p.add_linear_constraint(zip([0, 1, 2], [4, 2, 1.5]), None, 20)
+ sage: p.add_linear_constraint(zip([0, 1, 2], [2, 1.5, 0.5]), None, 8)
+ sage: p.set_objective([60, 30, 20])
+ sage: p.solve()
+ 0
+ sage: p.get_basis_status()
+ ([1, 3, 1], [1, 3, 3])
+
+
+ sage: lp = MixedIntegerLinearProgram(solver=CoinBackend)
+ sage: v = lp.new_variable(nonnegative=True)
+ sage: x,y,z = v[0], v[1], v[2]
+ sage: lp.add_constraint(8*x + 6*y + z, max = 48)
+ sage: lp.add_constraint(4*x + 2*y + 1.5*z, max = 20)
+ sage: lp.add_constraint(2*x + 1.5*y + 0.5*z, max = 8)
+ sage: lp.set_objective(60*x + 30*y + 20*z)
+ sage: lp_coin = lp.get_backend()
+ sage: lp_coin.solve()
+ 0
+ sage: lp_coin.get_basis_status()
+ ([1, 3, 1], [1, 3, 3])
+
+ """
+ cdef int n = self.model.solver().getNumCols()
+ cdef int m = self.model.solver().getNumRows()
+ cdef int * c_cstat = check_malloc(n * sizeof(int))
+ cdef int * c_rstat = check_malloc(m * sizeof(int))
+ cdef list cstat
+ cdef list rstat
+ # enableSimplexInterface must be set to use getBasisStatus().
+ # See projects.coin-or.org/Osi/ticket/84
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ self.model.solver().getBasisStatus(c_cstat, c_rstat)
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getBasisStatus() fails')
+ else:
+ cstat = [c_cstat[j] for j in range(n)]
+ rstat = [c_rstat[j] for j in range(m)]
+ return (cstat, rstat)
+ finally:
+ sig_free(c_cstat)
+ sig_free(c_rstat)
+
+ cpdef int set_basis_status(self, list cstat, list rstat) except -1:
+ """
+ Set the status of column and row variables
+ and update the basis factorization and solution.
+
+ This method returns status as integer codes:
+
+ INPUT:
+
+ - ``cstat`` -- The status of the column variables
+
+ - ``rstat`` -- The status of the row variables
+
+ .. NOTE::
+
+ Status information should be coded as:
+
+ * 0: free
+ * 1: basic
+ * 2: nonbasic at upper bound
+ * 3: nonbasic at lower bound
+
+ Logical variables associated with rows are all assumed to have +1
+ coefficients, so for a <= constraint the logical will be at lower
+ bound if the constraint is tight.
+
+ OUTPUT:
+
+ Returns 0 if all goes well, 1 if something goes wrong.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+
+ sage: p.set_basis_status([3, 3], [1, 1])
+ 0
+ sage: p.get_objective_value()
+ 0.0
+ sage: p.set_basis_status([1, 3], [1, 3])
+ 0
+ sage: p.get_objective_value()
+ 2.0
+ sage: p.set_basis_status([3, 1], [1, 3])
+ 0
+ sage: p.get_objective_value()
+ 3.0
+ sage: p.get_basis_status()
+ ([3, 1], [1, 3])
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(3)
+ 2
+ sage: p.add_linear_constraint(zip([0, 1, 2], [8, 6, 1]), None, 48)
+ sage: p.add_linear_constraint(zip([0, 1, 2], [4, 2, 1.5]), None, 20)
+ sage: p.add_linear_constraint(zip([0, 1, 2], [2, 1.5, 0.5]), None, 8)
+ sage: p.set_objective([60, 30, 20])
+ sage: p.set_basis_status([3, 3, 3], [1, 1, 1])
+ 0
+ sage: p.get_objective_value()
+ 0.0
+ sage: p.set_basis_status([1, 3, 3], [1, 1, 3])
+ 0
+ sage: p.get_objective_value()
+ 240.0
+ sage: p.get_basis_status()
+ ([1, 3, 3], [1, 1, 3])
+ sage: p.set_basis_status([1, 3, 1], [1, 3, 2])
+ 0
+ sage: p.get_basis_status()
+ ([1, 3, 1], [1, 3, 3])
+ sage: p.get_objective_value()
+ 280.0
+ """
+ cdef int n = len(cstat)
+ cdef int m = len(rstat)
+ cdef int * c_cstat
+ cdef int * c_rstat
+ cdef int result
+
+ # set up the model
+ cdef OsiSolverInterface * si = self.si
+
+ cdef CbcModel * model
+ cdef int old_logLevel = self.model.logLevel()
+
+ model = new CbcModel(si[0])
+ del self.model
+ self.model = model
+
+ #we immediately commit to the new model so that the user has access
+ #to it even when something goes wrong.
+
+ model.setLogLevel(old_logLevel)
+
+ # multithreading
+ # import multiprocessing
+ # model.setNumberThreads(ncpus())
+
+ if n != self.model.solver().getNumCols() or m != self.model.solver().getNumRows():
+ raise ValueError("Must provide the status of every column and row variables")
+ c_cstat = check_malloc(n * sizeof(int))
+ c_rstat = check_malloc(m * sizeof(int))
+ for i in range(n):
+ c_cstat[i] = cstat[i]
+ for i in range(m):
+ c_rstat[i] = rstat[i]
+ # enableSimplexInterface must be set to use getBasisStatus().
+ # See projects.coin-or.org/Osi/ticket/84
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ result = self.model.solver().setBasisStatus(c_cstat, c_rstat)
+ self.model.solver().setIntParam(OsiMaxNumIteration, 0)
+ self.model.solver().resolve()
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, setBasisStatus() fails')
+ else:
+ return result
+ finally:
+ sig_free(c_cstat)
+ sig_free(c_rstat)
+
+ cpdef get_binva_row(self, int i):
+ """
+ Return the i-th row of the tableau and the slacks.
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status``
+ has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+
+ sage: p.set_basis_status([3, 3], [1, 1])
+ 0
+ sage: p.get_binva_row(0)
+ ([2.0, -3.0], [1.0, 0.0])
+ sage: p.get_binva_row(1)
+ ([3.0, 2.0], [0.0, 1.0])
+
+ sage: p.set_basis_status([1, 3], [1, 3])
+ 0
+ sage: p.get_binva_row(0)
+ ([0.0, -4.333333333333333], [1.0, -0.6666666666666666])
+ sage: p.get_binva_row(1)
+ ([1.0, 0.6666666666666666], [0.0, 0.3333333333333333])
+
+ sage: p.set_basis_status([3, 1], [1, 3])
+ 0
+ sage: p.get_binva_row(0)
+ ([6.5, 0.0], [1.0, 1.5])
+ sage: p.get_binva_row(1)
+ ([1.5, 1.0], [0.0, 0.5])
+
+ """
+ cdef int n = self.model.solver().getNumCols()
+ cdef int m = self.model.solver().getNumRows()
+ if i < 0 or i >= m:
+ raise ValueError("i = %s. The i-th row of the tableau doesn't exist" % i)
+
+ cdef double * c_slack = check_malloc(m * sizeof(double))
+ cdef double * c_z = check_malloc(n * sizeof(double))
+ cdef list slack
+ cdef list ithrow
+ # enableSimplexInterface must be set to use getBasisStatus().
+ # See projects.coin-or.org/Osi/ticket/84
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ self.model.solver().getBInvARow(i, c_z, c_slack)
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getBinvARow() fails')
+ else:
+ slack = [c_slack[j] for j in range(m)]
+ ithrow = [c_z[j] for j in range(n)]
+ return (ithrow, slack)
+ finally:
+ sig_free(c_slack)
+ sig_free(c_z)
+
+ cpdef get_binva_col(self, int j):
+ """
+ Return the j-th column of the tableau.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+
+ sage: p.set_basis_status([3, 3], [1, 1])
+ 0
+ sage: p.get_binva_col(0)
+ [2.0, 3.0]
+ sage: p.get_binva_col(1)
+ [-3.0, 2.0]
+
+ sage: p.set_basis_status([1, 3], [1, 3])
+ 0
+ sage: p.get_binva_col(0)
+ [-0.0, 1.0]
+ sage: p.get_binva_col(1)
+ [-4.333333333333333, 0.6666666666666666]
+
+ sage: p.set_basis_status([3, 1], [1, 3])
+ 0
+ sage: p.get_binva_col(0)
+ [6.5, 1.5]
+ sage: p.get_binva_col(1)
+ [-0.0, 1.0]
+ """
+ cdef int n = self.model.solver().getNumCols()
+ cdef int m = self.model.solver().getNumRows()
+ if j < 0 or j >= n + m:
+ # it seems that when n <= j < m+n,
+ # getBInvACol(j) is getBinvCol(j-n)
+ raise ValueError("j = %s. The j-th column of the tableau doesn't exist" % j)
+
+ cdef double * c_vec = check_malloc(m * sizeof(double))
+ cdef list jthcol
+ # enableSimplexInterface must be set to use getBasisStatus().
+ # See projects.coin-or.org/Osi/ticket/84
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ self.model.solver().getBInvACol(j, c_vec)
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getBinvACol() fails')
+ else:
+ jthcol = [c_vec[i] for i in range(m)]
+ return jthcol
+ finally:
+ sig_free(c_vec)
+
+ cpdef get_basics(self):
+ r"""
+ Returns indices of basic variables.
+
+ The order of indices match the order of elements in the vectors returned
+ by get_binva_col() and the order of rows in get_binva_row().
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status``
+ has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+ sage: p.solve()
+ 0
+ sage: p.get_basics()
+ [2, 1]
+ """
+ cdef int m = self.model.solver().getNumRows()
+ cdef int * c_indices = check_malloc(m * sizeof(int))
+ cdef list indices
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ self.model.solver().getBasics(c_indices)
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getBasics() fails')
+ else:
+ indices = [c_indices[j] for j in range(m)]
+ return indices
+ finally:
+ sig_free(c_indices)
+
+ cpdef get_row_price(self):
+ r"""
+ Returns dual variable values.
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status``
+ has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+ sage: p.solve()
+ 0
+ sage: p.get_row_price()
+ [0.0, -0.5]
+ """
+ cdef int m = self.model.solver().getNumRows()
+ cdef list price
+ cdef double * c_price
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ c_price = self.model.solver().getRowPrice()
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getRowPrice() fails')
+ else:
+ price = [c_price[j] for j in range(m)]
+ return price
+
+ cpdef get_reduced_cost(self):
+ r"""
+ Returns reduced costs.
+
+ .. NOTE::
+
+ Has no meaning unless ``solve`` or ``set_basis_status``
+ has been called before.
+
+ EXAMPLES::
+
+ sage: from sage.numerical.backends.coin_backend import CoinBackend
+ sage: p = CoinBackend()
+ sage: p.add_variables(2)
+ 1
+ sage: p.add_linear_constraint([(0, 2), (1, -3)], None, 6)
+ sage: p.add_linear_constraint([(0, 3), (1, 2)], None, 6)
+ sage: p.set_objective([1, 1])
+ sage: p.solve()
+ 0
+ sage: p.get_reduced_cost()
+ [0.5, 0.0]
+ """
+ cdef int n = self.model.solver().getNumCols()
+ cdef list cost
+ cdef double * c_cost
+ self.model.solver().enableSimplexInterface(True)
+ try:
+ sig_on() # To catch SIGABRT
+ c_cost = self.model.solver().getReducedCost()
+ sig_off()
+ except RuntimeError: # corresponds to SIGABRT
+ raise MIPSolverException('CBC : Signal sent, getReducedCost() fails')
+ else:
+ cost = [c_cost[i] for i in range(n)]
+ return cost
diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx
index edda183ade9..86055f84c9b 100644
--- a/src/sage/numerical/backends/generic_backend.pyx
+++ b/src/sage/numerical/backends/generic_backend.pyx
@@ -1655,7 +1655,7 @@ def default_mip_solver(solver=None):
elif solver == "Coin":
try:
- from sage_numerical_backends_coin.coin_backend import CoinBackend
+ from sage.numerical.backends.coin_backend import CoinBackend
default_solver = solver
except ImportError:
raise ValueError("COIN is not available. Please refer to the documentation to install it.")
@@ -1841,7 +1841,7 @@ cpdef GenericBackend get_solver(constraint_generation=False, solver=None, base_r
solver = solver.capitalize()
if solver == "Coin":
- from sage_numerical_backends_coin.coin_backend import CoinBackend
+ from sage.numerical.backends.coin_backend import CoinBackend
return CoinBackend()
elif solver == "Glpk":
diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build
index 57454e81e88..77a06079915 100644
--- a/src/sage/numerical/backends/meson.build
+++ b/src/sage/numerical/backends/meson.build
@@ -1,9 +1,12 @@
# Cannot be found via pkg-config
glpk = cc.find_library('glpk', required: not is_windows, disabler: true)
+cbc = dependency('cbc', required: false, disabler: true)
py.install_sources(
'__init__.py',
'all.py',
+ 'coin_backend.pxd',
+ 'coin_backend.pyx',
'cvxopt_backend.pyx',
'cvxopt_backend_test.py',
'cvxopt_sdp_backend.pyx',
@@ -62,7 +65,10 @@ foreach name, pyx : extension_data
)
endforeach
-extension_data_cpp = {'scip_backend': files('scip_backend.pyx')}
+extension_data_cpp = {
+ 'coin_backend' : files('coin_backend.pyx'),
+ 'scip_backend': files('scip_backend.pyx'),
+}
foreach name, pyx : extension_data_cpp
py.extension_module(
@@ -72,7 +78,7 @@ foreach name, pyx : extension_data_cpp
install: true,
override_options: ['cython_language=cpp'],
include_directories: [inc_cpython, inc_rings],
- dependencies: [py_dep, cysignals, gmp],
+ dependencies: [py_dep, cysignals, gmp, cbc],
)
endforeach
diff --git a/tools/update-conda.py b/tools/update-conda.py
index 96433479b9e..f59e618fe69 100644
--- a/tools/update-conda.py
+++ b/tools/update-conda.py
@@ -175,12 +175,12 @@ def get_dependencies(pyproject_toml: Path, python: str, platform: str) -> set[st
.replace("pkg:generic/sagemath-polytopes-db", "sagemath-db-polytopes")
.replace("pkg:generic/tachyon", "tachyon")
.replace("brial", "libbrial") # on Conda, 'brial' refers to the Python package
+ .replace("pkg:generic/cbc", "coin-or-cbc") # on Conda, 'cbc' has a longer name
for req in all_requirements
}
# Exclude requirements not available on conda (for a given platform)
exclude_packages: set[str] = {
"p_group_cohomology",
- "sage_numerical_backends_coin",
"sagemath_giac",
"pynormaliz", # due to https://github.com/sagemath/sage/issues/40214
"latte-integrale", # due to https://github.com/sagemath/sage/issues/40216