Python: No value for argument 'filenames' in unbound method call
<p>I have a class to wrap around the config stuff of my program.
But when I try to test i in ipython like this:
</p>

<pre><code>c = Config(test.cfg)
</code></pre>

<p>I get the error:</p>

<pre><code>"TypeError: read() missing 1 required positional argument: 'filenames'
"
</code></pre>

<p>But I pylint throws this error in my emacs:</p>

<pre><code>"No value for argument 'filenames' in unbound method call"
</code></pre>

<p>I think the error adbove is the reason of the error above it.
But I don't know why.
I think the method is call bound since I used self as reference but I'm not shure and I don't get why it doesn't accept cfg as paramter.</p>

<p>This is my class:
</p>

<pre><code>from configparser import ConfigParser

class Config:
    """Wrapper around config files
    Args:
        cfg: main config file
    """
    def __init__(self, cfg=None):
        self.cfg = []
        self.cfgraw = cfg
        self.scfgs = []
        self.scfgs_raw = []
        if not cfg is None:
            self.add(typ="main", cfg=cfg)


    def add(self, typ, cfg):
        """add config file
        Args:
             typ: type of file main or sub
        Returns:
             none
        """
        if typ is not "main" and cfg is None:
            raise ValueError('no file provied and type not main')

        if typ is "sub":
            for index in range(len(self.scfgs)):
                self.scfgs[index] = ConfigParser
                self.scfgs[index].read(cfg)

        if typ is "main":
            self.cfg = ConfigParser
            self.cfg.read(cfg)
    def write(self, typ=None, index=None):
        """write changes made
        Args:
            typ: type of target file
            index: if type is sub add index to write selected file
        Returns:
            none
        """
        if typ is "main":
            self.cfg.write(self.cfgraw)
        if typ is "sub":
            if index is None:
                for item in range(len(self.scfgs)):
                    self.scfgs[item].write(self.scfgs_raw[item])
            else:
                self.scfgs[item].write(self.scfgs_raw[item])   
</code></pre>