code: def parse_address(addr: str, strict: bool = False) -> tuple[str, str]:
      """
      Split address into its scheme and scheme-dependent location string.
  
      >>> parse_address('tcp://127.0.0.1')
      ('tcp', '127.0.0.1')
  
      If strict is set to true the address must have a scheme.
      """
      if not isinstance(addr, str):
          raise TypeError(
              "expected str, got %r" % addr.__class__.__name__
          )
      scheme, sep, loc = addr.rpartition("://")
      if strict and not sep:
          msg = (
              "Invalid url scheme. "
              "Must include protocol like tcp://localhost:8000. "
              "Got %s" % addr
          )
          raise ValueError(msg)
      if not sep:
          scheme = dask.config.get("distributed.comm.default-scheme")
      return scheme, loc
  
file_path: distributed/distributed/comm/addressing.py
imports: from __future__ import annotations
  import itertools
  import dask
  from distributed.comm import registry
  from distributed.utils import get_ip_interface
label_desc: Use image node_id 1 for calling a global function with example usage: parse_address(addr, strict) and returns: scheme,  loc