title: __init__() takes 1 positional argument but 2 were given
body: <p>I have seen this error before and it was due to something quite unrelated, but I can't seem to get past this now try as I might. The whole error seems contradictory to me, but Python is probably somehow right in the end.</p>
  
  <p>So, in foo/foo.py I have a class and its constructor defined as below:</p>
  
  <pre><code>class Foo:
      def __init__(self, bars):
          self.bars = bars
  </code></pre>
  
  <p>In baz.py I have the following:</p>
  
  <pre><code>from foo import foo
  test_bars = [ a list of things ]
  f = foo.Foo(test_bars)
  </code></pre>
  
  <p>which leads me to</p>
  
  <pre><code>__init__() takes 1 positional argument but 2 were given
  </code></pre>
  
  <p>I tried turning the constructor into kwargs too, as below</p>
  
  <pre><code>class Foo:
      def __init__(self, bars=None):
          self.bars = bars
  </code></pre>
  
  <p>and then calling</p>
  
  <pre><code>from foo import foo
  test_bars = [ a list of things ]
  f = foo.Foo(bars=test_bars)
  </code></pre>
  
  <p>and this gives an error about unidentified kwarg.</p>
  
  <p>Other classes included in foo/foo.py seem to work normally.</p>
  
  <p>What is it I'm not seeing?</p>