docstr: Set `path_file` and `extra_dirs` using `extra_path`.
docstr_tok: ["Set","`","path_file","`","and","`","extra_dirs","`","using","`","extra_path","`","."]
code: def handle_extra_path(self):
      """Set `path_file` and `extra_dirs` using `extra_path`."""
      if self.extra_path is None:
          self.extra_path = self.distribution.extra_path
  
      if self.extra_path is not None:
          log.warning(
              "Distribution option extra_path is deprecated. "
              "See issue27919 for details."
          )
          if isinstance(self.extra_path, str):
              self.extra_path = self.extra_path.split(",")
  
          if len(self.extra_path) == 1:
              path_file = extra_dirs = self.extra_path[0]
          elif len(self.extra_path) == 2:
              path_file, extra_dirs = self.extra_path
          else:
              raise DistutilsOptionError(
                  "'extra_path' option must be a list, tuple, or "
                  "comma-separated string with 1 or 2 elements"
              )
  
          # convert to local form in case Unix notation used (as it
          # should be in setup scripts)
          extra_dirs = convert_path(extra_dirs)
      else:
          path_file = None
          extra_dirs = ""
  
      # XXX should we warn if path_file and not extra_dirs? (in which
      # case the path file would be harmless but pointless)
      self.path_file = path_file
      self.extra_dirs = extra_dirs
  
imports: import sys
  import os
  import contextlib
  import sysconfig
  import itertools
  from distutils._log import log
  from ..core import Command
  from ..debug import DEBUG
  from ..sysconfig import get_config_vars
  from ..file_util import write_file
  from ..util import convert_path, subst_vars, change_root
  from ..util import get_platform
  from ..errors import DistutilsOptionError, DistutilsPlatformError
  from .None import _framework_compat
  from ..None import _collections
  from site import USER_BASE
  from site import USER_SITE
label_desc: Use image node_id 11 for calling the install obj's underlying member method code with example usage: obj.handle_extra_path() without return types