Fix np.genfromtxt field name handling when dtype != None #4649
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.
np.genfromtxt
validates field names twice: once ingenfromtxt
and once ineasy_dtype
. Whilst the arguments togenfromtxt
are used in the first validation, they aren't passed toeasy_dtype
(which is used only whendtype != None
) and therefore in this case the default validation (strip non-alphanum, replace spaces) gets confusingly applied, ignoringgenfromtxt
's arguments.This patch adds failing tests for the issue and fixes
genfromtxt
by passing the appropriate arguments onwards toeasy_dtype
.This is probably the least invasive way to fix the issue. In my opinion, the whole thing is a nest of poorly-defined responsibilities between
genfromtxt
,easy_dtype
andNameValidator
, especially since the latter two are only used in the former. I'm willing to take the time to try and clean that up if it's likely to be well-received.