class_docstr: Strategy Compiler.
  
  Currently, this just entails resolving device attributes,
  but this can be easily modified to do more in the future.
docstr: Compile the strategy.
docstr_tok: ["Compile","the","strategy","."]
code: def compile(self, strategy):
      """Compile the strategy."""
      strategy = self._prune_nodes(strategy)
      if self._device_resolver:
          strategy = self._resolve_devices(strategy)
      return strategy
  
imports: import os
  from abc import ABC, abstractmethod
  from datetime import datetime
  from autodist.const import DEFAULT_SERIALIZATION_DIR
  from autodist.graph_item import GraphItem
  from autodist.kernel.common.utils import get_op_name
  from autodist.proto import strategy_pb2
  from autodist.resource_spec import ResourceSpec
label_desc: Use image node_id 6 for calling the StrategyCompiler obj's underlying member method code with example usage: obj.compile(strategy) and returns: strategy