native_write_port_for(graph: Any, vector: Any, journal: Any, scope: MemoryScope) -> _NativeSelectedWritePort
Issue only for the exact native pair, journal topology, and v1 owner.
Source code in src/symfonic/capabilities/memory/mongo_native_write_port.py
| def native_write_port_for(
graph: Any,
vector: Any,
journal: Any,
scope: MemoryScope,
) -> _NativeSelectedWritePort:
"""Issue only for the exact native pair, journal topology, and v1 owner."""
from symfonic.memory.backends.mongo_native_read import _owned_pair
from symfonic.memory.backends.mongo_operation_journal import MongoOperationJournal
try:
domain = _owned_pair(graph, vector)
if (
type(journal) is not MongoOperationJournal
or journal._closed
or journal._uncertain
or type(scope) is not MemoryScope
or scope.identity_version != 1
or domain._receipt_database != journal._database
):
raise ConfigurationError("native selected WRITE requires exact owned pair")
left = domain._client.delegate._topology_settings
right = journal._client.delegate._topology_settings
if (
left.replica_set_name is None
or left.seeds != right.seeds
or left.replica_set_name != right.replica_set_name
):
raise ConfigurationError("native selected WRITE topology mismatch")
except (AttributeError, TypeError) as exc:
raise ConfigurationError("native selected WRITE composition refused") from exc
return _NativeSelectedWritePort(domain, journal, scope)
|