title: When ruamel.yaml loads @dataclass from string, __post_init__ is not called
body: <p>Assume I created a <code>@dataclass class Foo</code>, and added a <code>__post_init__</code> to perform type checking and processing.</p>
  
  <p>When I attempt to <code>yaml.load</code> a <code>!Foo</code> object, <code>__post_init__</code> is not called.</p>
  
  <pre><code>from dataclasses import dataclass, fields
  
  from ruamel.yaml import yaml_object, YAML
  
  
  yaml = YAML()
  
  
  @yaml_object(yaml)
  @dataclass
  class Foo:
      foo: int
      bar: int
  
      def __post_init__(self):
          raise Exception
          for field in fields(self):
              value = getattr(self, field.name)
              typ = field.type
              if not isinstance(value, typ):
                  raise Exception
  
  s = '''\
  !Foo
  foo: "foo"
  bar: "bar"
  '''
  yaml.load(s)
  </code></pre>
  
  <p>How do I perform parameter checking when loading dataclasses via ruamel.yaml?</p>
  
  <p>This behavior occurs in Python 3.7 as well as 3.6 with <code>pip install dataclasses</code>.</p>