Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error parsing MatchSpec "python[version='>=3.11.0',3.11.*": Parentheses mismatch #581

Open
2 tasks done
jameslamb opened this issue Dec 2, 2024 · 4 comments
Open
2 tasks done
Labels
type::bug describes erroneous operation, use severity::* to classify the type upstream this issue/PR is caused by an upstream dependency

Comments

@jameslamb
Copy link

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

In an environment with libmambapy v2 and conda 2024.11.0, trying to change the python version like this:

conda install --dry-run -n base 'python~=3.11.0=*_cpython'

Results in an error like this:

libmambapy.bindings.specs.ParseError: Error parsing MatchSpec "python[version='>=3.11.0',3.11.*": Parentheses mismatch in "python[version='>=3.11.0',3.11.*"."

I strongly suspect that's related to the refactoring in #457, though don't see the exact root cause yet.

This error does not occur with libmambapy 1.5.9 and conda 2024.9.0.

Included a reproducible example in "Additional Context" below.

Conda Info

active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 24.11.0
    conda-build version : not installed
         python version : 3.12.7.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=aarch64
                          __conda=24.11.0=0
                          __glibc=2.31=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-aarch64
             user-agent : conda/24.11.0 requests/2.32.3 CPython/3.12.7 Linux/6.5.0-44-generic ubuntu/20.04.6 glibc/2.31 solver/libmamba conda-libmamba-solver/24.11.0 libmambapy/2.0.4
                UID:GID : 0:0
             netrc file : None
           offline mode : False

Conda Config

==> /opt/conda/.condarc <==
channels:
  - conda-forge

Conda list

# packages in environment at /opt/conda:
#
# Name                    Version                   Build  Channel
_openmp_mutex             4.5                       2_gnu    conda-forge
archspec                  0.2.3              pyhd8ed1ab_0    conda-forge
boltons                   24.0.0             pyhd8ed1ab_0    conda-forge
brotli-python             1.1.0           py312h6f74592_2    conda-forge
bzip2                     1.0.8                h68df207_7    conda-forge
c-ares                    1.34.3               h86ecc28_1    conda-forge
ca-certificates           2024.8.30            hcefe29a_0    conda-forge
certifi                   2024.8.30          pyhd8ed1ab_0    conda-forge
cffi                      1.17.1          py312hac81daf_0    conda-forge
charset-normalizer        3.4.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
conda                     24.11.0         py312h996f985_0    conda-forge
conda-libmamba-solver     24.11.0            pyhd8ed1ab_0    conda-forge
conda-package-handling    2.4.0              pyh7900ff3_0    conda-forge
conda-package-streaming   0.11.0             pyhd8ed1ab_0    conda-forge
cpp-expected              1.1.0                h4c384f3_0    conda-forge
distro                    1.9.0              pyhd8ed1ab_0    conda-forge
fmt                       11.0.2               h70be974_0    conda-forge
frozendict                2.4.6           py312hb2c0f52_0    conda-forge
h2                        4.1.0              pyhd8ed1ab_0    conda-forge
hpack                     4.0.0              pyh9f0ad1d_0    conda-forge
hyperframe                6.0.1              pyhd8ed1ab_0    conda-forge
icu                       75.1                 hf9b3779_0    conda-forge
idna                      3.10               pyhd8ed1ab_0    conda-forge
jsonpatch                 1.33               pyhd8ed1ab_0    conda-forge
jsonpointer               3.0.0           py312h996f985_1    conda-forge
keyutils                  1.6.1                h4e544f5_0    conda-forge
krb5                      1.21.3               h50a48e9_0    conda-forge
ld_impl_linux-aarch64     2.43                 h80caac9_2    conda-forge
libarchive                3.7.7                h2f0f0fe_0    conda-forge
libcurl                   8.10.1               h3ec0cbf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h31becfc_2    conda-forge
libexpat                  2.6.4                h5ad3122_0    conda-forge
libffi                    3.4.2                h3557bc0_5    conda-forge
libgcc                    14.2.0               he277a41_1    conda-forge
libgcc-ng                 14.2.0               he9431aa_1    conda-forge
libgomp                   14.2.0               he277a41_1    conda-forge
libiconv                  1.17                 h31becfc_2    conda-forge
libmamba                  2.0.4                h489cd8b_0    conda-forge
libmambapy                2.0.4           py312h33c3f33_0    conda-forge
libnghttp2                1.64.0               hc8609a4_0    conda-forge
libnsl                    2.0.1                h31becfc_0    conda-forge
libsolv                   0.7.30               h62756fc_0    conda-forge
libsqlite                 3.47.0               hc4a20ef_1    conda-forge
libssh2                   1.11.1               ha41c0db_0    conda-forge
libstdcxx                 14.2.0               h3f4de04_1    conda-forge
libstdcxx-ng              14.2.0               hf1166c9_1    conda-forge
libuuid                   2.38.1               hb4cce97_0    conda-forge
libxcrypt                 4.4.36               h31becfc_1    conda-forge
libxml2                   2.13.5               hf4efe5d_0    conda-forge
libzlib                   1.3.1                h86ecc28_2    conda-forge
lz4-c                     1.9.4                hd600fc2_0    conda-forge
lzo                       2.10              h31becfc_1001    conda-forge
mamba                     2.0.4                hef03586_0    conda-forge
menuinst                  2.2.0           py312h996f985_0    conda-forge
ncurses                   6.5                  hcccb83c_1    conda-forge
nlohmann_json             3.11.3               h0a1ffab_1    conda-forge
openssl                   3.4.0                h86ecc28_0    conda-forge
packaging                 24.2               pyhff2d567_1    conda-forge
pip                       24.3.1             pyh8b19718_0    conda-forge
platformdirs              4.3.6              pyhd8ed1ab_0    conda-forge
pluggy                    1.5.0              pyhd8ed1ab_0    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.6           py312hb2c0f52_2    conda-forge
pycparser                 2.22               pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.12.7          h5d932e8_0_cpython    conda-forge
python_abi                3.12                    5_cp312    conda-forge
readline                  8.2                  h8fc344f_1    conda-forge
reproc                    14.2.4.post0         h31becfc_1    conda-forge
reproc-cpp                14.2.4.post0         h2f0025b_1    conda-forge
requests                  2.32.3             pyhd8ed1ab_0    conda-forge
ruamel.yaml               0.18.6          py312hb2c0f52_1    conda-forge
ruamel.yaml.clib          0.2.8           py312hb2c0f52_1    conda-forge
setuptools                75.6.0             pyhff2d567_1    conda-forge
simdjson                  3.10.1               h17cf362_0    conda-forge
spdlog                    1.14.1               h9d9cc24_1    conda-forge
tk                        8.6.13               h194ca79_0    conda-forge
tqdm                      4.67.1             pyhd8ed1ab_0    conda-forge
truststore                0.10.0             pyhd8ed1ab_0    conda-forge
tzdata                    2024b                hc8b5060_0    conda-forge
urllib3                   2.2.3              pyhd8ed1ab_0    conda-forge
wheel                     0.45.1             pyhd8ed1ab_1    conda-forge
xz                        5.2.6                h9cdd2b7_0    conda-forge
yaml-cpp                  0.8.0                h2f0025b_0    conda-forge
zstandard                 0.23.0          py312hb698573_1    conda-forge
zstd                      1.5.6                h02f22dd_0    conda-forge

Additional Context

Running the following:

docker run \
    --rm \
    -it condaforge/miniforge3:24.9.2-0 \
    bash

conda install --dry-run -n base 'python~=3.11.0=*_cpython'

That works without issue, and finds:

...
  python                          3.12.7-h5d932e8_0_cpython --> 3.11.10-h5d932e8_3_cpython
  python_abi                                   3.12-5_cp312 --> 3.11-5_cp311
...
output of 'conda info' (click me)
     active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 24.9.2
    conda-build version : not installed
         python version : 3.12.7.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=aarch64
                          __conda=24.9.2=0
                          __glibc=2.31=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-aarch64
             user-agent : conda/24.9.2 requests/2.32.3 CPython/3.12.7 Linux/6.5.0-44-generic ubuntu/20.04.6 glibc/2.31 solver/libmamba conda-libmamba-solver/24.9.0 libmambapy/1.5.9
                UID:GID : 0:0
             netrc file : None
           offline mode : False
output of 'conda env export -n base' (click me)
name: base
channels:
  - conda-forge
dependencies:
  - _openmp_mutex=4.5=2_gnu
  - archspec=0.2.3=pyhd8ed1ab_0
  - boltons=24.0.0=pyhd8ed1ab_0
  - brotli-python=1.1.0=py312h6f74592_2
  - bzip2=1.0.8=h68df207_7
  - c-ares=1.32.3=h68df207_0
  - ca-certificates=2024.8.30=hcefe29a_0
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cffi=1.17.1=py312hac81daf_0
  - charset-normalizer=3.4.0=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - conda=24.9.2=py312h996f985_0
  - conda-libmamba-solver=24.9.0=pyhd8ed1ab_0
  - conda-package-handling=2.4.0=pyh7900ff3_0
  - conda-package-streaming=0.11.0=pyhd8ed1ab_0
  - distro=1.9.0=pyhd8ed1ab_0
  - fmt=10.2.1=h2a328a1_0
  - frozendict=2.4.6=py312hb2c0f52_0
  - h2=4.1.0=pyhd8ed1ab_0
  - hpack=4.0.0=pyh9f0ad1d_0
  - hyperframe=6.0.1=pyhd8ed1ab_0
  - icu=75.1=hf9b3779_0
  - idna=3.10=pyhd8ed1ab_0
  - jsonpatch=1.33=pyhd8ed1ab_0
  - jsonpointer=3.0.0=py312h996f985_1
  - keyutils=1.6.1=h4e544f5_0
  - krb5=1.21.3=h50a48e9_0
  - ld_impl_linux-aarch64=2.43=h80caac9_2
  - libarchive=3.7.4=h2c0effa_0
  - libcurl=8.10.1=h3ec0cbf_0
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h31becfc_2
  - libexpat=2.6.4=h5ad3122_0
  - libffi=3.4.2=h3557bc0_5
  - libgcc=14.2.0=he277a41_1
  - libgcc-ng=14.2.0=he9431aa_1
  - libgomp=14.2.0=he277a41_1
  - libiconv=1.17=h31becfc_2
  - libmamba=1.5.9=hee7cc92_0
  - libmambapy=1.5.9=py312hc6280c9_0
  - libnghttp2=1.64.0=hc8609a4_0
  - libnsl=2.0.1=h31becfc_0
  - libsolv=0.7.30=h62756fc_0
  - libsqlite=3.47.0=hc4a20ef_1
  - libssh2=1.11.0=h492db2e_0
  - libstdcxx=14.2.0=h3f4de04_1
  - libstdcxx-ng=14.2.0=hf1166c9_1
  - libuuid=2.38.1=hb4cce97_0
  - libxcrypt=4.4.36=h31becfc_1
  - libxml2=2.13.4=hf4efe5d_2
  - libzlib=1.3.1=h86ecc28_2
  - lz4-c=1.9.4=hd600fc2_0
  - lzo=2.10=h31becfc_1001
  - mamba=1.5.9=py312hd80a4d2_0
  - menuinst=2.2.0=py312h996f985_0
  - ncurses=6.5=hcccb83c_1
  - openssl=3.3.2=h86ecc28_0
  - packaging=24.1=pyhd8ed1ab_0
  - pip=24.3.1=pyh8b19718_0
  - platformdirs=4.3.6=pyhd8ed1ab_0
  - pluggy=1.5.0=pyhd8ed1ab_0
  - pybind11-abi=4=hd8ed1ab_3
  - pycosat=0.6.6=py312hdd3e373_0
  - pycparser=2.22=pyhd8ed1ab_0
  - pysocks=1.7.1=pyha2e5f31_6
  - python=3.12.7=h5d932e8_0_cpython
  - python_abi=3.12=5_cp312
  - readline=8.2=h8fc344f_1
  - reproc=14.2.4.post0=h31becfc_1
  - reproc-cpp=14.2.4.post0=h2f0025b_1
  - requests=2.32.3=pyhd8ed1ab_0
  - ruamel.yaml=0.18.6=py312hb2c0f52_1
  - ruamel.yaml.clib=0.2.8=py312hb2c0f52_1
  - setuptools=75.3.0=pyhd8ed1ab_0
  - tk=8.6.13=h194ca79_0
  - tqdm=4.67.0=pyhd8ed1ab_0
  - truststore=0.10.0=pyhd8ed1ab_0
  - tzdata=2024b=hc8b5060_0
  - urllib3=2.2.3=pyhd8ed1ab_0
  - wheel=0.45.0=pyhd8ed1ab_0
  - xz=5.2.6=h9cdd2b7_0
  - yaml-cpp=0.8.0=h2f0025b_0
  - zstandard=0.23.0=py312hb698573_1
  - zstd=1.5.6=h02f22dd_0
prefix: /opt/conda

However, if I first upgrade to the latest conda.

conda update --all -y -n base
output of 'conda info' (click me)
     active environment : base                                                                                                                                                           
    active env location : /opt/conda                                                                                                                                                     
            shell level : 1                                                                                                                                                              
       user config file : /root/.condarc                                                                                                                                                 
 populated config files : /opt/conda/.condarc                                                                                                                                            
          conda version : 24.11.0                                                                                                                                                        
    conda-build version : not installed                                                                                                                                                  
         python version : 3.12.7.final.0                                                                                                                                                 
                 solver : libmamba (default)                                                                                                                                             
       virtual packages : __archspec=1=aarch64                                                                                                                                           
                          __conda=24.11.0=0                                                                                                                                              
                          __glibc=2.31=0                                                                                                                                                 
                          __linux=6.5.0=0                                                                                                                                                
                          __unix=0=0                                                                                                                                                     
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-aarch64
             user-agent : conda/24.11.0 requests/2.32.3 CPython/3.12.7 Linux/6.5.0-44-generic ubuntu/20.04.6 glibc/2.31 solver/libmamba conda-libmamba-solver/24.11.0 libmambapy/2.0.4
                UID:GID : 0:0
             netrc file : None
           offline mode : False
output of 'conda env export -n base' (click me)
name: base
channels:
  - conda-forge
dependencies:
  - _openmp_mutex=4.5=2_gnu
  - archspec=0.2.3=pyhd8ed1ab_0
  - boltons=24.0.0=pyhd8ed1ab_0
  - brotli-python=1.1.0=py312h6f74592_2
  - bzip2=1.0.8=h68df207_7
  - c-ares=1.34.3=h86ecc28_1
  - ca-certificates=2024.8.30=hcefe29a_0
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cffi=1.17.1=py312hac81daf_0
  - charset-normalizer=3.4.0=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - conda=24.11.0=py312h996f985_0
  - conda-libmamba-solver=24.11.0=pyhd8ed1ab_0
  - conda-package-handling=2.4.0=pyh7900ff3_0
  - conda-package-streaming=0.11.0=pyhd8ed1ab_0
  - cpp-expected=1.1.0=h4c384f3_0
  - distro=1.9.0=pyhd8ed1ab_0
  - fmt=11.0.2=h70be974_0
  - frozendict=2.4.6=py312hb2c0f52_0
  - h2=4.1.0=pyhd8ed1ab_0
  - hpack=4.0.0=pyh9f0ad1d_0
  - hyperframe=6.0.1=pyhd8ed1ab_0
  - icu=75.1=hf9b3779_0
  - idna=3.10=pyhd8ed1ab_0
  - jsonpatch=1.33=pyhd8ed1ab_0
  - jsonpointer=3.0.0=py312h996f985_1
  - keyutils=1.6.1=h4e544f5_0
  - krb5=1.21.3=h50a48e9_0
  - ld_impl_linux-aarch64=2.43=h80caac9_2
  - libarchive=3.7.7=h2f0f0fe_0
  - libcurl=8.10.1=h3ec0cbf_0
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h31becfc_2
  - libexpat=2.6.4=h5ad3122_0
  - libffi=3.4.2=h3557bc0_5
  - libgcc=14.2.0=he277a41_1
  - libgcc-ng=14.2.0=he9431aa_1
  - libgomp=14.2.0=he277a41_1
  - libiconv=1.17=h31becfc_2
  - libmamba=2.0.4=h489cd8b_0
  - libmambapy=2.0.4=py312h33c3f33_0
  - libnghttp2=1.64.0=hc8609a4_0
  - libnsl=2.0.1=h31becfc_0
  - libsolv=0.7.30=h62756fc_0
  - libsqlite=3.47.0=hc4a20ef_1
  - libssh2=1.11.1=ha41c0db_0
  - libstdcxx=14.2.0=h3f4de04_1
  - libstdcxx-ng=14.2.0=hf1166c9_1
  - libuuid=2.38.1=hb4cce97_0
  - libxcrypt=4.4.36=h31becfc_1
  - libxml2=2.13.5=hf4efe5d_0
  - libzlib=1.3.1=h86ecc28_2
  - lz4-c=1.9.4=hd600fc2_0
  - lzo=2.10=h31becfc_1001
  - mamba=2.0.4=hef03586_0
  - menuinst=2.2.0=py312h996f985_0
  - ncurses=6.5=hcccb83c_1
  - nlohmann_json=3.11.3=h0a1ffab_1
  - openssl=3.4.0=h86ecc28_0
  - packaging=24.2=pyhff2d567_1
  - pip=24.3.1=pyh8b19718_0
  - platformdirs=4.3.6=pyhd8ed1ab_0
  - pluggy=1.5.0=pyhd8ed1ab_0
  - pybind11-abi=4=hd8ed1ab_3
  - pycosat=0.6.6=py312hb2c0f52_2
  - pycparser=2.22=pyhd8ed1ab_0
  - pysocks=1.7.1=pyha2e5f31_6
  - python=3.12.7=h5d932e8_0_cpython
  - python_abi=3.12=5_cp312
  - readline=8.2=h8fc344f_1
  - reproc=14.2.4.post0=h31becfc_1
  - reproc-cpp=14.2.4.post0=h2f0025b_1
  - requests=2.32.3=pyhd8ed1ab_0
  - ruamel.yaml=0.18.6=py312hb2c0f52_1
  - ruamel.yaml.clib=0.2.8=py312hb2c0f52_1
  - setuptools=75.6.0=pyhff2d567_1
  - simdjson=3.10.1=h17cf362_0
  - spdlog=1.14.1=h9d9cc24_1
  - tk=8.6.13=h194ca79_0
  - tqdm=4.67.1=pyhd8ed1ab_0
  - truststore=0.10.0=pyhd8ed1ab_0
  - tzdata=2024b=hc8b5060_0
  - urllib3=2.2.3=pyhd8ed1ab_0
  - wheel=0.45.1=pyhd8ed1ab_1
  - xz=5.2.6=h9cdd2b7_0
  - yaml-cpp=0.8.0=h2f0025b_0
  - zstandard=0.23.0=py312hb698573_1
  - zstd=1.5.6=h02f22dd_0
prefix: /opt/conda

Then try that install again

conda install --dry-run -n base 'python~=3.11.0=*_cpython'

Results in this error:

libmambapy.bindings.specs.ParseError: Error parsing MatchSpec "python[version='>=3.11.0',3.11.*": Parentheses mismatch in "python[version='>=3.11.0',3.11.*"."
full error output (click me)
Channels:                                                                                                                                                                                
 - conda-forge                                                                                                                                                                           
Platform: linux-aarch64                                                                                                                                                                  
Collecting package metadata (repodata.json): done                                                                                                                                        
Solving environment: failed                                                                                                                                                              
                                                                                                                                                                                         
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<                                                                                                                             
                                                                                                                                                                                         
    Traceback (most recent call last):                                                                                                                                                   
      File "/opt/conda/lib/python3.12/site-packages/conda/exception_handler.py", line 18, in __call__                                                                                    
        return func(*args, **kwargs)                                                                                                                                                     
               ^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                     
      File "/opt/conda/lib/python3.12/site-packages/conda/cli/main.py", line 61, in main_subshell                                                                                        
        exit_code = do_call(args, parser)                                                                                                                                                
                    ^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                
      File "/opt/conda/lib/python3.12/site-packages/conda/cli/conda_argparse.py", line 205, in do_call
        result = getattr(module, func_name)(args, parser)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/notices/core.py", line 132, in wrapper
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/cli/main_install.py", line 152, in execute
        return install(args, parser, "install")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/cli/install.py", line 409, in install
        unlink_link_transaction = solver.solve_for_transaction(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/core/solve.py", line 153, in solve_for_transaction
        unlink_precs, link_precs = self.solve_for_diff(
                                   ^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/core/solve.py", line 222, in solve_for_diff
        final_precs = self.solve_final_state(
                      ^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda_libmamba_solver/solver.py", line 180, in solve_final_state
        out_state = self._solving_loop(in_state, out_state, index)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda/common/io.py", line 87, in decorated
        return f(*args, **kwds)
               ^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda_libmamba_solver/solver.py", line 306, in _solving_loop
        solved, outcome = self._solve_attempt(in_state, out_state, index, attempt=attempt)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda_libmamba_solver/solver.py", line 355, in _solve_attempt
        jobs = self._specs_to_request_jobs(in_state, out_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda_libmamba_solver/solver.py", line 408, in _specs_to_request_jobs
        libmamba_spec = self._conda_spec_to_libmamba_spec(conda_spec)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/conda/lib/python3.12/site-packages/conda_libmamba_solver/solver.py", line 888, in _conda_spec_to_libmamba_spec
        return LibmambaMatchSpec.parse(str(spec))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    libmambapy.bindings.specs.ParseError: Error parsing MatchSpec "python[version='>=3.11.0',3.11.*": Parentheses mismatch in "python[version='>=3.11.0',3.11.*"."

`$ /opt/conda/bin/conda install --dry-run -n base python~=3.11.0=*_cpython`

  environment variables:
                 CIO_TEST=<not set>
        CONDA_DEFAULT_ENV=base
                CONDA_DIR=/opt/conda
                CONDA_EXE=/opt/conda/bin/conda
             CONDA_PREFIX=/opt/conda
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/opt/conda/bin/python
               CONDA_ROOT=/opt/conda
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
               LD_PRELOAD=<not set>
                     PATH=/opt/conda/bin:/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr
                          /local/bin:/usr/sbin:/usr/bin:/sbin:/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : /opt/conda/.condarc
          conda version : 24.11.0
    conda-build version : not installed
         python version : 3.12.7.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=aarch64
                          __conda=24.11.0=0
                          __glibc=2.31=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-aarch64
             user-agent : conda/24.11.0 requests/2.32.3 CPython/3.12.7 Linux/6.5.0-44-generic ubuntu/20.04.6 glibc/2.31 solver/libmamba conda-libmamba-solver/24.11.0 libmambapy/2.0.4
                UID:GID : 0:0
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.
If you suspect this error is being caused by a malfunctioning plugin,
consider using the --no-plugins option to turn off plugins.

Example: conda --no-plugins install <package>

Alternatively, you can set the CONDA_NO_PLUGINS environment variable on
the command line to run the command without plugins enabled.

Example: CONDA_NO_PLUGINS=true conda install <package>
@jameslamb jameslamb added the type::bug describes erroneous operation, use severity::* to classify the type label Dec 2, 2024
@github-project-automation github-project-automation bot moved this to 🆕 New in 🧭 Planning Dec 2, 2024
@jaimergp
Copy link
Contributor

jaimergp commented Dec 2, 2024

Thank you for the report. Looking into it!

@jaimergp
Copy link
Contributor

jaimergp commented Dec 2, 2024

This seems to be a bug in libmamba itself, not our wrapper.

This doesn't work:

>>> LibmambaMatchSpec.parse("python[version='~=3.11.0',build=*_cpython]")
libmambapy.bindings.specs.ParseError: Error parsing MatchSpec "python[version='>=3.11.0',3.11.*": Parentheses mismatch in "python[version='>=3.11.0',3.11.*"."

And this is strange:

>>> spec = LibmambaMatchSpec.parse('python~=3.11.0=*_cpython')
>>> print(spec)
python[version=">=3.11.0",build="*_cpython,3.11.*"]

I'll forward to the mamba folks.

@jaimergp
Copy link
Contributor

jaimergp commented Dec 2, 2024

In the meantime, consider using the alternative syntax python>=3.11,<3.12.0a0.

@jaimergp
Copy link
Contributor

jaimergp commented Dec 2, 2024

Reported as mamba-org/mamba#3647.

@jaimergp jaimergp added the upstream this issue/PR is caused by an upstream dependency label Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::bug describes erroneous operation, use severity::* to classify the type upstream this issue/PR is caused by an upstream dependency
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants