class_docstr: Building block of a `Pipeline`.
  
  * data: only available in `TrainingPipeline`.
  * training_workspace: only available in `TrainingPipeline`, identical to `config.workspace`.
  * serialize_folder: only available in `load` process.
  * previous: previous building blocks in `build` process. Will be ALL building blocks in `run` process.
class_docstr_tok: ["Building","block","of","a","`","Pipeline","`",".","*","data",":","only","available","in","`","TrainingPipeline","`",".","*","training_workspace",":","only","available","in","`","TrainingPipeline","`",",","identical","to","`","config.workspace","`",".","*","serialize_folder",":","only","available","in","`","load","`","process",".","*","previous",":","previous","building","blocks","in","`","build","`","process",".","Will","be","ALL","building","blocks","in","`","run","`","process","."]
code: def local_rank(self) -> Optional[int]:
      ddp_info = get_ddp_info()
      return None if ddp_info is None else ddp_info.local_rank
  
imports: from typing import Any
  from typing import Dict
  from typing import List
  from typing import Type
  from typing import Optional
  from collections import OrderedDict
  from cftool.misc import safe_execute
  from cftool.misc import print_warning
  from cftool.misc import shallow_copy_dict
  from cftool.pipeline import IBlock
  from cftool.pipeline import IPipeline
  from cftool.pipeline import TPipeline
  from ..schema import IData
  from ..schema import DLConfig
  from ..misc.toolkit import get_ddp_info
label_desc: Use image node_id 6 for calling the Block obj's underlying member method code with example usage: obj.local_rank() and returns: unknown