Skip to content
Snippets Groups Projects
Commit 5058e42f authored by NolanB's avatar NolanB
Browse files

Add a list_corpus_entities() method to entity.py

parent 8e8855e9
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ from peewee import IntegrityError
from arkindex_worker import logger
from arkindex_worker.cache import CachedElement, CachedEntity, CachedTranscriptionEntity
from arkindex_worker.models import Element, Transcription
from arkindex_worker.models import Corpus, Element, Transcription
class EntityType(Enum):
......@@ -196,3 +196,37 @@ class EntityMixin(object):
return self.api_client.paginate(
"ListTranscriptionEntities", id=transcription.id, **query_params
)
def list_corpus_entities(
self,
corpus: Corpus,
name: str,
parent: str,
):
"""
List all entities in a corpus
This method does not support cache
:param corpus Corpus: The corpus that contains the entities to list.
:param name str: uuid for filter entities by part of their name (case-insensitive)
:param parent str: uuid for restrict entities to those linked to all transcriptions of an element and all its descendants. Note that links to metadata are ignored.
"""
query_params = {}
assert corpus and isinstance(
corpus, Corpus
), "corpus shouldn't be null and should be a Corpus"
assert name and isinstance(
name, str
), "name shouldn't be null and should be of type str"
assert parent and isinstance(
parent, str
), "parent shouldn't be null and should be of type str"
query_params["name"] = name
query_params["parent"] = parent
return self.api_client.paginate(
"ListCorpusEntities", id=corpus.id, **query_params
)
......@@ -11,7 +11,7 @@ from arkindex_worker.cache import (
CachedTranscription,
CachedTranscriptionEntity,
)
from arkindex_worker.models import Element, Transcription
from arkindex_worker.models import Corpus, Element, Transcription
from arkindex_worker.worker import EntityType
from arkindex_worker.worker.transcription import TextOrientation
......@@ -654,3 +654,22 @@ def test_list_transcription_entities(fake_dummy_worker):
assert len(fake_dummy_worker.api_client.history) == 1
assert len(fake_dummy_worker.api_client.responses) == 0
def test_list_corpus_entities(fake_dummy_worker):
corpus = Corpus({"id": "fake_corpus_id"})
name = "fake_name"
parent = "fake_parent"
fake_dummy_worker.api_client.add_response(
"ListCorpusEntities",
id=corpus.id,
name=name,
parent=parent,
response={"id": "fake_entity_id"},
)
assert fake_dummy_worker.list_corpus_entities(corpus, name, parent) == {
"id": "fake_entity_id"
}
assert len(fake_dummy_worker.api_client.history) == 1
assert len(fake_dummy_worker.api_client.responses) == 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment