conda / conda-lock

Lightweight lockfile for conda environments
https://conda.github.io/conda-lock/
Other
467 stars 102 forks source link

pyproject.toml dependency with caps not canonicalized #382

Open maresb opened 1 year ago

maresb commented 1 year ago

Checklist

What happened?

Running

conda-lock -f pyproject.toml

with

[tool.poetry]
name = "conda-lock-test-PyYAML"
version = "0.0.1"
description = "test case"
authors = ["conda-lock"]

[tool.poetry.dependencies]
python = "*"
PyYAML = {version="*", source="pypi"}

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.conda-lock]
channels = [
    'conda-forge'
]
platfroms = ['linux-64']

results in

Traceback (most recent call last):
  File "/home/mares/micromamba/envs/conda-lock-dev/bin/conda-lock", line 8, in <module>
    sys.exit(main())
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/mares/micromamba/envs/conda-lock-dev/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/mares/repos/conda-lock/conda_lock/conda_lock.py", line 1271, in lock
    lock_func(
  File "/home/mares/repos/conda-lock/conda_lock/conda_lock.py", line 1001, in run_lock
    make_lock_files(
  File "/home/mares/repos/conda-lock/conda_lock/conda_lock.py", line 360, in make_lock_files
    lock_content = lock_content | create_lockfile_from_spec(
  File "/home/mares/repos/conda-lock/conda_lock/conda_lock.py", line 751, in create_lockfile_from_spec
    deps = _solve_for_arch(
  File "/home/mares/repos/conda-lock/conda_lock/conda_lock.py", line 687, in _solve_for_arch
    pip_deps = solve_pypi(
  File "/home/mares/repos/conda-lock/conda_lock/pypi_solver.py", line 325, in solve_pypi
    lockfile._apply_categories(requested=pip_specs, planned=planned)
  File "/home/mares/repos/conda-lock/conda_lock/lockfile/__init__.py", line 53, in _apply_categories
    for dep in seperator_munge_get(planned, item).dependencies
  File "/home/mares/repos/conda-lock/conda_lock/lockfile/__init__.py", line 44, in seperator_munge_get
    return d[key.replace("_", "-")]
KeyError: 'PyYAML'

This occurs both on 1.4.0, main, and with #290.

Conda Info

No response

Conda Config

No response

Conda list

No response

Additional Context

No response