code: def _version_split(version):
      
  
      parsed_version = pkg_resources.parse_version(version)
  
      if hasattr(parsed_version, 'base_version'):
          # New version parsing for setuptools >= 8.0
          if parsed_version.base_version:
              parts = [int(part)
                       for part in parsed_version.base_version.split('.')]
          else:
              parts = []
      else:
          parts = []
          for part in parsed_version:
              if part.startswith('*'):
                  # Ignore any .dev, a, b, rc, etc.
                  break
              parts.append(int(part))
  
      if len(parts) < 3:
          parts += [0] * (3 - len(parts))
  
      # In principle a version could have more parts (like 1.2.3.4) but we only
      # support <major>.<minor>.<micro>
      return tuple(parts[:3])
docs: Split a version string into major, minor, and bugfix numbers.  If any of
      those numbers are missing the default is zero.  Any pre/post release
      modifiers are ignored.
  
      Examples
      ========
      >>> _version_split('1.2.3')
      (1, 2, 3)
      >>> _version_split('1.2')
      (1, 2, 0)
      >>> _version_split('1.2rc1')
      (1, 2, 0)
      >>> _version_split('1')
      (1, 0, 0)
      >>> _version_split('')
      (0, 0, 0)