code: def get_update_metadata(self, filepath):
      self.root_directory = filepath
      self.root_directory = (
          "." if self.root_directory == "" else self.root_directory
      )
  
      # new_file_name = os.path.join(self.root_directory, '*{}.bak'.format(self.timestamp))
      try:
          self._copy_files(self.ent_map_fname)
          self._copy_files(self.ent_meta_fname)
          self._copy_files(self.rel_map_fname)
          self._copy_files(self.rel_meta_fname)
          self.ent_map_fname = os.path.join(
              self.root_directory,
              "ent_partition_{}".format(self.timestamp),
          )
          self.ent_meta_fname = os.path.join(
              self.root_directory,
              "ent_metadata_{}".format(self.timestamp),
          )
          self.rel_map_fname = os.path.join(
              self.root_directory,
              "rel_partition_{}".format(self.timestamp),
          )
          self.rel_meta_fname = os.path.join(
              self.root_directory,
              "rel_metadata_{}".format(self.timestamp),
          )
      except shutil.SameFileError:
          pass
  
      metadata = {
          "root_directory": self.root_directory,
          "partitioner_k": self.partitioner_k,
          "ent_map_fname": self.ent_map_fname,
          "ent_meta_fname": self.ent_meta_fname,
          "rel_map_fname": self.rel_map_fname,
          "rel_meta_fname": self.rel_meta_fname,
      }
      return metadata
  
imports: import abc
  import glob
  import logging
  import os
  import shelve
  import shutil
  import tempfile
  from datetime import datetime
  import numpy
  import tensorflow
  from .graph_partitioner import PARTITION_ALGO_REGISTRY, AbstractGraphPartitioner
label_desc: Use image node_id 3 for calling the PartitionDataManager obj's underlying member method code with example usage: obj.get_update_metadata(filepath) and returns: metadata