From 712f5c99e79ba6abad39143c5b31808e39377aef Mon Sep 17 00:00:00 2001 From: pcain-usgs <pcain@usgs.gov> Date: Wed, 16 Jun 2021 15:59:58 -0600 Subject: [PATCH] move _get_element outside of classes, chain commands --- geomagio/edge/LegacySNCL.py | 80 ++++++++++++++++---------------- geomagio/edge/SNCL.py | 92 ++++++++++++++++++------------------- 2 files changed, 84 insertions(+), 88 deletions(-) diff --git a/geomagio/edge/LegacySNCL.py b/geomagio/edge/LegacySNCL.py index 4c747df3a..a2478b599 100644 --- a/geomagio/edge/LegacySNCL.py +++ b/geomagio/edge/LegacySNCL.py @@ -1,6 +1,6 @@ from typing import Optional -from .SNCL import SNCL, __get_location_start +from .SNCL import SNCL, _get_location_start ELEMENT_CONVERSIONS = { # e-field @@ -36,9 +36,9 @@ class LegacySNCL(SNCL): @property def element(self) -> str: - predefined_element = self.__check_predefined_element() - element = self.__get_element() - return predefined_element or element + return _check_predefined_element(channel=self.channel) or _get_element( + channel=self.channel, location=self.location + ) @property def interval(self) -> str: @@ -53,46 +53,25 @@ class LegacySNCL(SNCL): return "day" raise ValueError(f"Unexcepted interval code: {channel_start}") - def __get_element(self): - """Translates channel/location to element""" - element_start = self.channel[2] - channel = self.channel - channel_middle = channel[1] - location_end = self.location[1] - if channel_middle in ["Q", "E"]: - element_end = "_Volt" - elif channel_middle == "Y": - element_end = "_Bin" - elif channel_middle == "K": - element_end = "_Temp" - elif location_end == "1": - element_end = "_Sat" - else: - element_end = "" - return element_start + element_end - - def __check_predefined_element(self) -> Optional[str]: - channel = self.channel - channel_end = channel[1:] - if channel_end in CHANNEL_CONVERSIONS: - return CHANNEL_CONVERSIONS[channel_end] - return None - def get_channel(element: str, interval: str) -> str: - predefined_channel = __check_predefined_channel(element=element, interval=interval) - channel_start = __get_channel_start(interval=interval) - channel_end = __get_channel_end(element=element) - return predefined_channel or (channel_start + channel_end) + return _check_predefined_channel(element=element, interval=interval) or ( + _get_channel_start(interval=interval) + _get_channel_end(element=element) + ) def get_location(element: str, data_type: str) -> str: - location_start = __get_location_start(data_type=data_type) - location_end = __get_location_end(element=element) - return location_start + location_end + return _get_location_start(data_type=data_type) + _get_location_end(element=element) + +def _check_predefined_element(channel: str) -> Optional[str]: + channel_end = channel[1:] + if channel_end in CHANNEL_CONVERSIONS: + return CHANNEL_CONVERSIONS[channel_end] + return None -def __get_channel_start(interval: str) -> str: + +def _get_channel_start(interval: str) -> str: if interval == "second": return "S" elif interval == "minute": @@ -104,9 +83,28 @@ def __get_channel_start(interval: str) -> str: raise ValueError(f" Unexcepted interval: {interval}") -def __check_predefined_channel(element: str, interval: str) -> Optional[str]: +def _get_element(channel: str, location: str) -> str: + """Translates channel/location to element""" + element_start = channel[2] + channel = channel + channel_middle = channel[1] + location_end = location[1] + if channel_middle in ["Q", "E"]: + element_end = "_Volt" + elif channel_middle == "Y": + element_end = "_Bin" + elif channel_middle == "K": + element_end = "_Temp" + elif location_end == "1": + element_end = "_Sat" + else: + element_end = "" + return element_start + element_end + + +def _check_predefined_channel(element: str, interval: str) -> Optional[str]: if element in ELEMENT_CONVERSIONS: - return __get_channel_start(interval=interval) + ELEMENT_CONVERSIONS[element] + return _get_channel_start(interval=interval) + ELEMENT_CONVERSIONS[element] elif len(element) == 3: return element # chan.loc format @@ -117,7 +115,7 @@ def __check_predefined_channel(element: str, interval: str) -> Optional[str]: return None -def __get_channel_end(element: str) -> str: +def _get_channel_end(element: str) -> str: channel_middle = "V" if "_Volt" in element: channel_middle = "E" @@ -131,7 +129,7 @@ def __get_channel_end(element: str) -> str: return channel_middle + channel_end -def __get_location_end(element: str) -> str: +def _get_location_end(element: str) -> str: """Translates element suffix to end of location code""" if "_Sat" in element: return "1" diff --git a/geomagio/edge/SNCL.py b/geomagio/edge/SNCL.py index 3dc4b9413..de292587c 100644 --- a/geomagio/edge/SNCL.py +++ b/geomagio/edge/SNCL.py @@ -63,9 +63,9 @@ class SNCL(BaseModel): @property def element(self) -> str: - predefined_element = self.__check_predefined_element() - element = self.__get_element() - return predefined_element or element + return _check_predefined_element(channel=self.channel) or _get_element( + channel=self.channel, location=self.location + ) @property def interval(self) -> str: @@ -83,52 +83,25 @@ class SNCL(BaseModel): return "day" raise ValueError(f"Unexcepted interval code: {channel_start}") - def __get_element(self): - """Translates channel/location to element""" - element_start = self.channel[2] - channel = self.channel - channel_middle = channel[1] - location_end = self.location[1] - if channel_middle == "E": - element_end = "_Volt" - elif channel_middle == "Y": - element_end = "_Bin" - elif channel_middle == "K": - element_end = "_Temp" - elif location_end == "1": - element_end = "_Sat" - elif location_end == "D": - element_end = "_Dist" - elif location_end == "Q": - element_end = "_SQ" - elif location_end == "V": - element_end = "_SV" - else: - element_end = "" - return element_start + element_end - - def __check_predefined_element(self) -> Optional[str]: - channel = self.channel - channel_end = channel[1:] - if channel_end in CHANNEL_CONVERSIONS: - return CHANNEL_CONVERSIONS[channel_end] - return None - def get_channel(element: str, interval: str) -> str: - predefined_channel = __check_predefined_channel(element=element, interval=interval) - channel_start = __get_channel_start(interval=interval) - channel_end = __get_channel_end(element=element) - return predefined_channel or (channel_start + channel_end) + return _check_predefined_channel(element=element, interval=interval) or ( + _get_channel_start(interval=interval) + _get_channel_end(element=element) + ) def get_location(element: str, data_type: str) -> str: - location_start = __get_location_start(data_type=data_type) - location_end = __get_location_end(element=element) - return location_start + location_end + return _get_location_start(data_type=data_type) + _get_location_end(element=element) + +def _check_predefined_element(channel: str) -> Optional[str]: + channel_end = channel[1:] + if channel_end in CHANNEL_CONVERSIONS: + return CHANNEL_CONVERSIONS[channel_end] + return None -def __get_channel_start(interval: str) -> str: + +def _get_channel_start(interval: str) -> str: if interval == "tenhertz": return "B" if interval == "second": @@ -142,9 +115,34 @@ def __get_channel_start(interval: str) -> str: raise ValueError(f" Unexcepted interval: {interval}") -def __check_predefined_channel(element: str, interval: str) -> Optional[str]: +def _get_element(channel: str, location: str) -> str: + """Translates channel/location to element""" + element_start = channel[2] + channel = channel + channel_middle = channel[1] + location_end = location[1] + if channel_middle == "E": + element_end = "_Volt" + elif channel_middle == "Y": + element_end = "_Bin" + elif channel_middle == "K": + element_end = "_Temp" + elif location_end == "1": + element_end = "_Sat" + elif location_end == "D": + element_end = "_Dist" + elif location_end == "Q": + element_end = "_SQ" + elif location_end == "V": + element_end = "_SV" + else: + element_end = "" + return element_start + element_end + + +def _check_predefined_channel(element: str, interval: str) -> Optional[str]: if element in ELEMENT_CONVERSIONS: - return __get_channel_start(interval=interval) + ELEMENT_CONVERSIONS[element] + return _get_channel_start(interval=interval) + ELEMENT_CONVERSIONS[element] elif len(element) == 3: return element # chan.loc format @@ -155,7 +153,7 @@ def __check_predefined_channel(element: str, interval: str) -> Optional[str]: return None -def __get_channel_end(element: str) -> str: +def _get_channel_end(element: str) -> str: channel_middle = "F" if "_Volt" in element: channel_middle = "E" @@ -167,7 +165,7 @@ def __get_channel_end(element: str) -> str: return channel_middle + channel_end -def __get_location_start(data_type: str) -> str: +def _get_location_start(data_type: str) -> str: """Translates data type to beginning of location code""" if data_type == "variation": return "R" @@ -180,7 +178,7 @@ def __get_location_start(data_type: str) -> str: raise ValueError(f"Unexpected data type: {data_type}") -def __get_location_end(element: str) -> str: +def _get_location_end(element: str) -> str: """Translates element suffix to end of location code""" if "_Sat" in element: return "1" -- GitLab