class_docstr: Callback that streams epoch results to a csv file.
  
  Supports all values that can be represented as a string,
  including 1D iterables such as `np.ndarray`.
  
  Example:
  
      ```python
      csv_logger = CSVLogger('training.log')
      model.fit(X_train, Y_train, callbacks=[csv_logger])
      ```
code: def on_train_end(self, logs=None):
      self.csv_file.close()
      self.writer = None
  
file_path: elegy/elegy/callbacks/csv_logger.py
imports: import collections
  import csv
  import io
  import os
  import typing
  import numpy
  import six
  from .callback import Callback
label_desc: Use image node_id 4 for calling the CSVLogger obj's underlying member method code with example usage: obj.on_train_end(logs) without return types