MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _append_new_column

Method _append_new_column

lib/sqlalchemy/sql/base.py:2350–2378  ·  view source on GitHub ↗
(
        self, key: str, named_column: _NAMEDCOL, *, index: Optional[int] = None
    )

Source from the content-addressed store, hash-verified

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]]

Callers 2

addMethod · 0.95
replaceMethod · 0.95

Calls 6

maxClass · 0.85
_ColumnMetricsClass · 0.85
appendMethod · 0.45
insertMethod · 0.45
addMethod · 0.45
_deannotateMethod · 0.45

Tested by

no test coverage detected