From 8549e22527518cf70be6e4b91aa467af09ed82b4 Mon Sep 17 00:00:00 2001 From: Marc Wrobel Date: Thu, 15 Feb 2024 23:57:17 +0100 Subject: [PATCH] [release_table] Support month_year_date type (#309) Support parsing dates when only the month and the year is provided. Day is always the end of the month. --- src/release_table.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/release_table.py b/src/release_table.py index fb854c04..4b47cd35 100644 --- a/src/release_table.py +++ b/src/release_table.py @@ -32,7 +32,8 @@ METHOD = "release_table" class Field: - SUPPORTED_TYPES = ["date", "string"] + SUPPORTED_TYPES = ["date", "month_year_date", "string"] + DATE_TYPES = ["date", "month_year_date"] DATE_FIELDS = ["releaseDate", "support", "eol", "extendedSupport"] DEFAULT_REGEX = r"^(?P.+)$" DEFAULT_TEMPLATE = "{{value}}" @@ -55,7 +56,7 @@ class Field: self.column_index = columns.index(self.column) self.type = definition.get("type", "string") - if self.name in self.DATE_FIELDS: + if self.name in self.DATE_FIELDS and self.type not in self.DATE_TYPES: self.type = "date" # override type for known date fields elif self.type not in self.SUPPORTED_TYPES: msg = f"unsupported type: {self.type} for field {self.name}" @@ -87,6 +88,8 @@ class Field: str_value = self.template.render(**match.groupdict()) if self.template else raw_value if self.type == "date": return dates.parse_date(str_value) + if self.type == "month_year_date": + return dates.parse_month_year_date(str_value) return str_value if self.name == "releaseCycle":