class_docstr: Driver for Resolver.
  
  Constructs an instance of the resolver_class specified by user with configs
  passed in by user and marks the resolved artifacts as the output of the
  Resolver.
code: def _maybe_get_strategy(
      self, exec_properties: Dict[str, Any]
  ) -> Optional[ResolverStrategy]:
      strategy_cls = exec_properties.get(RESOLVER_STRATEGY_CLASS)
      if not strategy_cls or not typing_utils.is_compatible(
          strategy_cls, Type[ResolverStrategy]
      ):
          return None
      kwargs = exec_properties.get(RESOLVER_CONFIG, {})
      if not typing_utils.is_compatible(kwargs, Mapping[str, Any]):
          return None
      return strategy_cls(**kwargs)
  
imports: import abc
  from typing import Any, Dict, List, Optional, Type, Mapping
  from tfx import types
  from tfx.dsl.components.base import base_driver
  from tfx.dsl.components.base import base_node
  from tfx.dsl.input_resolution import resolver_op
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.types import resolved_channel
  from tfx.utils import doc_controls
  from tfx.utils import json_utils
  from tfx.utils import typing_utils
  import ml_metadata
label_desc: Use image node_id 1 for calling the _ResolverDriver obj's underlying member method code with example usage: obj._maybe_get_strategy(exec_properties) and returns: strategy_cls, None, None