Mercurial > hg > horiscopes
annotate V1/temp.py @ 3:c2898c2a3cc6
develop csv data parse - need to test
author | DaveM |
---|---|
date | Sun, 10 Dec 2017 17:25:53 +0000 |
parents | |
children |
rev | line source |
---|---|
DaveM@3 | 1 def parsePartnerDOB(dob): |
DaveM@3 | 2 dob_ = dob.split('/') |
DaveM@3 | 3 if(len(dob_) != 3): |
DaveM@3 | 4 # deal with no /'s |
DaveM@3 | 5 try: |
DaveM@3 | 6 d = int(dob_[0]) |
DaveM@3 | 7 m = int(dob_[1]) |
DaveM@3 | 8 y = int(dob_[2]) |
DaveM@3 | 9 if y < 100: |
DaveM@3 | 10 y = y + 1900 |
DaveM@3 | 11 if(d > 31 or m > 12 or y > 2017 or y < 1900): |
DaveM@3 | 12 print 'error with DOB '+d+'/'+m+'/'+y |
DaveM@3 | 13 except TypeError: |
DaveM@3 | 14 return None |
DaveM@3 | 15 return (d,m,y) |
DaveM@3 | 16 |
DaveM@3 | 17 def monthStringToNum(s): |
DaveM@3 | 18 m = {'jan':1,'feb':2, |
DaveM@3 | 19 'mar':3,'apr':4,'may':5, |
DaveM@3 | 20 'jun':6,'jul':7,'aug':8, |
DaveM@3 | 21 'sep':9,'oct':10,'nov':11, |
DaveM@3 | 22 'dec':12} |
DaveM@3 | 23 s_ = string.strip()[:3].lower() |
DaveM@3 | 24 try: |
DaveM@3 | 25 out = m[s] |
DaveM@3 | 26 return out |
DaveM@3 | 27 except: |
DaveM@3 | 28 raise ValueError('Not a month') |
DaveM@3 | 29 |
DaveM@3 | 30 def parseDOB(d,m,y): |
DaveM@3 | 31 d = int(d.strip()) |
DaveM@3 | 32 y = int(y.strip()) |
DaveM@3 | 33 try: |
DaveM@3 | 34 m = monthStringToNum(m.strip()) |
DaveM@3 | 35 except ValueError: |
DaveM@3 | 36 m = int(m.strip()) |
DaveM@3 | 37 if(y < 100): |
DaveM@3 | 38 y = y + 1900 |
DaveM@3 | 39 return (d,m,y) |
DaveM@3 | 40 |
DaveM@3 | 41 def parseTOB(T): |
DaveM@3 | 42 timeFlat = None |
DaveM@3 | 43 try: |
DaveM@3 | 44 T = T.lower().strip() |
DaveM@3 | 45 if 'am' in T: |
DaveM@3 | 46 timeFlag = 0 |
DaveM@3 | 47 T.replace('am','') |
DaveM@3 | 48 if 'pm' in T: |
DaveM@3 | 49 timeFlag = 1 |
DaveM@3 | 50 T.replace('pm','') |
DaveM@3 | 51 t.strip() |
DaveM@3 | 52 if ':' in T: |
DaveM@3 | 53 T.split(':') |
DaveM@3 | 54 H = int(T[0]) |
DaveM@3 | 55 M = int(T[1]) |
DaveM@3 | 56 elif '.' in T: |
DaveM@3 | 57 T.split('.') |
DaveM@3 | 58 H = int(T[0]) |
DaveM@3 | 59 M = int(T[1]) |
DaveM@3 | 60 else: |
DaveM@3 | 61 int(T) |
DaveM@3 | 62 if T < 24 : |
DaveM@3 | 63 H = T |
DaveM@3 | 64 M = 0 |
DaveM@3 | 65 elif T > 100: |
DaveM@3 | 66 H = T/100 |
DaveM@3 | 67 M = T%100 |
DaveM@3 | 68 if timeFlag is not None: |
DaveM@3 | 69 if timeFlag == 0: |
DaveM@3 | 70 H = H%12 |
DaveM@3 | 71 else: |
DaveM@3 | 72 H = H%12 + 12 |
DaveM@3 | 73 except ValueError: |
DaveM@3 | 74 H = 12 |
DaveM@3 | 75 M = 00 |
DaveM@3 | 76 return (H,M) |
DaveM@3 | 77 |
DaveM@3 | 78 def regulateData(dataDict): |
DaveM@3 | 79 p_DOBQ = "What is your partner's date of birth? Please use the format DD/MM/YYYY (for example, 29/03/1981)." |
DaveM@3 | 80 p_TOBQ = "At what exact time were your partner born? Please use the format HHMM (for example, 2204)." |
DaveM@3 | 81 DOB_DQ = "Which day (numeric) have you been born?" |
DaveM@3 | 82 DOB_MQ = "Which month have you been born?" |
DaveM@3 | 83 DOB_YQ = "Year Of Birth" |
DaveM@3 | 84 TOB_Q = "At what exact time were you born? Please use the format HHMM (for example, 2204)." |
DaveM@3 | 85 dataDict['DOB'] = parseDOB(dataDict[DOB_DQ],dataDict[DOB_MQ],dataDict[DOB_YQ]) |
DaveM@3 | 86 dataDict['TOB'] = parseTOB(dataDict[TOB_Q]) |
DaveM@3 | 87 dataDict['pDOB'] = parsePartnerDOB(dataDict[p_DOBQ]) |
DaveM@3 | 88 dataDict['pTOB'] = parseTOB(dataDict[p_TOBQ]) |
DaveM@3 | 89 |
DaveM@3 | 90 return dataDict |