@staticmethod
    def fromCacheCallTupleEntry(cacheCallTupleElement):
        assert isinstance(cacheCallTupleElement, ForaNative.ImplValContainer)

        if  cacheCallTupleElement.getTuple() is None:
            raise InvalidCacheCall("Cache-call argument must be a tuple")

        if len(cacheCallTupleElement) not in (2,3):
            raise InvalidCacheCall("Cache-call tuple must contain two or three elements")

        agent = cacheCallTupleElement[0]
        args = cacheCallTupleElement[1]

        if cacheCallTupleElement[1].getTuple() is None:
            raise InvalidCacheCall("Cache-call arguments must be a tuple")

        if len(cacheCallTupleElement) == 3:
            nearness = NearnessIndicator.fromForaArg(cacheCallTupleElement[2])
        else:
            nearness = None

        return CacheCallEntry(agent, args, nearness)
process a tuple of cache-call arguments passed as an ImplValContainer
dataset/ETHPy150Open ufora/ufora/ufora/FORA/python/CacheSemantics.py/CacheCallEntry.fromCacheCallTupleEntry