diff --git a/pkgs/development/python-modules/click-plugins/default.nix b/pkgs/development/python-modules/click-plugins/default.nix new file mode 100644 index 00000000000..3ae8537c6c0 --- /dev/null +++ b/pkgs/development/python-modules/click-plugins/default.nix @@ -0,0 +1,29 @@ +{ stdenv, buildPythonPackage, fetchPypi, + click, pytest +}: + +buildPythonPackage rec { + pname = "click-plugins"; + version = "1.0.3"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "1ifphgaw5mmcdnqd0qfnmrbm62q3k6p573aff4cxgpyjxmz5xk3s"; + }; + + propagatedBuildInputs = [ + click + ]; + + checkInputs = [ + pytest + ]; + + meta = with stdenv.lib; { + description = "An extension module for click to enable registering CLI commands"; + homepage = https://github.com/click-contrib/click-plugins; + license = licenses.bsd3; + maintainers = with maintainers; [ knedlsepp ]; + }; +} diff --git a/pkgs/development/python-modules/cligj/default.nix b/pkgs/development/python-modules/cligj/default.nix new file mode 100644 index 00000000000..91b289e2ede --- /dev/null +++ b/pkgs/development/python-modules/cligj/default.nix @@ -0,0 +1,33 @@ +{ stdenv, buildPythonPackage, fetchFromGitHub +, click, pytest, glibcLocales +}: + +buildPythonPackage rec { + pname = "cligj"; + version = "0.4.0"; + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "mapbox"; + repo = "cligj"; + rev = version; + sha256 = "0fclxagxv23v75yiypb29a8sja23dakhvmx3blmxyhg2sci92sx8"; + }; + + propagatedBuildInputs = [ + click + ]; + + checkInputs = [ pytest glibcLocales ]; + + checkPhase = '' + LC_ALL=en_US.utf-8 pytest tests + ''; + + meta = with stdenv.lib; { + description = "Click params for commmand line interfaces to GeoJSON"; + homepage = https://github.com/mapbox/cligj; + license = licenses.bsd3; + maintainers = with maintainers; [ knedlsepp ]; + }; +} diff --git a/pkgs/development/python-modules/descartes/default.nix b/pkgs/development/python-modules/descartes/default.nix new file mode 100644 index 00000000000..1407dd3d204 --- /dev/null +++ b/pkgs/development/python-modules/descartes/default.nix @@ -0,0 +1,26 @@ +{ stdenv, buildPythonPackage, fetchPypi, + matplotlib, shapely +}: + +buildPythonPackage rec { + pname = "descartes"; + version = "1.1.0"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "0nq36w9ylvfwmwn5qd9c8fsp2jzsqpmy4xcr6pzxcpmg8qhm0nhk"; + }; + + propagatedBuildInputs = [ + matplotlib + shapely + ]; + + meta = with stdenv.lib; { + description = "Python library to use Shapely or GeoJSON objects as matplotlib paths"; + homepage = https://bitbucket.org/sgillies/descartes/; + license = licenses.bsd3; + maintainers = with maintainers; [ knedlsepp ]; + }; +} diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix new file mode 100644 index 00000000000..42e8e423bdd --- /dev/null +++ b/pkgs/development/python-modules/fiona/default.nix @@ -0,0 +1,41 @@ +{ stdenv, buildPythonPackage, fetchPypi, + six, cligj, munch, click-plugins, enum34, pytest, nose, + gdal +}: + +buildPythonPackage rec { + pname = "Fiona"; + version = "1.7.9"; + name = "${pname}-${version}"; + + src = fetchPypi { + inherit pname version; + sha256 = "1fmdgpfnifaqfqwkfiwkpk19wmpi9avmh8a7jqylqi578jvp3fwi"; + }; + + buildInputs = [ + gdal + ]; + + propagatedBuildInputs = [ + six + cligj + munch + click-plugins + enum34 + ]; + + checkInputs = [ + pytest + nose + ]; + + doCheck = false; + + meta = with stdenv.lib; { + description = "OGR's neat, nimble, no-nonsense API for Python"; + homepage = http://toblerity.org/fiona/; + license = licenses.bsd3; + maintainers = with maintainers; [ knedlsepp ]; + }; +} diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix new file mode 100644 index 00000000000..f8f54e0e429 --- /dev/null +++ b/pkgs/development/python-modules/geopandas/default.nix @@ -0,0 +1,36 @@ +{ stdenv, buildPythonPackage, fetchFromGitHub +, pandas, shapely, fiona, descartes, pyproj +, pytest }: + +buildPythonPackage rec { + name = "geopandas-${version}"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "geopandas"; + repo = "geopandas"; + rev = "v${version}"; + sha256 = "0maafafr7sjjmlg2f19bizg06c8a5z5igmbcgq6kgmi7rklx8xxz"; + }; + + checkInputs = [ pytest ]; + + checkPhase = '' + py.test geopandas + ''; + + propagatedBuildInputs = [ + pandas + shapely + fiona + descartes + pyproj + ]; + + meta = with stdenv.lib; { + description = "Python geospatial data analysis framework"; + homepage = https://geopandas.org; + license = licenses.bsd3; + maintainers = with maintainers; [ knedlsepp ]; + }; +} 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 c1aa88b9808..9f200112560 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2926,6 +2926,8 @@ in { }; }; + click-plugins = callPackage ../development/python-modules/click-plugins {}; + click-threading = buildPythonPackage rec { version = "0.4.2"; name = "click-threading-${version}"; @@ -2953,6 +2955,8 @@ in { }; }; + cligj = callPackage ../development/python-modules/cligj { }; + clepy = buildPythonPackage rec { name = "clepy-0.3.20"; @@ -8711,6 +8715,8 @@ in { }; }); + descartes = callPackage ../development/python-modules/descartes { }; + distutils_extra = buildPythonPackage rec { name = "distutils-extra-${version}"; version = "2.39"; @@ -9602,6 +9608,8 @@ in { }; }; + fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; }; + flake8 = callPackage ../development/python-modules/flake8 { }; flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { }; @@ -10392,6 +10400,8 @@ in { }; + geopandas = callPackage ../development/python-modules/geopandas { }; + gevent-websocket = buildPythonPackage rec { name = "gevent-websocket-0.9.3"; @@ -20986,40 +20996,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 = '' - sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${pkgs.geos}/lib/libgeos_c.so'])|" 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"; - homepage = "https://pypi.python.org/pypi/Shapely/"; - }; - }; - - + shapely = callPackage ../development/python-modules/shapely { }; sopel = buildPythonPackage rec { name = "sopel-6.3.1";