Hi,
I *think* the reason why basic does not accept keyword arguments is that
all arguments are stored in the tuple self.args, and when providing them
by keyword they have no canonical order any more.
I think the best way to go is to do
class MyClass(Basic):
def __new__(cls, arg1="foo", arg2="bar")
return Basic.__new__(cls, arg1, arg2)
i.e. to manually provide a canonical argument order.
I don't think this should break anything - plenty of sympy objects
provide their own __new__ (all relying on Basic.__new__ eventually, as
far as I know).
Tom