class_docstr: Base class for defining arms.
  
  Randomization in experiments assigns units to a given arm. Thus, the arm
  encapsulates the parametrization needed by the unit.
docstr: Return unique identifier for arm's parameters.
  
  Args:
      parameters: Parameterization; mapping of param name
          to value.
  
  Returns:
      Hash of arm's parameters.
docstr_tok: ["Return","unique","identifier","for","arm","'s","parameters",".","Args",":","parameters",":","Parameterization",";","mapping","of","param","name","to","value",".","Returns",":","Hash","of","arm","'s","parameters","."]
code: def md5hash(parameters: TParameterization) -> str:
      """Return unique identifier for arm's parameters.
  
      Args:
          parameters: Parameterization; mapping of param name
              to value.
  
      Returns:
          Hash of arm's parameters.
  
      """
      for k, v in parameters.items():
          parameters[k] = numpy_type_to_python_type(v)
      parameters_str = json.dumps(parameters, sort_keys=True)
      return hashlib.md5(parameters_str.encode("utf-8")).hexdigest()
  
imports: import hashlib
  import json
  from typing import Optional
  from ax.core.types import TParameterization
  from ax.utils.common.base import SortableBase
  from ax.utils.common.equality import equality_typechecker
  from ax.utils.common.typeutils import numpy_type_to_python_type
label_desc: Use image node_id 8 for calling the Arm obj's underlying member method code with example usage: obj.md5hash(parameters) and returns: hashlib