'Marshal cmd line args into a requirement set.'

@staticmethod
def populate_requirement_set(requirement_set, args, options, finder, session, name, wheel_cache):

    for filename in options.constraints:
        for req in parse_requirements(filename, constraint=True, finder=finder, options=options, session=session, wheel_cache=wheel_cache):
            requirement_set.add_requirement(req)
    for req in args:
        requirement_set.add_requirement(InstallRequirement.from_line(req, None, isolated=options.isolated_mode, wheel_cache=wheel_cache))
    for req in options.editables:
        requirement_set.add_requirement(InstallRequirement.from_editable(req, default_vcs=options.default_vcs, isolated=options.isolated_mode, wheel_cache=wheel_cache))
    found_req_in_file = False
    for filename in options.requirements:
        for req in parse_requirements(filename, finder=finder, options=options, session=session, wheel_cache=wheel_cache):
            found_req_in_file = True
            requirement_set.add_requirement(req)
    requirement_set.require_hashes = options.require_hashes
    if (not (args or options.editables or found_req_in_file)):
        opts = {'name': name}
        if options.find_links:
            msg = ('You    must    give    at    least    one    requirement    to    %(name)s    (maybe    you    meant    "pip    %(name)s    %(links)s"?)' % dict(opts, links='    '.join(options.find_links)))
        else:
            msg = ('You    must    give    at    least    one    requirement    to    %(name)s    (see    "pip    help    %(name)s")' % opts)
        logger.warning(msg)
