# 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)