parameters: (
          self,
          candidates,  # type: List[InstallationCandidate]
      )
return_statement: return filter_unallowed_hashes(
              candidates=applicable_candidates,
              hashes=self._hashes,
              project_name=self._project_name,
          )
docstring: Return the applicable candidates from a list of candidates.
docstring_summary: Return the applicable candidates from a list of candidates.
docstring_tokens: Return the applicable candidates from a list of candidates .
function: def get_applicable_candidates(
          self,
          candidates,  # type: List[InstallationCandidate]
      ):
          # type: (...) -> List[InstallationCandidate]
          """
          Return the applicable candidates from a list of candidates.
          """
          # Using None infers from the specifier instead.
          allow_prereleases = self._allow_all_prereleases or None
          specifier = self._specifier
          versions = {
              str(v) for v in specifier.filter(
                  # We turn the version object into a str here because otherwise
                  # when we're debundled but setuptools isn't, Python will see
                  # packaging.version.Version and
                  # pkg_resources._vendor.packaging.version.Version as different
                  # types. This way we'll use a str as a common data interchange
                  # format. If we stop using the pkg_resources provided specifier
                  # and start using our own, we can drop the cast to str().
                  (str(c.version) for c in candidates),
                  prereleases=allow_prereleases,
              )
          }
  
          # Again, converting version to str to deal with debundling.
          applicable_candidates = [
              c for c in candidates if str(c.version) in versions
          ]
  
          return filter_unallowed_hashes(
              candidates=applicable_candidates,
              hashes=self._hashes,
              project_name=self._project_name,
          )
function_tokens: def get_applicable_candidates ( self , candidates , # type: List[InstallationCandidate] ) : # type: (...) -> List[InstallationCandidate] # Using None infers from the specifier instead. allow_prereleases = self . _allow_all_prereleases or None specifier = self . _specifier versions = { str ( v ) for v in specifier . filter ( # We turn the version object into a str here because otherwise # when we're debundled but setuptools isn't, Python will see # packaging.version.Version and # pkg_resources._vendor.packaging.version.Version as different # types. This way we'll use a str as a common data interchange # format. If we stop using the pkg_resources provided specifier # and start using our own, we can drop the cast to str(). ( str ( c . version ) for c in candidates ) , prereleases = allow_prereleases , ) } # Again, converting version to str to deal with debundling. applicable_candidates = [ c for c in candidates if str ( c . version ) in versions ] return filter_unallowed_hashes ( candidates = applicable_candidates , hashes = self . _hashes , project_name = self . _project_name , )