':param args: the list of strings used to build commands.
:type args: variadic function args'

def __init__(self, *args, **kwargs):

    self.exit_code = None
    command_list = args
    self.popen = self.subprocess(*command_list, **kwargs)
    super(SubprocessDataProvider, self).__init__(self.popen.stdout)
    self.exit_code = self.popen.poll()
