From: olivier Date: Thu, 11 Jun 2009 17:13:11 +0000 (+0000) Subject: migration: use some heuristics to make a difference between month/year and day/month X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=a8658f4c108f40ebe8c0e852850d196208c36685;p=telemeta-data.git migration: use some heuristics to make a difference between month/year and day/month git-svn-id: http://svn.parisson.org/svn/crem@102 3bf09e05-f825-4182-b9bc-eedd7160adf0 --- diff --git a/trunk/import/migration/tasks/dates.py b/trunk/import/migration/tasks/dates.py index 61ff837..6b35f5e 100644 --- a/trunk/import/migration/tasks/dates.py +++ b/trunk/import/migration/tasks/dates.py @@ -80,9 +80,9 @@ class CollectionsYearConverter(DataMigrator): match = re.match(r'^([0-9]{2,4})[;/,>?-]?$', year_str) if match: - from_year = self.parse_year(int(match.group(1))) + from_year = self.parse_year(match.group(1)) if match.lastindex > 1: - to_year = self.parse_year(int(match.group(2))) + to_year = self.parse_year(match.group(2)) else: to_year = from_year @@ -130,10 +130,18 @@ class ItemsDateConverter(DataMigrator): def parse_date_data(self, data, default_year, month_names): + if data.has_key('month_or_year') and int(data['month_or_year']): + if int(data['month_or_year']) <= 12 and default_year: + data['month'] = data['month_or_year'] + data['day'] = data['day_or_month'] + else: + data['year'] = data['month_or_year'] + data['month'] = data['day_or_month'] + if data.has_key('year') and int(data['year']): - year = self.parse_year(int(data['year'])) + year = self.parse_year(data['year']) if data.has_key('until_year'): - until_year = self.parse_year(int(data['until_year'])) + until_year = self.parse_year(data['until_year']) else: until_year = year else: @@ -214,8 +222,10 @@ class ItemsDateConverter(DataMigrator): # from and until year ur'^ *(?P[0-9]{4}) *[/,-] *(?P[0-9]{2,4}) *$', + # day and month or month and year + ur'^ *(?P[0-9]{1,2}) *[_./-] *(?P[0-9]{2,4}) *$', + # month and year - ur'^ *(?P[0-9]{1,2}) *[_./-] *(?P[0-9]{2,4}) *$', ur'^ *(?P' + namepattern + ') *\.? *(?P[0-9]{2,4}) *-' ' *(?P' + namepattern + ') *\.? *(?P[0-9]{2,4}) *$', ur'^ *(début|mi|fin|) *(?P' + namepattern + ') *(?P[0-9]{2,4})[ ?]*$', @@ -262,7 +272,7 @@ class ItemsDateConverter(DataMigrator): old_code = row[0] year_str = row[1] - default_year = self.parse_year(int(year_str)) + default_year = self.parse_year(year_str) date_str = row[2] data = {}