Skip to content

FastPath is returning multiple children for the same entry

Consider this:

>>> list(importlib_metadata.FastPath('./keyring-21.2.0-py3-none-any.whl').children())
['keyring', 'keyring', 'keyring', 'keyring', 'keyring', 'keyring', 'keyring', 'keyring', 'keyring', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/backends', 'keyring/testing', 'keyring/testing', 'keyring/testing', 'keyring/util', 'keyring/util', 'keyring/util', 'keyring-21.2.0.dist-info', 'keyring-21.2.0.dist-info', 'keyring-21.2.0.dist-info', 'keyring-21.2.0.dist-info', 'keyring-21.2.0.dist-info', 'keyring-21.2.0.dist-info', 'keyring', 'keyring/backends', 'keyring/testing', 'keyring/util', 'keyring-21.2.0.dist-info']

This leads to importlib_metadata.Distribution.discover(path=['./keyring-21.2.0-py3-none-any.whl']) yielding multiple redundant PathDistribution objects.