Skip to content
Snippets Groups Projects
Commit a054a0ec authored by Hannes Feldt's avatar Hannes Feldt
Browse files

fix linting

parent a4b5b82d
No related branches found
No related tags found
1 merge request!92Resolve L2SS-1582 "Migrate case insensitive dict from station control"
Pipeline #83787 failed
# 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
......
# 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):
......
# 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,7 +10,7 @@ class CaseInsensitiveString(str):
def __eq__(self, other):
if isinstance(other, str):
return self.casefold() == other.casefold()
else:
return self.casefold() == other
def __hash__(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment