Queer European MD passionate about IT
소스 검색

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

Davte 2 년 전
부모
커밋
beaf3f8516
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"
 __email__ = "davide@davte.it"
 __credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
 __credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
 __license__ = "GNU General Public License v3.0"
 __license__ = "GNU General Public License v3.0"
-__version__ = "2.9.4"
+__version__ = "2.9.5"
 __maintainer__ = "Davide Testa"
 __maintainer__ = "Davide Testa"
 __contact__ = "t.me/davte"
 __contact__ = "t.me/davte"
 
 

+ 8 - 3
davtelepot/utilities.py

@@ -1713,16 +1713,21 @@ def recursive_dictionary_update(one: dict, other: dict) -> dict:
     return one
     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.
     """Run `command` in a subprocess shell.
 
 
     Await for the subprocess to end and return standard error and output.
     Await for the subprocess to end and return standard error and output.
     On error, log errors.
     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:
     try:
         _subprocess = await asyncio.create_subprocess_shell(
         _subprocess = await asyncio.create_subprocess_shell(
-            command
+            command,
+            stdout=stdout,
+            stderr=stderr
         )
         )
         stdout, stderr = await _subprocess.communicate()
         stdout, stderr = await _subprocess.communicate()
         if stdout:
         if stdout: