Passed
Push — main ( 2e1b6b...3a0c28 )
by Douglas
02:06
created

mandos.search.hmdb.tissue_concentration_search   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A TissueConcentrationSearch.find() 0 22 2
1
from typing import Sequence
0 ignored issues
show
introduced by
Missing module docstring
Loading history...
2
3
from mandos.model.apis.hmdb_api import HmdbApi, HmdbData
0 ignored issues
show
Unused Code introduced by
Unused HmdbApi imported from mandos.model.apis.hmdb_api
Loading history...
4
from mandos.model.concrete_hits import TissueConcentrationHit
5
from mandos.search.hmdb import HmdbSearch
6
7
8
class TissueConcentrationSearch(HmdbSearch[TissueConcentrationHit]):
0 ignored issues
show
Documentation introduced by
Empty class docstring
Loading history...
9
    """ """
10
11
    def find(self, inchikey: str) -> Sequence[TissueConcentrationHit]:
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
12
        data: HmdbData = self.api.fetch_data(inchikey)
13
        dds = [*data.normal_concentrations, *data.abnormal_concentrations]
14
        dds = [dd for dd in dds if dd.micromolar is not None]
15
        return [
16
            self._create_hit(
17
                data_source=self._format_source(),
18
                c_id=str(data.cid),
19
                c_origin=inchikey,
20
                c_matched=data.inchikey,
21
                c_name=data.inchikey,
22
                predicate=self._format_predicate(
23
                    sexes=dd.sexes.name,
24
                    ages=dd.ages.name,
25
                    normality="normal" if dd.condition is None else "abnormal",
26
                    condition=dd.condition,
27
                ),
28
                object_id=dd.specimen,
29
                object_name=dd.specimen,
30
                micromolar=dd.micromolar,
31
            )
32
            for dd in dds
33
        ]
34
35
36
__all__ = ["TissueConcentrationSearch"]
37