1{ fetchPypi
2, lib
3, buildPythonPackage
4, python
5, isPy3k
6, appdirs
7, cached-property
8, defusedxml
9, isodate
10, lxml
11, pytz
12, requests_toolbelt
13, six
14# test dependencies
15, freezegun
16, mock
17, nose
18, pretend
19, pytest
20, pytestcov
21, requests-mock
22, tornado
23, attrs
24}:
25
26buildPythonPackage rec {
27 pname = "zeep";
28 version = "3.1.0";
29
30 src = fetchPypi {
31 inherit pname version;
32 sha256 = "b2d96881689c3f29e8ea5c8c6abb2b17fb0f470deee15d0d7bec4e74592850f6";
33 };
34
35 propagatedBuildInputs = [
36 attrs
37 appdirs
38 cached-property
39 defusedxml
40 isodate
41 lxml
42 pytz
43 requests_toolbelt
44 six
45 ];
46
47 # testtools dependency not supported for py3k
48 doCheck = !isPy3k;
49
50 checkInputs = [
51 tornado
52 ];
53
54 buildInputs = if isPy3k then [] else [
55 freezegun
56 mock
57 nose
58 pretend
59 pytest
60 pytestcov
61 requests-mock
62 ];
63
64 patchPhase = ''
65 # remove overly strict bounds and lint requirements
66 sed -e "s/freezegun==.*'/freezegun'/" \
67 -e "s/pytest-cov==.*'/pytest-cov'/" \
68 -e "s/'isort.*//" \
69 -e "s/'flake8.*//" \
70 -i setup.py
71
72 # locale.preferredencoding() != 'utf-8'
73 sed -e "s/xsd', 'r')/xsd', 'r', encoding='utf-8')/" -i tests/*.py
74
75 # cache defaults to home directory, which doesn't exist
76 sed -e "s|SqliteCache()|SqliteCache(path='./zeeptest.db')|" \
77 -i tests/test_transports.py
78
79 # requires xmlsec python module
80 rm tests/test_wsse_signature.py
81 '';
82
83 checkPhase = ''
84 runHook preCheck
85 ${python.interpreter} -m pytest tests
86 runHook postCheck
87 '';
88
89 meta = with lib; {
90 homepage = http://docs.python-zeep.org;
91 license = licenses.mit;
92 description = "A modern/fast Python SOAP client based on lxml / requests";
93 maintainers = with maintainers; [ rvl ];
94 };
95}