def _call(command: str, *args, **kwargs) -> int:
    '''Wrapper around ``subprocess.Popen`` that sends command output to logger.

    .. seealso::

       ``subprocess.Popen``_

    Parameters
    ----------

    :``command``: string form of the command to execute

    All other parameters are passed directly to ``subprocess.Popen``.

    Return Value(s)
    ---------------

    The integer status of command.

    '''

    child = subprocess.Popen(command, stdout = subprocess.PIPE, stderr = subprocess.PIPE, *args, **kwargs)

    def log():
        '''Send processes stdout and stderr to logger.'''

        for fh in select.select(( child.stdout, child.stderr, ), (), (), 0)[0]:
            line = fh.readline()[:-1]

            if len(line):
                getattr(logger, {
                    child.stdout: 'debug',
                    child.stderr: 'error',
                }[fh])('%s: %s', command, line)

    while child.poll() is None:
        log()

    log()

    return child.wait()
Wrapper around ``subprocess.Popen`` that sends command output to logger.

    .. seealso::

       ``subprocess.Popen``_

    Parameters
    ----------

    :``command``: string form of the command to execute

    All other parameters are passed directly to ``subprocess.Popen``.

    Return Value(s)
    ---------------

    The integer status of command.