Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import Tuple
- def parse_optional_alpha(colour) -> Tuple[int]:
- if not isinstance(colour, (list, tuple)) or len(colour) not in (3, 4):
- raise ValueError("Unknown colour info.")
- try:
- r, g, b, a = colour
- return (r, g, b, a)
- except ValueError:
- return (*colour, 0)
- def normalise_colour_info(colour) -> Tuple[str, Tuple[int, int, int, int]]:
- """Normalise colour info to (name, (r, g, b, alpha))."""
- if len(colour) >= 3:
- try:
- return ("", parse_optional_alpha(colour))
- except ValueError as e:
- raise e
- try:
- name, values = colour
- except ValueError:
- raise ValueError("Unknown colour info.")
- return (name, parse_optional_alpha(values))
- assert normalise_colour_info(("a", (1, 2, 3))) == ("a", (1, 2, 3, 0))
- assert normalise_colour_info(("a", (1, 2, 3, 4))) == ("a", (1, 2, 3, 4))
- assert normalise_colour_info((1, 2, 3, 4)) == ("", (1, 2, 3, 4))
- assert normalise_colour_info((1, 2, 3)) == ("", (1, 2, 3, 0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement