Total Complexity | 5 |
Total Lines | 33 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | """ |
||
2 | Tool to export reified mandos triples. |
||
3 | """ |
||
4 | from typing import Generator, Sequence |
||
5 | |||
6 | from mandos.model.hits import AbstractHit, Triple |
||
7 | |||
8 | |||
9 | def _camelcase(s: str): |
||
|
|||
10 | return "".join(w.title() if i > 0 else w for i, w in enumerate(s.split("_"))) |
||
11 | |||
12 | |||
13 | class Reifier: |
||
14 | def reify(self, hits: Sequence[AbstractHit]) -> Generator[Triple, None, None]: |
||
15 | for hit in hits: |
||
16 | yield from self._reify_one(hit) |
||
17 | |||
18 | def _reify_one(self, hit: AbstractHit) -> Sequence[Triple]: |
||
19 | uid = hit.universal_id |
||
20 | state = Triple(uid, "rdf:type", "rdf:statement") |
||
21 | pred = Triple(uid, "rdf:predicate", hit.predicate) |
||
22 | obj = Triple(uid, "rdf:object", hit.object_name) |
||
23 | exclude = {"origin_inchikey", "predicate"} |
||
24 | others = [ |
||
25 | Triple(uid, "mandos:" + _camelcase(field), getattr(hit, field)) |
||
26 | for field in hit.fields() |
||
27 | if field not in exclude |
||
28 | ] |
||
29 | return [state, pred, obj, *others] |
||
30 | |||
31 | |||
32 | __all__ = ["Reifier"] |
||
33 |
This check looks for invalid names for a range of different identifiers.
You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.
If your project includes a Pylint configuration file, the settings contained in that file take precedence.
To find out more about Pylint, please refer to their site.