class_docstr: Custom wrapper to allow for copying of file handle.
  
  tinydb_serialisation currently does a deepcopy on all the content of the
  dictionary before serialisation. By default, file handles are not
  copiable so this wrapper is necessary to create a duplicate of the
  file handle passes in.
  
  Note that the file passed in will therefor remain open as the copy is the
  one that gets closed.
code: def __deepcopy__(self, memo):
      f = open(self.name, self.mode)
      return BufferedReaderWrapper(f)
  
imports: import datetime
  import json
  import os
  from io import BufferedReader, FileIO
  from pathlib import Path
  from typing import Tuple
  from hashfs import HashFS
  from tinydb import TinyDB
  from tinydb_serialization import Serializer, SerializationMiddleware
  import sacred.optional
label_desc: Use image node_id 3 for calling the BufferedReaderWrapper obj's underlying member method code with example usage: obj.__deepcopy__(memo) and returns: BufferedReaderWrapper