Commit 5a616273 authored by annalee's avatar annalee Committed by github-actions[bot]
Browse files

python311Packages.pyregion: 2.1.1 -> 2.2.0; fix darwin build

https://github.com/astropy/pyregion/blob/2.2.0/CHANGES.rst

add -Wno-error=int-conversion for clang to not error out on generated
code. (code returns NULL rather than 0). gcc warns but does not error.

(cherry picked from commit 83263612)
parent d21337e1
Loading
Loading
Loading
Loading
+30 −34
Original line number Diff line number Diff line
@@ -3,64 +3,59 @@
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, pyparsing
, numpy
# needed to build
, cython
, oldest-supported-numpy
, setuptools
, setuptools-scm
, wheel
# needed to run
, astropy
, astropy-helpers
, numpy
, pyparsing
# needed to check
, pytestCheckHook
, pytest-astropy
}:

buildPythonPackage rec {
  pname = "pyregion";
  version = "2.1.1";
  version = "2.2.0";
  pyproject = true;

  # pypi src contains cython-produced .c files which don't compile
  # with python3.9
  src = fetchFromGitHub {
    owner = "astropy";
    repo = pname;
    rev = "v${version}";
    hash = "sha256-xo+XbBJ2HKql9rd7Ma84JofRg8M4u6vmz44Qo8JhEBc=";
    rev = version;
    hash = "sha256-r2STKnZwNvonXATrQ5q9NVD9QftlWI1RWl4F+GZSxVg=";
  };

  env = {
    SETUPTOOLS_SCM_PRETEND_VERSION = version;
  } // lib.optionalAttrs stdenv.cc.isClang {
    # Try to remove on next update.  generated code returns a NULL in a
    # function where an int is expected.
    NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
  };

  propagatedBuildInputs = [
    pyparsing
    numpy
    astropy
    cython
    numpy
    pyparsing
  ];

  # Upstream patches needed for the tests to pass
  # See https://github.com/astropy/pyregion/pull/157/
  patches = [
    (fetchpatch {
      url = "https://github.com/astropy/pyregion/pull/157/commits/082649730d353a0d0c0ee9619be1aa501aabba62.patch";
      hash = "sha256-4mHZt3S29ZfK+QKavm6DLBwVxGl/ga7W7GEcQ5ewxuo=";
    })
    (fetchpatch {
      url = "https://github.com/astropy/pyregion/pull/157/commits/c448a465dd56887979da62aec6138fc89bb37b19.patch";
      hash = "sha256-GEtvScmVbAdE4E5Xx0hNOPommvzcnJ3jNZpBmY3PbyE=";
    })
  nativeBuildInputs = [
    cython
    oldest-supported-numpy
    setuptools
    setuptools-scm
    wheel
  ];

  nativeBuildInputs = [ astropy-helpers cython ];

  nativeCheckInputs = [ pytestCheckHook pytest-astropy ];

  disabledTests = lib.optionals (!stdenv.hostPlatform.isDarwin) [
    # Skipping 2 tests because it's failing. Domain knowledge was unavailable on decision.
    # Error logs: https://gist.github.com/superherointj/3f616f784014eeb2e3039b0f4037e4e9
    "test_calculate_rotation_angle"
    "test_region"
  ];

  # Disable automatic update of the astropy-helper module
  postPatch = ''
    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
  '';

  # Tests must be run in the build directory
  preCheck = ''
    pushd build/lib.*
@@ -70,6 +65,7 @@ buildPythonPackage rec {
  '';

  meta = with lib; {
    changelog = "https://github.com/astropy/pyregion/blob/${version}/CHANGES.rst";
    description = "Python parser for ds9 region files";
    homepage = "https://github.com/astropy/pyregion";
    license = licenses.mit;