class_docstr: DataStores are used primarily to synchronize policies between training workers and rollout
  workers. In the case of the S3DataStore, it is also being used to explicitly log artifacts such
  as videos and logs into s3 for users to look at later. Artifact logging should be moved into a
  separate instance of the DataStore class, or a different class altogether. It is possible that
  users might be interested in logging artifacts through s3, but coordinating communication of
  policies using something else like redis.
class_docstr_tok: ["DataStores","are","used","primarily","to","synchronize","policies","between","training","workers","and","rollout","workers",".","In","the","case","of","the","S3DataStore",",","it","is","also","being","used","to","explicitly","log","artifacts","such","as","videos","and","logs","into","s3","for","users","to","look","at","later",".","Artifact","logging","should","be","moved","into","a","separate","instance","of","the","DataStore","class",",","or","a","different","class","altogether",".","It","is","possible","that","users","might","be","interested","in","logging","artifacts","through","s3",",","but","coordinating","communication","of","policies","using","something","else","like","redis","."]
code: def save_policy(self, graph_manager):
      raise NotImplementedError()
  
file_path: coach/rl_coach/data_stores/data_store.py
imports: from enum import Enum
label_desc: Use image node_id 7 for calling the DataStore obj's underlying member method code with example usage: obj.save_policy(graph_manager) without return types