Bases: BaseTagService['Collection']
Source code in django_spire/contrib/constructor/constructor.py
| def __init__(self, obj: Any = None):
self._obj_type_name: str = str(
next(iter(self.__class__.__annotations__.values()))
).split('.')[-1]
if obj is None:
return
self._obj_mro_type_names = [cls.__name__ for cls in obj.__class__.__mro__]
if self._obj_type_name not in self._obj_mro_type_names:
message = f'{self.__class__.__name__} was instantiated with obj type "{obj.__class__.__name__}" and failed as it was expecting "{self._obj_type_name}".'
raise ConstructorError(message)
self._obj_type: type[TypeAny] = obj.__class__
if self._obj_type is None or self._obj_type is ...:
message = f'{self.__class__.__name__} top class attribute must have an annotated type.'
raise ConstructorError(message)
self.obj: TypeAny = obj
if ABC not in self.__class__.__bases__:
if not self._obj_is_valid:
message = f'{self._obj_type_name} failed to validate on {self.__class__.__name__}'
raise ConstructorError(message)
self.__post_init__()
|
Source code in django_spire/knowledge/collection/services/tag_service.py
| def process_and_set_tags(self):
collection_prompt = Prompt()
collection_prompt.sub_heading(self.obj.name)
collection_prompt.text(self.obj.description)
tag_set = TagSetBot().process(
content=collection_prompt
)
self.set_tags_from_tag_set(
tag_set=tag_set,
)
|
Source code in django_spire/knowledge/collection/services/tag_service.py
| def get_aggregated_tag_set(self) -> set[str]:
tag_set = self.obj.tag_set
for collection in self.obj.children.active():
tag_set.update(collection.services.tag.get_aggregated_tag_set())
for entry in self.obj.entries.active():
tag_set.update(entry.tag_set)
return tag_set
|
Source code in django_spire/knowledge/collection/services/tag_service.py
| def get_score_percentage_from_aggregated_tag_set_weighted(self, tag_set: set[str]) -> float:
return get_score_percentage_from_tag_set_weighted(
tag_set_actual=tag_set,
tag_set_reference=self.get_aggregated_tag_set()
)
|
Source code in django_spire/knowledge/collection/services/tag_service.py
| def get_simplified_aggregated_tag_set(self) -> set[str]:
return simplify_tag_set(self.get_aggregated_tag_set())
|
Source code in django_spire/knowledge/collection/services/tag_service.py
| def get_simplified_and_weighted_aggregated_tag_set(self) -> dict[str, int]:
return simplify_and_weight_tag_set_to_dict(self.get_aggregated_tag_set())
|