(
self, key: str, named_column: _NAMEDCOL, *, index: Optional[int] = None
)
| 2348 | self._append_new_column(key, column, index=index) |
| 2349 | |
| 2350 | def _append_new_column( |
| 2351 | self, key: str, named_column: _NAMEDCOL, *, index: Optional[int] = None |
| 2352 | ) -> None: |
| 2353 | collection_length = len(self._collection) |
| 2354 | |
| 2355 | if index is None: |
| 2356 | l = collection_length |
| 2357 | else: |
| 2358 | if index < 0: |
| 2359 | index = max(0, collection_length + index) |
| 2360 | l = index |
| 2361 | |
| 2362 | if index is None: |
| 2363 | self._collection.append( |
| 2364 | (key, named_column, _ColumnMetrics(self, named_column)) |
| 2365 | ) |
| 2366 | else: |
| 2367 | self._collection.insert( |
| 2368 | index, (key, named_column, _ColumnMetrics(self, named_column)) |
| 2369 | ) |
| 2370 | |
| 2371 | self._colset.add(named_column._deannotate()) |
| 2372 | |
| 2373 | if index is not None: |
| 2374 | for idx in reversed(range(index, collection_length)): |
| 2375 | self._index[idx + 1] = self._index[idx] |
| 2376 | |
| 2377 | self._index[l] = (key, named_column) |
| 2378 | self._index[key] = (key, named_column) |
| 2379 | |
| 2380 | def _populate_separate_keys( |
| 2381 | self, iter_: Iterable[Tuple[str, _NAMEDCOL]] |
no test coverage detected