query
On this page

fetchPypiLegacy

pkgs.fetchPypiLegacy

Functor
Docs pulled from | This Revision | 10 minutes ago

No reference documentation found yet.

Contribute now!


Contribute
Enhance the ecosystem with your expertise! Contribute to fill the gaps in documentation. Your input can make a difference.

Noogle detected

This is a Functor

Learn about functors

Implementation

The following is the current implementation of this function.

{
    # package name
    pname,
    # Package index
    url ? null,
    # Multiple package indices to consider
    urls ? [ ],
    # filename including extension
    file,
    # SRI hash
    hash,
    # allow overriding the derivation name
    name ? null,
    # allow overriding cacert using src.override { cacert = cacert.override { extraCertificateFiles = [ ./path/to/cert.pem ]; }; }
    cacert ? pkgs.cacert,
  }:
  let
    urls' = urls ++ optional (url != null) url;

    pathParts = filter ({ prefix, path }: "NETRC" == prefix) builtins.nixPath;
    netrc_file = if (pathParts != [ ]) then (head pathParts).path else "";

  in
  # Assert that we have at least one URL
  assert urls' != [ ];
  runCommand file
    (
      {
        nativeBuildInputs = [
          python3
          cacert
        ];
        inherit impureEnvVars;
        outputHashMode = "flat";
        # if hash is empty select a default algo to let nix propose the actual hash.
        outputHashAlgo = if hash == "" then "sha256" else null;
        outputHash = hash;
      }
      // optionalAttrs (name != null) { inherit name; }
      // optionalAttrs (!inPureEvalMode) { env.NETRC = netrc_file; }
    )
    ''
      python ${./fetch-legacy.py} ${
        concatStringsSep " " (map (url: "--url ${escapeShellArg url}") urls')
      } --pname ${pname} --filename ${file}
      mv ${file} $out
    ''