Skip to content
This repository has been archived by the owner on Feb 3, 2025. It is now read-only.

Commit

Permalink
rewrite, thanks pylint ;)
Browse files Browse the repository at this point in the history
  • Loading branch information
hf-kklein committed Jan 21, 2024
1 parent 4f25bba commit 60da5f8
Showing 1 changed file with 24 additions and 18 deletions.
42 changes: 24 additions & 18 deletions src/maus/edifact.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,24 +86,30 @@ def __str__(self):

def get_edifact_format_version(key_date: datetime.datetime) -> EdifactFormatVersion:
"""
:return: the edifact format version that is valid on the specified key date
"""
if key_date < datetime.datetime(2021, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2104
if key_date < datetime.datetime(2022, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2110
if key_date < datetime.datetime(2023, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2210
if key_date < datetime.datetime(2023, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2304
if key_date < datetime.datetime(2024, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2310
if key_date < datetime.datetime(2024, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2404
if key_date < datetime.datetime(2025, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2410
if key_date < datetime.datetime(2025, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc):
return EdifactFormatVersion.FV2504
Retrieves the appropriate Edifact format version applicable for the given key date.
This function determines the correct Edifact format version by comparing the provided key date
against a series of predefined datetime thresholds. Each threshold corresponds to a specific
version of the Edifact format.
:param key_date: The date for which the Edifact format version is to be determined.
:return: The Edifact format version valid for the specified key date.
"""
format_version_thresholds = [
(datetime.datetime(2021, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2104),
(datetime.datetime(2022, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2110),
(datetime.datetime(2023, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2210),
(datetime.datetime(2023, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2304),
(datetime.datetime(2024, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2310),
(datetime.datetime(2024, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2404),
(datetime.datetime(2025, 3, 31, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2410),
(datetime.datetime(2025, 9, 30, 22, 0, 0, 0, tzinfo=datetime.timezone.utc), EdifactFormatVersion.FV2504),
]

for threshold_date, version in format_version_thresholds:
if key_date < threshold_date:
return version

return EdifactFormatVersion.FV2510


Expand Down

0 comments on commit 60da5f8

Please sign in to comment.