title: Python dataclass, what's a pythonic way to validate initialization arguments?
body: <p>What's a pythonic way to validate the init arguments before instantiation w/o overriding dataclasses built-in init? </p>
  
  <p>I thought perhaps leveraging the <code>__new__</code> dunder-method would be appropriate? </p>
  
  <pre><code>from dataclasses import dataclass
  
  @dataclass
  class MyClass:
      is_good: bool = False
      is_bad: bool = False
  
      def __new__(cls, *args, **kwargs):
          instance: cls = super(MyClass, cls).__new__(cls, *args, **kwargs)
          if instance.is_good:
              assert not instance.is_bad
          return instance
  </code></pre>