Passed
Push — main ( a07aa0...748456 )
by Douglas
01:55
created

mandos.search.pubchem.drugbank_ddi_search   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A DrugbankDdiSearch.find() 0 18 1
A DrugbankDdiSearch.data_source() 0 3 1
1
from dataclasses import dataclass
0 ignored issues
show
introduced by
Missing module docstring
Loading history...
2
from typing import Sequence
3
4
from mandos.search.pubchem import PubchemHit, PubchemSearch
5
6
7
@dataclass(frozen=True, order=True, repr=True)
0 ignored issues
show
Documentation introduced by
Empty class docstring
Loading history...
8
class DrugbankDdiHit(PubchemHit):
9
    """"""
10
11
    description: str
12
13
14
class DrugbankDdiSearch(PubchemSearch[DrugbankDdiHit]):
0 ignored issues
show
Documentation introduced by
Empty class docstring
Loading history...
15
    """"""
16
17
    @property
18
    def data_source(self) -> str:
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
19
        return "DrugBank"
20
21
    def find(self, inchikey: str) -> Sequence[DrugbankDdiHit]:
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
22
        data = self.api.fetch_data(inchikey)
23
        return [
24
            DrugbankDdiHit(
25
                record_id=None,
26
                origin_inchikey=inchikey,
27
                matched_inchikey=data.names_and_identifiers.inchikey,
28
                compound_id=str(data.cid),
29
                compound_name=data.name,
30
                predicate="ddi",
31
                object_id=dd.drug_drugbank_id,
32
                object_name=dd.drug_drugbank_id,
33
                search_key=self.key,
34
                search_class=self.search_class,
35
                data_source=self.data_source,
36
                description=dd.description,
37
            )
38
            for dd in data.biomolecular_interactions_and_pathways.drugbank_ddis
39
        ]
40
41
42
__all__ = ["DrugbankDdiHit", "DrugbankDdiSearch"]
43