Coverage for apis_core/apis_entities/utils.py: 43%

21 statements  

« prev     ^ index     » next       coverage.py v7.5.3, created at 2025-09-17 09:41 +0000

1import functools 

2from pathlib import Path 

3 

4from django.apps import apps 

5from django.contrib.contenttypes.models import ContentType 

6 

7from apis_core.apis_entities.models import AbstractEntity 

8 

9 

10def get_entity_classes(): 

11 return list(filter(lambda x: issubclass(x, AbstractEntity), apps.get_models())) 

12 

13 

14def get_entity_content_types(): 

15 return [ContentType.objects.get_for_model(model) for model in get_entity_classes()] 

16 

17 

18@functools.lru_cache 

19def get_feature_codes(): 

20 try: 

21 featurecode_list = [(None, "---")] 

22 self = Path(__file__) 

23 featurecodefile = self.parent / "featureCodes_en.txt" 

24 featurecodes = featurecodefile.read_text() 

25 featurecodes = [ 

26 line.split("\t") 

27 for line in featurecodes.split("\n") 

28 if len(line.split("\t")) == 3 

29 ] 

30 featurecode_list.extend([(el[0], el[0] + ": " + el[1]) for el in featurecodes]) 

31 except Exception: 

32 featurecode_list = [(None, "None: could not read list of feature codes")] 

33 return featurecode_list