From e643a695d4fd67adfc4a629248cde57163f237a1 Mon Sep 17 00:00:00 2001 From: Bruno Vieira Date: Thu, 10 Jan 2019 15:12:29 +0000 Subject: [PATCH] Add ML Python packages --- pkgs/development/python-modules/generate.sh | 2 +- .../python-modules/pytorch/default.nix | 106 +++++ .../python-modules/requirements.nix | 436 ++++++++++++++++++ .../python-modules/requirements.txt | 10 +- .../python-modules/requirements_frozen.txt | 26 ++ 5 files changed, 578 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/pytorch/default.nix diff --git a/pkgs/development/python-modules/generate.sh b/pkgs/development/python-modules/generate.sh index aa41bcd..2aff17e 100755 --- a/pkgs/development/python-modules/generate.sh +++ b/pkgs/development/python-modules/generate.sh @@ -1,5 +1,5 @@ #! /usr/bin/env nix-shell -#! nix-shell -i bash -p glibcLocales python37 nix-prefetch-github pypi2nix +#! nix-shell -i bash -p glibcLocales python36 nix-prefetch-github pypi2nix #! nix-shell -I nixpkgs=../../.. export LANG=en_US.UTF-8 diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix new file mode 100644 index 0000000..281572e --- /dev/null +++ b/pkgs/development/python-modules/pytorch/default.nix @@ -0,0 +1,106 @@ +{ stdenv, fetchurl, buildPythonPackage, pythonOlder, + cudaSupport ? false, cudatoolkit ? null, cudnn ? null, + fetchFromGitHub, lib, numpy, pyyaml, cffi, typing, cmake, hypothesis, numactl, + linkFarm, symlinkJoin, + utillinux, which }: + +assert cudnn == null || cudatoolkit != null; +assert !cudaSupport || cudatoolkit != null; + +let + cudatoolkit_joined = symlinkJoin { + name = "${cudatoolkit.name}-unsplit"; + paths = [ cudatoolkit.out cudatoolkit.lib ]; + }; + + # Normally libcuda.so.1 is provided at runtime by nvidia-x11 via + # LD_LIBRARY_PATH=/run/opengl-driver/lib. We only use the stub + # libcuda.so from cudatoolkit for running tests, so that we don’t have + # to recompile pytorch on every update to nvidia-x11 or the kernel. + cudaStub = linkFarm "cuda-stub" [{ + name = "libcuda.so.1"; + path = "${cudatoolkit}/lib/stubs/libcuda.so"; + }]; + cudaStubEnv = lib.optionalString cudaSupport + "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} "; + +in buildPythonPackage rec { + version = "0.3.1"; + pname = "pytorch"; + + src = fetchFromGitHub { + owner = "pytorch"; + repo = "pytorch"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "076cpbig4sywn9vv674c0xdg832sdrd5pk1d0725pjkm436kpvlm"; + }; + + patches = + [ # Skips two tests that are only meant to run on multi GPUs + (fetchurl { + url = "https://github.com/pytorch/pytorch/commit/bfa666eb0deebac21b03486e26642fd70d66e478.patch"; + sha256 = "1fgblcj02gjc0y62svwc5gnml879q3x2z7m69c9gax79dpr37s9i"; + }) + ]; + + preConfigure = lib.optionalString cudaSupport '' + export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++ + '' + lib.optionalString (cudaSupport && cudnn != null) '' + export CUDNN_INCLUDE_DIR=${cudnn}/include + ''; + + preFixup = '' + function join_by { local IFS="$1"; shift; echo "$*"; } + function strip2 { + IFS=':' + read -ra RP <<< $(patchelf --print-rpath $1) + IFS=' ' + RP_NEW=$(join_by : ''${RP[@]:2}) + patchelf --set-rpath \$ORIGIN:''${RP_NEW} "$1" + } + + for f in $(find ''${out} -name 'libcaffe2*.so') + do + strip2 $f + done + ''; + + # Override the (weirdly) wrong version set by default. See + # https://github.com/NixOS/nixpkgs/pull/52437#issuecomment-449718038 + # https://github.com/pytorch/pytorch/blob/v1.0.0/setup.py#L267 + PYTORCH_BUILD_VERSION = version; + PYTORCH_BUILD_NUMBER = 0; + + # Suppress a weird warning in mkl-dnn, part of ideep in pytorch + # (upstream seems to have fixed this in the wrong place?) + # https://github.com/intel/mkl-dnn/commit/8134d346cdb7fe1695a2aa55771071d455fae0bc + NIX_CFLAGS_COMPILE = lib.optionals (numpy.blasImplementation == "mkl") [ "-Wno-error=array-bounds" ]; + + buildInputs = [ + cmake + numpy.blas + utillinux + which + ] ++ lib.optionals cudaSupport [ cudatoolkit_joined cudnn ] + ++ lib.optionals stdenv.isLinux [ numactl ]; + + propagatedBuildInputs = [ + cffi + numpy + pyyaml + ] ++ lib.optional (pythonOlder "3.5") typing; + + checkInputs = [ hypothesis ]; + checkPhase = '' + ${cudaStubEnv}python test/run_test.py --exclude dataloader sparse torch utils thd_distributed distributed cpp_extensions + ''; + + meta = { + description = "Open source, prototype-to-production deep learning platform"; + homepage = https://pytorch.org/; + license = lib.licenses.bsd3; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ teh thoughtpolice ]; + }; +} diff --git a/pkgs/development/python-modules/requirements.nix b/pkgs/development/python-modules/requirements.nix index b5c7838..82a5d68 100644 --- a/pkgs/development/python-modules/requirements.nix +++ b/pkgs/development/python-modules/requirements.nix @@ -75,6 +75,21 @@ let generated = self: { + "Click" = python.mkDerivation { + name = "Click-7.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/f8/5c/f60e9d8a1e77005f664b76ff8aeaee5bc05d0a91798afd7f53fc998dbc47/Click-7.0.tar.gz"; sha256 = "5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://palletsprojects.com/p/click/"; + license = licenses.bsdOriginal; + description = "Composable command line interface toolkit"; + }; + }; + + + "EZGmail" = python.mkDerivation { name = "EZGmail-0.0.4"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/d4/21/52c303c69cafc01c7813204018fea0fe08012dd0151348233120a5dd5193/EZGmail-0.0.4.tar.gz"; sha256 = "18df667c47abc99a17da0da02e820e2a8850192983090539916731c459b79056"; }; @@ -93,6 +108,90 @@ let + "Flask" = python.mkDerivation { + name = "Flask-1.0.2"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/4b/12/c1fbf4971fda0e4de05565694c9f0c92646223cff53f15b6eb248a310a62/Flask-1.0.2.tar.gz"; sha256 = "2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."Click" + self."Jinja2" + self."Werkzeug" + self."itsdangerous" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://www.palletsprojects.com/p/flask/"; + license = licenses.bsdOriginal; + description = "A simple framework for building complex web applications."; + }; + }; + + + + "Flask-Compress" = python.mkDerivation { + name = "Flask-Compress-1.4.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/0e/2a/378bd072928f6d92fd8c417d66b00c757dc361c0405a46a0134de6fd323d/Flask-Compress-1.4.0.tar.gz"; sha256 = "468693f4ddd11ac6a41bca4eb5f94b071b763256d54136f77957cfee635badb3"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."Flask" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://libwilliam.github.io/flask-compress/"; + license = licenses.mit; + description = "Compress responses in your Flask app with gzip."; + }; + }; + + + + "Jinja2" = python.mkDerivation { + name = "Jinja2-2.10"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/56/e6/332789f295cf22308386cf5bbd1f4e00ed11484299c5d7383378cf48ba47/Jinja2-2.10.tar.gz"; sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."MarkupSafe" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://jinja.pocoo.org/"; + license = licenses.bsdOriginal; + description = "A small but fast and easy to use stand-alone template engine written in pure python."; + }; + }; + + + + "MarkupSafe" = python.mkDerivation { + name = "MarkupSafe-1.1.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/ac/7e/1b4c2e05809a4414ebce0892fe1e32c14ace86ca7d50c70f00979ca9b3a3/MarkupSafe-1.1.0.tar.gz"; sha256 = "4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://www.palletsprojects.com/p/markupsafe/"; + license = licenses.bsdOriginal; + description = "Safely add untrusted strings to HTML/XML markup."; + }; + }; + + + + "Werkzeug" = python.mkDerivation { + name = "Werkzeug-0.14.1"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/9f/08/a3bb1c045ec602dc680906fc0261c267bed6b3bb4609430aff92c3888ec8/Werkzeug-0.14.1.tar.gz"; sha256 = "c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://www.palletsprojects.org/p/werkzeug/"; + license = licenses.bsdOriginal; + description = "The comprehensive WSGI web application library."; + }; + }; + + + "cachetools" = python.mkDerivation { name = "cachetools-3.0.0"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/e6/28/7cde8e73835ff48b4f35b2d93a509575f7bc02b7d614ada71b820c8d9233/cachetools-3.0.0.tar.gz"; sha256 = "4621965b0d9d4c82a79a29edbad19946f5e7702df4afae7d1ed2df951559a8cc"; }; @@ -108,6 +207,120 @@ let + "certifi" = python.mkDerivation { + name = "certifi-2018.11.29"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/55/54/3ce77783acba5979ce16674fc98b1920d00b01d337cfaaf5db22543505ed/certifi-2018.11.29.tar.gz"; sha256 = "47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://certifi.io/"; + license = licenses.mpl20; + description = "Python package for providing Mozilla's CA Bundle."; + }; + }; + + + + "chardet" = python.mkDerivation { + name = "chardet-3.0.4"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d/chardet-3.0.4.tar.gz"; sha256 = "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://github.com/chardet/chardet"; + license = licenses.lgpl2; + description = "Universal encoding detector for Python 2 and 3"; + }; + }; + + + + "dash" = python.mkDerivation { + name = "dash-0.35.1"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/d0/9e/0c2dde6f2c5e245f0e1a697c821b59715febda09df42e5d850b9ee6d7710/dash-0.35.1.tar.gz"; sha256 = "a312169d4d75290f40991f680377ee131c5b7c02c5755ebfbcd1753bc6999b2c"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."Flask" + self."Flask-Compress" + self."dash-renderer" + self."plotly" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://plot.ly/dash"; + license = licenses.mit; + description = "A Python framework for building reactive web-apps. Developed by Plotly."; + }; + }; + + + + "dash-core-components" = python.mkDerivation { + name = "dash-core-components-0.42.1"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/c0/d3/2d7c406fb094698a09f09c051f5e5160dc0887c0cc5b12a553790955025d/dash_core_components-0.42.1.tar.gz"; sha256 = "36c6fc2e4e452c37021ff067c6df033e749561fafd95af9500823d1f470b5995"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."dash" + ]; + meta = with pkgs.stdenv.lib; { + homepage = ""; + license = licenses.mit; + description = "Dash UI core component suite"; + }; + }; + + + + "dash-html-components" = python.mkDerivation { + name = "dash-html-components-0.13.4"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/b0/31/1b796b76ee5e2b2264903ecb44b34663e588efcd0b7d3bbb14849443aa5c/dash_html_components-0.13.4.tar.gz"; sha256 = "e5d6247887741bf49038eae82f716be6a8b16b7c7b0b8e4a769bb4608feb0b8b"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."dash" + ]; + meta = with pkgs.stdenv.lib; { + homepage = ""; + license = licenses.mit; + description = "Dash UI HTML component suite"; + }; + }; + + + + "dash-renderer" = python.mkDerivation { + name = "dash-renderer-0.16.1"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/16/10/4b87bfb7fda8a1974187f7d754222c21daad98b54b957a5253232ae955d4/dash_renderer-0.16.1.tar.gz"; sha256 = "6a2e4d6410e1c4a9577a0aca27b95a1ac77024aae0c8b9c271a8f9518c697b89"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = ""; + license = licenses.mit; + description = "Front-end component renderer for dash"; + }; + }; + + + + "decorator" = python.mkDerivation { + name = "decorator-4.3.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/6f/24/15a229626c775aae5806312f6bf1e2a73785be3402c0acdec5dbddd8c11e/decorator-4.3.0.tar.gz"; sha256 = "c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://github.com/micheles/decorator"; + license = licenses.bsdOriginal; + description = "Better living through Python with decorators"; + }; + }; + + + "google-api-python-client" = python.mkDerivation { name = "google-api-python-client-1.7.7"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/e0/91/0e6a42ea3e0898a75d819a9690c8c8d0eecd31275d8a85503c8fc33949f2/google-api-python-client-1.7.7.tar.gz"; sha256 = "9106e7d09d80f59a9472a91edd85c2d6ad420aef28c9440ce1691b4a19ba9ada"; }; @@ -182,6 +395,103 @@ let + "idna" = python.mkDerivation { + name = "idna-2.8"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/ad/13/eb56951b6f7950cadb579ca166e448ba77f9d24efc03edd7e55fa57d04b7/idna-2.8.tar.gz"; sha256 = "c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://github.com/kjd/idna"; + license = licenses.bsdOriginal; + description = "Internationalized Domain Names in Applications (IDNA)"; + }; + }; + + + + "ipython-genutils" = python.mkDerivation { + name = "ipython-genutils-0.2.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz"; sha256 = "eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://ipython.org"; + license = licenses.bsdOriginal; + description = "Vestigial utilities from IPython"; + }; + }; + + + + "itsdangerous" = python.mkDerivation { + name = "itsdangerous-1.1.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/68/1a/f27de07a8a304ad5fa817bbe383d1238ac4396da447fa11ed937039fa04b/itsdangerous-1.1.0.tar.gz"; sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://palletsprojects.com/p/itsdangerous/"; + license = licenses.bsdOriginal; + description = "Various helpers to pass data to untrusted environments and back."; + }; + }; + + + + "jsonschema" = python.mkDerivation { + name = "jsonschema-2.6.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz"; sha256 = "6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://github.com/Julian/jsonschema"; + license = licenses.mit; + description = "An implementation of JSON Schema validation for Python"; + }; + }; + + + + "jupyter-core" = python.mkDerivation { + name = "jupyter-core-4.4.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/b6/2d/2804f4de3a95583f65e5dcb4d7c8c7183124882323758996e867f47e72af/jupyter_core-4.4.0.tar.gz"; sha256 = "ba70754aa680300306c699790128f6fbd8c306ee5927976cbe48adacf240c0b7"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."traitlets" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://jupyter.org"; + license = licenses.bsdOriginal; + description = "Jupyter core package. A base package on which Jupyter projects rely."; + }; + }; + + + + "nbformat" = python.mkDerivation { + name = "nbformat-4.4.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz"; sha256 = "f7494ef0df60766b7cabe0a3651556345a963b74dbc16bc7c18479041170d402"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."ipython-genutils" + self."jsonschema" + self."jupyter-core" + self."traitlets" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://jupyter.org"; + license = licenses.bsdOriginal; + description = "The Jupyter Notebook format"; + }; + }; + + + "oauth2client" = python.mkDerivation { name = "oauth2client-4.1.3"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/a6/7b/17244b1083e8e604bf154cf9b716aecd6388acd656dd01893d0d244c94d9/oauth2client-4.1.3.tar.gz"; sha256 = "d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6"; }; @@ -203,6 +513,28 @@ let + "plotly" = python.mkDerivation { + name = "plotly-3.5.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/f3/ea/39005c4d4983ae20fc75d98c5fa9d60cf5587d092209321d2a6fe75fa85c/plotly-3.5.0.tar.gz"; sha256 = "0877cafd49bae595615390437c20319f37c001cb9a17d3bc0c7741697952f731"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."decorator" + self."nbformat" + self."pytz" + self."requests" + self."retrying" + self."six" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://plot.ly/python/"; + license = licenses.mit; + description = "Python plotting library for collaborative, interactive, publication-quality graphs."; + }; + }; + + + "pyasn1" = python.mkDerivation { name = "pyasn1-0.4.5"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/46/60/b7e32f6ff481b8a1f6c8f02b0fd9b693d1c92ddd2efb038ec050d99a7245/pyasn1-0.4.5.tar.gz"; sha256 = "da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7"; }; @@ -235,6 +567,73 @@ let + "pyroaring" = python.mkDerivation { + name = "pyroaring-0.2.6"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/c0/64/c9f6a46aa52f05681a3a57bfadaec71d06d5c8d958b86f053eeca7bacbeb/pyroaring-0.2.6.tar.gz"; sha256 = "e065a765b51725b39c9efe5cf615e587e23582a4ad236f177ed12992325b2308"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://github.com/Ezibenroc/PyRoaringBitMap"; + license = licenses.mit; + description = "Fast and lightweight set for unsigned 32 bits integers."; + }; + }; + + + + "pytz" = python.mkDerivation { + name = "pytz-2018.9"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/af/be/6c59e30e208a5f28da85751b93ec7b97e4612268bb054d0dff396e758a90/pytz-2018.9.tar.gz"; sha256 = "d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://pythonhosted.org/pytz"; + license = licenses.mit; + description = "World timezone definitions, modern and historical"; + }; + }; + + + + "requests" = python.mkDerivation { + name = "requests-2.21.0"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/52/2c/514e4ac25da2b08ca5a464c50463682126385c4272c18193876e91f4bc38/requests-2.21.0.tar.gz"; sha256 = "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."certifi" + self."chardet" + self."idna" + self."urllib3" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://python-requests.org"; + license = licenses.asl20; + description = "Python HTTP for Humans."; + }; + }; + + + + "retrying" = python.mkDerivation { + name = "retrying-1.3.3"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/44/ef/beae4b4ef80902f22e3af073397f079c96969c69b2c7d52a57ea9ae61c9d/retrying-1.3.3.tar.gz"; sha256 = "08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."six" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://github.com/rholder/retrying"; + license = licenses.asl20; + description = "Retrying"; + }; + }; + + + "rsa" = python.mkDerivation { name = "rsa-4.0"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/cb/d0/8f99b91432a60ca4b1cd478fd0bdf28c1901c58e3a9f14f4ba3dba86b57f/rsa-4.0.tar.gz"; sha256 = "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487"; }; @@ -267,6 +666,25 @@ let + "traitlets" = python.mkDerivation { + name = "traitlets-4.3.2"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz"; sha256 = "9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."decorator" + self."ipython-genutils" + self."six" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "http://ipython.org"; + license = licenses.bsdOriginal; + description = "Traitlets Python config system"; + }; + }; + + + "uritemplate" = python.mkDerivation { name = "uritemplate-3.0.0"; src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/cd/db/f7b98cdc3f81513fb25d3cbe2501d621882ee81150b745cdd1363278c10a/uritemplate-3.0.0.tar.gz"; sha256 = "c02643cebe23fc8adb5e6becffe201185bf06c40bda5c0b4028a93f1527d011d"; }; @@ -280,6 +698,24 @@ let }; }; + + + "urllib3" = python.mkDerivation { + name = "urllib3-1.24.1"; + src = pkgs.fetchurl { url = "https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz"; sha256 = "de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22"; }; + doCheck = commonDoCheck; + buildInputs = commonBuildInputs; + propagatedBuildInputs = [ + self."certifi" + self."idna" + ]; + meta = with pkgs.stdenv.lib; { + homepage = "https://urllib3.readthedocs.io/"; + license = licenses.mit; + description = "HTTP library with thread-safe connection pooling, file post, and more."; + }; + }; + }; localOverridesFile = ./requirements_override.nix; overrides = import localOverridesFile { inherit pkgs python; }; diff --git a/pkgs/development/python-modules/requirements.txt b/pkgs/development/python-modules/requirements.txt index 13ed56e..d511aa4 100644 --- a/pkgs/development/python-modules/requirements.txt +++ b/pkgs/development/python-modules/requirements.txt @@ -1 +1,9 @@ -EZGmail \ No newline at end of file +EZGmail +#appnope==0.1.0 +dash==0.35.1 +dash-core-components==0.42.1 +dash-html-components==0.13.4 +dash-renderer==0.16.1 +MarkupSafe==1.1.0 +pyroaring==0.2.6 +#pytorch==0.3.1 diff --git a/pkgs/development/python-modules/requirements_frozen.txt b/pkgs/development/python-modules/requirements_frozen.txt index dce90e1..0d91254 100644 --- a/pkgs/development/python-modules/requirements_frozen.txt +++ b/pkgs/development/python-modules/requirements_frozen.txt @@ -1,15 +1,41 @@ appdirs==1.4.3 cachetools==3.0.0 +certifi==2018.11.29 +chardet==3.0.4 +Click==7.0 +dash==0.35.1 +dash-core-components==0.42.1 +dash-html-components==0.13.4 +dash-renderer==0.16.1 +decorator==4.3.0 EZGmail==0.0.4 +Flask==1.0.2 +Flask-Compress==1.4.0 google-api-python-client==1.7.7 google-auth==1.6.2 google-auth-httplib2==0.0.3 httplib2==0.12.0 +idna==2.8 +ipython-genutils==0.2.0 +itsdangerous==1.1.0 +Jinja2==2.10 +jsonschema==2.6.0 +jupyter-core==4.4.0 +MarkupSafe==1.1.0 +nbformat==4.4.0 oauth2client==4.1.3 packaging==16.8 +plotly==3.5.0 pyasn1==0.4.5 pyasn1-modules==0.2.3 pyparsing==2.2.0 +pyroaring==0.2.6 +pytz==2018.9 +requests==2.21.0 +retrying==1.3.3 rsa==4.0 six==1.12.0 +traitlets==4.3.2 uritemplate==3.0.0 +urllib3==1.24.1 +Werkzeug==0.14.1