Merge master into staging-next

This commit is contained in:
Frederik Rietdijk
2019-11-20 10:01:49 +01:00
236 changed files with 2532 additions and 2637 deletions

View File

@@ -0,0 +1,188 @@
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, fetchpatch
, alembic
, cached-property
, configparser
, colorlog
, croniter
, dill
, flask
, flask-appbuilder
, flask-admin
, flask-caching
, flask_login
, flask-swagger
, flask_wtf
, flask-bcrypt
, funcsigs
, future
, GitPython
, gunicorn
, iso8601
, json-merge-patch
, jinja2
, ldap3
, lxml
, lazy-object-proxy
, markdown
, pandas
, pendulum
, psutil
, pygments
, python-daemon
, python-dateutil
, requests
, setproctitle
, snakebite
, sqlalchemy
, tabulate
, tenacity
, termcolor
, text-unidecode
, thrift
, tzlocal
, unicodecsv
, werkzeug
, zope_deprecation
, enum34
, typing
, nose
, python
, isPy3k
}:
buildPythonPackage rec {
pname = "apache-airflow";
version = "1.10.5";
disabled = (!isPy3k);
src = fetchFromGitHub rec {
owner = "apache";
repo = "airflow";
rev = version;
sha256 = "14fmhfwx977c9jdb2kgm93i6acx43l45ggj30rb37r68pzpb6l6h";
};
patches = [
# Not yet accepted: https://github.com/apache/airflow/pull/6562
(fetchpatch {
name = "avoid-warning-from-abc.collections";
url = https://patch-diff.githubusercontent.com/raw/apache/airflow/pull/6562.patch;
sha256 = "0swpay1qlb7f9kgc56631s1qd9k82w4nw2ggvkm7jvxwf056k61z";
})
# Not yet accepted: https://github.com/apache/airflow/pull/6561
(fetchpatch {
name = "pendulum2-compatibility";
url = https://patch-diff.githubusercontent.com/raw/apache/airflow/pull/6561.patch;
sha256 = "17hw8qyd4zxvib9zwpbn32p99vmrdz294r31gnsbkkcl2y6h9knk";
})
];
propagatedBuildInputs = [
alembic
cached-property
colorlog
configparser
croniter
dill
flask
flask-admin
flask-appbuilder
flask-bcrypt
flask-caching
flask_login
flask-swagger
flask_wtf
funcsigs
future
GitPython
gunicorn
iso8601
json-merge-patch
jinja2
ldap3
lxml
lazy-object-proxy
markdown
pandas
pendulum
psutil
pygments
python-daemon
python-dateutil
requests
setproctitle
sqlalchemy
tabulate
tenacity
termcolor
text-unidecode
thrift
tzlocal
unicodecsv
werkzeug
zope_deprecation
];
checkInputs = [
snakebite
nose
];
postPatch = ''
substituteInPlace setup.py \
--replace "flask>=1.1.0, <2.0" "flask" \
--replace "flask-caching>=1.3.3, <1.4.0" "flask-caching" \
--replace "flask-appbuilder>=1.12.5, <2.0.0" "flask-appbuilder" \
--replace "pendulum==1.4.4" "pendulum" \
--replace "cached_property~=1.5" "cached_property" \
--replace "dill>=0.2.2, <0.3" "dill" \
--replace "configparser>=3.5.0, <3.6.0" "configparser" \
--replace "jinja2>=2.7.3, <=2.10.0" "jinja2" \
--replace "funcsigs==1.0.0" "funcsigs" \
--replace "flask-swagger==0.2.13" "flask-swagger" \
--replace "python-daemon>=2.1.1, <2.2" "python-daemon" \
--replace "alembic>=0.9, <1.0" "alembic" \
--replace "markdown>=2.5.2, <3.0" "markdown" \
--replace "future>=0.16.0, <0.17" "future" \
--replace "tenacity==4.12.0" "tenacity" \
--replace "text-unidecode==1.2" "text-unidecode" \
--replace "tzlocal>=1.4,<2.0.0" "tzlocal" \
--replace "sqlalchemy~=1.3" "sqlalchemy" \
--replace "werkzeug>=0.14.1, <0.15.0" "werkzeug"
# dumb-init is only needed for CI and Docker, not relevant for NixOS.
substituteInPlace setup.py \
--replace "'dumb-init>=1.2.2'," ""
substituteInPlace tests/core.py \
--replace "/bin/bash" "${stdenv.shell}"
'';
checkPhase = ''
export HOME=$(mktemp -d)
export AIRFLOW_HOME=$HOME
export AIRFLOW__CORE__UNIT_TEST_MODE=True
export AIRFLOW_DB="$HOME/airflow.db"
export PATH=$PATH:$out/bin
airflow version
airflow initdb
airflow resetdb -y
nosetests tests.core.CoreTest
## all tests
# nosetests --cover-package=airflow
'';
meta = with lib; {
description = "Programmatically author, schedule and monitor data pipelines";
homepage = http://airflow.apache.org/;
license = licenses.asl20;
maintainers = [ maintainers.costrouc maintainers.ingenieroariel ];
};
}

View File

@@ -0,0 +1,36 @@
{ lib
, buildPythonPackage
, fetchPypi
, pyyaml
, prance
, marshmallow
, pytestCheckHook
, mock
, openapi-spec-validator
}:
buildPythonPackage rec {
pname = "apispec";
version = "3.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "0rr32z9hbf8w4w1fs5gj2v0ixcq2vq7a3wssrlxagi5ii7ygap7y";
};
checkInputs = [
pyyaml
prance
openapi-spec-validator
marshmallow
mock
pytestCheckHook
];
meta = with lib; {
description = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification";
homepage = https://github.com/marshmallow-code/apispec;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -1,19 +0,0 @@
{ stdenv, buildPythonPackage, fetchPypi, pytestrunner, pytest }:
buildPythonPackage rec {
pname = "Cerberus";
version = "1.3.1";
src = fetchPypi {
inherit pname version;
sha256 = "0be48fc0dc84f83202a5309c0aa17cd5393e70731a1698a50d118b762fbe6875";
};
checkInputs = [ pytestrunner pytest ];
meta = with stdenv.lib; {
homepage = http://python-cerberus.org/;
description = "Lightweight, extensible schema and data validation tool for Python dictionaries";
license = licenses.mit;
};
}

View File

@@ -9,6 +9,10 @@
, pyyaml
, unicodecsv
, cmd2
, pytest
, mock
, testtools
, fixtures
}:
buildPythonPackage rec {
@@ -31,10 +35,17 @@ buildPythonPackage rec {
unicodecsv
];
# test dependencies are complex
# and would require about 20 packages
# to be added
doCheck = false;
# remove version constraints
postPatch = ''
sed -i '/cmd2/c\cmd2' requirements.txt
'';
checkInputs = [ fixtures mock pytest testtools ];
# add some tests
checkPhase = ''
pytest cliff/tests/test_{utils,app,command,help,lister}.py \
-k 'not interactive_mode'
'';
meta = with lib; {
description = "Command Line Interface Formulation Framework";

View File

@@ -6,11 +6,11 @@
}:
buildPythonPackage rec {
pname = "cmd2";
version = "0.9.19";
version = "0.9.20";
src = fetchPypi {
inherit pname version;
sha256 = "c81284083d993af18b8fef57d89d854d49d051d4c2c8a8e12d0281e369ac3682";
sha256 = "0id8247m05xi26xbzg7jj1gcmy91p77wpbbj74v5543z2aplk8qv";
};
LC_ALL="en_US.UTF-8";

View File

@@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "configshell";
version = "1.1.fb25";
version = "1.1.27";
src = fetchFromGitHub {
owner = "open-iscsi";
repo ="${pname}-fb";
rev = "v${version}";
sha256 = "0zpr2n4105qqsklyfyr9lzl1rhxjcv0mnsl57hgk0m763w6na90h";
sha256 = "1nldzq3097xqgzd8qxv36ydvx6vj2crwanihz53k46is0myrwcnn";
};
propagatedBuildInputs = [ pyparsing six urwid ];

View File

@@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchPypi
, python-dateutil
, pytest
, pytz
}:
buildPythonPackage rec {
pname = "croniter";
version = "0.3.30";
src = fetchPypi {
inherit pname version;
sha256 = "538adeb3a7f7816c3cdec6db974c441620d764c25ff4ed0146ee7296b8a50590";
};
propagatedBuildInputs = [
python-dateutil
];
checkInputs = [
pytest
pytz
];
checkPhase = ''
pytest src/croniter
'';
meta = with lib; {
description = "croniter provides iteration for datetime object with cron like format";
homepage = http://github.com/kiorky/croniter;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -1,73 +0,0 @@
{ stdenv
, buildPythonPackage
, fetchPypi
, boto3
, click
, certifi
, requests-aws4auth
, voluptuous
, pyyaml
, elasticsearch
, nosexcover
, coverage
, nose
, mock
, funcsigs
} :
buildPythonPackage rec {
pname = "elasticsearch-curator";
version = "5.8.1";
src = fetchPypi {
inherit pname version;
sha256 = "f0eec9ad043a30bc2e2232637111960139a1bda38232241bdd2f0c253a3584df";
};
# The test hangs so we disable it.
doCheck = false;
propagatedBuildInputs = [
click
certifi
requests-aws4auth
voluptuous
pyyaml
elasticsearch
boto3
];
checkInputs = [
nosexcover
coverage
nose
mock
funcsigs
];
postPatch = ''
sed -i s/pyyaml==3.12/pyyaml==${pyyaml.version}/ setup.cfg setup.py
'';
meta = with stdenv.lib; {
homepage = https://github.com/elastic/curator;
description = "Curate, or manage, your Elasticsearch indices and snapshots";
license = licenses.asl20;
longDescription = ''
Elasticsearch Curator helps you curate, or manage, your Elasticsearch
indices and snapshots by:
* Obtaining the full list of indices (or snapshots) from the cluster, as the
actionable list
* Iterate through a list of user-defined filters to progressively remove
indices (or snapshots) from this actionable list as needed.
* Perform various actions on the items which remain in the actionable list.
'';
maintainers = with maintainers; [ basvandijk ];
# https://github.com/elastic/curator/pull/1280
broken = versionAtLeast click.version "7.0";
};
}

View File

@@ -0,0 +1,71 @@
{ lib
, buildPythonPackage
, fetchPypi
, nose
, pillow
, mongoengine
, pymongo
, wtf-peewee
, sqlalchemy
, sqlalchemy-citext
, flask-mongoengine
, flask_sqlalchemy
, flask-babelex
, shapely
, geoalchemy2
, psycopg2
, flask
, wtforms
, isPy27
, enum34
}:
buildPythonPackage rec {
pname = "flask-admin";
version = "1.5.3";
src = fetchPypi {
pname = "Flask-Admin";
inherit version;
sha256 = "ca0be6ec11a6913b73f656c65c444ae5be416c57c75638dd3199376ce6bc7422";
};
checkInputs = [
nose
pillow
mongoengine
pymongo
wtf-peewee
sqlalchemy
sqlalchemy-citext
flask-mongoengine
flask_sqlalchemy
flask-babelex
shapely
geoalchemy2
psycopg2
];
propagatedBuildInputs = [
flask
wtforms
] ++ lib.optionals isPy27 [ enum34 ];
checkPhase = ''
# disable tests that require mongodb, postresql
nosetests \
-e "mongoengine" \
-e "pymongo" \
-e "test_form_upload" \
-e "test_postgres" \
-e "geoa" \
flask_admin/tests
'';
meta = with lib; {
description = "Simple and extensible admin interface framework for Flask";
homepage = https://github.com/flask-admin/flask-admin/;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,80 @@
{ lib
, buildPythonPackage
, fetchPypi
, nose
, apispec
, colorama
, click
, flask
, flask-babel
, flask_login
, flask-openid
, flask_sqlalchemy
, flask_wtf
, flask-jwt-extended
, jsonschema
, marshmallow
, marshmallow-enum
, marshmallow-sqlalchemy
, python-dateutil
, prison
, pyjwt
, pyyaml
, sqlalchemy-utils
}:
buildPythonPackage rec {
pname = "flask-appbuilder";
version = "2.1.6";
src = fetchPypi {
pname = "Flask-AppBuilder";
inherit version;
sha256 = "a37d7d6a62407a2e0975af5305c795f2fb5c06ecc34e3cf64659d083b1b2dd5f";
};
checkInputs = [
nose
];
propagatedBuildInputs = [
apispec
colorama
click
flask
flask-babel
flask_login
flask-openid
flask_sqlalchemy
flask_wtf
flask-jwt-extended
jsonschema
marshmallow
marshmallow-enum
marshmallow-sqlalchemy
python-dateutil
prison
pyjwt
sqlalchemy-utils
pyyaml
];
postPatch = ''
substituteInPlace setup.py \
--replace "jsonschema>=3.0.1<4" "jsonschema" \
--replace "marshmallow>=2.18.0,<2.20" "marshmallow" \
--replace "PyJWT>=1.7.1" "PyJWT" \
--replace "Flask-SQLAlchemy>=2.4,<3" "Flask-SQLAlchemy" \
--replace "Flask-JWT-Extended>=3.18,<4" "Flask-JWT-Extended"
'';
# majority of tests require network access or mongo
doCheck = false;
meta = with lib; {
description = "Simple and rapid application development framework, built on top of Flask";
homepage = https://github.com/dpgaspar/flask-appbuilder/;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchPypi
, flask
, Babel
, speaklater
, jinja2
, pytest
}:
buildPythonPackage rec {
pname = "flask-babelex";
version = "0.9.3";
src = fetchPypi {
inherit version;
pname = "Flask-BabelEx";
sha256 = "cf79cdedb5ce860166120136b0e059e9d97b8df07a3bc2411f6243de04b754b4";
};
propagatedBuildInputs = [
flask
Babel
speaklater
jinja2
];
checkInputs = [
pytest
];
checkPhase = ''
# Disabled 3 tests failing due to string representations of dates:
# Like "12. April 2010 um 15:46:00 MESZ" != 12. "April 2010 15:46:00 MESZ"
pytest tests/tests.py -k "not test_init_app \
and not test_custom_locale_selector \
and not test_basics"
'';
meta = with lib; {
description = "Adds i18n/l10n support to Flask applications";
homepage = http://github.com/mrjoes/flask-babelex;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,35 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, flask
, bcrypt
, python
}:
buildPythonPackage rec {
pname = "flask-bcrypt";
version = "0.7.1";
src = fetchFromGitHub {
owner = "maxcountryman";
repo = pname;
rev = version;
sha256 = "0036gag3nj7fzib23lbbpwhlrn1s0kkrfwk5pd90y4cjcfqh8z9x";
};
propagatedBuildInputs = [
flask
bcrypt
];
checkPhase = ''
${python.interpreter} test_bcrypt.py
'';
meta = with lib; {
description = "Brcrypt hashing for Flask";
homepage = https://github.com/maxcountryman/flask-bcrypt;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, flask
, flask_wtf
, mongoengine
, six
, nose
, rednose
, coverage
}:
buildPythonPackage rec {
pname = "flask-mongoengine";
version = "0.9.5";
src = fetchFromGitHub {
owner = "MongoEngine";
repo = pname;
rev = "v${version}";
sha256 = "05hfddf1dm594wnjyqhj0zmjfsf1kpmx1frjwhypgzx4hf62qcmr";
};
propagatedBuildInputs = [
flask
flask_wtf
mongoengine
six
];
# they set test requirements to setup_requirements...
buildInputs = [
nose
rednose
coverage
];
# tests require working mongodb connection
doCheck = false;
meta = with lib; {
description = "Flask-MongoEngine is a Flask extension that provides integration with MongoEngine and WTF model forms";
homepage = https://github.com/mongoengine/flask-mongoengine;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, fetchPypi
, flask
, python3-openid
, isPy3k
}:
buildPythonPackage rec {
pname = "flask-openid";
version = "1.2.5";
disable = !isPy3k;
src = fetchPypi {
pname = "Flask-OpenID";
inherit version;
sha256 = "5a8ffe1c8c0ad1cc1f5030e1223ea27f8861ee0215a2a58a528cc61379e5ccab";
};
propagatedBuildInputs = [
flask
python3-openid
];
# no tests for repo...
doCheck = false;
meta = with lib; {
description = "OpenID support for Flask";
homepage = http://github.com/mitsuhiko/flask-openid/;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,29 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, setuptools
, numpy, scipy, gpy, emcee, nose }:
buildPythonPackage rec {
pname = "GPyOpt";
version = "unstable-2019-09-25";
src = fetchFromGitHub {
repo = pname;
owner = "SheffieldML";
rev = "249b8ff29c52c12ed867f145a627d529372022d8";
sha256 = "1ywaw1kpdr7dv4s4cr7afmci86sw7w61178gs45b0lq08652zdlb";
};
doCheck = false; # requires several packages not available in Nix
checkInputs = [ nose ];
checkPhase = "nosetests -v GPyOpt/testing";
propagatedBuildInputs = [ setuptools numpy scipy gpy emcee ];
meta = with stdenv.lib; {
description = "Bayesian optimization toolbox in Python";
homepage = https://sheffieldml.github.io/GPyOpt;
license = licenses.bsd3;
maintainers = with maintainers; [ bcdarwin ];
};
}

View File

@@ -0,0 +1,32 @@
{ lib
, buildPythonPackage
, fetchPypi
, fetchpatch
}:
buildPythonPackage rec {
pname = "json-merge-patch";
version = "0.2";
src = fetchPypi {
inherit pname version;
sha256 = "09898b6d427c08754e2a97c709cf2dfd7e28bd10c5683a538914975eab778d39";
};
patches = [
# This prevented tests from running (was using a relative import)
# https://github.com/OpenDataServices/json-merge-patch/pull/1
(fetchpatch {
name = "fully-qualified-json-merge-patch-import-on-tests";
url = https://patch-diff.githubusercontent.com/raw/OpenDataServices/json-merge-patch/pull/1.patch;
sha256 = "1k6xsrxsmz03nwcqsf4gf0zsfnl2r20n83npic8z6bqlpl4lidl4";
})
];
meta = with lib; {
description = "JSON Merge Patch library";
homepage = https://github.com/open-contracting/json-merge-patch;
license = licenses.bsd3;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,42 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, marshmallow
, pytestCheckHook
, isPy27
, enum34
, pytest-flake8
}:
buildPythonPackage rec {
pname = "marshmallow-enum";
version = "1.5.1";
src = fetchFromGitHub {
owner = "justanr";
repo = "marshmallow_enum";
rev = "v${version}";
sha256 = "1ihrcmyfjabivg6hc44i59hnw5ijlg1byv3zs1rqxfynp8xr7398";
};
propagatedBuildInputs = [
marshmallow
] ++ lib.optionals isPy27 [ enum34 ];
checkInputs = [
pytestCheckHook
pytest-flake8
];
disabledTests = [
"test_custom_error_in_deserialize_by_name"
"test_custom_error_in_deserialize_by_value"
];
meta = with lib; {
description = "Enum field for Marshmallow";
homepage = https://github.com/justanr/marshmallow_enum;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,49 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pymongo
, six
, blinker
, nose
, pillow
, coverage
}:
buildPythonPackage rec {
pname = "mongoengine";
version = "0.18.2";
src = fetchFromGitHub {
owner = "MongoEngine";
repo = pname;
rev = "v${version}";
sha256 = "0gx091h9rcykdj233srrl3dfc0ly52p6r4qc9ah6z0f694kmqj1v";
};
propagatedBuildInputs = [
pymongo
six
];
checkInputs = [
nose
pillow
coverage
blinker
];
postPatch = ''
substituteInPlace setup.py \
--replace "coverage==4.2" "coverage"
'';
# tests require mongodb running in background
doCheck = false;
meta = with lib; {
description = "MongoEngine is a Python Object-Document Mapper for working with MongoDB";
homepage = http://mongoengine.org/;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,57 @@
{ lib
, buildPythonPackage
, fetchPypi
, chardet
, pyyaml
, requests
, six
, semver
, pytest
, pytestcov
, pytestrunner
, sphinx
, openapi-spec-validator
}:
buildPythonPackage rec {
pname = "prance";
version = "0.15.0";
src = fetchPypi {
inherit pname version;
sha256 = "793f96dc8bba73bf4342f57b3570f5e0a94c30e60f0c802a2aaa302759dd8610";
};
buildInputs = [
pytestrunner
];
propagatedBuildInputs = [
chardet
pyyaml
requests
six
semver
];
checkInputs = [
pytest
pytestcov
openapi-spec-validator
];
postPatch = ''
substituteInPlace setup.py \
--replace "tests_require = dev_require," "tests_require = None,"
'';
# many tests require network connection
doCheck = false;
meta = with lib; {
description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser";
homepage = https://github.com/jfinkhaeuser/prance;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, six
, nose
}:
buildPythonPackage rec {
pname = "prison";
version = "0.1.2";
src = fetchFromGitHub {
owner = "betodealmeida";
repo = "python-rison";
rev = version;
sha256 = "14vb468iznf9416z993bbqihywp9ibyslw5vp67wfr200zyxjwak";
};
propagatedBuildInputs = [
six
];
checkInputs = [
nose
];
meta = with lib; {
description = "Rison encoder/decoder";
homepage = https://github.com/betodealmeida/python-rison;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "rtslib";
version = "2.1.fb69";
version = "2.1.71";
src = fetchFromGitHub {
owner = "open-iscsi";
repo ="${pname}-fb";
rev = "v${version}";
sha256 = "17rlcrd9757nq91pa8xjr7147k7mxxp8zdka7arhlgsp3kcnbsfd";
sha256 = "0cn9azi44hf59mp47207igv72kjbkyz4rsvgzmwbpz0s57b0hnab";
};
propagatedBuildInputs = [ six pyudev pygobject3 ];

View File

@@ -0,0 +1,41 @@
{ lib
, buildPythonPackage
, fetchPypi
, tox
, virtualenv
, protobuf
}:
buildPythonPackage rec {
pname = "snakebite";
version = "2.11.0";
src = fetchPypi {
inherit pname version;
sha256 = "085238b4944cb9c658ee62d5794de936ac3d0c337c504b2cc86424a205ae978a";
};
checkInputs = [
tox
virtualenv
];
propagatedBuildInputs = [
protobuf
];
postPatch = ''
substituteInPlace setup.py \
--replace "'argparse'" ""
'';
# tests require hadoop hdfs
doCheck = false;
meta = with lib; {
description = "Pure Python HDFS client";
homepage = http://github.com/spotify/snakebite;
license = licenses.asl20;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,31 @@
{ lib
, buildPythonPackage
, fetchPypi
, sqlalchemy
, python
}:
buildPythonPackage rec {
pname = "sqlalchemy-citext";
version = "1.3-0";
src = fetchPypi {
inherit pname version;
sha256 = "7d7343037a35153d6f94c3c2f6baf391f88a57651c3bde5d6749d216859ae4c5";
};
propagatedBuildInputs = [
sqlalchemy
];
checkPhase = ''
${python.interpreter} tests/test_citext.py
'';
meta = with lib; {
description = "A sqlalchemy plugin that allows postgres use of CITEXT";
homepage = https://github.com/mahmoudimus/sqlalchemy-citext;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -1,19 +1,20 @@
{lib, fetchFromGitHub, pythonOlder, buildPythonPackage, gfortran, mock, xarray, wrapt, numpy, netcdf4}:
{lib, fetchFromGitHub, pythonOlder, buildPythonPackage, gfortran, mock, xarray, wrapt, numpy, netcdf4, setuptools}:
buildPythonPackage rec {
pname = "wrf-python";
version = "1.3.1.1";
version = "1.3.2";
src = fetchFromGitHub {
owner = "NCAR";
repo = "wrf-python";
rev = version;
sha256 = "12mm7x1r5md6x28vmwyh6k655pgsv6knj8ycmjbxxk8bk7qsj74h";
sha256 = "1rklkki54z5392cpwwy78bnmsy2ghc187l3j7nv0rzn6jk5bvyi7";
};
propagatedBuildInputs = [
wrapt
numpy
setuptools
xarray
];
@@ -39,4 +40,4 @@ buildPythonPackage rec {
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mhaselsteiner ];
};
}
}

View File

@@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchPypi
, peewee
, wtforms
, python
}:
buildPythonPackage rec {
pname = "wtf-peewee";
version = "3.0.0";
src = fetchPypi {
inherit pname version;
sha256 = "acd05d136c8595da3327fcf9176fa85fdcec1f2aac51d235e46e6fc7a0871283";
};
propagatedBuildInputs = [
peewee
wtforms
];
checkPhase = ''
${python.interpreter} runtests.py
'';
meta = with lib; {
description = "WTForms integration for peewee models";
homepage = https://github.com/coleifer/wtf-peewee/;
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
};
}