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

Source Code for Module parsedatetime.pdt_locales.base

  1  from __future__ import unicode_literals 
  2   
  3  locale_keys = set([ 
  4      'MonthOffsets', 'Months', 'WeekdayOffsets', 'Weekdays', 
  5      'dateFormats', 'dateSep', 'dayOffsets', 'dp_order', 
  6      'localeID', 'meridian', 'Modifiers', 're_sources', 're_values', 
  7      'shortMonths', 'shortWeekdays', 'timeFormats', 'timeSep', 'units', 
  8      'uses24', 'usesMeridian', 'numbers', 'decimal_mark', 'small', 
  9      'magnitude', 'ignore']) 
 10   
 11  localeID = None 
 12   
 13  dateSep = ['/', '.'] 
 14  timeSep = [':'] 
 15  meridian = ['AM', 'PM'] 
 16  usesMeridian = True 
 17  uses24 = True 
 18  WeekdayOffsets = {} 
 19  MonthOffsets = {} 
 20   
 21  # always lowercase any lookup values - helper code expects that 
 22  Weekdays = [ 
 23      'monday', 'tuesday', 'wednesday', 'thursday', 
 24      'friday', 'saturday', 'sunday', 
 25  ] 
 26   
 27  shortWeekdays = [ 
 28      'mon', 'tues|tue', 'wed', 'thu', 'fri', 'sat', 'sun', 
 29  ] 
 30   
 31  Months = [ 
 32      'january', 'february', 'march', 'april', 'may', 'june', 'july', 
 33      'august', 'september', 'october', 'november', 'december', 
 34  ] 
 35   
 36  shortMonths = [ 
 37      'jan', 'feb', 'mar', 'apr', 'may', 'jun', 
 38      'jul', 'aug', 'sep', 'oct', 'nov', 'dec', 
 39  ] 
 40   
 41  # use the same formats as ICU by default 
 42  dateFormats = { 
 43      'full': 'EEEE, MMMM d, yyyy', 
 44      'long': 'MMMM d, yyyy', 
 45      'medium': 'MMM d, yyyy', 
 46      'short': 'M/d/yy' 
 47  } 
 48   
 49  timeFormats = { 
 50      'full': 'h:mm:ss a z', 
 51      'long': 'h:mm:ss a z', 
 52      'medium': 'h:mm:ss a', 
 53      'short': 'h:mm a', 
 54  } 
 55   
 56  dp_order = ['m', 'd', 'y'] 
 57   
 58  # Used to parse expressions like "in 5 hours" 
 59  numbers = { 
 60      'zero': 0, 
 61      'one': 1, 
 62      'a': 1, 
 63      'an': 1, 
 64      'two': 2, 
 65      'three': 3, 
 66      'four': 4, 
 67      'five': 5, 
 68      'six': 6, 
 69      'seven': 7, 
 70      'eight': 8, 
 71      'nine': 9, 
 72      'ten': 10, 
 73      'eleven': 11, 
 74      'thirteen': 13, 
 75      'fourteen': 14, 
 76      'fifteen': 15, 
 77      'sixteen': 16, 
 78      'seventeen': 17, 
 79      'eighteen': 18, 
 80      'nineteen': 19, 
 81      'twenty': 20, 
 82  } 
 83   
 84  decimal_mark = '.' 
 85   
 86   
 87  # this will be added to re_values later 
 88  units = { 
 89      'seconds': ['second', 'seconds', 'sec', 'secs', 's'], 
 90      'minutes': ['minute', 'minutes', 'min', 'mins', 'm'], 
 91      'hours': ['hour', 'hours', 'hr', 'h'], 
 92      'days': ['day', 'days', 'dy', 'd'], 
 93      'weeks': ['week', 'weeks', 'wk', 'w'], 
 94      'months': ['month', 'months', 'mth'], 
 95      'years': ['year', 'years', 'yr', 'y'], 
 96  } 
 97   
 98   
 99  # text constants to be used by later regular expressions 
100  re_values = { 
101      'specials': 'in|on|of|at', 
102      'timeseparator': ':', 
103      'rangeseparator': '-', 
104      'daysuffix': 'rd|st|nd|th', 
105      'meridian': r'am|pm|a\.m\.|p\.m\.|a|p', 
106      'qunits': 'h|m|s|d|w|y', 
107      'now': ['now', 'right now'], 
108  } 
109   
110  # Used to adjust the returned date before/after the source 
111  Modifiers = { 
112      'from': 1, 
113      'before': -1, 
114      'after': 1, 
115      'ago': -1, 
116      'prior': -1, 
117      'prev': -1, 
118      'last': -1, 
119      'next': 1, 
120      'previous': -1, 
121      'end of': 0, 
122      'this': 0, 
123      'eod': 1, 
124      'eom': 1, 
125      'eoy': 1, 
126  } 
127   
128  dayOffsets = { 
129      'tomorrow': 1, 
130      'today': 0, 
131      'yesterday': -1, 
132  } 
133   
134  # special day and/or times, i.e. lunch, noon, evening 
135  # each element in the dictionary is a dictionary that is used 
136  # to fill in any value to be replace - the current date/time will 
137  # already have been populated by the method buildSources 
138  re_sources = { 
139      'noon': {'hr': 12, 'mn': 0, 'sec': 0}, 
140      'afternoon': {'hr': 13, 'mn': 0, 'sec': 0}, 
141      'lunch': {'hr': 12, 'mn': 0, 'sec': 0}, 
142      'morning': {'hr': 6, 'mn': 0, 'sec': 0}, 
143      'breakfast': {'hr': 8, 'mn': 0, 'sec': 0}, 
144      'dinner': {'hr': 19, 'mn': 0, 'sec': 0}, 
145      'evening': {'hr': 18, 'mn': 0, 'sec': 0}, 
146      'midnight': {'hr': 0, 'mn': 0, 'sec': 0}, 
147      'night': {'hr': 21, 'mn': 0, 'sec': 0}, 
148      'tonight': {'hr': 21, 'mn': 0, 'sec': 0}, 
149      'eod': {'hr': 17, 'mn': 0, 'sec': 0}, 
150  } 
151   
152  small = { 
153      'zero': 0, 
154      'one': 1, 
155      'a': 1, 
156      'an': 1, 
157      'two': 2, 
158      'three': 3, 
159      'four': 4, 
160      'five': 5, 
161      'six': 6, 
162      'seven': 7, 
163      'eight': 8, 
164      'nine': 9, 
165      'ten': 10, 
166      'eleven': 11, 
167      'twelve': 12, 
168      'thirteen': 13, 
169      'fourteen': 14, 
170      'fifteen': 15, 
171      'sixteen': 16, 
172      'seventeen': 17, 
173      'eighteen': 18, 
174      'nineteen': 19, 
175      'twenty': 20, 
176      'thirty': 30, 
177      'forty': 40, 
178      'fifty': 50, 
179      'sixty': 60, 
180      'seventy': 70, 
181      'eighty': 80, 
182      'ninety': 90 
183  } 
184   
185  magnitude = { 
186      'thousand': 1000, 
187      'million': 1000000, 
188      'billion': 1000000000, 
189      'trillion': 1000000000000, 
190      'quadrillion': 1000000000000000, 
191      'quintillion': 1000000000000000000, 
192      'sextillion': 1000000000000000000000, 
193      'septillion': 1000000000000000000000000, 
194      'octillion': 1000000000000000000000000000, 
195      'nonillion': 1000000000000000000000000000000, 
196      'decillion': 1000000000000000000000000000000000, 
197  } 
198   
199  ignore = ('and', ',') 
200