| # Copyright (c) Microsoft Corporation. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # DeepSpeed Team | |
| import time | |
| from .constants import * | |
| from .base_file_writer import BaseFileWriter | |
| class PyFileWriter(BaseFileWriter): | |
| def __init__(self, file_path): | |
| super(PyFileWriter, self).__init__(file_path) | |
| self._fp = open(file_path, 'wb') | |
| def close(self): | |
| self._incr_stats(CLOSE_COUNT_KEY) | |
| self._fp.close() | |
| def fileno(self): | |
| self._incr_stats(FILENO_COUNT_KEY) | |
| return INVALID_FD # self._fp.fileno() | |
| def flush(self): | |
| self._incr_stats(FLUSH_COUNT_KEY) | |
| self._fp.flush() | |
| def write(self, buffer): | |
| st = time.time() | |
| self._fp.write(buffer) | |
| self._incr_stats(WRITE_SEC_KEY, time.time() - st) | |
| self._incr_stats(WRITE_COUNT_KEY) | |
| self._incr_stats(WRITE_BYTES_KEY, len(buffer)) | |
| return len(buffer) | |