This repository was archived by the owner on Oct 24, 2025. It is now read-only.
Fix distutils bdist crash #261
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
build_sasscommand adds the list of compiled css files to the distribution'sdata_filesattribute.However, it does not add entries that are according to distutils' spec. This causes commands like
python setup.py bdistorpip installto crash.According to the docs, an entry in
data_filesshould either be a single string, or a two-tuple of(dir_name, [list_of_files]). The existing code instead adds two-tuples of(dir_name, file_name)for each file, causing distutils to attempt to iterate over the characters of thefile_namestring and crash when it attempts to copy a non-existent, one-character-named file.I'm not entirely sure how to write an effective test for this (and there doesn't seem to be an existing one to cover this code path).
An example of a typical traceback from running
bdistwith then environment variableDISTUTILS_DEBUG=1: