Skip to content

Update pvl to multidict 6.4.4 or higher #111

@rbeyer

Description

@rbeyer

Describe the bug
pvl requires an ordered multi-dict type to contain the PVL structures that it parses. The default is pvl.collections.OrderedMultiDict which is a custom type that pvl uses. The codebase has an experiment with a "new" ordered multi-dict type, pvl.collections.PVLMultiDict, based on the 3rd party multidict library. That multidict library has had some API changes such that the derived code in pvl no longer works with multidict 6.4.4.

The solution is to patch up the pvl code, primarily removing references to the MultiDict._impl object and MultiDict._title() function so that pvl can function with the latest version of multidict.

If a user isn't explicitly using the "new" pv.collections.PVLMultiDict or importing pvl.new as pvl then they will be unaffected by this bug.

To Reproduce
Steps to reproduce the behavior.
Have multidict 6.4.4 installed and do make test in the pvl repo, you will see:

FAILED tests/test_collections.py::TestMultiDicts::test_insert - AttributeError: 'PVLMultiDict' object has no attribute '_title'

See also the errors from this Action run: https://github.com/planetarypy/pvl/actions/runs/15647702347/job/44087820851#step:8:418

Expected behavior
make test in the pvl repo should result in no errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions