python 3
Я так понимаю дело в subprecess.Popen, но я уже замучался перебирать варианты, вот код, который не работает\
import subprocess, shlex
from typing import Callable
def RunCommandAndWatchItsProcess(cmd: str, watch: Callable[[str], None], **kwargs) -> None:
""" Runs system command in another process. """
# quoting arguments
for k in kwargs:
cmd = cmd.replace('%' + k, shlex.quote(kwargs[k]))
print(shlex.split(cmd))
proc = subprocess.Popen(
#["#!/usr/bin/sh\n" + cmd]
shlex.split(cmd)
, stdout=subprocess.PIPE)
while proc.poll() is None:
line = proc.stdout.readline()
print("...")
watch (line)
RunCommandAndWatchItsProcess("git clone %url /tmp/abff1c3f4fg44f551", lambda str: print('`' + str.decode() + '`'), url="https://github.com/vega0/gm_sourcenet")
Так же заголовок вопроса применим ко всем другим вызовам функции, при которой watch не срабатывает