pyupio/dparse

Parsing of poetry.lock generated with Poetry >= 1.5.0 fails

Opened this issue · 1 comments

plaa commented
  • Dependency Parser version: 0.6.3
  • Python version: 3.10.12
  • Operating System: MacOS Ventura

Description

Poetry has deprecated and in 1.5.0 removed writing of the category field into the poetry.lock file. dparse assumes this field to always be present. Thus dparse cannot parse poetry.lock files generated with a recent Poetry version and fails with the exception Malformed poetry lock file

dparse/dparse/parser.py

Lines 461 to 467 in eb917b3

try:
name = dep['name']
spec = "=={version}".format(
version=Version(dep['version']))
section = dep['category']
except KeyError:
raise KeyError("Malformed poetry lock file")

What's the best choice here? Provide a default (section = dep.get('category'))? Or always ignore it (section = None)?

It looks like it was removed because it is unused "Do not write the unused package category into the lock file", I guess because of the introduction of groups in the pyproject.toml, which aren't referenced in the poetry.lock.