Document Instances - Labels¶
DocumentInstanceLabels(perfdb)
¶
Class used for handling document labels. Can be accessed via perfdb.documents.instances.labels.
Parameters:
Source code in echo_postgres/perfdb_root.py
def __init__(self, perfdb: e_pg.PerfDB) -> None:
"""Base class that all subclasses should inherit from.
Parameters
----------
perfdb : PerfDB
Top level object carrying all functionality and the connection handler.
"""
self._perfdb: e_pg.PerfDB = perfdb
delete(document_id, labels=None)
¶
Deletes labels for a given document.
Parameters:
-
(document_id¶int) –Document id
-
(labels¶list[str] | None, default:None) –List of labels to be deleted. If None all will be deleted. By default, None.
Source code in echo_postgres/document_instance_labels.py
@validate_call
def delete(self, document_id: int, labels: list[str] | None = None) -> None:
"""Deletes labels for a given document.
Parameters
----------
document_id : int
Document id
labels : list[str] | None, optional
List of labels to be deleted. If None all will be deleted. By default, None.
"""
query = sql.SQL("SELECT * FROM fn_delete_document_labels({document_id}, {labels})").format(
document_id=sql.Literal(document_id),
labels=sql.SQL("NULL")
if labels is None
else sql.SQL("ARRAY[{label_names}]").format(label_names=sql.SQL(",").join(map(sql.Literal, labels))),
)
with self._perfdb.conn.reconnect() as conn:
conn.execute(query, skip_retry=True)
insert(document_id, labels)
¶
Inserts labels for a given document.
Parameters:
Source code in echo_postgres/document_instance_labels.py
@validate_call
def insert(self, document_id: int, labels: list[str]) -> None:
"""Inserts labels for a given document.
Parameters
----------
document_id : int
Document id
labels : list[str]
List of labels to be inserted
"""
query = sql.SQL("SELECT * FROM fn_insert_document_labels({document_id}, ARRAY[{labels}])").format(
document_id=sql.Literal(document_id),
labels=sql.SQL(",").join(map(sql.Literal, labels)),
)
with self._perfdb.conn.reconnect() as conn:
conn.execute(query, skip_retry=True)