StopIteration can mask the split-package error in mesonpy/__init__.py:160. In the purelib/platlib conflict branch, next(entry for entry in wheel_files[other] ...) has no default. If the package was first registered by an install_subdirs entry whose directory walked to zero files, packages has the entry but wheel_files[other] has none, and the user gets a raw StopIteration/RuntimeError instead of the helpful BuildError. Use next(..., None) and degrade the message.
Originally reported in #861.
This is a correct observation. However, the condition for triggering it is between very unlikely and impossible. I haven't yet tried to determine whether it is really impossible.
StopIterationcan mask the split-package error inmesonpy/__init__.py:160. In the purelib/platlib conflict branch,next(entry for entry in wheel_files[other] ...)has no default. If the package was first registered by aninstall_subdirsentry whose directory walked to zero files, packages has the entry butwheel_files[other]has none, and the user gets a rawStopIteration/RuntimeErrorinstead of the helpfulBuildError. Usenext(..., None)and degrade the message.Originally reported in #861.
This is a correct observation. However, the condition for triggering it is between very unlikely and impossible. I haven't yet tried to determine whether it is really impossible.