code: def projects_from_cli(args):
      
      description = ('Determine if a set of project dependencies will work with '
                     'Python 3')
      parser = argparse.ArgumentParser(description=description)
      req_help = 'path(s) to a pip requirements file (e.g. requirements.txt)'
      parser.add_argument('--requirements', '-r', nargs='+', default=(),
                          help=req_help)
      meta_help = 'path(s) to a PEP 426 metadata file (e.g. PKG-INFO, pydist.json)'
      parser.add_argument('--metadata', '-m', nargs='+', default=(),
                          help=meta_help)
      parser.add_argument('--projects', '-p', nargs='+', default=(),
                          help='name(s) of projects to test for Python 3 support')
      parser.add_argument('--verbose', '-v', action='store_true',
                          help='verbose output (e.g. list compatibility overrides)')
      parsed = parser.parse_args(args)
  
      if not (parsed.requirements or parsed.metadata or parsed.projects):
          parser.error("Missing 'requirements', 'metadata', or 'projects'")
  
      projects = []
      if parsed.verbose:
          logging.getLogger('ciu').setLevel(logging.INFO)
      projects.extend(projects_.projects_from_requirements(parsed.requirements))
      metadata = []
      for metadata_path in parsed.metadata:
          with io.open(metadata_path) as file:
              metadata.append(file.read())
      projects.extend(projects_.projects_from_metadata(metadata))
      projects.extend(map(packaging.utils.canonicalize_name, parsed.projects))
  
      return projects
docs: Take arguments through the CLI can create a list of specified projects.