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 sys
import os.path as path
from typing import List, Optional, Union, Tuple
from typing import List, Optional, Union, Tuple, BinaryIO
from Levenshtein import distance
@@ -111,7 +111,10 @@ def read_argument(args: List[str], *names: str, valued: bool = False, delete: bo
if delete:
del args[i + 1]
return v
if valued:
return None
else:
return False
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:
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
+2 -1
View File
@@ -97,6 +97,7 @@ class TestUtilsLang(TestCase):
self.assertEqual("", utils.sanitize_input(""))
self.assertEqual("a b_c", utils.sanitize_input(" A+=¤$ bé_cè:* "))
class TestUtilsArgs(TestCase):
def test_parse_arguments(self):
self.assertEqual([], utils.parse_arguments(""))
@@ -106,7 +107,7 @@ class TestUtilsArgs(TestCase):
self.assertEqual(["test1", "", ""], utils.parse_arguments("test1 '' \"\""))
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.assertIsNone(utils.read_argument(["test", "-o"], "-o", valued=True))
self.assertEqual("test1", utils.read_argument(["test", "-o", "test1", "-o", "test2"], "-o", valued=True))