Unverified Commit 3932ebe3 authored by natsukium's avatar natsukium
Browse files

python311Packages.theano: drop

theano has been removed because it is no longer maintained
parent 8461d10c
Loading
Loading
Loading
Loading
+0 −117
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  runCommandCC,
  fetchPypi,
  buildPythonPackage,
  isPyPy,
  pythonOlder,
  isPy3k,
  nose,
  numpy,
  scipy,
  setuptools,
  six,
  libgpuarray,
  config,
  cudaSupport ? config.cudaSupport,
  cudaPackages ? { },
  cudnnSupport ? cudaSupport,
}:

let
  inherit (cudaPackages) cudatoolkit cudnn;
in

assert cudnnSupport -> cudaSupport;

let
  wrapped =
    command: buildTop: buildInputs:
    runCommandCC "${command}-wrapped" { inherit buildInputs; } ''
      type -P '${command}' || { echo '${command}: not found'; exit 1; }
      cat > "$out" <<EOF
      #!$(type -P bash)
      $(declare -xp | sed -e '/^[^=]\+="\('"''${NIX_STORE//\//\\/}"'\|[^\/]\)/!d')
      declare -x NIX_BUILD_TOP="${buildTop}"
      $(type -P '${command}') "\$@"
      EOF
      chmod +x "$out"
    '';

  # Theano spews warnings and disabled flags if the compiler isn't named g++
  cxx_compiler_name =
    if stdenv.cc.isGNU then
      "g++"
    else if stdenv.cc.isClang then
      "clang++"
    else
      throw "Unknown C++ compiler";
  cxx_compiler = wrapped cxx_compiler_name "\\$HOME/.theano" (
    lib.optional cudaSupport libgpuarray_ ++ lib.optional cudnnSupport cudnn
  );

  # We need to be careful with overriding Python packages within the package set
  # as this can lead to collisions!
  libgpuarray_ = libgpuarray.override { inherit cudaSupport cudaPackages; };
in
buildPythonPackage rec {
  pname = "theano";
  version = "1.0.5";
  format = "setuptools";

  disabled = isPyPy || pythonOlder "2.6";

  src = fetchPypi {
    inherit pname version;
    sha256 = "129f43ww2a6badfdr6b88kzjzz2b0wk0dwkvwb55z6dsagfkk53f";
  };

  postPatch =
    ''
      substituteInPlace theano/configdefaults.py \
        --replace 'StrParam(param, is_valid=warn_cxx)' 'StrParam('\'''${cxx_compiler}'\''', is_valid=warn_cxx)' \
        --replace 'rc == 0 and config.cxx != ""' 'config.cxx != ""'
    ''
    + lib.optionalString cudaSupport ''
      substituteInPlace theano/configdefaults.py \
        --replace 'StrParam(get_cuda_root)' 'StrParam('\'''${cudatoolkit}'\''')'
    ''
    + lib.optionalString cudnnSupport ''
      substituteInPlace theano/configdefaults.py \
        --replace 'StrParam(default_dnn_base_path)' 'StrParam('\'''${cudnn}'\''')'
    '';

  # needs to be postFixup so it runs before pythonImportsCheck even when
  # doCheck = false (meaning preCheck would be disabled)
  postFixup = ''
    mkdir -p check-phase
    export HOME=$(pwd)/check-phase
  '';
  doCheck = false;
  # takes far too long, also throws "TypeError: sort() missing 1 required positional argument: 'a'"
  # when run from the installer, and testing with Python 3.5 hits github.com/Theano/Theano/issues/4276,
  # the fix for which hasn't been merged yet.

  # keep Nose around since running the tests by hand is possible from Python or bash
  nativeCheckInputs = [ nose ];
  # setuptools needed for cuda support
  propagatedBuildInputs = [
    libgpuarray_
    numpy
    numpy.blas
    scipy
    setuptools
    six
  ];

  pythonImportsCheck = [ "theano" ];

  meta = with lib; {
    homepage = "https://github.com/Theano/Theano";
    description = "A Python library for large-scale array computation";
    license = licenses.bsd3;
    maintainers = [ ];
    broken = true;
  };
}
+3 −0
Original line number Diff line number Diff line
@@ -529,6 +529,9 @@ mapAliases ({
  Theano = theano; # added 2023-02-19
  TheanoWithCuda = theanoWithCuda; # added 2023-02-19
  TheanoWithoutCuda = theanoWithoutCuda; # added 2023-02-19
  theano = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
  theanoWithCuda = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
  theanoWithoutCuda = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
  thumborPexif = throw "thumborPexif has been removed, because it was unused."; # added 2024-01-07
  torchgpipe = throw "torchgpipe has been removed, because it appears unmaintained and Pytorch now includes pipeline parallelism support"; # added 2024-05-18
  torrent_parser = torrent-parser; # added 2023-11-04
+0 −15
Original line number Diff line number Diff line
@@ -15068,21 +15068,6 @@ self: super: with self; {
  theano-pymc = callPackage ../development/python-modules/theano-pymc { };
  theano = callPackage ../development/python-modules/theano rec {
    inherit (pkgs.config) cudaSupport;
    cudnnSupport = cudaSupport;
  };
  theanoWithCuda = self.theano.override {
    cudaSupport = true;
    cudnnSupport = true;
  };
  theanoWithoutCuda = self.theano.override {
    cudaSupport = false;
    cudnnSupport = false;
  };
  thefuzz = callPackage ../development/python-modules/thefuzz { };
  thelogrus = callPackage ../development/python-modules/thelogrus { };