Pack a given flattened sequence into a given structure.
(structure, flat_sequence)
| 230 | |
| 231 | |
| 232 | def pack_sequence_as(structure, flat_sequence): |
| 233 | """ |
| 234 | Pack a given flattened sequence into a given structure. |
| 235 | """ |
| 236 | if not is_sequence(flat_sequence): |
| 237 | raise TypeError("flat_sequence must be a sequence") |
| 238 | if not is_sequence(structure): |
| 239 | if len(flat_sequence) != 1: |
| 240 | raise ValueError( |
| 241 | f"Structure is a scalar but len(flat_sequence) == {len(flat_sequence)} > 1" |
| 242 | ) |
| 243 | return flat_sequence[0] |
| 244 | flat_structure = flatten(structure) |
| 245 | if len(flat_structure) != len(flat_sequence): |
| 246 | raise ValueError( |
| 247 | f"Could not pack sequence. Structure had {len(flat_structure)} elements, but flat_sequence " |
| 248 | f"had {len(flat_sequence)} elements. Structure: {structure}, flat_sequence: {flat_sequence}." |
| 249 | ) |
| 250 | _, packed = _packed_nest_with_indices(structure, flat_sequence, 0) |
| 251 | return _sequence_like(structure, packed) |
| 252 | |
| 253 | |
| 254 | def map_structure( |
no test coverage detected