You can customise an enum so the members have extra attributes. There are plenty of examples of that to be found. They all look something like this:
class EnumWithAttrs(Enum):
    def __new__(cls, *args, **kwargs):
        value = len(cls.__members__) + 1
        obj = object.__new__(cls)
        obj._value_ = value
        return obj
    def __init__(self, a, b):
        self.a = a
        self.b = b
    
    GREEN = 'a', 'b'
    BLUE = 'c', 'd'
this example is from https://stackoverflow.com/a/19300424/6439229
The majority of the examples I found show __new__ to accept kwargs, but is it actually syntactically possible to pass kwargs to __new__?
This gives SyntaxErrors:
class EnumWithAttrs(Enum):
    GREEN = 'a', foo='b'
    BLUE = 'c', **{'bar':  'd'}
So does this functional syntax:
Color = EnumWithAttrs('Color', [('GREEN', 'a', foo='b'), ('BLUE', 'c', **{'bar': 'd'})])
Do people put the **kwargs in the function def of __new__ just out of habit, or is there really a way to use them?
EDIT: I'm not looking for a workaround to using kwargs, like passing a dict as a positional argument.
 
     
    