Issue #8141: Dash validator allowing None values in addition to floats#8196
Conversation
lib/matplotlib/rcsetup.py
Outdated
| def __init__(self, n=None): | ||
| self.n = n | ||
| def __init__(self, n=None, allow_none=False): | ||
| self.n, self.allow_none = n, allow_none |
There was a problem hiding this comment.
Is it very common here to put this on one line?
lib/matplotlib/rcsetup.py
Outdated
| return [float(val) for val in s] | ||
| return [float(val) | ||
| if self.allow_none and val is not None | ||
| or not self.allow_none |
There was a problem hiding this comment.
I think this can be simplified to not self.allow_none or val is not None.
| raise ValueError("linestyle must be a string or " + | ||
| "an even-length sequence of floats.") | ||
|
|
||
|
|
lib/matplotlib/rcsetup.py
Outdated
| 'lines.dashed_pattern': [[3.7, 1.6], validate_nseq_float()], | ||
| 'lines.dashdot_pattern': [[6.4, 1.6, 1, 1.6], validate_nseq_float()], | ||
| 'lines.dashdot_pattern': [[6.4, 1.6, 1, 1.6], | ||
| validate_nseq_float()], |
|
Thanks @QuLogic. I apologize for the novice mistakes and have made appropriate corrections. This seems to fix the initial problem, but it seems CI is failing -- will investigate further. |
|
It would probably be good to include a test for the regression this PR is fixing. There's a good place in https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/tests/test_cycles.py to add in a test. You might also want to think about rebasing the "Fixed" and "Changed" into one commit as it's better PR style. I'm assuming you're doing this for CSCD01? If you are, tell Anya I said hi. |
Validators for dashed linestyles now allow None as an allowed value along with floats through optional `allow_none` kwarg in validate_nseq_float. Other validators that use validate_nseq_float arent affected
8d33b9b to
be72573
Compare
|
I've added a test and cleaned up my commits. Looks like AppVeyor decided to play nice this time -- couldn't figure out why it was failing the single build (likely something unrelated). Also, looks like I forgot to reference the original issue that this PR fixes: #8141 |
|
Looks okay, I think, but can you amend the commit to give the correct first line. |
…8141 Issue matplotlib#8141: Dash validator allowing None values in addition to floats
|
Backported to |
Validators for dashed linestyles now allow
Noneas an allowed value along with floats if optionalallow_nonekwarg flag invalidate_nseq_float.Other validators that use
validate_nseq_floataren't affected, so this bugfix won't have any breaking changes.