Project

General

Profile

« Previous | Next » 

Revision 324

xml_func.py: Changed _date func to try parsing date field, rather than year field, as a decimal. Changed SALVIAS mappings to use new _date func syntax. Fixes SALVIAS plots data syntax error for decimal years.

View differences:

lib/xml_func.py
37 37
    items = dict(items)
38 38
    if 'date' in items:
39 39
        str_ = items['date']
40
        try: import dateutil.parser
41
        except ImportError: return str_
42
        try: date = dateutil.parser.parse(str_)
43
        except ValueError, e: raise SyntaxException(e)
40
        try: year = float(str_)
41
        except ValueError:
42
            try: import dateutil.parser
43
            except ImportError: return str_
44
            try: date = dateutil.parser.parse(str_)
45
            except ValueError, e: raise SyntaxException(e)
46
        else: date = (datetime.date(int(year), 1, 1) +
47
            datetime.timedelta(round((year % 1.)*365)))
44 48
    else:
45 49
        year = items['year']
46 50
        month = items.get('month', '1')
47 51
        day = items.get('day', '1')
48 52
        try:
49
            year = float(year)
53
            year = int(year)
50 54
            month = int(month)
51 55
            day = int(day)
52 56
        except ValueError, e: raise SyntaxException(e)
53
        date = (datetime.date(int(year), month, day) +
54
            datetime.timedelta(round((year % 1.)*365)))
57
        date = datetime.date(year, month, day)
55 58
    return date.strftime('%Y-%m-%d')
56 59

  
57 60
def name(items):
mappings/SALVIAS-VegX.plots.csv
39 39
"plot_methodology","/simpleUserdefined[name=plotMethodology]/value",
40 40
"plot_area_ha","/*UniqueIdentifierID->/*s/plot/area","Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed"
41 41
"recensused",,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a  plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values"
42
"date_start","/obsStartDate/_date/year",
43
"date_finish","/obsEndDate/_date/year",
42
"date_start","/obsStartDate/_date/date",
43
"date_finish","/obsEndDate/_date/date",
mappings/for_review/SALVIAS-VegX.plots.csv
39 39
plot_methodology,/simpleUserdefined[name=plotMethodology]/value,
40 40
plot_area_ha,//plot/area,"Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed"
41 41
recensused,,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a  plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values"
42
date_start,/obsStartDate/_date/year,
43
date_finish,/obsEndDate/_date/year,
42
date_start,/obsStartDate/_date/date,
43
date_finish,/obsEndDate/_date/date,
mappings/for_review/SALVIAS-VegBank.plots.csv
18 18
precip_mm,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=precipitationMm]]/definedValue",
19 19
temp_c,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=temperatureC]]/definedValue",
20 20
plot_methodology,/methodNarrative,
21
date_start,/obsStartDate/_date/year,
21
date_finish,/obsEndDate/_date/date,
22
date_start,/obsStartDate/_date/date,
22 23
soil_acidity,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]]/definedValue",
23 24
soil_base,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]]/definedValue",
24 25
soil_Ca,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]]/definedValue",
mappings/for_review/SALVIAS-VegBIEN.plots.csv
18 18
precip_mm,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=precipitationMm]]/definedValue",
19 19
temp_c,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=temperatureC]]/definedValue",
20 20
plot_methodology,/methodNarrative,
21
date_start,/obsStartDate/_date/year,
21
date_finish,/obsEndDate/_date/date,
22
date_start,/obsStartDate/_date/date,
22 23
soil_acidity,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]]/definedValue",
23 24
soil_base,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]]/definedValue",
24 25
soil_Ca,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]]/definedValue",
mappings/SALVIAS-VegBank.plots.csv
18 18
precip_mm,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=precipitationMm]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
19 19
temp_c,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=temperatureC]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
20 20
plot_methodology,/methodNarrative,
21
date_start,/obsStartDate/_date/year,
21
date_finish,/obsEndDate/_date/date,
22
date_start,/obsStartDate/_date/date,
22 23
soil_acidity,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
23 24
soil_base,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
24 25
soil_Ca,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
mappings/SALVIAS-VegBIEN.plots.csv
18 18
precip_mm,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=precipitationMm]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
19 19
temp_c,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=temperatureC]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
20 20
plot_methodology,/methodNarrative,
21
date_start,/obsStartDate/_date/year,
21
date_finish,/obsEndDate/_date/date,
22
date_start,/obsStartDate/_date/date,
22 23
soil_acidity,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
23 24
soil_base,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",
24 25
soil_Ca,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue",

Also available in: Unified diff