Guest User

Untitled

a guest
Mar 10th, 2021
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1. from typing import Tuple
  2.  
  3.  
  4. def parse_optional_alpha(colour) -> Tuple[int]:
  5.     if not isinstance(colour, (list, tuple)):
  6.         raise ValueError("Unknown colour info.")
  7.  
  8.     if len(colour) not in (3, 4):
  9.         raise ValueError("Unknown colour info.")
  10.  
  11.     try:
  12.         r, g, b, a = colour
  13.         return (r, g, b, a)
  14.     except ValueError:
  15.         return (*colour, 0)
  16.  
  17.  
  18. def normalise_colour_info(colour):
  19.     """Normalise colour info to (name, (r, g, b, alpha))."""
  20.  
  21.     if len(colour) >= 3:
  22.         try:
  23.             return ("", parse_optional_alpha(colour))
  24.         except ValueError as e:
  25.             raise e
  26.    
  27.     try:
  28.         name, values = colour
  29.     except ValueError:
  30.         raise ValueError("Unknown colour info.")
  31.  
  32.     return (name, parse_optional_alpha(values))
  33.  
  34.  
  35. assert normalise_colour_info(("a", (1, 2, 3))) == ("a", (1, 2, 3, 0))
  36. assert normalise_colour_info(("a", (1, 2, 3, 4))) == ("a", (1, 2, 3, 4))
  37. assert normalise_colour_info((1, 2, 3, 4)) == ("", (1, 2, 3, 4))
  38. assert normalise_colour_info((1, 2, 3)) == ("", (1, 2, 3, 0))
  39.  
  40.  
Advertisement
Add Comment
Please, Sign In to add comment