diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix new file mode 100644 index 00000000000..8b8b06f9a2c --- /dev/null +++ b/pkgs/development/python-modules/shapely/default.nix @@ -0,0 +1,44 @@ +{ stdenv, buildPythonPackage, fetchPypi +, geos, glibcLocales, pytest, cython, sharedLibraryExtension +, numpy +}: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "Shapely"; + version = "1.5.15"; + + src = fetchPypi { + inherit pname version; + sha256 = "0lfqxb3kpdn0g9zzlhzg79yc8iyy4fpsk0p5nd80gar1mmhr8pg7"; + }; + + buildInputs = [ geos glibcLocales cython ]; + + checkInputs = [ pytest ]; + + propagatedBuildInputs = [ numpy ]; + + preConfigure = '' + export LANG="en_US.UTF-8"; + ''; + + patchPhase = let + libc = if stdenv.isDarwin then "libc.dylib" else "libc.so.6"; + in '' + sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${geos}/lib/libgeos_c${sharedLibraryExtension}'])|" shapely/geos.py + sed -i "s|free = load_dll('c').free|free = load_dll('c', fallbacks=['${stdenv.cc.libc}/lib/${stdenv.cc.libc}']).free|" shapely/geos.py + ''; + + # tests/test_voctorized fails because the vectorized extension is not + # available in when running tests + checkPhase = '' + py.test --ignore tests/test_vectorized.py + ''; + + meta = with stdenv.lib; { + description = "Geometric objects, predicates, and operations"; + maintainers = with maintainers; [ knedlsepp ]; + homepage = "https://pypi.python.org/pypi/Shapely/"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1b7c2746830..94dcfa32322 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -21665,44 +21665,7 @@ in { }; }; - shapely = buildPythonPackage rec { - name = "Shapely-${version}"; - version = "1.5.15"; - - src = pkgs.fetchurl { - url = "mirror://pypi/S/Shapely/${name}.tar.gz"; - sha256 = "0lfqxb3kpdn0g9zzlhzg79yc8iyy4fpsk0p5nd80gar1mmhr8pg7"; - }; - - buildInputs = with self; [ pkgs.geos pkgs.glibcLocales pytest cython ]; - - propagatedBuildInputs = with self; [ numpy ]; - - preConfigure = '' - export LANG="en_US.UTF-8"; - ''; - - patchPhase = let - libc = if stdenv.isDarwin then "libc.dylib" else "libc.so.6"; - in '' - sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${pkgs.geos}/lib/libgeos_c.${sharedLibraryExtension}'])|" shapely/geos.py - sed -i "s|free = load_dll('c').free|free = load_dll('c', fallbacks=['${stdenv.cc.libc}/lib/${libc}']).free|" shapely/geos.py - ''; - - # tests/test_voctorized fails because the vectorized extension is not - # available in when running tests - checkPhase = '' - py.test --ignore tests/test_vectorized.py - ''; - - meta = { - description = "Geometric objects, predicates, and operations"; - maintainers = with maintainers; [ knedlsepp ]; - homepage = "https://pypi.python.org/pypi/Shapely/"; - }; - }; - - + shapely = callPackage ../development/python-modules/shapely { }; sopel = buildPythonPackage rec { name = "sopel-6.3.1";