Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[MNT]: _check_color_like for list like input #25005

Closed as not planned
Closed as not planned
@story645

Description

@story645

Summary

There's a private method that validates color input. This method is designed for scaler key value pairs, for example _check_color_like(color='green', gapcolor='orange')

def _check_color_like(**kwargs):
"""
For each *key, value* pair in *kwargs*, check that *value* is color-like.
"""
for k, v in kwargs.items():
if not is_color_like(v):
raise ValueError(f"{v!r} is not a valid value for {k}")

I think this validation should be extended to list like input, something like _check_color_like(color=['green', 'orange', 'yellow']) or a second private function _check_color_like_listlike(**kwargs) that supports that input.

Proposed fix

The trickiest part of the coding is probably in sorting out how to recognize RGBA tuples as a color and not a list. And that might be partially solved by making a second function that always calls the list version -> this requires looking through the code for uses of color (hint: look for to_rgba) and checking if the type is ambiguous at the conversion stage. (For example in pie and bar, the colors could be either but are shoved into a generator and could be validated using _check_color_like as part of that loop iteration).

This was motivated by #24849 to be consistent with color checking in #23208

It's a good first issue because it's private API around printing a good error message and is not touching the public 'is_color_like' method. But, I will also accept if the solution is always use the singular case and wrap it in list comprehensions as needed.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions