class_docstr: Plugin for training with XLA.
  
  Args:
      precision: Full precision (32-true) or half precision (16-true, bf16-true).
  
  Raises:
      ValueError:
          If unsupported ``precision`` is provided.
code: def __init__(self, precision: _PRECISION_INPUT) -> None:
      if not _XLA_AVAILABLE:
          raise ModuleNotFoundError(str(_XLA_AVAILABLE))
      supported_precision = get_args(_PRECISION_INPUT)
      if precision not in supported_precision:
          raise ValueError(
              f"`precision={precision!r})` is not supported in XLA."
              f" `precision` must be one of: {supported_precision}."
          )
      self.precision = precision
  
      if precision == "16-true":
          os.environ["XLA_USE_F16"] = "1"
          self._desired_dtype = torch.float16
      elif precision == "bf16-true":
          os.environ["XLA_USE_BF16"] = "1"
          self._desired_dtype = torch.bfloat16
      else:
          self._desired_dtype = torch.float32
  
file_path: pytorch-lightning/src/lightning/fabric/plugins/precision/xla.py
imports: import os
  from typing import Any, Literal
  import torch
  from typing_extensions import get_args, override
  from lightning.fabric.accelerators.xla import _XLA_AVAILABLE
  from lightning.fabric.plugins.precision.precision import Precision
  from lightning.fabric.utilities.types import Optimizable
label_desc: Use image node_id 1 to create a new XLAPrecision object from inherited base classes: Precision with example: obj = XLAPrecision(precision)