docs: def update_req(req):
      """Updates a given req object with the latest version."""
  
      if not req.name:
          return req, None
  
      info = get_package_info(req.name)
  
      if info['info'].get('_pypi_hidden'):
          print('{} is hidden on PyPI and will not be updated.'.format(req))
          return req, None
  
      if _is_pinned(req) and _is_version_range(req):
          print('{} is pinned to a range and will not be updated.'.format(req))
          return req, None
  
      newest_version = _get_newest_version(info)
      current_spec = next(iter(req.specifier)) if req.specifier else None
      current_version = current_spec.version if current_spec else None
      new_spec = Specifier(u'=={}'.format(newest_version))
      if not current_spec or current_spec._spec != new_spec._spec:
          req.specifier = new_spec
          update_info = (
              req.name,
              current_version,
              newest_version)
          return req, update_info
      return req, None