Unverified Commit 6b27e449 authored by noiioiu's avatar noiioiu
Browse files

python3Packages.snappy: init at 3.2


Co-authored-by: default avatarAlex Epelde <alex@epelde.net>
parent 89530810
Loading
Loading
Loading
Loading
+132 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchpatch,
  python,
  buildPythonPackage,
  fetchFromGitHub,
  setuptools,
  cypari,
  cython,
  fxrays,
  ipython,
  libGL,
  low-index,
  packaging,
  pickleshare,
  plink,
  pypng,
  pyx,
  snappy-15-knots,
  snappy-manifolds,
  spherogram,
  sphinxHook,
  sphinx-rtd-theme,
  tkinter-gl,
}:

buildPythonPackage rec {
  pname = "snappy";
  version = "3.2";
  pyproject = true;

  outputs = [
    "out"
    "doc"
  ];

  src = fetchFromGitHub {
    owner = "3-manifolds";
    repo = "SnapPy";
    tag = "${version}_as_released";
    hash = "sha256-IwPxuyVDsL5yML+J06HTKlz52sYrPkohLJ0XDXDwTlo=";
  };

  patches = [
    (fetchpatch {
      name = "no-copy-doc.patch";
      url = "https://github.com/3-manifolds/SnapPy/commit/c6aeeaaec7010a54e4ebdf2e8dad7b384c2ce8e5.patch";
      hash = "sha256-OV3Qr5wO5UHNzVFTPTujIpp5ptel6gvAlcMgrJ8C0KY=";
    })
    (fetchpatch {
      name = "fix-test-aarch64.patch";
      url = "https://github.com/3-manifolds/SnapPy/commit/a8d57db39bc8f486746dc61027779168d0bc316a.patch";
      hash = "sha256-RsuwaR+7UrVTKlPwQeHblTAN++La7b9BSMdFcJSiX5Q=";
    })
  ];

  postPatch =
    lib.optionalString stdenv.hostPlatform.isLinux ''
      substituteInPlace setup.py \
        --replace-fail "/usr/include/GL" "${libGL.dev}/include/GL"
      substituteInPlace freedesktop/share/applications/snappy.desktop \
        --replace-fail "Exec=/usr/bin/env python3 -m snappy.app" "Exec=SnapPy"
    ''
    + lib.optionalString stdenv.hostPlatform.isDarwin ''
      substituteInPlace setup.py \
        --replace-fail "poss_roots = [ ''' ]" "poss_roots = [ '$SDKROOT' ]"
    '';

  build-system = [
    setuptools
    cython
  ];

  nativeBuildInputs = [
    sphinxHook
    sphinx-rtd-theme
  ];

  buildInputs = [
    libGL
  ];

  dependencies = [
    cypari
    fxrays
    ipython
    low-index
    packaging
    pickleshare
    plink
    pypng
    pyx
    snappy-manifolds
    spherogram
    tkinter-gl
  ];

  optional-dependencies.snappy-15-knots = [ snappy-15-knots ];

  postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
    mkdir -p $out/share
    cp -r freedesktop/share/{applications,icons} $out/share
  '';

  sphinxRoot = "doc_src";

  postInstallSphinx = ''
    ln -s ''${!outputDoc}/share/doc/$name/html $out/${python.sitePackages}/snappy/doc
  '';

  pythonImportsCheck = [ "snappy" ];

  checkPhase = ''
    runHook preCheck
    ${python.interpreter} -m snappy.test --skip-gui
    runHook postCheck
  '';

  meta = {
    description = "Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures";
    changelog = "https://snappy.computop.org/news.html";
    mainProgram = "SnapPy";
    homepage = "https://snappy.computop.org";
    license = lib.licenses.gpl2Plus;
    maintainers = with lib.maintainers; [
      noiioiu
      alejo7797
    ];
    platforms = lib.platforms.linux ++ lib.platforms.darwin;
  };
}
+2 −0
Original line number Diff line number Diff line
@@ -17285,6 +17285,8 @@ self: super: with self; {
  snapcast = callPackage ../development/python-modules/snapcast { };
  snappy = callPackage ../development/python-modules/snappy { };
  snappy-15-knots = callPackage ../development/python-modules/snappy-15-knots { };
  snappy-manifolds = callPackage ../development/python-modules/snappy-manifolds { };