Bases: View
View for taxonomy records.
This view doesn't have a Data Portal resource that it populates, instead the records
that go through this view are merged into other record types.
Source code in dataimporter/emu/views/taxonomy.py
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | class TaxonomyView(View):
"""
View for taxonomy records.
This view doesn't have a Data Portal resource that it populates, instead the records
that go through this view are merged into other record types.
"""
def is_publishable(self, record: SourceRecord) -> FilterResult:
"""
Filters the given record, determining whether it matches the publishing rules
for taxonomy records.
:param record: the record to filter
:return: a FilterResult object
"""
if not is_web_published(record):
return NO_PUBLISH
return SUCCESS_RESULT
@strip_empty
def transform(self, record: SourceRecord) -> dict:
"""
Converts the record's raw data to a dict which will then be merged into other
records and presented on the Data Portal.
:param record: the record to project
:return: a dict containing the data for this record that should be displayed on
the Data Portal
"""
# cache for perf
get_first = record.get_first_value
return {
'_id': record.id,
# todo: should these be here? Probably not right?
'created': emu_date(
get_first('AdmDateInserted'), get_first('AdmTimeInserted')
),
'modified': emu_date(
get_first('AdmDateModified'), get_first('AdmTimeModified')
),
'scientificName': get_first('ClaScientificNameBuilt'),
'currentScientificName': get_first('ClaCurrentSciNameLocal'),
'taxonRank': get_first('ClaRank'),
'kingdom': get_first('ClaKingdom'),
'phylum': get_first('ClaPhylum'),
'class': get_first('ClaClass'),
'order': get_first('ClaOrder'),
'suborder': get_first('ClaSuborder'),
'superfamily': get_first('ClaSuperfamily'),
'family': get_first('ClaFamily'),
'subfamily': get_first('ClaSubfamily'),
'genus': get_first('ClaGenus'),
'subgenus': get_first('ClaSubgenus'),
'specificEpithet': get_first('ClaSpecies'),
'infraspecificEpithet': get_first('ClaSubspecies'),
}
|
is_publishable(record)
Filters the given record, determining whether it matches the publishing rules
for taxonomy records.
Parameters:
Returns:
Source code in dataimporter/emu/views/taxonomy.py
14
15
16
17
18
19
20
21
22
23
24
25 | def is_publishable(self, record: SourceRecord) -> FilterResult:
"""
Filters the given record, determining whether it matches the publishing rules
for taxonomy records.
:param record: the record to filter
:return: a FilterResult object
"""
if not is_web_published(record):
return NO_PUBLISH
return SUCCESS_RESULT
|
Converts the record's raw data to a dict which will then be merged into other
records and presented on the Data Portal.
Parameters:
Returns:
| Type |
Description |
dict
|
a dict containing the data for this record that should be displayed on the Data Portal
|
Source code in dataimporter/emu/views/taxonomy.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | @strip_empty
def transform(self, record: SourceRecord) -> dict:
"""
Converts the record's raw data to a dict which will then be merged into other
records and presented on the Data Portal.
:param record: the record to project
:return: a dict containing the data for this record that should be displayed on
the Data Portal
"""
# cache for perf
get_first = record.get_first_value
return {
'_id': record.id,
# todo: should these be here? Probably not right?
'created': emu_date(
get_first('AdmDateInserted'), get_first('AdmTimeInserted')
),
'modified': emu_date(
get_first('AdmDateModified'), get_first('AdmTimeModified')
),
'scientificName': get_first('ClaScientificNameBuilt'),
'currentScientificName': get_first('ClaCurrentSciNameLocal'),
'taxonRank': get_first('ClaRank'),
'kingdom': get_first('ClaKingdom'),
'phylum': get_first('ClaPhylum'),
'class': get_first('ClaClass'),
'order': get_first('ClaOrder'),
'suborder': get_first('ClaSuborder'),
'superfamily': get_first('ClaSuperfamily'),
'family': get_first('ClaFamily'),
'subfamily': get_first('ClaSubfamily'),
'genus': get_first('ClaGenus'),
'subgenus': get_first('ClaSubgenus'),
'specificEpithet': get_first('ClaSpecies'),
'infraspecificEpithet': get_first('ClaSubspecies'),
}
|