conda / conda

A system-level, binary package and environment manager running on all major operating systems and platforms.
https://docs.conda.io/projects/conda/
Other
6.25k stars 1.6k forks source link

Env create with bad yaml fails with internal error message #12134

Open crazy4pi314 opened 1 year ago

crazy4pi314 commented 1 year ago

Checklist

What happened?

If you try to create a Conda env from a yaml file that does not match Conda's spec, you get an error from internal to conda with a big stack trace. If you sort through it, you can figure out it was a badly formatted yaml, but it can take a bit for such a simple error. It would be helpful to have a simpler error message surfaced from the parsing step that makes it clearer to the user what happened and easier for them to address quickly.

Reproduce:

environment.yml

name: demo
channels:
  - conda-forge
  - defaults
dependencies:
  - pip
  pip:
    - black

Output:

$ conda env create -f environment.yml
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda\exceptions.py", line 1129, in __call__
        return func(*args, **kwargs)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\cli\main.py", line 80, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda\notices\core.py", line 72, in wrapper
        return_value = func(*args, **kwargs)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\cli\main_create.py", line 103, in execute
        spec = specs.detect(name=name, filename=get_filename(args.file), directory=os.getcwd())
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\specs\__init__.py", line 47, in detect
        if spec.can_handle():
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\specs\yaml_file.py", line 19, in can_handle
        self._environment = env.from_file(self.filename)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\env.py", line 169, in from_file
        return from_yaml(yamlstr, filename=filename)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda_env\env.py", line 143, in from_yaml
        data = yaml_safe_load(yamlstr)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\conda\common\serialize.py", line 50, in yaml_safe_load
        return yaml.safe_load(string, version="1.2")
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\main.py", line 980, in safe_load
        return load(stream, SafeLoader, version)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\main.py", line 935, in load
        return loader._constructor.get_single_data()
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\constructor.py", line 109, in get_single_data
        node = self.composer.get_single_node()
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 78, in get_single_node
        document = self.compose_document()
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 101, in compose_document
        node = self.compose_node(None, None)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 138, in compose_node
        node = self.compose_mapping_node(anchor)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 218, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 136, in compose_node
        node = self.compose_sequence_node(anchor)
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\composer.py", line 179, in compose_sequence_node
        while not self.parser.check_event(SequenceEndEvent):
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\parser.py", line 141, in check_event
        self.current_event = self.state()
      File "C:\Users\sarahkaiser\Anaconda3\lib\site-packages\ruamel_yaml\parser.py", line 513, in parse_block_sequence_entry
        raise ParserError(
    ruamel_yaml.parser.ParserError: while parsing a block collection
      in "<unicode string>", line 6, column 3:
          - pip
          ^ (line: 6)
    expected <block end>, but found '?'
      in "<unicode string>", line 7, column 3:
          pip:
          ^ (line: 7)

`$ C:\Users\sarahkaiser\Anaconda3\Scripts\conda-env-script.py create -f environment.yml`

  environment variables:
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=C:\Users\sarahkaiser\Anaconda3\Scripts\conda.exe
             CONDA_PREFIX=C:\Users\sarahkaiser\Anaconda3
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=C:\Users\sarahkaiser\Anaconda3\python.exe
               CONDA_ROOT=C:\Users\sarahkaiser\Anaconda3
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
                 HOMEPATH=\Users\sarahkaiser
                     PATH=C:\Program Files\PowerShell\7;C:\Users\sarahkaiser\Anaconda3;C:\Users\
                          sarahkaiser\Anaconda3\Library\mingw-w64\bin;C:\Users\sarahkaiser\Anaco
                          nda3\Library\usr\bin;C:\Users\sarahkaiser\Anaconda3\Library\bin;C:\Use
                          rs\sarahkaiser\Anaconda3\Scripts;C:\Users\sarahkaiser\Anaconda3\bin;C:
                          \Users\sarahkaiser\Anaconda3\condabin;C:\Program
                          Files\PowerShell\7;C:\Python310\Scripts;C:\Python310;C:\Program Files
                          (x86)\Microsoft SDKs\Azure\CLI2\wbin;C:\WINDOWS\system32;C:\WINDOWS;C:
                          \WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\W
                          INDOWS\System32\OpenSSH;C:\Program
                          Files\dotnet;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:
                          \Users\sarahkaiser\Anaconda3;C:\Users\sarahkaiser\Anaconda3\Scripts;.;
                          C:\Program Files\nodejs;C:\Program Files\NVIDIA Corporation\NVIDIA
                          NvDLISR;C:\Program Files\PowerShell\7;C:\Program Files\Docker\Docker\r
                          esources\bin;C:\Users\sarahkaiser\AppData\Local\Microsoft\WindowsApps;
                          C:\Users\sarahkaiser\AppData\Local\Programs\Microsoft VS
                          Code\bin;C:\Users\sarahkaiser\AppData\Local\Programs\Microsoft VS Code
                          Insiders\bin;C:\texlive\bin\win32;C:\Users\sarahkaiser\Anaconda3;C:\Us
                          ers\sarahkaiser\Anaconda3\Library\bin;C:\Users\sarahkaiser\.dotnet\too
                          ls;c:\users\sarahkaiser\.local\bin;c:\users\sarahkaiser\appdata\roamin
                          g\python\python39\scripts;C:\Users\sarahkaiser\AppData\Local\Programs\
                          oh-my-posh\bin;C:\Users\sarahkaiser\AppData\Local\Pandoc;C:\Users\sara
                          hkaiser\AppData\Local\Programs\Azure Dev CLI;C:\Users\sarahkaiser\AppD
                          ata\Roaming\npm;C:\Users\sarahkaiser\AppData\Local\Programs\Azure Data
                          Studio\bin;C:\Users\sarahkaiser\.gh-
                          sync;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
         POSH_THEMES_PATH=C:\Users\sarahkaiser\AppData\Local\Programs\oh-my-posh\themes
             PSMODULEPATH=C:\Users\sarahkaiser\Documents\PowerShell\Modules;C:\Program
                          Files\PowerShell\Modules;c:\program
                          files\powershell\7\Modules;C:\Program Files\WindowsPowerShell\Modules;
                          C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files
                          (x86)\Microsoft Azure Information Protection\Powershell
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : base
    active env location : C:\Users\sarahkaiser\Anaconda3
            shell level : 1
       user config file : C:\Users\sarahkaiser\.condarc
 populated config files : C:\Users\sarahkaiser\.condarc
          conda version : 22.9.0
    conda-build version : 3.21.9
         python version : 3.9.12.final.0
       virtual packages : __cuda=11.7=0
                          __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Users\sarahkaiser\Anaconda3  (writable)
      conda av data dir : C:\Users\sarahkaiser\Anaconda3\etc\conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/domdfcoding/win-64
                          https://conda.anaconda.org/domdfcoding/noarch
                          https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\sarahkaiser\Anaconda3\pkgs
                          C:\Users\sarahkaiser\.conda\pkgs
                          C:\Users\sarahkaiser\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\sarahkaiser\Anaconda3\envs
                          C:\Users\sarahkaiser\.conda\envs
                          C:\Users\sarahkaiser\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/22.9.0 requests/2.27.1 CPython/3.9.12 Windows/10 Windows/10.0.22621
          administrator : False
             netrc file : None
           offline mode : False

An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]: y
Upload successful.

Thank you for helping to improve conda.
Opt-in to always sending reports (and not see this message again)
by running

    $ conda config --set report_errors true

Conda Info

active environment : base
    active env location : C:\Users\sarahkaiser\Anaconda3
            shell level : 1
       user config file : C:\Users\sarahkaiser\.condarc
 populated config files : C:\Users\sarahkaiser\.condarc
          conda version : 22.9.0
    conda-build version : 3.21.9
         python version : 3.9.12.final.0
       virtual packages : __cuda=11.7=0
                          __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Users\sarahkaiser\Anaconda3  (writable)
      conda av data dir : C:\Users\sarahkaiser\Anaconda3\etc\conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/domdfcoding/win-64
                          https://conda.anaconda.org/domdfcoding/noarch
                          https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\sarahkaiser\Anaconda3\pkgs
                          C:\Users\sarahkaiser\.conda\pkgs
                          C:\Users\sarahkaiser\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\sarahkaiser\Anaconda3\envs
                          C:\Users\sarahkaiser\.conda\envs
                          C:\Users\sarahkaiser\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/22.9.0 requests/2.27.1 CPython/3.9.12 Windows/10 Windows/10.0.22621
          administrator : False
             netrc file : None
           offline mode : False

Conda Config

==> C:\Users\sarahkaiser\.condarc <==
channels:
  - conda-forge
  - https://conda.anaconda.org/domdfcoding
  - https://conda.anaconda.org/conda-forge
  - defaults

Conda list

# packages in environment at C:\Users\sarahkaiser\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py39haa95532_0    defaults
aiohttp                   3.8.1            py39h2bbff1b_1    defaults
aiosignal                 1.2.0              pyhd3eb1b0_0    defaults
alabaster                 0.7.12             pyhd3eb1b0_0    defaults
anaconda                  2022.05                  py39_0    defaults
anaconda-client           1.9.0            py39haa95532_0    defaults
anaconda-navigator        2.1.4            py39haa95532_0    defaults
anaconda-project          0.10.2             pyhd3eb1b0_0    defaults
anyio                     3.5.0            py39haa95532_0    defaults
apeye                     1.2.0              pyhd8ed1ab_0    conda-forge
appdirs                   1.4.4              pyhd3eb1b0_0    defaults
argon2-cffi               21.3.0             pyhd3eb1b0_0    defaults
argon2-cffi-bindings      21.2.0           py39h2bbff1b_0    defaults
arrow                     1.2.2              pyhd3eb1b0_0    defaults
astroid                   2.6.6            py39haa95532_0    defaults
astropy                   5.0.4            py39h080aedc_0    defaults
asttokens                 2.0.5              pyhd3eb1b0_0    defaults
async-timeout             4.0.1              pyhd3eb1b0_0    defaults
atomicwrites              1.4.0                      py_0    defaults
attrs                     21.4.0             pyhd3eb1b0_0    defaults
automat                   20.2.0                     py_0    conda-forge
autopep8                  1.6.0              pyhd3eb1b0_0    defaults
azure-core                1.24.2                   pypi_0    pypi
azure-identity            1.10.0                   pypi_0    pypi
azure-kusto-data          3.1.3                    pypi_0    pypi
azure-kusto-ingest        3.1.3                    pypi_0    pypi
azure-storage-blob        12.13.0                  pypi_0    pypi
azure-storage-queue       12.4.0                   pypi_0    pypi
babel                     2.9.1              pyhd3eb1b0_0    defaults
backcall                  0.2.0              pyhd3eb1b0_0    defaults
backports                 1.1                pyhd3eb1b0_0    defaults
backports.functools_lru_cache 1.6.4              pyhd3eb1b0_0    defaults
backports.tempfile        1.0                pyhd3eb1b0_1    defaults
backports.weakref         1.0.post1                  py_1    defaults
bcrypt                    3.2.0            py39h196d8e1_0    defaults
beautifulsoup4            4.11.1           py39haa95532_0    defaults
binaryornot               0.4.4              pyhd3eb1b0_1    defaults
bitarray                  2.4.1            py39h2bbff1b_0    defaults
bkcharts                  0.2              py39haa95532_0    defaults
black                     19.10b0                    py_0    defaults
blas                      1.0                         mkl    defaults
bleach                    4.1.0              pyhd3eb1b0_0    defaults
blinker                   1.5                pyhd8ed1ab_0    conda-forge
blosc                     1.21.0               h19a0ad4_0    defaults
bokeh                     2.4.2            py39haa95532_0    defaults
boolean.py                3.7                        py_0    conda-forge
boto3                     1.21.32            pyhd3eb1b0_0    defaults
botocore                  1.24.32            pyhd3eb1b0_0    defaults
bottleneck                1.3.4            py39h080aedc_0    defaults
brotli                    1.0.9                ha925a31_2    conda-forge
brotlipy                  0.7.0           py39h2bbff1b_1003    defaults
bzip2                     1.0.8                he774522_0    defaults
ca-certificates           2022.3.29            haa95532_1    anaconda
cachetools                4.2.2              pyhd3eb1b0_0    defaults
certifi                   2021.10.8        py39haa95532_2    anaconda
cffi                      1.15.0           py39h2bbff1b_1    defaults
cfitsio                   3.470                he774522_6    defaults
chardet                   4.0.0           py39haa95532_1003    defaults
charls                    2.2.0                h6c2663c_0    defaults
charset-normalizer        2.0.4              pyhd3eb1b0_0    defaults
click                     8.0.4            py39haa95532_0    defaults
cloudpickle               2.0.0              pyhd3eb1b0_0    defaults
clyent                    1.2.2            py39haa95532_1    defaults
colorama                  0.4.4              pyhd3eb1b0_0    defaults
colorcet                  2.0.6              pyhd3eb1b0_0    defaults
comtypes                  1.1.10          py39haa95532_1002    defaults
conda                     22.9.0           py39hcbf5309_1    conda-forge
conda-build               3.21.9           py39hcbf5309_0    conda-forge
conda-content-trust       0.1.1              pyhd3eb1b0_0    defaults
conda-env                 2.6.0                haa95532_1    defaults
conda-forge-pinning       2022.10.09.22.13.28      hd8ed1ab_0    conda-forge
conda-pack                0.7.0              pyh6c4a22f_0    conda-forge
conda-package-handling    1.8.1            py39hb3671d1_1    conda-forge
conda-repo-cli            1.0.5            py39haa95532_0    defaults
conda-smithy              3.21.2             pyhd8ed1ab_0    conda-forge
conda-token               0.3.0              pyhd3eb1b0_0    defaults
conda-verify              3.4.2                      py_1    defaults
condastats                0.1.5              pyhd8ed1ab_0    conda-forge
console_shortcut          0.1.1                         4    defaults
constantly                15.1.0             pyh2b92418_0    defaults
cookiecutter              1.7.3              pyhd3eb1b0_0    defaults
cramjam                   2.5.0            py39h424382f_0    conda-forge
cryptography              3.4.8            py39h71e12ea_0    defaults
cssselect                 1.1.0              pyhd3eb1b0_0    defaults
curl                      7.82.0               h2bbff1b_0    defaults
cycler                    0.11.0             pyhd3eb1b0_0    defaults
cython                    0.29.28          py39hd77b12b_0    defaults
cytoolz                   0.11.0           py39h2bbff1b_0    defaults
daal4py                   2021.5.0         py39h8cb3d55_0    defaults
dabl                      0.2.2                    pypi_0    pypi
dal                       2021.5.0           haa95532_796    defaults
dask                      2022.2.1           pyhd3eb1b0_0    defaults
dask-core                 2022.2.1           pyhd3eb1b0_0    defaults
dataclasses               0.8                pyh6d0b6a4_7    defaults
dataproperty              0.55.0                   pypi_0    pypi
datashader                0.13.0             pyhd3eb1b0_1    defaults
datashape                 0.5.4            py39haa95532_1    defaults
debugpy                   1.5.1            py39hd77b12b_0    defaults
decorator                 5.1.1              pyhd3eb1b0_0    defaults
defusedxml                0.7.1              pyhd3eb1b0_0    defaults
deprecated                1.2.13             pyh6c4a22f_0    conda-forge
diff-match-patch          20200713           pyhd3eb1b0_0    defaults
distributed               2022.2.1           pyhd3eb1b0_0    defaults
docutils                  0.17.1           py39haa95532_1    defaults
domdf-python-tools        3.4.0              pyhd8ed1ab_0    conda-forge
dominate                  2.6.0                    pypi_0    pypi
editdistance              0.6.0                    pypi_0    pypi
efficientnet              1.0.0                    pypi_0    pypi
entrypoints               0.4              py39haa95532_0    defaults
essential-generators      1.0                      pypi_0    pypi
et_xmlfile                1.1.0            py39haa95532_0    defaults
executing                 0.8.3              pyhd3eb1b0_0    defaults
fastcore                  1.5.26             pyhd8ed1ab_0    conda-forge
fastparquet               0.8.1            py39h5d4886f_0    conda-forge
filelock                  3.6.0              pyhd3eb1b0_0    defaults
fire                      0.4.0                    pypi_0    pypi
flake8                    3.9.2              pyhd3eb1b0_0    defaults
flask                     1.1.2              pyhd3eb1b0_0    defaults
fonttools                 4.25.0             pyhd3eb1b0_0    defaults
freetype                  2.10.4               hd328e21_0    conda-forge
frozenlist                1.2.0            py39h2bbff1b_0    defaults
fsspec                    2022.2.0           pyhd3eb1b0_0    defaults
future                    0.18.2           py39haa95532_1    defaults
gensim                    4.1.2            py39hd77b12b_0    defaults
ghapi                     1.0.0                      py_0    fastai
gidgethub                 5.2.0              pyhd8ed1ab_0    conda-forge
giflib                    5.2.1                h62dcd97_0    defaults
git                       2.38.0               h57928b3_0    conda-forge
gitdb                     4.0.9              pyhd8ed1ab_0    conda-forge
gitpython                 3.1.28             pyhd8ed1ab_0    conda-forge
glob2                     0.7                pyhd3eb1b0_0    defaults
google-api-core           1.25.1             pyhd3eb1b0_0    defaults
google-auth               1.33.0             pyhd3eb1b0_0    defaults
google-cloud-core         1.7.1              pyhd3eb1b0_0    defaults
google-cloud-storage      1.31.0                     py_0    defaults
google-crc32c             1.1.2            py39h2bbff1b_0    defaults
google-resumable-media    1.3.1              pyhd3eb1b0_1    defaults
googleapis-common-protos  1.53.0           py39h2eaa2aa_0    defaults
greenlet                  1.1.1            py39hd77b12b_0    defaults
grpcio                    1.42.0           py39hc60d5dd_0    defaults
h11                       0.12.0                   pypi_0    pypi
h5py                      3.6.0            py39h3de5c98_0    defaults
hdf5                      1.10.6               h7ebc959_0    defaults
heapdict                  1.0.1              pyhd3eb1b0_0    defaults
holoviews                 1.14.8             pyhd3eb1b0_0    defaults
html5lib                  1.1                      pypi_0    pypi
httpcore                  0.15.0                   pypi_0    pypi
httpx                     0.23.0                   pypi_0    pypi
hvplot                    0.7.3              pyhd3eb1b0_1    defaults
hyperlink                 21.0.0             pyhd3eb1b0_0    defaults
icc_rt                    2019.0.0             h0cc432a_1    defaults
ics                       0.7.2                    pypi_0    pypi
icu                       58.2                 ha925a31_3    defaults
idna                      3.3                pyhd3eb1b0_0    defaults
ijson                     3.1.4                    pypi_0    pypi
imagecodecs               2021.8.26        py39ha1f97ea_0    defaults
imageio                   2.9.0              pyhd3eb1b0_0    defaults
imagesize                 1.3.0              pyhd3eb1b0_0    defaults
imgaug                    0.4.0                    pypi_0    pypi
importlib-metadata        4.11.3           py39haa95532_0    defaults
importlib-resources       5.9.0              pyhd8ed1ab_0    conda-forge
importlib_metadata        4.11.3               hd3eb1b0_0    defaults
importlib_resources       5.9.0              pyhd8ed1ab_0    conda-forge
incremental               21.3.0             pyhd3eb1b0_0    defaults
inflection                0.5.1            py39haa95532_0    defaults
iniconfig                 1.1.1              pyhd3eb1b0_0    defaults
intake                    0.6.5              pyhd3eb1b0_0    defaults
intel-openmp              2021.4.0          haa95532_3556    defaults
intervaltree              3.1.0              pyhd3eb1b0_0    defaults
ipykernel                 6.9.1            py39haa95532_0    defaults
ipython                   8.2.0            py39haa95532_0    defaults
ipython_genutils          0.2.0              pyhd3eb1b0_1    defaults
ipywidgets                7.6.5              pyhd3eb1b0_1    defaults
isodate                   0.6.1              pyhd8ed1ab_0    conda-forge
isort                     5.9.3              pyhd3eb1b0_0    defaults
itemadapter               0.3.0              pyhd3eb1b0_0    defaults
itemloaders               1.0.4              pyhd3eb1b0_1    defaults
itsdangerous              2.0.1              pyhd3eb1b0_0    defaults
jdcal                     1.4.1              pyhd3eb1b0_0    defaults
jedi                      0.18.1           py39haa95532_1    defaults
jinja2                    2.11.3             pyhd3eb1b0_0    defaults
jinja2-time               0.2.0              pyhd3eb1b0_3    defaults
jmespath                  0.10.0             pyhd3eb1b0_0    defaults
joblib                    1.1.0              pyhd3eb1b0_0    defaults
jpeg                      9e                   h2bbff1b_0    defaults
jq                        1.6                  haa95532_1    defaults
json5                     0.9.6              pyhd3eb1b0_0    defaults
jsonschema                4.4.0            py39haa95532_0    defaults
jsonschema2md             0.4.0                    pypi_0    pypi
jupyter                   1.0.0            py39haa95532_7    defaults
jupyter_client            6.1.12             pyhd3eb1b0_0    defaults
jupyter_console           6.4.0              pyhd3eb1b0_0    defaults
jupyter_core              4.9.2            py39haa95532_0    defaults
jupyter_server            1.13.5             pyhd3eb1b0_0    defaults
jupyterlab                3.3.2              pyhd3eb1b0_0    defaults
jupyterlab_pygments       0.1.2                      py_0    defaults
jupyterlab_server         2.10.3             pyhd3eb1b0_1    defaults
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1    defaults
keras-applications        1.0.8                    pypi_0    pypi
keras-ocr                 0.9.1                    pypi_0    pypi
keyring                   23.4.0           py39haa95532_0    defaults
kiwisolver                1.3.2            py39hd77b12b_0    defaults
lazy-object-proxy         1.6.0            py39h2bbff1b_0    defaults
lcms2                     2.12                 h83e58a3_0    defaults
lerc                      3.0                  hd77b12b_0    defaults
libaec                    1.0.4                h33f27b4_1    defaults
libarchive                3.4.2                h5e25573_0    defaults
libcrc32c                 1.1.1                ha925a31_2    defaults
libcurl                   7.82.0               h86230a5_0    defaults
libdeflate                1.8                  h2bbff1b_5    defaults
libiconv                  1.16                 h2bbff1b_2    defaults
liblief                   0.11.5               hd77b12b_1    defaults
libpng                    1.6.37               h2a8f88b_0    defaults
libprotobuf               3.19.1               h23ce68f_0    defaults
libspatialindex           1.9.3                h6c2663c_0    defaults
libssh2                   1.10.0               hcd4344a_0    defaults
libtiff                   4.2.0                hd0e1b90_0    defaults
libwebp                   1.2.2                h2bbff1b_0    defaults
libxml2                   2.9.12               h0ad7f3c_0    defaults
libxslt                   1.1.34               he774522_0    defaults
libzopfli                 1.0.3                ha925a31_0    conda-forge
license-expression        1.2                        py_0    conda-forge
llvmlite                  0.38.0           py39h23ce68f_0    defaults
locket                    0.2.1            py39haa95532_2    defaults
lxml                      4.8.0            py39h1985fb9_0    defaults
lz4-c                     1.9.3                h2bbff1b_1    defaults
lzo                       2.10                 he774522_2    defaults
m2-msys2-runtime          2.5.0.17080.65c939c               3    conda-forge
m2-patch                  2.7.5                         2    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
markdown                  3.3.4            py39haa95532_0    defaults
markupsafe                2.0.1            py39h2bbff1b_0    defaults
matplotlib                3.5.1            py39haa95532_1    defaults
matplotlib-base           3.5.1            py39hd77b12b_1    defaults
matplotlib-inline         0.1.2              pyhd3eb1b0_2    defaults
mbstrdecoder              1.1.0                    pypi_0    pypi
mccabe                    0.6.1            py39haa95532_1    defaults
menuinst                  1.4.18           py39h59b6b97_0    defaults
mistune                   0.8.4           py39h2bbff1b_1000    defaults
mkl                       2021.4.0           haa95532_640    defaults
mkl-service               2.4.0            py39h2bbff1b_0    defaults
mkl_fft                   1.3.1            py39h277e83a_0    defaults
mkl_random                1.2.2            py39hf11a4ad_0    defaults
mock                      4.0.3              pyhd3eb1b0_0    defaults
mpmath                    1.2.1            py39haa95532_0    defaults
msal                      1.18.0                   pypi_0    pypi
msal-extensions           1.0.0                    pypi_0    pypi
msgpack-python            1.0.2            py39h59b6b97_1    defaults
msrest                    0.7.1                    pypi_0    pypi
msys2-conda-epoch         20160418                      1    conda-forge
multidict                 5.1.0            py39h2bbff1b_2    defaults
multipledispatch          0.6.0            py39haa95532_0    defaults
munkres                   1.1.4                      py_0    defaults
mypy_extensions           0.4.3            py39haa95532_1    defaults
natsort                   8.2.0              pyhd8ed1ab_0    conda-forge
navigator-updater         0.2.1                    py39_1    defaults
nbclassic                 0.3.5              pyhd3eb1b0_0    defaults
nbclient                  0.5.13           py39haa95532_0    defaults
nbconvert                 6.4.4            py39haa95532_0    defaults
nbformat                  5.3.0            py39haa95532_0    defaults
nest-asyncio              1.5.5            py39haa95532_0    defaults
networkx                  2.7.1              pyhd3eb1b0_0    defaults
nltk                      3.7                pyhd3eb1b0_0    defaults
nose                      1.3.7           pyhd3eb1b0_1008    defaults
notebook                  6.4.8            py39haa95532_0    defaults
numba                     0.55.1           py39hf11a4ad_0    defaults
numexpr                   2.8.1            py39hb80d3ca_0    defaults
numpy                     1.21.5           py39h7a0a035_1    defaults
numpy-base                1.21.5           py39hca35cd5_1    defaults
numpydoc                  1.2                pyhd3eb1b0_0    defaults
oauthlib                  3.2.0                    pypi_0    pypi
olefile                   0.46               pyhd3eb1b0_0    defaults
opencv-python             4.6.0.66                 pypi_0    pypi
openjpeg                  2.4.0                h4fc8c34_0    defaults
openpyxl                  3.0.9              pyhd3eb1b0_0    defaults
openssl                   1.1.1n               h2bbff1b_0    anaconda
packaging                 21.3               pyhd3eb1b0_0    defaults
pandas                    1.4.2            py39hd77b12b_0    defaults
pandocfilters             1.5.0              pyhd3eb1b0_0    defaults
panel                     0.13.0           py39haa95532_0    defaults
param                     1.12.0             pyhd3eb1b0_0    defaults
paramiko                  2.8.1              pyhd3eb1b0_0    defaults
parsel                    1.6.0            py39haa95532_0    defaults
parso                     0.8.3              pyhd3eb1b0_0    defaults
partd                     1.2.0              pyhd3eb1b0_1    defaults
pathlib                   1.0.1            py39hcbf5309_6    conda-forge
pathspec                  0.7.0                      py_0    defaults
pathvalidate              2.5.0                    pypi_0    pypi
patsy                     0.5.2            py39haa95532_1    defaults
pep8                      1.7.1            py39haa95532_0    defaults
pexpect                   4.8.0              pyhd3eb1b0_3    defaults
pickleshare               0.7.5           pyhd3eb1b0_1003    defaults
pillow                    9.0.1            py39hdc2b20a_0    anaconda
piltextbox                0.2.1                    pypi_0    pypi
pip                       21.2.4           py39haa95532_0    defaults
pkginfo                   1.8.2              pyhd3eb1b0_0    defaults
platformdirs              2.5.2              pyhd8ed1ab_1    conda-forge
plotly                    5.6.0              pyhd3eb1b0_0    defaults
pluggy                    1.0.0            py39haa95532_1    defaults
portalocker               2.5.1                    pypi_0    pypi
powershell_shortcut       0.0.1                         3    defaults
poyo                      0.5.0              pyhd3eb1b0_0    defaults
prettytable               3.3.0                    pypi_0    pypi
prometheus_client         0.13.1             pyhd3eb1b0_0    defaults
prompt-toolkit            3.0.20             pyhd3eb1b0_0    defaults
prompt_toolkit            3.0.20               hd3eb1b0_0    defaults
protego                   0.1.16                     py_0    defaults
protobuf                  3.19.1           py39hd77b12b_0    defaults
psutil                    5.8.0            py39h2bbff1b_1    defaults
ptyprocess                0.7.0              pyhd3eb1b0_2    defaults
pure_eval                 0.2.2              pyhd3eb1b0_0    defaults
py                        1.11.0             pyhd3eb1b0_0    defaults
py-lief                   0.11.5           py39hd77b12b_1    defaults
pyasn1                    0.4.8              pyhd3eb1b0_0    defaults
pyasn1-modules            0.2.8                      py_0    defaults
pybraries                 0.4.0                    pypi_0    pypi
pyclipper                 1.3.0.post3              pypi_0    pypi
pycodestyle               2.7.0              pyhd3eb1b0_0    defaults
pycosat                   0.6.3            py39h2bbff1b_0    defaults
pycparser                 2.21               pyhd3eb1b0_0    defaults
pycrypto                  2.6.1           py39hb82d6ee_1006    conda-forge
pyct                      0.4.6            py39haa95532_0    defaults
pycurl                    7.44.1           py39hcd4344a_1    defaults
pydispatcher              2.0.5            py39haa95532_2    defaults
pydocstyle                6.1.1              pyhd3eb1b0_0    defaults
pyerfa                    2.0.0            py39h2bbff1b_0    defaults
pyflakes                  2.3.1              pyhd3eb1b0_0    defaults
pygithub                  1.55               pyh6c4a22f_0    conda-forge
pygments                  2.11.2             pyhd3eb1b0_0    defaults
pyhamcrest                2.0.2              pyhd3eb1b0_2    defaults
pyjwt                     2.5.0              pyhd8ed1ab_0    conda-forge
pylint                    2.9.6            py39haa95532_1    defaults
pyls-spyder               0.4.0              pyhd3eb1b0_0    defaults
pynacl                    1.4.0            py39hbd8134f_1    defaults
pyodbc                    4.0.32           py39hd77b12b_1    defaults
pyopenssl                 21.0.0             pyhd3eb1b0_1    defaults
pyoxidizer                0.22.0                   pypi_0    pypi
pypandoc                  1.8.1                    pypi_0    pypi
pyparsing                 3.0.4              pyhd3eb1b0_0    defaults
pypi-json                 0.2.1                      py_0    domdfcoding
pypistats                 1.1.0                    pypi_0    pypi
pyqt                      5.9.2            py39hd77b12b_6    defaults
pyreadline                2.1              py39haa95532_1    defaults
pyrsistent                0.18.0           py39h196d8e1_0    defaults
pysocks                   1.7.1            py39haa95532_0    defaults
pytables                  3.6.1            py39h56d22b6_1    defaults
pytablewriter             0.64.2                   pypi_0    pypi
pytest                    7.1.1            py39haa95532_0    defaults
python                    3.9.12               h6244533_0    defaults
python-dateutil           2.8.2              pyhd3eb1b0_0    defaults
python-fastjsonschema     2.15.1             pyhd3eb1b0_0    defaults
python-libarchive-c       2.9                pyhd3eb1b0_1    defaults
python-lsp-black          1.0.0              pyhd3eb1b0_0    defaults
python-lsp-jsonrpc        1.0.0              pyhd3eb1b0_0    defaults
python-lsp-server         1.2.4              pyhd3eb1b0_0    defaults
python-slugify            5.0.2              pyhd3eb1b0_0    defaults
python-snappy             0.6.0            py39hd77b12b_3    defaults
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.3             pyhd3eb1b0_0    defaults
pyviz_comms               2.0.2              pyhd3eb1b0_0    defaults
pywavelets                1.3.0            py39h2bbff1b_0    defaults
pywin32                   302              py39h2bbff1b_2    defaults
pywin32-ctypes            0.2.0           py39haa95532_1000    defaults
pywinpty                  2.0.2            py39h5da7b33_0    defaults
pyyaml                    6.0              py39h2bbff1b_1    defaults
pyzmq                     22.3.0           py39hd77b12b_2    defaults
qdarkstyle                3.0.2              pyhd3eb1b0_0    defaults
qstylizer                 0.1.10             pyhd3eb1b0_0    defaults
qt                        5.9.7            vc14h73c81de_0    defaults
qtawesome                 1.0.3              pyhd3eb1b0_0    defaults
qtconsole                 5.3.0              pyhd3eb1b0_0    defaults
qtpy                      2.0.1              pyhd3eb1b0_0    defaults
queuelib                  1.5.0            py39haa95532_0    defaults
regex                     2022.3.15        py39h2bbff1b_0    defaults
requests                  2.27.1             pyhd3eb1b0_0    defaults
requests-file             1.5.1              pyhd3eb1b0_0    defaults
requests-oauthlib         1.3.1              pyhd8ed1ab_0    conda-forge
rfc3986                   1.5.0                    pypi_0    pypi
ripgrep                   13.0.0               h7f3b576_2    conda-forge
rope                      0.22.0             pyhd3eb1b0_0    defaults
rsa                       4.7.2              pyhd3eb1b0_1    defaults
rtree                     0.9.7            py39h2eaa2aa_1    defaults
ruamel.yaml               0.17.21          py39hb82d6ee_1    conda-forge
ruamel.yaml.clib          0.2.6            py39hb82d6ee_1    conda-forge
ruamel_yaml               0.15.100         py39h2bbff1b_0    defaults
s3fs                      0.4.2                      py_0    conda-forge
s3transfer                0.5.0              pyhd3eb1b0_0    defaults
scikit-image              0.19.2           py39hf11a4ad_0    defaults
scikit-learn              1.0.2            py39hf11a4ad_1    defaults
scikit-learn-intelex      2021.5.0         py39haa95532_0    defaults
scipy                     1.7.3            py39h0a974cb_0    defaults
scrapy                    2.6.1            py39haa95532_0    defaults
scrypt                    0.8.18           py39h0878f49_2    conda-forge
seaborn                   0.11.2             pyhd3eb1b0_0    defaults
send2trash                1.8.0              pyhd3eb1b0_1    defaults
service_identity          18.1.0             pyhd3eb1b0_1    defaults
setuptools                61.2.0           py39haa95532_0    defaults
shapely                   1.8.4                    pypi_0    pypi
sip                       4.19.13          py39hd77b12b_0    defaults
six                       1.16.0             pyhd3eb1b0_1    defaults
smart_open                5.1.0              pyhd3eb1b0_0    defaults
smmap                     3.0.5              pyh44b312d_0    conda-forge
snappy                    1.1.9                h6c2663c_0    defaults
sniffio                   1.2.0            py39haa95532_1    defaults
snowballstemmer           2.2.0              pyhd3eb1b0_0    defaults
sortedcollections         2.1.0              pyhd3eb1b0_0    defaults
sortedcontainers          2.4.0              pyhd3eb1b0_0    defaults
soupsieve                 2.3.1              pyhd3eb1b0_0    defaults
sphinx                    4.4.0              pyhd3eb1b0_0    defaults
sphinxcontrib-applehelp   1.0.2              pyhd3eb1b0_0    defaults
sphinxcontrib-devhelp     1.0.2              pyhd3eb1b0_0    defaults
sphinxcontrib-htmlhelp    2.0.0              pyhd3eb1b0_0    defaults
sphinxcontrib-jsmath      1.0.1              pyhd3eb1b0_0    defaults
sphinxcontrib-qthelp      1.0.3              pyhd3eb1b0_0    defaults
sphinxcontrib-serializinghtml 1.1.5              pyhd3eb1b0_0    defaults
spyder                    5.1.5            py39haa95532_1    defaults
spyder-kernels            2.1.3            py39haa95532_0    defaults
sqlalchemy                1.4.32           py39h2bbff1b_0    defaults
sqlite                    3.38.2               h2bbff1b_0    defaults
stack_data                0.2.0              pyhd3eb1b0_0    defaults
statsmodels               0.13.2           py39h2bbff1b_0    defaults
sympy                     1.10.1           py39haa95532_0    defaults
tabledata                 1.3.0                    pypi_0    pypi
tabulate                  0.8.9            py39haa95532_0    defaults
tatsu                     5.8.3                    pypi_0    pypi
tbb                       2021.5.0             h59b6b97_0    defaults
tbb4py                    2021.5.0         py39h59b6b97_0    defaults
tblib                     1.7.0              pyhd3eb1b0_0    defaults
tcolorpy                  0.1.2                    pypi_0    pypi
tenacity                  8.0.1            py39haa95532_0    defaults
termcolor                 1.1.0                    pypi_0    pypi
terminado                 0.13.1           py39haa95532_0    defaults
testpath                  0.5.0              pyhd3eb1b0_0    defaults
text-unidecode            1.3                pyhd3eb1b0_0    defaults
textdistance              4.2.1              pyhd3eb1b0_0    defaults
threadpoolctl             2.2.0              pyh0d69192_0    defaults
three-merge               0.1.1              pyhd3eb1b0_0    defaults
tifffile                  2021.7.2           pyhd3eb1b0_2    defaults
tinycss                   0.4             pyhd3eb1b0_1002    defaults
tk                        8.6.11               h2bbff1b_0    defaults
tldextract                3.2.0              pyhd3eb1b0_0    defaults
toml                      0.10.2             pyhd3eb1b0_0    defaults
tomli                     1.2.2              pyhd3eb1b0_0    defaults
toolz                     0.11.2             pyhd3eb1b0_0    defaults
tornado                   6.1              py39h2bbff1b_0    defaults
tqdm                      4.64.0           py39haa95532_0    defaults
traitlets                 5.1.1              pyhd3eb1b0_0    defaults
twisted                   22.2.0           py39h2bbff1b_0    defaults
twisted-iocpsupport       1.0.2            py39h2bbff1b_0    defaults
typed-ast                 1.4.3            py39h2bbff1b_1    defaults
typepy                    1.3.0                    pypi_0    pypi
typing-extensions         4.1.1                hd3eb1b0_0    defaults
typing_extensions         4.1.1              pyh06a4308_0    defaults
tzdata                    2022a                hda174b7_0    defaults
ujson                     5.1.0            py39hd77b12b_0    defaults
unidecode                 1.2.0              pyhd3eb1b0_0    defaults
uritemplate               4.1.1              pyhd8ed1ab_0    conda-forge
urllib3                   1.26.9           py39haa95532_0    defaults
validators                0.20.0                   pypi_0    pypi
vc                        14.2                 h21ff451_1    defaults
vs2015_runtime            14.27.29016          h5e58377_2    defaults
vsts-python-api           0.1.25             pyhd8ed1ab_1    conda-forge
win_unicode_console       0.5              py39haa95532_0    defaults
wincertstore              0.2              py39haa95532_2    defaults
winpty                    0.4.3                         4    conda-forge
wrapt                     1.12.1           py39h196d8e1_1    defaults
xarray                    0.20.1             pyhd3eb1b0_1    defaults
xlrd                      2.0.1              pyhd3eb1b0_0    defaults
xlsxwriter                3.0.3              pyhd3eb1b0_0    defaults
xlwings                   0.24.9           py39haa95532_0    defaults
xz                        5.2.5                h62dcd97_0    defaults
yaml                      0.2.5                he774522_0    conda-forge
yapf                      0.31.0             pyhd3eb1b0_0    defaults
yarl                      1.6.3            py39h2bbff1b_0    defaults
zfp                       0.5.5                hd77b12b_6    defaults
zict                      2.0.0              pyhd3eb1b0_0    defaults
zipp                      3.7.0              pyhd3eb1b0_0    defaults
zlib                      1.2.12               h8cc25b3_2    defaults
zope                      1.0              py39haa95532_1    defaults
zope.interface            5.4.0            py39h2bbff1b_0    defaults
zstd                      1.4.9                h19a0ad4_0    defaults

Additional Context

This seems to be the same error in #9161

travishathaway commented 1 year ago

Hi @crazy4pi314,

Thank you for filling this bug report. Unfortunately, the YAML parsing in conda is quite brittle and can sometime lead to undesirable and confusing errors such as the one you experienced.

We cannot say for sure when this particular bug will be resolve, but I have added this to a general user experience concerns epic (i.e. mega-issue) under the section "YAML parsing gone awry". This will be very helpful for us as we continue to make conda better.

Thanks again for the time you took to file this and help make conda better.

github-actions[bot] commented 5 months ago

Hi there, thank you for your contribution!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this issue to remain open please:

  1. Verify that you can still reproduce the issue at hand
  2. Comment that the issue is still reproducible and include:
    • What OS and version you reproduced the issue on
    • What steps you followed to reproduce the issue

NOTE: If this issue was closed prematurely, please leave a comment.

Thanks!

boustrephon commented 5 months ago

I just checked this and the latest conda (24.1.0) still has a problem with this malformed file.

(base) andrew@Andrews-MBP-3 ~ % conda env create -f demo.yml             

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda/exception_handler.py", line 17, in __call__
        return func(*args, **kwargs)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/cli/main.py", line 56, in do_call
        exit_code = getattr(module, func_name)(arguments, parser)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda/notices/core.py", line 124, in wrapper
        return func(*args, **kwargs)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/cli/main_create.py", line 107, in execute
        spec = specs.detect(
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/specs/__init__.py", line 72, in detect
        if spec.can_handle():
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/specs/yaml_file.py", line 19, in can_handle
        self._environment = env.from_file(self.filename)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/env.py", line 191, in from_file
        return from_yaml(yamlstr, filename=filename)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda_env/env.py", line 158, in from_yaml
        data = yaml_safe_load(yamlstr)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/conda/common/serialize.py", line 45, in yaml_safe_load
        return _yaml_safe().load(string)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/main.py", line 451, in load
        return constructor.get_single_data()
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/constructor.py", line 112, in get_single_data
        node = self.composer.get_single_node()
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 70, in get_single_node
        document = self.compose_document()
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 92, in compose_document
        node = self.compose_node(None, None)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 128, in compose_node
        node = self.compose_mapping_node(anchor)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 209, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 126, in compose_node
        node = self.compose_sequence_node(anchor)
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/composer.py", line 170, in compose_sequence_node
        while not self.parser.check_event(SequenceEndEvent):
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/parser.py", line 139, in check_event
        self.current_event = self.state()
      File "/Users/andrew/miniforge3/lib/python3.10/site-packages/ruamel/yaml/parser.py", line 544, in parse_block_sequence_entry
        raise ParserError(
    ruamel.yaml.parser.ParserError: while parsing a block collection
      in "<unicode string>", line 6, column 3:
          - pip
          ^ (line: 6)
    expected <block end>, but found '?'
      in "<unicode string>", line 7, column 3:
          pip:
          ^ (line: 7)

`$ /Users/andrew/miniforge3/bin/conda-env create -f demo.yml`

  environment variables:
                 CIO_TEST=<not set>
  CONDA_AUTO_UPDATE_CONDA=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/Users/andrew/miniforge3/bin/conda
             CONDA_PREFIX=/Users/andrew/miniforge3
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/Users/andrew/miniforge3/bin/python
               CONDA_ROOT=/Users/andrew/miniforge3
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
               LD_PRELOAD=<not set>
                     PATH=/Users/andrew/miniforge3/bin:/Users/andrew/miniforge3/condabin:/Users/
                          andrew/anaconda3/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr
                          /bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.s
                          ystem/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/cod
                          ex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex
                          .system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local
                          /share/dotnet:~/.dotnet/tools:/Applications/Xamarin
                          Workbooks.app/Contents/SharedSupport/path-bin:/Users/andrew/.cargo/bin
                          :/Users/andrew/.dotnet/tools:/usr/local/Cellar/rakudo-
                          star/2017.07/share/perl6/site/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>

     active environment : base
    active env location : /Users/andrew/miniforge3
            shell level : 1
       user config file : /Users/andrew/.condarc
 populated config files : /Users/andrew/miniforge3/.condarc
                          /Users/andrew/.condarc
          conda version : 23.11.0
    conda-build version : not installed
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m2
                          __conda=23.11.0=0
                          __osx=14.2.1=0
                          __unix=0=0
       base environment : /Users/andrew/miniforge3  (writable)
      conda av data dir : /Users/andrew/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/andrew/miniforge3/pkgs
                          /Users/andrew/.conda/pkgs
       envs directories : /Users/andrew/miniforge3/envs
                          /Users/andrew/.conda/envs
               platform : osx-arm64
             user-agent : conda/23.11.0 requests/2.31.0 CPython/3.10.13 Darwin/23.2.0 OSX/14.2.1 solver/libmamba conda-libmamba-solver/23.12.0 libmambapy/1.5.5
                UID:GID : 501:20
             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>

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]: y
Upload successful.