| 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.