title: How to solve "unexpected keyword argument" with python-attrs construct, so that mypy is happy?
body: <p>I have a <code>class A</code> in a foreign library.</p>
  <pre class="lang-py prettyprint-override"><code>class A:
      def __init__(self, a: int):
          self.a = a
  </code></pre>
  <p>I would like to extend a <code>class B</code> with <code>A</code> like:</p>
  <pre class="lang-py prettyprint-override"><code>import attr
  
  @attr.s
  class B(A):
      b: int = attr.ib()
  </code></pre>
  <p>The code seems to work:</p>
  <pre class="lang-py prettyprint-override"><code>import attr
  
  class A:
      def __init__(self, a: int):
          self.a = a
  
  attr.s(these={
      &quot;a&quot;: attr.ib(type=str)
  }, init=True)(A)
  
  @attr.s(kw_only=True)
  class B(A):
      b: int = attr.ib()
  
  if __name__ == &quot;__main__&quot;:
      a = A(1)
      b = B(a=1, b=2)
      print(a)  # output: A(a=1) 
      print(b)  # output: B(a=1, b=2)
  </code></pre>
  <p>but mypy/pyright is unhappy.</p>
  <pre class="lang-sh prettyprint-override"><code>&gt; mypy file.py
  error: Unexpected keyword argument &quot;a&quot; for &quot;B&quot;
  </code></pre>