| 1353 | __slots__ = ("_max_row_buffer", "_rowbuffer", "_bufsize", "_growth_factor") |
| 1354 | |
| 1355 | def __init__( |
| 1356 | self, |
| 1357 | dbapi_cursor: DBAPICursor, |
| 1358 | execution_options: CoreExecuteOptionsParameter, |
| 1359 | growth_factor: int = 5, |
| 1360 | initial_buffer: Optional[Deque[Any]] = None, |
| 1361 | ) -> None: |
| 1362 | self._max_row_buffer = execution_options.get("max_row_buffer", 1000) |
| 1363 | |
| 1364 | if initial_buffer is not None: |
| 1365 | self._rowbuffer = initial_buffer |
| 1366 | else: |
| 1367 | self._rowbuffer = collections.deque(dbapi_cursor.fetchmany(1)) |
| 1368 | self._growth_factor = growth_factor |
| 1369 | |
| 1370 | if growth_factor: |
| 1371 | self._bufsize = min(self._max_row_buffer, self._growth_factor) |
| 1372 | else: |
| 1373 | self._bufsize = self._max_row_buffer |
| 1374 | |
| 1375 | @classmethod |
| 1376 | def create( |