new stream util + non valued arg -> True/False

This commit is contained in:
klemek
2020-04-29 12:24:52 +02:00
parent b6d063e1e5
commit 8caa7efb94
2 changed files with 19 additions and 3 deletions
+16 -1
View File
@@ -1,7 +1,7 @@
import re import re
import sys import sys
import os.path as path import os.path as path
from typing import List, Optional, Union, Tuple from typing import List, Optional, Union, Tuple, BinaryIO
from Levenshtein import distance from Levenshtein import distance
@@ -111,7 +111,10 @@ def read_argument(args: List[str], *names: str, valued: bool = False, delete: bo
if delete: if delete:
del args[i + 1] del args[i + 1]
return v return v
if valued:
return None return None
else:
return False
def split_arguments(args: Union[List[str], Tuple[str]], separator: str) -> List[List[str]]: def split_arguments(args: Union[List[str], Tuple[str]], separator: str) -> List[List[str]]:
@@ -208,4 +211,16 @@ def safe_index(src: Union[str, list], pattern, start: int = 0):
except ValueError: except ValueError:
return None return None
# endregion
# region stream utils
def read_stream(stream: BinaryIO) -> bytes:
output_data = bytearray()
for line in stream:
output_data += line
return output_data
# endregion # endregion
+2 -1
View File
@@ -97,6 +97,7 @@ class TestUtilsLang(TestCase):
self.assertEqual("", utils.sanitize_input("")) self.assertEqual("", utils.sanitize_input(""))
self.assertEqual("a b_c", utils.sanitize_input(" A+=¤$ bé_cè:* ")) self.assertEqual("a b_c", utils.sanitize_input(" A+=¤$ bé_cè:* "))
class TestUtilsArgs(TestCase): class TestUtilsArgs(TestCase):
def test_parse_arguments(self): def test_parse_arguments(self):
self.assertEqual([], utils.parse_arguments("")) self.assertEqual([], utils.parse_arguments(""))
@@ -106,7 +107,7 @@ class TestUtilsArgs(TestCase):
self.assertEqual(["test1", "", ""], utils.parse_arguments("test1 '' \"\"")) self.assertEqual(["test1", "", ""], utils.parse_arguments("test1 '' \"\""))
def test_read_argument(self): def test_read_argument(self):
self.assertIsNone(utils.read_argument(["test", "-o", "test"], "--output")) self.assertFalse(utils.read_argument(["test", "-o", "test"], "--output"))
self.assertTrue(utils.read_argument(["test", "-O", "test"], "--output", "-o")) self.assertTrue(utils.read_argument(["test", "-O", "test"], "--output", "-o"))
self.assertIsNone(utils.read_argument(["test", "-o"], "-o", valued=True)) self.assertIsNone(utils.read_argument(["test", "-o"], "-o", valued=True))
self.assertEqual("test1", utils.read_argument(["test", "-o", "test1", "-o", "test2"], "-o", valued=True)) self.assertEqual("test1", utils.read_argument(["test", "-o", "test1", "-o", "test2"], "-o", valued=True))