docker_launch.utils¶
- groupby(objects, key)[source]¶
Group list of dictionaries by values of its specific key.
You can safely specify possibly missing key. See the example below.
Examples
>>> groupby([{"a": 1, "b": 2}, {"a": 5, "b": 2}, {"a": 1, "b": 7}], "a") {1: [{"a": 1, "b": 2}, {"a": 1, "b": 7}], 5: [{"a": 5, "b": 2}]} >>> groupby([{"a": 1, "b": 2}, {"b": 2}, {"a": 1, "b": 7}], "a") {"": [{"b": 2}], 1: [{"a": 1, "b": 2}, {"a": 1, "b": 7}]} >>> groupby([{"a": 1, "b": 2}, {"a": 5, "b": 2}, {"a": 1, "b": 7}], "c") {"": [{"a": 1, "b": 2}, {"a": 5, "b": 2}, {"a": 1, "b": 7}]}
- Parameters
objects (List[Dict[Hashable, Any]]) –
key (Hashable) –
- Return type
Dict[Hashable, List[Dict[Hashable, Any]]]
- parse_address(address, username=None)[source]¶
Parse IP address, either in format user@ipaddr or separately provided.
- Raises
ValueError – If address is given in username@ipaddr format but inconsistent username is given as separate argument.
- Parameters
address (str) –
username (Optional[str]) –
- Return type
Tuple[str, str]
Examples
>>> parse_address("user@172.29.0.0") ("172.29.0.0", "user") >>> parse_address("172.29.0.0", "user") ("172.29.0.0", "user") >>> parse_address("172.29.0.0") ("172.29.0.0", None)