graflo.architecture.graph_types.merge¶
Document fusion: several observations of one entity becoming one document.
This is the fuse plane -- two records becoming one node -- and not either
schema-level sense of "merge". Nothing here folds two declarations of a type;
it folds the documents a pipeline emitted for the same entity, keyed on the
fields they will be matched on, preserving order and handling both dict and
:class:VertexRep objects.
Key Functions
- fuse_doc_basis: fold documents sharing an index key, preserving order
Classes¶
Functions:¶
fuse_doc_basis(docs, index_keys)
¶
Merge documents based on common index keys, preserving order.
This function merges documents that share common index key-value combinations, preserving the order of documents based on the first occurrence of each index key combination. Documents without index keys are merged into the closest preceding document with index keys. If no documents have index keys, all documents are merged into a single document.
For VertexRep objects, the merge is performed on the vertex attribute.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
docs
|
list[dict] | list[VertexRep]
|
Homogeneous list of documents (all dict or all VertexRep) to merge |
required |
index_keys
|
tuple[str, ...]
|
Tuple of key names to use for merging |
required |
Returns:
| Type | Description |
|---|---|
list[dict] | list[VertexRep]
|
Merged documents in order of first occurrence (same type as input) |
Source code in graflo/architecture/graph_types/merge.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |