Package parsedatetime :: Package pdt_locales :: Module fr_FR
[hide private]
[frames] | no frames]

Source Code for Module parsedatetime.pdt_locales.fr_FR

  1  # -*- coding: utf-8 -*- 
  2  from __future__ import unicode_literals 
  3  from .base import *  # noqa 
  4   
  5  # don't use an unicode string 
  6  localeID = 'fr_FR' 
  7  dateSep = [r'\/'] 
  8  timeSep = [':', 'h'] 
  9  meridian = ['du matin', 'du soir'] 
 10  usesMeridian = True 
 11  uses24 = True 
 12  WeekdayOffsets = {} 
 13  MonthOffsets = {} 
 14   
 15  # always lowercase any lookup values - helper code expects that 
 16  Weekdays = [ 
 17      'lundi', 'mardi', 'mercredi', 'jeudi', 
 18      'vendredi', 'samedi', 'dimanche', 
 19  ] 
 20   
 21  shortWeekdays = [ 
 22      'lun', 'mar', 'mer', 'jeu', 'ven', 'sam', 'dim', 
 23  ] 
 24   
 25  Months = [ 
 26      'janvier', 'février|fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 
 27      'août|aout', 'septembre', 'octobre', 'novembre', 'décembre|decembre', 
 28  ] 
 29   
 30  # We do not list 'mar' as a short name for 'mars' as it conflicts with 
 31  # the 'mar' of 'mardi' 
 32  shortMonths = [ 
 33      'jan', 'fév|fev', 'mars', 'avr', 'mai', 'jui', 
 34      'juil', 'aoû|aou', 'sep', 'oct', 'nov', 'déc|dec', 
 35  ] 
 36   
 37  # use the same formats as ICU by default 
 38  dateFormats = { 
 39      'full': 'EEEE d MMMM yyyy', 
 40      'long': 'd MMMM yyyy', 
 41      'medium': 'd MMM yyyy', 
 42      'short': 'd/M/yy' 
 43  } 
 44   
 45  timeFormats = { 
 46      'full': 'h:mm:ss a z', 
 47      'long': 'h:mm:ss a z', 
 48      'medium': 'h:mm:ss a', 
 49      'short': 'h:mm a', 
 50  } 
 51   
 52  dp_order = ['d', 'm', 'y'] 
 53   
 54  # Used to parse expressions like "in 5 hours" 
 55  numbers = { 
 56      'zéro': 0, 
 57      'zero': 0, 
 58      'un': 1, 
 59      'une': 1, 
 60      'deux': 2, 
 61      'trois': 3, 
 62      'quatre': 4, 
 63      'cinq': 5, 
 64      'six': 6, 
 65      'sept': 7, 
 66      'huit': 8, 
 67      'neuf': 9, 
 68      'dix': 10, 
 69      'onze': 11, 
 70      'douze': 12, 
 71      'treize': 13, 
 72      'quatorze': 14, 
 73      'quinze': 15, 
 74      'seize': 16, 
 75      'dix-sept': 17, 
 76      'dix sept': 17, 
 77      'dix-huit': 18, 
 78      'dix huit': 18, 
 79      'dix-neuf': 19, 
 80      'dix neuf': 19, 
 81      'vingt': 20, 
 82      'vingt-et-un': 21, 
 83      'vingt et un': 21, 
 84      'vingt-deux': 22, 
 85      'vingt deux': 22, 
 86      'vingt-trois': 23, 
 87      'vingt trois': 23, 
 88      'vingt-quatre': 24, 
 89      'vingt quatre': 24, 
 90  } 
 91   
 92  decimal_mark = ',' 
 93   
 94  # this will be added to re_values later 
 95  units = { 
 96      'seconds': ['seconde', 'secondes', 'sec', 's'], 
 97      'minutes': ['minute', 'minutes', 'min', 'mn'], 
 98      'hours': ['heure', 'heures', 'h'], 
 99      'days': ['jour', 'jours', 'journée', 'journee', 'journées', 'journees', 'j'], 
100      'weeks': ['semaine', 'semaines', 'sem'], 
101      'months': ['mois', 'm'], 
102      'years': ['année', 'annee', 'an', 'années', 'annees', 'ans'], 
103  } 
104   
105  # text constants to be used by later regular expressions 
106  re_values = { 
107      'specials': r'à|a|le|la|du|de', 
108      'timeseparator': r'(?:\:|h|\s*heures?\s*)', 
109      'rangeseparator': r'-', 
110      'daysuffix': r'ième|ieme|ème|eme|ère|ere|nde', 
111      'meridian': None, 
112      'qunits': r'h|m|s|j|sem|a', 
113      'now': [r'maintenant', r'tout de suite', r'immédiatement', r'immediatement', r'à l\'instant', r'a l\'instant'], 
114  } 
115   
116  # Used to adjust the returned date before/after the source 
117  Modifiers = { 
118      'avant': -1, 
119      'il y a': -1, 
120      'plus tot': -1, 
121      'plus tôt': -1, 
122      'y a': -1, 
123      'antérieur': -1, 
124      'anterieur': -1, 
125      'dernier': -1, 
126      'dernière': -1, 
127      'derniere': -1, 
128      'précédent': -1, 
129      'précedent': -1, 
130      'precédent': -1, 
131      'precedent': -1, 
132      'fin de': 0, 
133      'fin du': 0, 
134      'fin de la': 0, 
135      'fin des': 0, 
136      'fin d\'': 0, 
137      'ce': 0, 
138      'cette': 0, 
139      'depuis': 1, 
140      'dans': 1, 
141      'à partir': 1, 
142      'a partir': 1, 
143      'après': 1, 
144      'apres': 1, 
145      'lendemain': 1, 
146      'prochain': 1, 
147      'prochaine': 1, 
148      'suivant': 1, 
149      'suivante': 1, 
150      'plus tard': 1 
151  } 
152   
153  dayOffsets = { 
154      'après-demain': 2, 
155      'apres-demain': 2, 
156      'après demain': 2, 
157      'apres demain': 2, 
158      'demain': 1, 
159      'aujourd\'hui': 0, 
160      'hier': -1, 
161      'avant-hier': -2, 
162      'avant hier': -2 
163  } 
164   
165  # special day and/or times, i.e. lunch, noon, evening 
166  # each element in the dictionary is a dictionary that is used 
167  # to fill in any value to be replace - the current date/time will 
168  # already have been populated by the method buildSources 
169  re_sources = { 
170      'après-midi': {'hr': 13, 'mn': 0, 'sec': 0}, 
171      'apres-midi': {'hr': 13, 'mn': 0, 'sec': 0}, 
172      'après midi': {'hr': 13, 'mn': 0, 'sec': 0}, 
173      'apres midi': {'hr': 13, 'mn': 0, 'sec': 0}, 
174      'midi': {'hr': 12, 'mn': 0, 'sec': 0}, 
175      'déjeuner': {'hr': 12, 'mn': 0, 'sec': 0}, 
176      'dejeuner': {'hr': 12, 'mn': 0, 'sec': 0}, 
177      'matin': {'hr': 6, 'mn': 0, 'sec': 0}, 
178      'petit-déjeuner': {'hr': 8, 'mn': 0, 'sec': 0}, 
179      'petit-dejeuner': {'hr': 8, 'mn': 0, 'sec': 0}, 
180      'petit déjeuner': {'hr': 8, 'mn': 0, 'sec': 0}, 
181      'petit dejeuner': {'hr': 8, 'mn': 0, 'sec': 0}, 
182      'diner': {'hr': 19, 'mn': 0, 'sec': 0}, 
183      'dîner': {'hr': 19, 'mn': 0, 'sec': 0}, 
184      'soir': {'hr': 18, 'mn': 0, 'sec': 0}, 
185      'soirée': {'hr': 18, 'mn': 0, 'sec': 0}, 
186      'soiree': {'hr': 18, 'mn': 0, 'sec': 0}, 
187      'minuit': {'hr': 0, 'mn': 0, 'sec': 0}, 
188      'nuit': {'hr': 21, 'mn': 0, 'sec': 0}, 
189  } 
190   
191  small = { 
192      'zéro': 0, 
193      'zero': 0, 
194      'un': 1, 
195      'une': 1, 
196      'deux': 2, 
197      'trois': 3, 
198      'quatre': 4, 
199      'cinq': 5, 
200      'six': 6, 
201      'sept': 7, 
202      'huit': 8, 
203      'neuf': 9, 
204      'dix': 10, 
205      'onze': 11, 
206      'douze': 12, 
207      'treize': 13, 
208      'quatorze': 14, 
209      'quinze': 15, 
210      'seize': 16, 
211      'dix-sept': 17, 
212      'dix sept': 17, 
213      'dix-huit': 18, 
214      'dix huit': 18, 
215      'dix-neuf': 19, 
216      'dix neuf': 19, 
217      'vingt': 20, 
218      'vingt-et-un': 21, 
219      'vingt et un': 21, 
220      'trente': 30, 
221      'quarante': 40, 
222      'cinquante': 50, 
223      'soixante': 60, 
224      'soixante-dix': 70, 
225      'soixante dix': 70, 
226      'quatre-vingt': 80, 
227      'quatre vingt': 80, 
228      'quatre-vingt-dix': 90, 
229      'quatre vingt dix': 90 
230  } 
231   
232  magnitude = { 
233      'mille': 1000, 
234      'millier': 1000, 
235      'million': 1000000, 
236      'milliard': 1000000000, 
237      'trillion': 1000000000000, 
238      'quadrillion': 1000000000000000, 
239      'quintillion': 1000000000000000000, 
240      'sextillion': 1000000000000000000000, 
241      'septillion': 1000000000000000000000000, 
242      'octillion': 1000000000000000000000000000, 
243      'nonillion': 1000000000000000000000000000000, 
244      'décillion': 1000000000000000000000000000000000, 
245      'decillion': 1000000000000000000000000000000000, 
246  } 
247   
248  ignore = ('et', ',') 
249