Skip to content

Commit

Permalink
merge the __contains__ to the ConverterFactory class
Browse files Browse the repository at this point in the history
  • Loading branch information
MAfarrag committed Dec 9, 2024
1 parent 7387036 commit c4e5892
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions hydrolib/tools/ext_old_to_new/converters.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,14 +294,6 @@ def convert(self, forcing: ExtOldForcing) -> ParameterField:
return new_block


def __contains__(cls, item):
try:
cls(item)
except ValueError:
return False
return True


class ConverterFactory:
"""
A factory class for creating converters based on the given quantity.
Expand All @@ -322,13 +314,22 @@ def create_converter(quantity) -> BaseConverter:
Raises:
ValueError: If no converter is available for the given quantity.
"""
if __contains__(ExtOldMeteoQuantity, quantity):
if ConverterFactory.contains(ExtOldMeteoQuantity, quantity):
return MeteoConverter()
elif __contains__(ExtOldInitialConditionQuantity, quantity):
elif ConverterFactory.contains(ExtOldInitialConditionQuantity, quantity):
return InitialConditionConverter()
elif __contains__(ExtOldBoundaryQuantity, quantity):
elif ConverterFactory.contains(ExtOldBoundaryQuantity, quantity):
return BoundaryConditionConverter()
elif __contains__(ExtOldParametersQuantity, quantity):
elif ConverterFactory.contains(ExtOldParametersQuantity, quantity):
return ParametersConverter()
else:
raise ValueError(f"No converter available for QUANTITY={quantity}.")

@staticmethod
def contains(quantity_class, quantity) -> bool:
try:
quantity_class(quantity)
except ValueError:
return False

return True

0 comments on commit c4e5892

Please sign in to comment.