summaryrefslogtreecommitdiff
path: root/string_utils.py
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2021-10-23 23:49:08 -0700
committerScott Gasch <[email protected]>2021-10-23 23:49:08 -0700
commitd08bad64a6884f25d28a2c38c6cd1c87b4335188 (patch)
tree9d0e4381b4da1a543acf907b769d1d4d88a3377e /string_utils.py
parent351e77c767c9084aa486eedbdc9902c635b06261 (diff)
Adds site_config; adds Tuya lights. Bugfixes.
Diffstat (limited to 'string_utils.py')
-rw-r--r--string_utils.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/string_utils.py b/string_utils.py
index a6a2da3..9a38d25 100644
--- a/string_utils.py
+++ b/string_utils.py
@@ -791,6 +791,9 @@ def extract_mac_address(in_str: Any, *, separator: str = ":") -> Optional[str]:
>>> extract_mac_address(' MAC Address: 34:29:8F:12:0D:2F')
'34:29:8F:12:0D:2F'
+ >>> extract_mac_address('? (10.0.0.30) at d8:5d:e2:34:54:86 on em0 expires in 1176 seconds [ethernet]')
+ 'd8:5d:e2:34:54:86'
+
"""
if not is_full_string(in_str):
return None
@@ -1500,6 +1503,19 @@ def from_bitstring(bits: str, encoding='utf-8', errors='surrogatepass') -> str:
return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '\0'
+def ip_v4_sort_key(txt: str) -> str:
+ """Turn an IPv4 address into a tuple for sorting purposes.
+
+ >>> ip_v4_sort_key('10.0.0.18')
+ (10, 0, 0, 18)
+
+ """
+ if not is_ip_v4(txt):
+ print(f"not IP: {txt}")
+ return None
+ return tuple([int(x) for x in txt.split('.')])
+
+
if __name__ == '__main__':
import doctest
doctest.testmod()