Queer European MD passionate about IT
瀏覽代碼

Allow non-null standard output and/or error pipe to be passed to aio_subprocess_shell function

Davte 1 年之前
父節點
當前提交
cf492f0c8b
共有 2 個文件被更改,包括 9 次插入4 次删除
  1. 1 1
      davtelepot/__init__.py
  2. 8 3
      davtelepot/utilities.py

+ 1 - 1
davtelepot/__init__.py

@@ -11,7 +11,7 @@ __author__ = "Davide Testa"
 __email__ = "davide@davte.it"
 __credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
 __license__ = "GNU General Public License v3.0"
-__version__ = "2.9.4"
+__version__ = "2.9.5"
 __maintainer__ = "Davide Testa"
 __contact__ = "t.me/davte"
 

+ 8 - 3
davtelepot/utilities.py

@@ -1713,16 +1713,21 @@ def recursive_dictionary_update(one: dict, other: dict) -> dict:
     return one
 
 
-async def aio_subprocess_shell(command: str) -> Tuple[str, str]:
+async def aio_subprocess_shell(command: str,
+                               stdout=None,
+                               stderr=None) -> Tuple[str, str]:
     """Run `command` in a subprocess shell.
 
     Await for the subprocess to end and return standard error and output.
     On error, log errors.
+    If `stdout` and/or `stderr` are given, use them as output and/or error pipes.
+    Example of non-null standard output/error pipe: asyncio.subprocess.PIPE
     """
-    stdout, stderr = None, None
     try:
         _subprocess = await asyncio.create_subprocess_shell(
-            command
+            command,
+            stdout=stdout,
+            stderr=stderr
         )
         stdout, stderr = await _subprocess.communicate()
         if stdout: