conda / conda-build

Commands and tools for building conda packages
https://docs.conda.io/projects/conda-build/
Other
378 stars 419 forks source link

`AttributeError: 'str' object has no attribute 'copy'` when combining specs. #5416

Open danpetry opened 1 month ago

danpetry commented 1 month ago

Checklist

What happened?

While testing a tarball (this one):

(bld) [ec2-user@ip-172-31-80-63 ~]$ conda build -t mychan/linux-64/pytorch-2.3.0-gpu_cuda118py39h7338b40_100.tar.bz2 
TEST START: mychan/linux-64/pytorch-2.3.0-gpu_cuda118py39h7338b40_100.tar.bz2                                                                                                                                                                                                                                                 
WARNING: Multiple meta files found. The meta.yaml file in the base directory (/tmp/tmpeqg3qkgb/info/recipe) will be used.                                                                                                                                                                                                     
Adding in variants from internal_defaults                                                                                                                                                                                                                                                                                     
Adding in variants from /tmp/tmpeqg3qkgb/info/recipe/conda_build_config.yaml                                                                                                                                                                                                                                                  
Adding in variants from config.variant                                                                                                                                                                                                                                                                                        

Leaving build/test directories:                                                                                                                                                                                                                                                                                               
  Work:                                                                                                                                                                                                                                                                                                                       
 /opt/conda/envs/bld/conda-bld/work                                                                                                                                                                                                                                                                                           
  Test:                                                                                                                                                                                                                                                                                                                       
 /opt/conda/envs/bld/conda-bld/test_tmp                                                                                                                                                                                                                                                                                       
Leaving build/test environments:                                                                                                                                                                                                                                                                                              
  Test:                                                                                                                                                                                                                                                                                                                       
source activate  /opt/conda/envs/bld/conda-bld/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla                                                
  Build:                                                                                                                                                                                                                                                                                                                      
source activate  /opt/conda/envs/bld/conda-bld/_build_env                                                                                                                                                                                                                                                                     

Traceback (most recent call last):
  File "/opt/conda/envs/bld/bin/conda-build", line 11, in <module>
    sys.exit(execute())
             ^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/cli/main_build.py", line 570, in execute
    test_action(recipe, config)
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/cli/main_build.py", line 526, in test_action
    return api.test(recipe, move_broken=False, config=config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/api.py", line 290, in test
    return test(
           ^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/build.py", line 3243, in test
    metadata, hash_input = construct_metadata_for_test(
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/build.py", line 2987, in construct_metadata_for_test
    m, hash_input = _construct_metadata_for_test_from_package(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/build.py", line 2899, in _construct_metadata_for_test_from_package
    metadata = render_recipe(
               ^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/render.py", line 985, in render_recipe
    m.config.variants = get_package_variants(m, variants=variants)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/variants.py", line 698, in get_package_variants
    combined_spec, specs = get_package_combined_spec(
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/variants.py", line 666, in get_package_combined_spec
    combined_spec = combine_specs(specs, log_output=config.verbose)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/variants.py", line 379, in combine_specs
    values = _combine_spec_dictionaries(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/bld/lib/python3.11/site-packages/conda_build/variants.py", line 332, in _combine_spec_dictionaries
    values[k] = v.copy()
                ^^^^^^
AttributeError: 'str' object has no attribute 'copy'

Putting a breakpoint just before the line throwing the error shows:

(Pdb) print(k)
numpy
(Pdb) print(v)
1.21
(Pdb) print(values)
{'python': ['3.9'], 'numpy': ['1.21'], 'perl': ['5.34'], 'lua': ['5'], 'r_base': ['3.5'], 'cpu_optimization_target': ['nocona'], 'pin_run_as_build': {'python': {'max_pin': 'x.x', 'min_pin': 'x.x'}, 'r-base': {'max_pin': 'x.x', 'min_pin': 'x.x'}, 'libboost': {'max_pin': 'x.x.x'}}, 'ignore_version': [], 'ignore_build_only_deps': ['python', 'numpy'], 'extend_keys': ['pin_run_as_build', 'ignore_build_only_deps', 'extend_keys', 'ignore_version'], 'cran_mirror': ['https://mran.microsoft.com/snapshot/2018-01-01'], 'target_platform': ['linux-64'], 'c_compiler': ['gcc'], 'cxx_compiler': ['gxx'], 'fortran_compiler': ['gfortran'], 'VERBOSE_AT': ['V=1'], 'VERBOSE_CM': ['VERBOSE=1'], 'blas_impl': ['openblas'], 'boost': ['1.82'], 'boost_cpp': ['1.82'], 'bzip2': ['1.0'], 'c_compiler_version': ['11.2.0'], 'cairo': ['1.16'], 'channel_targets': ['defaults'], 'clang_variant': ['clang'], 'cuda_compiler': ['cuda-nvcc'], 'cuda_compiler_version': ['12.4'], 'cudatoolkit': ['11.8'], 'cudnn': ['8.9.2.26'], 'cxx_compiler_version': ['11.2.0'], 'cyrus_sasl': ['2.1.28'], 'dbus': ['1'], 'expat': ['2'], 'fontconfig': ['2.14'], 'fortran_compiler_version': ['11.2.0'], 'freetype': ['2.10'], 'g2clib': ['1.6'], 'geos': ['3.8.0'], 'giflib': ['5'], 'glib': ['2'], 'gmp': ['6.2'], 'gnu': ['2.12.2'], 'gpu_variant': ['cuda-11'], 'gst_plugins_base': ['1.14'], 'gstreamer': ['1.14'], 'harfbuzz': ['4.3.0'], 'hdf4': ['4.2'], 'hdf5': ['1.12.1'], 'hdfeos2': ['2.20'], 'hdfeos5': ['5.1'], 'icu': ['73'], 'jpeg': ['9'], 'libcurl': ['8.1.1'], 'libdap4': ['3.19'], 'libffi': ['3.4'], 'libgd': ['2.3.3'], 'libgdal': ['3.6.2'], 'libgsasl': ['1.10'], 'libkml': ['1.3'], 'libnetcdf': ['4.8'], 'libpng': ['1.6'], 'libprotobuf': ['3.20.3'], 'libtiff': ['4.2'], 'libwebp': ['1.3.2'], 'libxml2': ['2.10'], 'libxslt': ['1.1'], 'llvm_variant': ['llvm'], 'lzo': ['2'], 'mkl': ['2023.*'], 'mpfr': ['4'], 'openblas': ['0.3.21'], 'openjpeg': ['2.3'], 'openssl': ['3.0'], 'pixman': ['0.40'], 'proj': ['9.3.1'], 'proj4': ['5.2.0'], 'python_impl': ['cpython'], 'python_implementation': ['cpython'], 'r_implementation': ['r-base'], 'r_version': ['3.5.0'], 'readline': ['8.1'], 'rust_compiler': ['rust'], 'rust_compiler_version': ['1.71.1'], 'sqlite': ['3'], 'tk': ['8.6'], 'xz': ['5'], 'zip_keys': [['python', 'numpy']], 'zlib': ['1.2'], 'zstd': ['1.5.2']}
(Pdb) pprint.pprint(specs)
OrderedDict([('internal_defaults',
              {'c_compiler': 'gcc',
               'cpu_optimization_target': 'nocona',
               'cran_mirror': 'https://cran.r-project.org',
               'cxx_compiler': 'gxx',
               'extend_keys': ['pin_run_as_build',
                               'ignore_version',
                               'ignore_build_only_deps',
                               'extend_keys'],
               'fortran_compiler': 'gfortran',
               'ignore_build_only_deps': ['python', 'numpy'],
               'ignore_version': [],
               'lua': '5',
               'numpy': '1.23',
               'perl': '5.26.2',
               'pin_run_as_build': {'python': {'max_pin': 'x.x',
                                               'min_pin': 'x.x'},
                                    'r-base': {'max_pin': 'x.x',
                                               'min_pin': 'x.x'}},
               'python': '3.11',
               'r_base': '3.5',
               'target_platform': 'linux-64'}),
             ('/tmp/tmp0wue6mdn/info/recipe/conda_build_config.yaml',
              {'VERBOSE_AT': 'V=1',
               'VERBOSE_CM': 'VERBOSE=1',
               'blas_impl': 'openblas',
               'boost': '1.82',
               'boost_cpp': '1.82',
               'bzip2': '1.0',
               'c_compiler': 'gcc',
               'c_compiler_version': '11.2.0',
               'cairo': '1.16',
               'channel_targets': 'defaults',
               'clang_variant': 'clang',
               'cpu_optimization_target': 'nocona',
               'cran_mirror': 'https://mran.microsoft.com/snapshot/2018-01-01',
               'cuda_compiler': 'cuda-nvcc',
               'cuda_compiler_version': '12.4',
               'cudatoolkit': '11.8',
               'cudnn': '8.9.2.26',
               'cxx_compiler': 'gxx',
               'cxx_compiler_version': '11.2.0',
               'cyrus_sasl': '2.1.28',
               'dbus': '1',
               'expat': '2',
               'extend_keys': ['pin_run_as_build',
                               'extend_keys',
                               'ignore_build_only_deps',
                               'ignore_version'],
               'fontconfig': '2.14',
               'fortran_compiler': 'gfortran',
               'fortran_compiler_version': '11.2.0',
               'freetype': '2.10',
               'g2clib': '1.6',
               'geos': '3.8.0',
               'giflib': '5',
               'glib': '2',
               'gmp': '6.2',
               'gnu': '2.12.2',
               'gpu_variant': 'cuda-11',
               'gst_plugins_base': '1.14',
               'gstreamer': '1.14',
               'harfbuzz': '4.3.0',
               'hdf4': '4.2',
               'hdf5': '1.12.1',
               'hdfeos2': '2.20',
               'hdfeos5': '5.1',
               'icu': '73',
               'ignore_build_only_deps': ['python', 'numpy'],
               'jpeg': '9',
               'libcurl': '8.1.1',
               'libdap4': '3.19',
               'libffi': '3.4',
               'libgd': '2.3.3',
               'libgdal': '3.6.2',
               'libgsasl': '1.10',
               'libkml': '1.3',
               'libnetcdf': '4.8',
               'libpng': '1.6',
               'libprotobuf': '3.20.3',
               'libtiff': '4.2',
               'libwebp': '1.3.2',
               'libxml2': '2.10',
               'libxslt': '1.1',
               'llvm_variant': 'llvm',
               'lua': '5',
               'lzo': '2',
               'mkl': '2023.*',
               'mpfr': '4',
               'numpy': '1.21',
               'openblas': '0.3.21',
               'openjpeg': '2.3',
               'openssl': '3.0',
               'perl': '5.34',
               'pin_run_as_build': {'libboost': {'max_pin': 'x.x.x'},
                                    'python': {'max_pin': 'x.x',
                                               'min_pin': 'x.x'},
                                    'r-base': {'max_pin': 'x.x',
                                               'min_pin': 'x.x'}},
               'pixman': '0.40',
               'proj': '9.3.1',
               'proj4': '5.2.0',
               'python': '3.9',
               'python_impl': 'cpython',
               'python_implementation': 'cpython',
               'r_base': '3.5',
               'r_implementation': 'r-base',
               'r_version': '3.5.0',
               'readline': '8.1',
               'rust_compiler': 'rust',
               'rust_compiler_version': '1.71.1',
               'sqlite': '3',
               'target_platform': 'linux-64',
               'tk': '8.6',
               'xz': '5',
               'zip_keys': [['python', 'numpy']],
               'zlib': '1.2',
               'zstd': '1.5.2'}),
             ('config.variant',
              {'__cuda': '__cuda >=11.8',
               'blas_impl': 'openblas',
               'c_compiler': 'gcc',
               'c_compiler_version': '11.2.0',
               'channel_targets': 'defaults',
               'cudatoolkit': '11.8',
               'cudnn': '8.9.2.26',
               'cxx_compiler': 'gxx',
               'cxx_compiler_version': '11.2.0',
               'gpu_variant': 'cuda-11',
               'libprotobuf': '3.20.3',
               'numpy': '1.21',
               'openblas': '0.3.21',
               'target_platform': 'linux-64'})])

The tarball under test was built using the recipe/commit here.

Conda Info

No response

Conda Config

No response

Conda list

No response

Additional Context

Seems to duplicate https://github.com/conda/conda-build/issues/3404, but that's closed.

corneliusroemer commented 1 month ago

Came here to open this! I'm encountering the issue when testing in bioconda. My conda-build version: 24.5.1

I've modified the code that errors to workaround the issue. Replace line 332 with:

                                    if type(v) == str:
                                      values[k] = v
                                    else:
                                      values[k] = v.copy()

I've also found out what the root cause is by printing:

v='16'
k='cxx_compiler_version'
values={'perl': ['5.32.1'], 'lua': ['5'], 'r_base': ['4.3.*'], 'cpu_optimization_target': ['nocona'], 'pin_run_as_build': {'python': {'max_pin': 'x.x', 'min_pin': 'x.x'}, 'r-base': {'max_pin': 'x.x', 'min_pin': 'x.x'}, 'flann': {'max_pin': 'x.x.x'}, 'graphviz': {'max_pin': 'x'}, 'libsvm': {'max_pin': 'x'}, 'netcdf-cxx4': {'max_pin': 'x.x'}, 'occt': {'max_pin': 'x.x'}, 'poppler': {'max_pin': 'x.x'}, 'vlfeat': {'max_pin': 'x.x.x'}}, 'ignore_version': [], 'ignore_build_only_deps': ['numpy', 'python'], 'extend_keys': ['pin_run_as_build', 'extend_keys', 'ignore_build_only_deps', 'ignore_version'], 'cran_mirror': ['https://cran.r-project.org'], 'target_platform': ['osx-arm64'], 'c_compiler': ['clang'], 'cxx_compiler': ['clangxx'], 'fortran_compiler': ['gfortran'], 'MACOSX_DEPLOYMENT_TARGET': ['11.0'], 'VERBOSE_AT': ['V=1'], 'VERBOSE_CM': ['VERBOSE=1'], '_libgcc_mutex': ['0.1 conda_forge'], 'abseil_cpp': ['20220623.0'], 'alsa_lib': ['1.2'], 'antic': ['0.2'], 'aom': ['3.8'], 'arb': ['2.23'], 'arpack': ['3.8'], 'arrow_cpp': ['15'], 'libarrow': ['15'], 'libarrow_all': ['15'], 'assimp': ['5.3.1'], 'attr': ['2.5'], 'aws_c_auth': ['0.7.22'], 'aws_c_cal': ['0.6.14'], 'aws_c_common': ['0.9.19'], 'aws_c_compression': ['0.2.18'], 'aws_c_event_stream': ['0.4.2'], 'aws_c_http': ['0.8.1'], 'aws_c_io': ['0.14.8'], 'aws_c_mqtt': ['0.10.4'], 'aws_c_s3': ['0.5.9'], 'aws_c_sdkutils': ['0.1.16'], 'aws_checksums': ['0.1.18'], 'aws_crt_cpp': ['0.26.9'], 'aws_sdk_cpp': ['1.11.267'], 'bamtools': ['2.5.2'], 'blas_impl': ['openblas'], 'bullet_cpp': ['3.25'], 'bzip2': ['1'], 'c_ares': ['1'], 'c_blosc2': ['2.14'], 'c_compiler_version': ['16'], 'cxx_compiler_version': ['16'], 'fortran_compiler_version': ['12'], 'c_stdlib': ['macosx_deployment_target'], 'c_stdlib_version': ['11.0'], 'cairo': ['1'], 'capnproto': ['1.0.2'], 'ccr': ['1.3'], 'cfitsio': ['4.3.0'], 'cgo_compiler': ['go-cgo'], 'channel_sources': ['conda-forge,bioconda'], 'channel_targets': ['bioconda main'], 'coin_or_cbc': ['2.10'], 'coin_or_cgl': ['0.60'], 'coin_or_clp': ['1.17'], 'coin_or_osi': ['0.108'], 'coin_or_utils': ['2.11'], 'coincbc': ['2.10'], 'console_bridge': ['1.0'], 'cuda_compiler': ['None'], 'cuda_compiler_version': ['None'], 'cuda_compiler_version_min': ['None'], 'cudnn': ['8'], 'curl': ['8'], 'cutensor': ['2'], 'dav1d': ['1.2.1'], 'davix': ['0.8'], 'dbus': ['1'], 'dcap': ['2.47'], 'eclib': ['20231211'], 'elfutils': ['0.191'], 'exiv2': ['0.28'], 'expat': ['2'], 'ffmpeg': ['6'], 'fftw': ['3'], 'flann': ['1.9.2'], 'flatbuffers': ['24.3.25'], 'fmt': ['10'], 'fontconfig': ['2'], 'freetype': ['2'], 'gct': ['6.2.1705709074'], 'gdal': ['3.8'], 'gdk_pixbuf': ['2'], 'geos': ['3.12.1'], 'geotiff': ['1.7.1'], 'gf2x': ['1.3'], 'gfal2': ['2.22'], 'gflags': ['2.2'], 'giflib': ['5.2'], 'glew': ['2.1'], 'glib': ['2'], 'glog': ['0.6'], 'glpk': ['5.0'], 'gmp': ['6'], 'gnuradio_core': ['3.10.10'], 'gnutls': ['3.7'], 'go_compiler': ['go-nocgo'], 'google_cloud_cpp': ['2.24'], 'google_cloud_cpp_common': ['0.25.0'], 'googleapis_cpp': ['0.10'], 'graphviz': ['9'], 'grpc_cpp': ['1.52'], 'gsl': ['2.7'], 'gsoap': ['2.8.123'], 'gst_plugins_base': ['1.22'], 'gstreamer': ['1.22'], 'harfbuzz': ['8'], 'hdf4': ['4.2.15'], 'hdf5': ['1.14.3'], 'icu': ['73'], 'idyntree': ['12'], 'imath': ['3.1.11'], 'ipopt': ['3.14.16'], 'isl': ['0.26'], 'jasper': ['4'], 'jpeg': ['9'], 'json_c': ['0.17'], 'jsoncpp': ['1.9.5'], 'kealib': ['1.5'], 'krb5': ['1.21'], 'lcms2': ['2'], 'ldas_tools_framecpp': ['2.9'], 'lerc': ['4'], 'libabseil': ['20240116'], 'libabseil_static': ['20220623.0'], 'libaec': ['1'], 'libarchive': ['3.7'], 'libavif': ['1'], 'libblas': ['3.9 *netlib'], 'libblitz': ['1.0.2'], 'libboost_devel': ['1.82'], 'libboost_python_devel': ['1.82'], 'libcblas': ['3.9 *netlib'], 'libcint': ['5.5'], 'libcrc32c': ['1.1'], 'libcurl': ['8'], 'libdap4': ['3.20.6'], 'libdeflate': ['1.20'], 'libduckdb_devel': ['0.9.2'], 'libeantic': ['2'], 'libev': ['4.33'], 'libevent': ['2.1.12'], 'libexactreal': ['4'], 'libffi': ['3.4'], 'libflatsurf': ['3'], 'libflint': ['2.9'], 'libframel': ['8.41'], 'libgdal': ['3.8'], 'libgit2': ['1.8'], 'libgoogle_cloud': ['2.24'], 'libgoogle_cloud_aiplatform_devel': ['2.24'], 'libgoogle_cloud_all_devel': ['2.24'], 'libgoogle_cloud_automl_devel': ['2.24'], 'libgoogle_cloud_bigquery_devel': ['2.24'], 'libgoogle_cloud_bigtable_devel': ['2.24'], 'libgoogle_cloud_compute_devel': ['2.24'], 'libgoogle_cloud_devel': ['2.24'], 'libgoogle_cloud_dialogflow_cx_devel': ['2.24'], 'libgoogle_cloud_dialogflow_es_devel': ['2.24'], 'libgoogle_cloud_discoveryengine_devel': ['2.24'], 'libgoogle_cloud_dlp_devel': ['2.24'], 'libgoogle_cloud_iam_devel': ['2.24'], 'libgoogle_cloud_oauth2_devel': ['2.24'], 'libgoogle_cloud_policytroubleshooter_devel': ['2.24'], 'libgoogle_cloud_pubsub_devel': ['2.24'], 'libgoogle_cloud_spanner_devel': ['2.24'], 'libgoogle_cloud_speech_devel': ['2.24'], 'libgoogle_cloud_storage_devel': ['2.24'], 'libgrpc': ['1.62'], 'libhugetlbfs': ['2'], 'libhwloc': ['2.10.0'], 'libhwy': ['1.1'], 'libiconv': ['1'], 'libidn2': ['2'], 'libiio': ['0'], 'libintervalxt': ['3'], 'libjpeg_turbo': ['3'], 'libkml': ['1.3'], 'liblapack': ['3.9 *netlib'], 'liblapacke': ['3.9 *netlib'], 'libmatio': ['1.5.26'], 'libmatio_cpp': ['0.2.5'], 'libmed': ['4.1'], 'libmicrohttpd': ['1.0'], 'libnetcdf': ['4.9.2'], 'libode': ['0.16.2'], 'libopencv': ['4.9.0'], 'libopentelemetry_cpp': ['1.15'], 'libopenvino_dev': ['2024.1.0'], 'libosqp': ['0.6.3'], 'libpcap': ['1.10'], 'libpng': ['1.6'], 'libpq': ['16'], 'libprotobuf': ['4.25.3'], 'libptscotch': ['7.0.4'], 'libraw': ['0.21'], 'librdkafka': ['2.4'], 'librsvg': ['2'], 'libscotch': ['7.0.4'], 'libsecret': ['0.18'], 'libsentencepiece': ['0.2.0'], 'libsndfile': ['1.2'], 'libsoup': ['3'], 'libspatialindex': ['1.9.3'], 'libsqlite': ['3'], 'libssh': ['0.10'], 'libssh2': ['1'], 'libsvm': ['332'], 'libtensorflow': ['2.15'], 'libtensorflow_cc': ['2.15'], 'libthrift': ['0.20.0'], 'libtiff': ['4.6'], 'libtorch': ['2.1'], 'libunwind': ['1.6'], 'libuuid': ['2'], 'libv8': ['8.9.83'], 'libvips': ['8'], 'libwebp': ['1'], 'libwebp_base': ['1'], 'libxml2': ['2'], 'libxsmm': ['1'], 'libyarp': ['3.9.0'], 'libzip': ['1'], 'llvm_openmp': ['16'], 'lmdb': ['0.9.29'], 'log4cxx': ['1.2.0'], 'lz4_c': ['1.9.3'], 'lzo': ['2'], 'macos_machine': ['arm64-apple-darwin20.0.0'], 'metis': ['5.1.0'], 'mimalloc': ['2.1.7'], 'mkl': ['2023'], 'mkl_devel': ['2023'], 'mpfr': ['4'], 'mpg123': ['1.32'], 'mpich': ['4'], 'msgpack_c': ['6'], 'msgpack_cxx': ['6'], 'mumps_mpi': ['5.7.1'], 'mumps_seq': ['5.7.1'], 'nccl': ['2'], 'ncurses': ['6'], 'netcdf_cxx4': ['4.3'], 'netcdf_fortran': ['4.6'], 'nettle': ['3.9'], 'nlopt': ['2.7'], 'nodejs': ['20'], 'nspr': ['4'], 'nss': ['3'], 'ntl': ['11.4.3'], 'python': ['3.11.* *_cpython'], 'numpy': ['1.23'], 'python_impl': ['cpython'], 'occt': ['7.7.2'], 'openblas': ['0.3.*'], 'openexr': ['3.2'], 'openh264': ['2.4.1'], 'openjpeg': ['2'], 'openmpi': ['4'], 'openslide': ['4'], 'openssl': ['3'], 'orc': ['2.0.1'], 'p11_kit': ['0.24'], 'pango': ['1.50'], 'pari': ['2.15.* *_pthread'], 'pcl': ['1.14.0'], 'pcre': ['8'], 'pcre2': ['10.43'], 'petsc': ['3.21'], 'petsc4py': ['3.21'], 'pixman': ['0'], 'poco': ['1.13.3'], 'poppler': ['24.04'], 'postgresql': ['16'], 'postgresql_plpython': ['16'], 'proj': ['9.3.1'], 'ptscotch': ['7.0.4'], 'pugixml': ['1.14'], 'pulseaudio': ['17.0'], 'pulseaudio_client': ['17.0'], 'pulseaudio_daemon': ['17.0'], 'pybind11_abi': ['4'], 'pyqt': ['5.15'], 'pyqtchart': ['5.15'], 'pyqtwebengine': ['5.15'], 'pytorch': ['2.1'], 'qt': ['5.15'], 'qt6_main': ['6.7'], 'qt_main': ['5.15'], 'qtkeychain': ['0.14'], 'rdma_core': ['51'], 're2': ['2023.09.01'], 'readline': ['8'], 'rocksdb': ['9.1'], 'root_base': ['6.28.10'], 'ruby': ['2.5'], 'rust_compiler': ['rust'], 's2n': ['1.4.15'], 'scotch': ['7.0.4'], 'sdl2': ['2'], 'sdl2_image': ['2'], 'sdl2_mixer': ['2'], 'sdl2_net': ['2'], 'sdl2_ttf': ['2'], 'singular': ['4.3.2.p8'], 'slepc': ['3.21'], 'slepc4py': ['3.21'], 'snappy': ['1.2'], 'soapysdr': ['0.8'], 'sox': ['14.4.2'], 'spdlog': ['1.12'], 'sqlite': ['3'], 'srm_ifce': ['1.24.6'], 'starlink_ast': ['9.2.7'], 'suitesparse': ['5'], 'superlu_dist': ['8'], 'svt_av1': ['2.1.0'], 'target_goarch': ['arm64'], 'target_gobin': ['${PREFIX}/bin/'], 'target_goos': ['darwin'], 'tbb': ['2021'], 'tbb_devel': ['2021'], 'tensorflow': ['2.15'], 'thrift_cpp': ['0.18.1'], 'tiledb': ['2.23'], 'tinyxml2': ['10'], 'tk': ['8.6'], 'ucx': ['1.16.0'], 'uhd': ['4.6.0'], 'urdfdom': ['4.0'], 'vlfeat': ['0.9.21'], 'volk': ['3.1'], 'vtk': ['9.2.6'], 'wcslib': ['8'], 'wxwidgets': ['3.2'], 'x264': ['1!164.*'], 'x265': ['3.5'], 'xerces_c': ['3.2'], 'xrootd': ['5'], 'xz': ['5'], 'zeromq': ['4.3.5'], 'zfp': ['1.0'], 'zip_keys': [['arrow_cpp', 'libarrow', 'libarrow_all'], ['c_compiler_version', 'cxx_compiler_version', 'fortran_compiler_version'], ['python', 'numpy', 'python_impl']], 'zlib': ['1.2'], 'zlib_ng': ['2.0'], 'zstd': ['1.5']}

Erroring code was introduced in https://github.com/conda/conda-build/pull/3344