diff --git a/lofar_station_client/common/__init__.py b/lofar_station_client/common/__init__.py index 33f57b17fc02df7867f5c703fe88efb2c8b1ee10..0697086a7033b53b8ea9b0828b4227111248f5f2 100644 --- a/lofar_station_client/common/__init__.py +++ b/lofar_station_client/common/__init__.py @@ -1,6 +1,8 @@ # Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy) # SPDX-License-Identifier: Apache-2.0 +""" Common classes used in station """ + from ._case_insensitive_dict import CaseInsensitiveDict, ReversibleKeysView from ._case_insensitive_string import CaseInsensitiveString diff --git a/lofar_station_client/common/_case_insensitive_dict.py b/lofar_station_client/common/_case_insensitive_dict.py index a1a1f474e5b5f9f2f5f403e23f77c7f11ada39f0..ee19def49cd115fb09b95db2cbbb57873ae7beba 100644 --- a/lofar_station_client/common/_case_insensitive_dict.py +++ b/lofar_station_client/common/_case_insensitive_dict.py @@ -1,6 +1,8 @@ # Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy) # SPDX-License-Identifier: Apache-2.0 +""" Provides a special dictionary with case-insensitive keys """ + import abc from collections import UserDict from typing import List @@ -10,11 +12,11 @@ from typing import Union from ._case_insensitive_string import CaseInsensitiveString -def case_insensitive_comprehend_keys(data: dict) -> List[CaseInsensitiveString]: +def _case_insensitive_comprehend_keys(data: dict) -> List[CaseInsensitiveString]: return [CaseInsensitiveString(key) for key in data] -def case_insensitive_comprehend_items( +def _case_insensitive_comprehend_items( data: dict, ) -> List[Tuple[CaseInsensitiveString, any]]: return [(CaseInsensitiveString(key), value) for key, value in data.items()] @@ -49,6 +51,7 @@ class ReversibleIterator: class AbstractReversibleView(abc.ABC): + """ An abstract reversible view """ def __init__(self, data: UserDict): self.data = data self.len = len(data) @@ -66,38 +69,35 @@ class AbstractReversibleView(abc.ABC): class ReversibleItemsView(AbstractReversibleView): - def __init__(self, data: UserDict): - super().__init__(data) + """ Reversible view on items """ def __iter__(self): return ReversibleIterator( - case_insensitive_comprehend_items(self.data.data), 0, self.len, 1 + _case_insensitive_comprehend_items(self.data.data), 0, self.len, 1 ) def __reversed__(self): return ReversibleIterator( - case_insensitive_comprehend_items(self.data.data), self.len - 1, -1, -1 + _case_insensitive_comprehend_items(self.data.data), self.len - 1, -1, -1 ) class ReversibleKeysView(AbstractReversibleView): - def __init__(self, data: UserDict): - super().__init__(data) + """ Reversible view on keys """ def __iter__(self): return ReversibleIterator( - case_insensitive_comprehend_keys(self.data.data), 0, self.len, 1 + _case_insensitive_comprehend_keys(self.data.data), 0, self.len, 1 ) def __reversed__(self): return ReversibleIterator( - case_insensitive_comprehend_keys(self.data.data), self.len - 1, -1, -1 + _case_insensitive_comprehend_keys(self.data.data), self.len - 1, -1, -1 ) class ReversibleValuesView(AbstractReversibleView): - def __init__(self, data: UserDict): - super().__init__(data) + """ Reversible view on values """ def __iter__(self): return ReversibleIterator(list(self.data.data.values()), 0, self.len, 1) @@ -131,7 +131,7 @@ class CaseInsensitiveDict(UserDict): def __iter__(self): return ReversibleIterator( - case_insensitive_comprehend_keys(self.data), 0, len(self.data), 1 + _case_insensitive_comprehend_keys(self.data), 0, len(self.data), 1 ) def __contains__(self, key): diff --git a/lofar_station_client/common/_case_insensitive_string.py b/lofar_station_client/common/_case_insensitive_string.py index 35e510e917f8638d1a98f51a1ccedc6bb2f67f15..8176962157638cf67f275ff57d361e787f761e48 100644 --- a/lofar_station_client/common/_case_insensitive_string.py +++ b/lofar_station_client/common/_case_insensitive_string.py @@ -1,6 +1,8 @@ -# Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy) +# Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy) # SPDX-License-Identifier: Apache-2.0 +"""Special string that ignores casing in comparison""" + class CaseInsensitiveString(str): """Special string that ignores casing in comparison""" @@ -8,8 +10,8 @@ class CaseInsensitiveString(str): def __eq__(self, other): if isinstance(other, str): return self.casefold() == other.casefold() - else: - return self.casefold() == other + + return self.casefold() == other def __hash__(self): return hash(self.__str__())