Source code for kif_lib.model.reference_record

# Copyright (C) 2023-2024 IBM Corp.
# SPDX-License-Identifier: Apache-2.0

from collections.abc import Iterable
from typing import cast, NoReturn, Optional, Union

from .kif_object import KIF_Object, TCallable
from .snak import Snak
from .snak_set import SnakSet

TReferenceRecord = Union['ReferenceRecord', SnakSet, Iterable[Snak]]


[docs] class ReferenceRecord(SnakSet): """Set of snaks representing provenance information. Parameters: args: Snaks. """ @classmethod def _check_arg_reference_record( cls, arg: TReferenceRecord, function: Optional[Union[TCallable, str]] = None, name: Optional[str] = None, position: Optional[int] = None ) -> Union['ReferenceRecord', NoReturn]: if (not ReferenceRecord.test(arg) and (SnakSet.test(arg) or (not KIF_Object.test(arg) and isinstance(arg, Iterable)))): refs = ReferenceRecord(*arg) else: refs = cast(ReferenceRecord, arg) return cls._check_arg_isinstance( refs, ReferenceRecord, function, name, position)
[docs] def __init__(self, *args: Snak): super().__init__(*args)