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