##// END OF EJS Templates
release: merged default into stable
marcink -
r3012:22b5bff9 merge stable
parent child Browse files
Show More
@@ -0,0 +1,43 b''
1 |RCE| 4.13.1 |RNS|
2 ------------------
3
4 Release Date
5 ^^^^^^^^^^^^
6
7 - 2018-08-06
8
9
10 New Features
11 ^^^^^^^^^^^^
12
13
14
15 General
16 ^^^^^^^
17
18 - core: added option to prefix cache keys for usage in cluster.
19 - exception-tracker: store event sending exception for easier event fail debugging.
20 - maintenance: add repack and fsck for git maintenance execution list.
21
22
23 Security
24 ^^^^^^^^
25
26
27
28 Performance
29 ^^^^^^^^^^^
30
31
32
33 Fixes
34 ^^^^^
35
36 - caches: use single default cache dir for all backends.
37 - caches: don't use lower in cache settings to support uppercase PATHS
38
39
40 Upgrade notes
41 ^^^^^^^^^^^^^
42
43 - Unscheduled release addressing reported problems, and improving stability.
@@ -1,120 +1,121 b''
1 .. _rhodecode-release-notes-ref:
1 .. _rhodecode-release-notes-ref:
2
2
3 Release Notes
3 Release Notes
4 =============
4 =============
5
5
6 |RCE| 4.x Versions
6 |RCE| 4.x Versions
7 ------------------
7 ------------------
8
8
9 .. toctree::
9 .. toctree::
10 :maxdepth: 1
10 :maxdepth: 1
11
11
12 release-notes-4.13.1.rst
12 release-notes-4.13.0.rst
13 release-notes-4.13.0.rst
13 release-notes-4.12.4.rst
14 release-notes-4.12.4.rst
14 release-notes-4.12.3.rst
15 release-notes-4.12.3.rst
15 release-notes-4.12.2.rst
16 release-notes-4.12.2.rst
16 release-notes-4.12.1.rst
17 release-notes-4.12.1.rst
17 release-notes-4.12.0.rst
18 release-notes-4.12.0.rst
18 release-notes-4.11.6.rst
19 release-notes-4.11.6.rst
19 release-notes-4.11.5.rst
20 release-notes-4.11.5.rst
20 release-notes-4.11.4.rst
21 release-notes-4.11.4.rst
21 release-notes-4.11.3.rst
22 release-notes-4.11.3.rst
22 release-notes-4.11.2.rst
23 release-notes-4.11.2.rst
23 release-notes-4.11.1.rst
24 release-notes-4.11.1.rst
24 release-notes-4.11.0.rst
25 release-notes-4.11.0.rst
25 release-notes-4.10.6.rst
26 release-notes-4.10.6.rst
26 release-notes-4.10.5.rst
27 release-notes-4.10.5.rst
27 release-notes-4.10.4.rst
28 release-notes-4.10.4.rst
28 release-notes-4.10.3.rst
29 release-notes-4.10.3.rst
29 release-notes-4.10.2.rst
30 release-notes-4.10.2.rst
30 release-notes-4.10.1.rst
31 release-notes-4.10.1.rst
31 release-notes-4.10.0.rst
32 release-notes-4.10.0.rst
32 release-notes-4.9.1.rst
33 release-notes-4.9.1.rst
33 release-notes-4.9.0.rst
34 release-notes-4.9.0.rst
34 release-notes-4.8.0.rst
35 release-notes-4.8.0.rst
35 release-notes-4.7.2.rst
36 release-notes-4.7.2.rst
36 release-notes-4.7.1.rst
37 release-notes-4.7.1.rst
37 release-notes-4.7.0.rst
38 release-notes-4.7.0.rst
38 release-notes-4.6.1.rst
39 release-notes-4.6.1.rst
39 release-notes-4.6.0.rst
40 release-notes-4.6.0.rst
40 release-notes-4.5.2.rst
41 release-notes-4.5.2.rst
41 release-notes-4.5.1.rst
42 release-notes-4.5.1.rst
42 release-notes-4.5.0.rst
43 release-notes-4.5.0.rst
43 release-notes-4.4.2.rst
44 release-notes-4.4.2.rst
44 release-notes-4.4.1.rst
45 release-notes-4.4.1.rst
45 release-notes-4.4.0.rst
46 release-notes-4.4.0.rst
46 release-notes-4.3.1.rst
47 release-notes-4.3.1.rst
47 release-notes-4.3.0.rst
48 release-notes-4.3.0.rst
48 release-notes-4.2.1.rst
49 release-notes-4.2.1.rst
49 release-notes-4.2.0.rst
50 release-notes-4.2.0.rst
50 release-notes-4.1.2.rst
51 release-notes-4.1.2.rst
51 release-notes-4.1.1.rst
52 release-notes-4.1.1.rst
52 release-notes-4.1.0.rst
53 release-notes-4.1.0.rst
53 release-notes-4.0.1.rst
54 release-notes-4.0.1.rst
54 release-notes-4.0.0.rst
55 release-notes-4.0.0.rst
55
56
56 |RCE| 3.x Versions
57 |RCE| 3.x Versions
57 ------------------
58 ------------------
58
59
59 .. toctree::
60 .. toctree::
60 :maxdepth: 1
61 :maxdepth: 1
61
62
62 release-notes-3.8.4.rst
63 release-notes-3.8.4.rst
63 release-notes-3.8.3.rst
64 release-notes-3.8.3.rst
64 release-notes-3.8.2.rst
65 release-notes-3.8.2.rst
65 release-notes-3.8.1.rst
66 release-notes-3.8.1.rst
66 release-notes-3.8.0.rst
67 release-notes-3.8.0.rst
67 release-notes-3.7.1.rst
68 release-notes-3.7.1.rst
68 release-notes-3.7.0.rst
69 release-notes-3.7.0.rst
69 release-notes-3.6.1.rst
70 release-notes-3.6.1.rst
70 release-notes-3.6.0.rst
71 release-notes-3.6.0.rst
71 release-notes-3.5.2.rst
72 release-notes-3.5.2.rst
72 release-notes-3.5.1.rst
73 release-notes-3.5.1.rst
73 release-notes-3.5.0.rst
74 release-notes-3.5.0.rst
74 release-notes-3.4.1.rst
75 release-notes-3.4.1.rst
75 release-notes-3.4.0.rst
76 release-notes-3.4.0.rst
76 release-notes-3.3.4.rst
77 release-notes-3.3.4.rst
77 release-notes-3.3.3.rst
78 release-notes-3.3.3.rst
78 release-notes-3.3.2.rst
79 release-notes-3.3.2.rst
79 release-notes-3.3.1.rst
80 release-notes-3.3.1.rst
80 release-notes-3.3.0.rst
81 release-notes-3.3.0.rst
81 release-notes-3.2.3.rst
82 release-notes-3.2.3.rst
82 release-notes-3.2.2.rst
83 release-notes-3.2.2.rst
83 release-notes-3.2.1.rst
84 release-notes-3.2.1.rst
84 release-notes-3.2.0.rst
85 release-notes-3.2.0.rst
85 release-notes-3.1.1.rst
86 release-notes-3.1.1.rst
86 release-notes-3.1.0.rst
87 release-notes-3.1.0.rst
87 release-notes-3.0.2.rst
88 release-notes-3.0.2.rst
88 release-notes-3.0.1.rst
89 release-notes-3.0.1.rst
89 release-notes-3.0.0.rst
90 release-notes-3.0.0.rst
90
91
91 |RCE| 2.x Versions
92 |RCE| 2.x Versions
92 ------------------
93 ------------------
93
94
94 .. toctree::
95 .. toctree::
95 :maxdepth: 1
96 :maxdepth: 1
96
97
97 release-notes-2.2.8.rst
98 release-notes-2.2.8.rst
98 release-notes-2.2.7.rst
99 release-notes-2.2.7.rst
99 release-notes-2.2.6.rst
100 release-notes-2.2.6.rst
100 release-notes-2.2.5.rst
101 release-notes-2.2.5.rst
101 release-notes-2.2.4.rst
102 release-notes-2.2.4.rst
102 release-notes-2.2.3.rst
103 release-notes-2.2.3.rst
103 release-notes-2.2.2.rst
104 release-notes-2.2.2.rst
104 release-notes-2.2.1.rst
105 release-notes-2.2.1.rst
105 release-notes-2.2.0.rst
106 release-notes-2.2.0.rst
106 release-notes-2.1.0.rst
107 release-notes-2.1.0.rst
107 release-notes-2.0.2.rst
108 release-notes-2.0.2.rst
108 release-notes-2.0.1.rst
109 release-notes-2.0.1.rst
109 release-notes-2.0.0.rst
110 release-notes-2.0.0.rst
110
111
111 |RCE| 1.x Versions
112 |RCE| 1.x Versions
112 ------------------
113 ------------------
113
114
114 .. toctree::
115 .. toctree::
115 :maxdepth: 1
116 :maxdepth: 1
116
117
117 release-notes-1.7.2.rst
118 release-notes-1.7.2.rst
118 release-notes-1.7.1.rst
119 release-notes-1.7.1.rst
119 release-notes-1.7.0.rst
120 release-notes-1.7.0.rst
120 release-notes-1.6.0.rst
121 release-notes-1.6.0.rst
@@ -1,2280 +1,2282 b''
1 # Generated by pip2nix 0.8.0.dev1
1 # Generated by pip2nix 0.8.0.dev1
2 # See https://github.com/johbo/pip2nix
2 # See https://github.com/johbo/pip2nix
3
3
4 { pkgs, fetchurl, fetchgit, fetchhg }:
4 { pkgs, fetchurl, fetchgit, fetchhg }:
5
5
6 self: super: {
6 self: super: {
7 "alembic" = super.buildPythonPackage {
7 "alembic" = super.buildPythonPackage {
8 name = "alembic-0.9.9";
8 name = "alembic-0.9.9";
9 doCheck = false;
9 doCheck = false;
10 propagatedBuildInputs = [
10 propagatedBuildInputs = [
11 self."sqlalchemy"
11 self."sqlalchemy"
12 self."mako"
12 self."mako"
13 self."python-editor"
13 self."python-editor"
14 self."python-dateutil"
14 self."python-dateutil"
15 ];
15 ];
16 src = fetchurl {
16 src = fetchurl {
17 url = "https://files.pythonhosted.org/packages/89/03/756d5b8e1c90bf283c3f435766aa3f20208d1c3887579dd8f2122e01d5f4/alembic-0.9.9.tar.gz";
17 url = "https://files.pythonhosted.org/packages/89/03/756d5b8e1c90bf283c3f435766aa3f20208d1c3887579dd8f2122e01d5f4/alembic-0.9.9.tar.gz";
18 sha256 = "0bmkq6isjbmy4p7nxfvfpknjsx7rb3xn9g00169y891hcfkkxgc5";
18 sha256 = "0bmkq6isjbmy4p7nxfvfpknjsx7rb3xn9g00169y891hcfkkxgc5";
19 };
19 };
20 meta = {
20 meta = {
21 license = [ pkgs.lib.licenses.mit ];
21 license = [ pkgs.lib.licenses.mit ];
22 };
22 };
23 };
23 };
24 "amqp" = super.buildPythonPackage {
24 "amqp" = super.buildPythonPackage {
25 name = "amqp-2.3.1";
25 name = "amqp-2.3.1";
26 doCheck = false;
26 doCheck = false;
27 propagatedBuildInputs = [
27 propagatedBuildInputs = [
28 self."vine"
28 self."vine"
29 ];
29 ];
30 src = fetchurl {
30 src = fetchurl {
31 url = "https://files.pythonhosted.org/packages/1b/32/242ff76cd802766f11c89c72f3389b5c8de4bdfbab406137b90c5fae8b05/amqp-2.3.1.tar.gz";
31 url = "https://files.pythonhosted.org/packages/1b/32/242ff76cd802766f11c89c72f3389b5c8de4bdfbab406137b90c5fae8b05/amqp-2.3.1.tar.gz";
32 sha256 = "0wlfnvhmfrn7c8qif2jyvsm63ibdxp02ss564qwrvqfhz0di72s0";
32 sha256 = "0wlfnvhmfrn7c8qif2jyvsm63ibdxp02ss564qwrvqfhz0di72s0";
33 };
33 };
34 meta = {
34 meta = {
35 license = [ pkgs.lib.licenses.bsdOriginal ];
35 license = [ pkgs.lib.licenses.bsdOriginal ];
36 };
36 };
37 };
37 };
38 "appenlight-client" = super.buildPythonPackage {
38 "appenlight-client" = super.buildPythonPackage {
39 name = "appenlight-client-0.6.25";
39 name = "appenlight-client-0.6.25";
40 doCheck = false;
40 doCheck = false;
41 propagatedBuildInputs = [
41 propagatedBuildInputs = [
42 self."webob"
42 self."webob"
43 self."requests"
43 self."requests"
44 self."six"
44 self."six"
45 ];
45 ];
46 src = fetchurl {
46 src = fetchurl {
47 url = "https://files.pythonhosted.org/packages/fa/44/2911ef85ea4f4fe65058fd22959d8dad598fab6a3c84e5bcb569d15c8783/appenlight_client-0.6.25.tar.gz";
47 url = "https://files.pythonhosted.org/packages/fa/44/2911ef85ea4f4fe65058fd22959d8dad598fab6a3c84e5bcb569d15c8783/appenlight_client-0.6.25.tar.gz";
48 sha256 = "1r9l2rfg677nxhamdbyb9y4fs1zgy2dy1p19c68fnvqkxz40y627";
48 sha256 = "1r9l2rfg677nxhamdbyb9y4fs1zgy2dy1p19c68fnvqkxz40y627";
49 };
49 };
50 meta = {
50 meta = {
51 license = [ pkgs.lib.licenses.bsdOriginal ];
51 license = [ pkgs.lib.licenses.bsdOriginal ];
52 };
52 };
53 };
53 };
54 "atomicwrites" = super.buildPythonPackage {
54 "atomicwrites" = super.buildPythonPackage {
55 name = "atomicwrites-1.1.5";
55 name = "atomicwrites-1.1.5";
56 doCheck = false;
56 doCheck = false;
57 src = fetchurl {
57 src = fetchurl {
58 url = "https://files.pythonhosted.org/packages/a1/e1/2d9bc76838e6e6667fde5814aa25d7feb93d6fa471bf6816daac2596e8b2/atomicwrites-1.1.5.tar.gz";
58 url = "https://files.pythonhosted.org/packages/a1/e1/2d9bc76838e6e6667fde5814aa25d7feb93d6fa471bf6816daac2596e8b2/atomicwrites-1.1.5.tar.gz";
59 sha256 = "11bm90fwm2avvf4f3ib8g925w7jr4m11vcsinn1bi6ns4bm32214";
59 sha256 = "11bm90fwm2avvf4f3ib8g925w7jr4m11vcsinn1bi6ns4bm32214";
60 };
60 };
61 meta = {
61 meta = {
62 license = [ pkgs.lib.licenses.mit ];
62 license = [ pkgs.lib.licenses.mit ];
63 };
63 };
64 };
64 };
65 "attrs" = super.buildPythonPackage {
65 "attrs" = super.buildPythonPackage {
66 name = "attrs-18.1.0";
66 name = "attrs-18.1.0";
67 doCheck = false;
67 doCheck = false;
68 src = fetchurl {
68 src = fetchurl {
69 url = "https://files.pythonhosted.org/packages/e4/ac/a04671e118b57bee87dabca1e0f2d3bda816b7a551036012d0ca24190e71/attrs-18.1.0.tar.gz";
69 url = "https://files.pythonhosted.org/packages/e4/ac/a04671e118b57bee87dabca1e0f2d3bda816b7a551036012d0ca24190e71/attrs-18.1.0.tar.gz";
70 sha256 = "0yzqz8wv3w1srav5683a55v49i0szkm47dyrnkd56fqs8j8ypl70";
70 sha256 = "0yzqz8wv3w1srav5683a55v49i0szkm47dyrnkd56fqs8j8ypl70";
71 };
71 };
72 meta = {
72 meta = {
73 license = [ pkgs.lib.licenses.mit ];
73 license = [ pkgs.lib.licenses.mit ];
74 };
74 };
75 };
75 };
76 "authomatic" = super.buildPythonPackage {
76 "authomatic" = super.buildPythonPackage {
77 name = "authomatic-0.1.0.post1";
77 name = "authomatic-0.1.0.post1";
78 doCheck = false;
78 doCheck = false;
79 src = fetchurl {
79 src = fetchurl {
80 url = "https://code.rhodecode.com/upstream/authomatic/archive/90a9ce60cc405ae8a2bf5c3713acd5d78579a04e.tar.gz?md5=3c68720a1322b25254009518d1ff6801";
80 url = "https://code.rhodecode.com/upstream/authomatic/archive/90a9ce60cc405ae8a2bf5c3713acd5d78579a04e.tar.gz?md5=3c68720a1322b25254009518d1ff6801";
81 sha256 = "1cgk0a86sbsjbri06gf5z5l4npwkjdxw6fdnwl4vvfmxs2sx9yxw";
81 sha256 = "1cgk0a86sbsjbri06gf5z5l4npwkjdxw6fdnwl4vvfmxs2sx9yxw";
82 };
82 };
83 meta = {
83 meta = {
84 license = [ pkgs.lib.licenses.mit ];
84 license = [ pkgs.lib.licenses.mit ];
85 };
85 };
86 };
86 };
87 "babel" = super.buildPythonPackage {
87 "babel" = super.buildPythonPackage {
88 name = "babel-1.3";
88 name = "babel-1.3";
89 doCheck = false;
89 doCheck = false;
90 propagatedBuildInputs = [
90 propagatedBuildInputs = [
91 self."pytz"
91 self."pytz"
92 ];
92 ];
93 src = fetchurl {
93 src = fetchurl {
94 url = "https://files.pythonhosted.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
94 url = "https://files.pythonhosted.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
95 sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
95 sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
96 };
96 };
97 meta = {
97 meta = {
98 license = [ pkgs.lib.licenses.bsdOriginal ];
98 license = [ pkgs.lib.licenses.bsdOriginal ];
99 };
99 };
100 };
100 };
101 "backports.shutil-get-terminal-size" = super.buildPythonPackage {
101 "backports.shutil-get-terminal-size" = super.buildPythonPackage {
102 name = "backports.shutil-get-terminal-size-1.0.0";
102 name = "backports.shutil-get-terminal-size-1.0.0";
103 doCheck = false;
103 doCheck = false;
104 src = fetchurl {
104 src = fetchurl {
105 url = "https://files.pythonhosted.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
105 url = "https://files.pythonhosted.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
106 sha256 = "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki";
106 sha256 = "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki";
107 };
107 };
108 meta = {
108 meta = {
109 license = [ pkgs.lib.licenses.mit ];
109 license = [ pkgs.lib.licenses.mit ];
110 };
110 };
111 };
111 };
112 "beaker" = super.buildPythonPackage {
112 "beaker" = super.buildPythonPackage {
113 name = "beaker-1.9.1";
113 name = "beaker-1.9.1";
114 doCheck = false;
114 doCheck = false;
115 propagatedBuildInputs = [
115 propagatedBuildInputs = [
116 self."funcsigs"
116 self."funcsigs"
117 ];
117 ];
118 src = fetchurl {
118 src = fetchurl {
119 url = "https://files.pythonhosted.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
119 url = "https://files.pythonhosted.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
120 sha256 = "08arsn61r255lhz6hcpn2lsiqpg30clla805ysx06wmbhvb6w9rj";
120 sha256 = "08arsn61r255lhz6hcpn2lsiqpg30clla805ysx06wmbhvb6w9rj";
121 };
121 };
122 meta = {
122 meta = {
123 license = [ pkgs.lib.licenses.bsdOriginal ];
123 license = [ pkgs.lib.licenses.bsdOriginal ];
124 };
124 };
125 };
125 };
126 "beautifulsoup4" = super.buildPythonPackage {
126 "beautifulsoup4" = super.buildPythonPackage {
127 name = "beautifulsoup4-4.6.3";
127 name = "beautifulsoup4-4.6.3";
128 doCheck = false;
128 doCheck = false;
129 src = fetchurl {
129 src = fetchurl {
130 url = "https://files.pythonhosted.org/packages/88/df/86bffad6309f74f3ff85ea69344a078fc30003270c8df6894fca7a3c72ff/beautifulsoup4-4.6.3.tar.gz";
130 url = "https://files.pythonhosted.org/packages/88/df/86bffad6309f74f3ff85ea69344a078fc30003270c8df6894fca7a3c72ff/beautifulsoup4-4.6.3.tar.gz";
131 sha256 = "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h";
131 sha256 = "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h";
132 };
132 };
133 meta = {
133 meta = {
134 license = [ pkgs.lib.licenses.mit ];
134 license = [ pkgs.lib.licenses.mit ];
135 };
135 };
136 };
136 };
137 "billiard" = super.buildPythonPackage {
137 "billiard" = super.buildPythonPackage {
138 name = "billiard-3.5.0.3";
138 name = "billiard-3.5.0.3";
139 doCheck = false;
139 doCheck = false;
140 src = fetchurl {
140 src = fetchurl {
141 url = "https://files.pythonhosted.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
141 url = "https://files.pythonhosted.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
142 sha256 = "1riwiiwgb141151md4ykx49qrz749akj5k8g290ji9bsqjyj4yqx";
142 sha256 = "1riwiiwgb141151md4ykx49qrz749akj5k8g290ji9bsqjyj4yqx";
143 };
143 };
144 meta = {
144 meta = {
145 license = [ pkgs.lib.licenses.bsdOriginal ];
145 license = [ pkgs.lib.licenses.bsdOriginal ];
146 };
146 };
147 };
147 };
148 "bleach" = super.buildPythonPackage {
148 "bleach" = super.buildPythonPackage {
149 name = "bleach-2.1.4";
149 name = "bleach-2.1.4";
150 doCheck = false;
150 doCheck = false;
151 propagatedBuildInputs = [
151 propagatedBuildInputs = [
152 self."six"
152 self."six"
153 self."html5lib"
153 self."html5lib"
154 ];
154 ];
155 src = fetchurl {
155 src = fetchurl {
156 url = "https://files.pythonhosted.org/packages/7a/b7/fa555afb61462b030abaf9ed1479b8ea031510f58c7706b06113be9f82ea/bleach-2.1.4.tar.gz";
156 url = "https://files.pythonhosted.org/packages/7a/b7/fa555afb61462b030abaf9ed1479b8ea031510f58c7706b06113be9f82ea/bleach-2.1.4.tar.gz";
157 sha256 = "1n337zbdml6z6zia0b1qgv6xiddx3qlwmcg9vk2mk60jcxhmzs8f";
157 sha256 = "1n337zbdml6z6zia0b1qgv6xiddx3qlwmcg9vk2mk60jcxhmzs8f";
158 };
158 };
159 meta = {
159 meta = {
160 license = [ pkgs.lib.licenses.asl20 ];
160 license = [ pkgs.lib.licenses.asl20 ];
161 };
161 };
162 };
162 };
163 "bottle" = super.buildPythonPackage {
163 "bottle" = super.buildPythonPackage {
164 name = "bottle-0.12.13";
164 name = "bottle-0.12.13";
165 doCheck = false;
165 doCheck = false;
166 src = fetchurl {
166 src = fetchurl {
167 url = "https://files.pythonhosted.org/packages/bd/99/04dc59ced52a8261ee0f965a8968717a255ea84a36013e527944dbf3468c/bottle-0.12.13.tar.gz";
167 url = "https://files.pythonhosted.org/packages/bd/99/04dc59ced52a8261ee0f965a8968717a255ea84a36013e527944dbf3468c/bottle-0.12.13.tar.gz";
168 sha256 = "0m9k2a7yxvggc4kw8fsvj381vgsvfcdshg5nzy6vwrxiw2p53drr";
168 sha256 = "0m9k2a7yxvggc4kw8fsvj381vgsvfcdshg5nzy6vwrxiw2p53drr";
169 };
169 };
170 meta = {
170 meta = {
171 license = [ pkgs.lib.licenses.mit ];
171 license = [ pkgs.lib.licenses.mit ];
172 };
172 };
173 };
173 };
174 "bumpversion" = super.buildPythonPackage {
174 "bumpversion" = super.buildPythonPackage {
175 name = "bumpversion-0.5.3";
175 name = "bumpversion-0.5.3";
176 doCheck = false;
176 doCheck = false;
177 src = fetchurl {
177 src = fetchurl {
178 url = "https://files.pythonhosted.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
178 url = "https://files.pythonhosted.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
179 sha256 = "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37";
179 sha256 = "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37";
180 };
180 };
181 meta = {
181 meta = {
182 license = [ pkgs.lib.licenses.mit ];
182 license = [ pkgs.lib.licenses.mit ];
183 };
183 };
184 };
184 };
185 "celery" = super.buildPythonPackage {
185 "celery" = super.buildPythonPackage {
186 name = "celery-4.1.1";
186 name = "celery-4.1.1";
187 doCheck = false;
187 doCheck = false;
188 propagatedBuildInputs = [
188 propagatedBuildInputs = [
189 self."pytz"
189 self."pytz"
190 self."billiard"
190 self."billiard"
191 self."kombu"
191 self."kombu"
192 ];
192 ];
193 src = fetchurl {
193 src = fetchurl {
194 url = "https://files.pythonhosted.org/packages/e9/cf/a4c0597effca20c57eb586324e41d1180bc8f13a933da41e0646cff69f02/celery-4.1.1.tar.gz";
194 url = "https://files.pythonhosted.org/packages/e9/cf/a4c0597effca20c57eb586324e41d1180bc8f13a933da41e0646cff69f02/celery-4.1.1.tar.gz";
195 sha256 = "1xbir4vw42n2ir9lanhwl7w69zpmj7lbi66fxm2b7pyvkcss7wni";
195 sha256 = "1xbir4vw42n2ir9lanhwl7w69zpmj7lbi66fxm2b7pyvkcss7wni";
196 };
196 };
197 meta = {
197 meta = {
198 license = [ pkgs.lib.licenses.bsdOriginal ];
198 license = [ pkgs.lib.licenses.bsdOriginal ];
199 };
199 };
200 };
200 };
201 "chameleon" = super.buildPythonPackage {
201 "chameleon" = super.buildPythonPackage {
202 name = "chameleon-2.24";
202 name = "chameleon-2.24";
203 doCheck = false;
203 doCheck = false;
204 src = fetchurl {
204 src = fetchurl {
205 url = "https://files.pythonhosted.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
205 url = "https://files.pythonhosted.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
206 sha256 = "0ykqr7syxfa6h9adjfnsv1gdsca2xzm22vmic8859n0f0j09abj5";
206 sha256 = "0ykqr7syxfa6h9adjfnsv1gdsca2xzm22vmic8859n0f0j09abj5";
207 };
207 };
208 meta = {
208 meta = {
209 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
209 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
210 };
210 };
211 };
211 };
212 "channelstream" = super.buildPythonPackage {
212 "channelstream" = super.buildPythonPackage {
213 name = "channelstream-0.5.2";
213 name = "channelstream-0.5.2";
214 doCheck = false;
214 doCheck = false;
215 propagatedBuildInputs = [
215 propagatedBuildInputs = [
216 self."gevent"
216 self."gevent"
217 self."ws4py"
217 self."ws4py"
218 self."pyramid"
218 self."pyramid"
219 self."pyramid-jinja2"
219 self."pyramid-jinja2"
220 self."itsdangerous"
220 self."itsdangerous"
221 self."requests"
221 self."requests"
222 self."six"
222 self."six"
223 ];
223 ];
224 src = fetchurl {
224 src = fetchurl {
225 url = "https://files.pythonhosted.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
225 url = "https://files.pythonhosted.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
226 sha256 = "1qbm4xdl5hfkja683x546bncg3rqq8qv79w1m1a1wd48cqqzb6rm";
226 sha256 = "1qbm4xdl5hfkja683x546bncg3rqq8qv79w1m1a1wd48cqqzb6rm";
227 };
227 };
228 meta = {
228 meta = {
229 license = [ pkgs.lib.licenses.bsdOriginal ];
229 license = [ pkgs.lib.licenses.bsdOriginal ];
230 };
230 };
231 };
231 };
232 "click" = super.buildPythonPackage {
232 "click" = super.buildPythonPackage {
233 name = "click-6.6";
233 name = "click-6.6";
234 doCheck = false;
234 doCheck = false;
235 src = fetchurl {
235 src = fetchurl {
236 url = "https://files.pythonhosted.org/packages/7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/click-6.6.tar.gz";
236 url = "https://files.pythonhosted.org/packages/7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/click-6.6.tar.gz";
237 sha256 = "1sggipyz52crrybwbr9xvwxd4aqigvplf53k9w3ygxmzivd1jsnc";
237 sha256 = "1sggipyz52crrybwbr9xvwxd4aqigvplf53k9w3ygxmzivd1jsnc";
238 };
238 };
239 meta = {
239 meta = {
240 license = [ pkgs.lib.licenses.bsdOriginal ];
240 license = [ pkgs.lib.licenses.bsdOriginal ];
241 };
241 };
242 };
242 };
243 "colander" = super.buildPythonPackage {
243 "colander" = super.buildPythonPackage {
244 name = "colander-1.4";
244 name = "colander-1.4";
245 doCheck = false;
245 doCheck = false;
246 propagatedBuildInputs = [
246 propagatedBuildInputs = [
247 self."translationstring"
247 self."translationstring"
248 self."iso8601"
248 self."iso8601"
249 ];
249 ];
250 src = fetchurl {
250 src = fetchurl {
251 url = "https://files.pythonhosted.org/packages/cc/e2/c4e716ac4a426d8ad4dfe306c34f0018a22275d2420815784005bf771c84/colander-1.4.tar.gz";
251 url = "https://files.pythonhosted.org/packages/cc/e2/c4e716ac4a426d8ad4dfe306c34f0018a22275d2420815784005bf771c84/colander-1.4.tar.gz";
252 sha256 = "0wjfphyr5aakv5hw73q287lbc15cbm0aardajv7i2mqf377rl3p2";
252 sha256 = "0wjfphyr5aakv5hw73q287lbc15cbm0aardajv7i2mqf377rl3p2";
253 };
253 };
254 meta = {
254 meta = {
255 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
255 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
256 };
256 };
257 };
257 };
258 "configobj" = super.buildPythonPackage {
258 "configobj" = super.buildPythonPackage {
259 name = "configobj-5.0.6";
259 name = "configobj-5.0.6";
260 doCheck = false;
260 doCheck = false;
261 propagatedBuildInputs = [
261 propagatedBuildInputs = [
262 self."six"
262 self."six"
263 ];
263 ];
264 src = fetchurl {
264 src = fetchurl {
265 url = "https://code.rhodecode.com/upstream/configobj/archive/a11ff0a0bd4fbda9e3a91267e720f88329efb4a6.tar.gz?md5=9916c524ea11a6c418217af6b28d4b3c";
265 url = "https://code.rhodecode.com/upstream/configobj/archive/a11ff0a0bd4fbda9e3a91267e720f88329efb4a6.tar.gz?md5=9916c524ea11a6c418217af6b28d4b3c";
266 sha256 = "1hhcxirwvg58grlfr177b3awhbq8hlx1l3lh69ifl1ki7lfd1s1x";
266 sha256 = "1hhcxirwvg58grlfr177b3awhbq8hlx1l3lh69ifl1ki7lfd1s1x";
267 };
267 };
268 meta = {
268 meta = {
269 license = [ pkgs.lib.licenses.bsdOriginal ];
269 license = [ pkgs.lib.licenses.bsdOriginal ];
270 };
270 };
271 };
271 };
272 "configparser" = super.buildPythonPackage {
272 "configparser" = super.buildPythonPackage {
273 name = "configparser-3.5.0";
273 name = "configparser-3.5.0";
274 doCheck = false;
274 doCheck = false;
275 src = fetchurl {
275 src = fetchurl {
276 url = "https://files.pythonhosted.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz";
276 url = "https://files.pythonhosted.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz";
277 sha256 = "0fi7vf09vi1588jd8f16a021m5y6ih2hy7rpbjb408xw45qb822k";
277 sha256 = "0fi7vf09vi1588jd8f16a021m5y6ih2hy7rpbjb408xw45qb822k";
278 };
278 };
279 meta = {
279 meta = {
280 license = [ pkgs.lib.licenses.mit ];
280 license = [ pkgs.lib.licenses.mit ];
281 };
281 };
282 };
282 };
283 "cov-core" = super.buildPythonPackage {
283 "cov-core" = super.buildPythonPackage {
284 name = "cov-core-1.15.0";
284 name = "cov-core-1.15.0";
285 doCheck = false;
285 doCheck = false;
286 propagatedBuildInputs = [
286 propagatedBuildInputs = [
287 self."coverage"
287 self."coverage"
288 ];
288 ];
289 src = fetchurl {
289 src = fetchurl {
290 url = "https://files.pythonhosted.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
290 url = "https://files.pythonhosted.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
291 sha256 = "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a";
291 sha256 = "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a";
292 };
292 };
293 meta = {
293 meta = {
294 license = [ pkgs.lib.licenses.mit ];
294 license = [ pkgs.lib.licenses.mit ];
295 };
295 };
296 };
296 };
297 "coverage" = super.buildPythonPackage {
297 "coverage" = super.buildPythonPackage {
298 name = "coverage-3.7.1";
298 name = "coverage-3.7.1";
299 doCheck = false;
299 doCheck = false;
300 src = fetchurl {
300 src = fetchurl {
301 url = "https://files.pythonhosted.org/packages/09/4f/89b06c7fdc09687bca507dc411c342556ef9c5a3b26756137a4878ff19bf/coverage-3.7.1.tar.gz";
301 url = "https://files.pythonhosted.org/packages/09/4f/89b06c7fdc09687bca507dc411c342556ef9c5a3b26756137a4878ff19bf/coverage-3.7.1.tar.gz";
302 sha256 = "0knlbq79g2ww6xzsyknj9rirrgrgc983dpa2d9nkdf31mb2a3bni";
302 sha256 = "0knlbq79g2ww6xzsyknj9rirrgrgc983dpa2d9nkdf31mb2a3bni";
303 };
303 };
304 meta = {
304 meta = {
305 license = [ pkgs.lib.licenses.bsdOriginal ];
305 license = [ pkgs.lib.licenses.bsdOriginal ];
306 };
306 };
307 };
307 };
308 "cprofilev" = super.buildPythonPackage {
308 "cprofilev" = super.buildPythonPackage {
309 name = "cprofilev-1.0.7";
309 name = "cprofilev-1.0.7";
310 doCheck = false;
310 doCheck = false;
311 propagatedBuildInputs = [
311 propagatedBuildInputs = [
312 self."bottle"
312 self."bottle"
313 ];
313 ];
314 src = fetchurl {
314 src = fetchurl {
315 url = "https://files.pythonhosted.org/packages/df/50/d8c1ada7d537c64b0f76453fa31dedb6af6e27b82fcf0331e5f71a4cf98b/CProfileV-1.0.7.tar.gz";
315 url = "https://files.pythonhosted.org/packages/df/50/d8c1ada7d537c64b0f76453fa31dedb6af6e27b82fcf0331e5f71a4cf98b/CProfileV-1.0.7.tar.gz";
316 sha256 = "0xwszfhxgndpcjkpq89dix6vi02hj1gzvhr7r716hd1x3y5p94c7";
316 sha256 = "0xwszfhxgndpcjkpq89dix6vi02hj1gzvhr7r716hd1x3y5p94c7";
317 };
317 };
318 meta = {
318 meta = {
319 license = [ pkgs.lib.licenses.mit ];
319 license = [ pkgs.lib.licenses.mit ];
320 };
320 };
321 };
321 };
322 "cssselect" = super.buildPythonPackage {
322 "cssselect" = super.buildPythonPackage {
323 name = "cssselect-1.0.3";
323 name = "cssselect-1.0.3";
324 doCheck = false;
324 doCheck = false;
325 src = fetchurl {
325 src = fetchurl {
326 url = "https://files.pythonhosted.org/packages/52/ea/f31e1d2e9eb130fda2a631e22eac369dc644e8807345fbed5113f2d6f92b/cssselect-1.0.3.tar.gz";
326 url = "https://files.pythonhosted.org/packages/52/ea/f31e1d2e9eb130fda2a631e22eac369dc644e8807345fbed5113f2d6f92b/cssselect-1.0.3.tar.gz";
327 sha256 = "011jqa2jhmydhi0iz4v1w3cr540z5zas8g2bw8brdw4s4b2qnv86";
327 sha256 = "011jqa2jhmydhi0iz4v1w3cr540z5zas8g2bw8brdw4s4b2qnv86";
328 };
328 };
329 meta = {
329 meta = {
330 license = [ pkgs.lib.licenses.bsdOriginal ];
330 license = [ pkgs.lib.licenses.bsdOriginal ];
331 };
331 };
332 };
332 };
333 "decorator" = super.buildPythonPackage {
333 "decorator" = super.buildPythonPackage {
334 name = "decorator-4.1.2";
334 name = "decorator-4.1.2";
335 doCheck = false;
335 doCheck = false;
336 src = fetchurl {
336 src = fetchurl {
337 url = "https://files.pythonhosted.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
337 url = "https://files.pythonhosted.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
338 sha256 = "1d8npb11kxyi36mrvjdpcjij76l5zfyrz2f820brf0l0rcw4vdkw";
338 sha256 = "1d8npb11kxyi36mrvjdpcjij76l5zfyrz2f820brf0l0rcw4vdkw";
339 };
339 };
340 meta = {
340 meta = {
341 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
341 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
342 };
342 };
343 };
343 };
344 "deform" = super.buildPythonPackage {
344 "deform" = super.buildPythonPackage {
345 name = "deform-2.0.5";
345 name = "deform-2.0.5";
346 doCheck = false;
346 doCheck = false;
347 propagatedBuildInputs = [
347 propagatedBuildInputs = [
348 self."chameleon"
348 self."chameleon"
349 self."colander"
349 self."colander"
350 self."iso8601"
350 self."iso8601"
351 self."peppercorn"
351 self."peppercorn"
352 self."translationstring"
352 self."translationstring"
353 self."zope.deprecation"
353 self."zope.deprecation"
354 ];
354 ];
355 src = fetchurl {
355 src = fetchurl {
356 url = "https://files.pythonhosted.org/packages/0c/b1/ba711d5808c12538c8504f534d79c124ed834f19ac36f0ac5391c3bbd1c1/deform-2.0.5.tar.gz";
356 url = "https://files.pythonhosted.org/packages/0c/b1/ba711d5808c12538c8504f534d79c124ed834f19ac36f0ac5391c3bbd1c1/deform-2.0.5.tar.gz";
357 sha256 = "0ybg9zsnfac1kaxrjanmkjk0xaklf4d3piywxwr08l1cl1336kc7";
357 sha256 = "0ybg9zsnfac1kaxrjanmkjk0xaklf4d3piywxwr08l1cl1336kc7";
358 };
358 };
359 meta = {
359 meta = {
360 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
360 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
361 };
361 };
362 };
362 };
363 "docutils" = super.buildPythonPackage {
363 "docutils" = super.buildPythonPackage {
364 name = "docutils-0.14";
364 name = "docutils-0.14";
365 doCheck = false;
365 doCheck = false;
366 src = fetchurl {
366 src = fetchurl {
367 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
367 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
368 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
368 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
369 };
369 };
370 meta = {
370 meta = {
371 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.publicDomain pkgs.lib.licenses.gpl1 { fullName = "public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)"; } pkgs.lib.licenses.psfl ];
371 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.publicDomain pkgs.lib.licenses.gpl1 { fullName = "public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)"; } pkgs.lib.licenses.psfl ];
372 };
372 };
373 };
373 };
374 "dogpile.cache" = super.buildPythonPackage {
374 "dogpile.cache" = super.buildPythonPackage {
375 name = "dogpile.cache-0.6.6";
375 name = "dogpile.cache-0.6.6";
376 doCheck = false;
376 doCheck = false;
377 src = fetchurl {
377 src = fetchurl {
378 url = "https://files.pythonhosted.org/packages/48/ca/604154d835c3668efb8a31bd979b0ea4bf39c2934a40ffecc0662296cb51/dogpile.cache-0.6.6.tar.gz";
378 url = "https://files.pythonhosted.org/packages/48/ca/604154d835c3668efb8a31bd979b0ea4bf39c2934a40ffecc0662296cb51/dogpile.cache-0.6.6.tar.gz";
379 sha256 = "1h8n1lxd4l2qvahfkiinljkqz7pww7w3sgag0j8j9ixbl2h4wk84";
379 sha256 = "1h8n1lxd4l2qvahfkiinljkqz7pww7w3sgag0j8j9ixbl2h4wk84";
380 };
380 };
381 meta = {
381 meta = {
382 license = [ pkgs.lib.licenses.bsdOriginal ];
382 license = [ pkgs.lib.licenses.bsdOriginal ];
383 };
383 };
384 };
384 };
385 "dogpile.core" = super.buildPythonPackage {
385 "dogpile.core" = super.buildPythonPackage {
386 name = "dogpile.core-0.4.1";
386 name = "dogpile.core-0.4.1";
387 doCheck = false;
387 doCheck = false;
388 src = fetchurl {
388 src = fetchurl {
389 url = "https://files.pythonhosted.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
389 url = "https://files.pythonhosted.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
390 sha256 = "0xpdvg4kr1isfkrh1rfsh7za4q5a5s6l2kf9wpvndbwf3aqjyrdy";
390 sha256 = "0xpdvg4kr1isfkrh1rfsh7za4q5a5s6l2kf9wpvndbwf3aqjyrdy";
391 };
391 };
392 meta = {
392 meta = {
393 license = [ pkgs.lib.licenses.bsdOriginal ];
393 license = [ pkgs.lib.licenses.bsdOriginal ];
394 };
394 };
395 };
395 };
396 "ecdsa" = super.buildPythonPackage {
396 "ecdsa" = super.buildPythonPackage {
397 name = "ecdsa-0.13";
397 name = "ecdsa-0.13";
398 doCheck = false;
398 doCheck = false;
399 src = fetchurl {
399 src = fetchurl {
400 url = "https://files.pythonhosted.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz";
400 url = "https://files.pythonhosted.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz";
401 sha256 = "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4";
401 sha256 = "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4";
402 };
402 };
403 meta = {
403 meta = {
404 license = [ pkgs.lib.licenses.mit ];
404 license = [ pkgs.lib.licenses.mit ];
405 };
405 };
406 };
406 };
407 "elasticsearch" = super.buildPythonPackage {
407 "elasticsearch" = super.buildPythonPackage {
408 name = "elasticsearch-2.3.0";
408 name = "elasticsearch-2.3.0";
409 doCheck = false;
409 doCheck = false;
410 propagatedBuildInputs = [
410 propagatedBuildInputs = [
411 self."urllib3"
411 self."urllib3"
412 ];
412 ];
413 src = fetchurl {
413 src = fetchurl {
414 url = "https://files.pythonhosted.org/packages/10/35/5fd52c5f0b0ee405ed4b5195e8bce44c5e041787680dc7b94b8071cac600/elasticsearch-2.3.0.tar.gz";
414 url = "https://files.pythonhosted.org/packages/10/35/5fd52c5f0b0ee405ed4b5195e8bce44c5e041787680dc7b94b8071cac600/elasticsearch-2.3.0.tar.gz";
415 sha256 = "10ad2dk73xsys9vajwsncibs69asa63w1hgwz6lz1prjpyi80c5y";
415 sha256 = "10ad2dk73xsys9vajwsncibs69asa63w1hgwz6lz1prjpyi80c5y";
416 };
416 };
417 meta = {
417 meta = {
418 license = [ pkgs.lib.licenses.asl20 ];
418 license = [ pkgs.lib.licenses.asl20 ];
419 };
419 };
420 };
420 };
421 "elasticsearch-dsl" = super.buildPythonPackage {
421 "elasticsearch-dsl" = super.buildPythonPackage {
422 name = "elasticsearch-dsl-2.2.0";
422 name = "elasticsearch-dsl-2.2.0";
423 doCheck = false;
423 doCheck = false;
424 propagatedBuildInputs = [
424 propagatedBuildInputs = [
425 self."six"
425 self."six"
426 self."python-dateutil"
426 self."python-dateutil"
427 self."elasticsearch"
427 self."elasticsearch"
428 ];
428 ];
429 src = fetchurl {
429 src = fetchurl {
430 url = "https://files.pythonhosted.org/packages/66/2f/52a086968788e58461641570f45c3207a52d46ebbe9b77dc22b6a8ffda66/elasticsearch-dsl-2.2.0.tar.gz";
430 url = "https://files.pythonhosted.org/packages/66/2f/52a086968788e58461641570f45c3207a52d46ebbe9b77dc22b6a8ffda66/elasticsearch-dsl-2.2.0.tar.gz";
431 sha256 = "1g4kxzxsdwlsl2a9kscmx11pafgimhj7y8wrfksv8pgvpkfb9fwr";
431 sha256 = "1g4kxzxsdwlsl2a9kscmx11pafgimhj7y8wrfksv8pgvpkfb9fwr";
432 };
432 };
433 meta = {
433 meta = {
434 license = [ pkgs.lib.licenses.asl20 ];
434 license = [ pkgs.lib.licenses.asl20 ];
435 };
435 };
436 };
436 };
437 "entrypoints" = super.buildPythonPackage {
437 "entrypoints" = super.buildPythonPackage {
438 name = "entrypoints-0.2.2";
438 name = "entrypoints-0.2.2";
439 doCheck = false;
439 doCheck = false;
440 propagatedBuildInputs = [
440 propagatedBuildInputs = [
441 self."configparser"
441 self."configparser"
442 ];
442 ];
443 src = fetchurl {
443 src = fetchurl {
444 url = "https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313";
444 url = "https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313";
445 sha256 = "0bihrdp8ahsys437kxdhk52gz6kib8rxjv71i93wkw7594fcaxll";
445 sha256 = "0bihrdp8ahsys437kxdhk52gz6kib8rxjv71i93wkw7594fcaxll";
446 };
446 };
447 meta = {
447 meta = {
448 license = [ pkgs.lib.licenses.mit ];
448 license = [ pkgs.lib.licenses.mit ];
449 };
449 };
450 };
450 };
451 "enum34" = super.buildPythonPackage {
451 "enum34" = super.buildPythonPackage {
452 name = "enum34-1.1.6";
452 name = "enum34-1.1.6";
453 doCheck = false;
453 doCheck = false;
454 src = fetchurl {
454 src = fetchurl {
455 url = "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
455 url = "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
456 sha256 = "1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a";
456 sha256 = "1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a";
457 };
457 };
458 meta = {
458 meta = {
459 license = [ pkgs.lib.licenses.bsdOriginal ];
459 license = [ pkgs.lib.licenses.bsdOriginal ];
460 };
460 };
461 };
461 };
462 "formencode" = super.buildPythonPackage {
462 "formencode" = super.buildPythonPackage {
463 name = "formencode-1.2.4";
463 name = "formencode-1.2.4";
464 doCheck = false;
464 doCheck = false;
465 src = fetchurl {
465 src = fetchurl {
466 url = "https://files.pythonhosted.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
466 url = "https://files.pythonhosted.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
467 sha256 = "1fgy04sdy4yry5xcjls3x3xy30dqwj58ycnkndim819jx0788w42";
467 sha256 = "1fgy04sdy4yry5xcjls3x3xy30dqwj58ycnkndim819jx0788w42";
468 };
468 };
469 meta = {
469 meta = {
470 license = [ pkgs.lib.licenses.psfl ];
470 license = [ pkgs.lib.licenses.psfl ];
471 };
471 };
472 };
472 };
473 "funcsigs" = super.buildPythonPackage {
473 "funcsigs" = super.buildPythonPackage {
474 name = "funcsigs-1.0.2";
474 name = "funcsigs-1.0.2";
475 doCheck = false;
475 doCheck = false;
476 src = fetchurl {
476 src = fetchurl {
477 url = "https://files.pythonhosted.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
477 url = "https://files.pythonhosted.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
478 sha256 = "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7";
478 sha256 = "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7";
479 };
479 };
480 meta = {
480 meta = {
481 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
481 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
482 };
482 };
483 };
483 };
484 "functools32" = super.buildPythonPackage {
484 "functools32" = super.buildPythonPackage {
485 name = "functools32-3.2.3.post2";
485 name = "functools32-3.2.3.post2";
486 doCheck = false;
486 doCheck = false;
487 src = fetchurl {
487 src = fetchurl {
488 url = "https://files.pythonhosted.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
488 url = "https://files.pythonhosted.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
489 sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
489 sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
490 };
490 };
491 meta = {
491 meta = {
492 license = [ pkgs.lib.licenses.psfl ];
492 license = [ pkgs.lib.licenses.psfl ];
493 };
493 };
494 };
494 };
495 "future" = super.buildPythonPackage {
495 "future" = super.buildPythonPackage {
496 name = "future-0.14.3";
496 name = "future-0.14.3";
497 doCheck = false;
497 doCheck = false;
498 src = fetchurl {
498 src = fetchurl {
499 url = "https://files.pythonhosted.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
499 url = "https://files.pythonhosted.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
500 sha256 = "1savk7jx7hal032f522c5ajhh8fra6gmnadrj9adv5qxi18pv1b2";
500 sha256 = "1savk7jx7hal032f522c5ajhh8fra6gmnadrj9adv5qxi18pv1b2";
501 };
501 };
502 meta = {
502 meta = {
503 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
503 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
504 };
504 };
505 };
505 };
506 "futures" = super.buildPythonPackage {
506 "futures" = super.buildPythonPackage {
507 name = "futures-3.0.2";
507 name = "futures-3.0.2";
508 doCheck = false;
508 doCheck = false;
509 src = fetchurl {
509 src = fetchurl {
510 url = "https://files.pythonhosted.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
510 url = "https://files.pythonhosted.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
511 sha256 = "0mz2pbgxbc2nbib1szifi07whjbfs4r02pv2z390z7p410awjgyw";
511 sha256 = "0mz2pbgxbc2nbib1szifi07whjbfs4r02pv2z390z7p410awjgyw";
512 };
512 };
513 meta = {
513 meta = {
514 license = [ pkgs.lib.licenses.bsdOriginal ];
514 license = [ pkgs.lib.licenses.bsdOriginal ];
515 };
515 };
516 };
516 };
517 "gevent" = super.buildPythonPackage {
517 "gevent" = super.buildPythonPackage {
518 name = "gevent-1.3.5";
518 name = "gevent-1.3.5";
519 doCheck = false;
519 doCheck = false;
520 propagatedBuildInputs = [
520 propagatedBuildInputs = [
521 self."greenlet"
521 self."greenlet"
522 ];
522 ];
523 src = fetchurl {
523 src = fetchurl {
524 url = "https://files.pythonhosted.org/packages/e6/0a/fc345c6e6161f84484870dbcaa58e427c10bd9bdcd08a69bed3d6b398bf1/gevent-1.3.5.tar.gz";
524 url = "https://files.pythonhosted.org/packages/e6/0a/fc345c6e6161f84484870dbcaa58e427c10bd9bdcd08a69bed3d6b398bf1/gevent-1.3.5.tar.gz";
525 sha256 = "1w3gydxirgd2f60c5yv579w4903ds9s4g3587ik4jby97hgqc5bz";
525 sha256 = "1w3gydxirgd2f60c5yv579w4903ds9s4g3587ik4jby97hgqc5bz";
526 };
526 };
527 meta = {
527 meta = {
528 license = [ pkgs.lib.licenses.mit ];
528 license = [ pkgs.lib.licenses.mit ];
529 };
529 };
530 };
530 };
531 "gnureadline" = super.buildPythonPackage {
531 "gnureadline" = super.buildPythonPackage {
532 name = "gnureadline-6.3.8";
532 name = "gnureadline-6.3.8";
533 doCheck = false;
533 doCheck = false;
534 src = fetchurl {
534 src = fetchurl {
535 url = "https://files.pythonhosted.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
535 url = "https://files.pythonhosted.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
536 sha256 = "0ddhj98x2nv45iz4aadk4b9m0b1kpsn1xhcbypn5cd556knhiqjq";
536 sha256 = "0ddhj98x2nv45iz4aadk4b9m0b1kpsn1xhcbypn5cd556knhiqjq";
537 };
537 };
538 meta = {
538 meta = {
539 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
539 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
540 };
540 };
541 };
541 };
542 "gprof2dot" = super.buildPythonPackage {
542 "gprof2dot" = super.buildPythonPackage {
543 name = "gprof2dot-2017.9.19";
543 name = "gprof2dot-2017.9.19";
544 doCheck = false;
544 doCheck = false;
545 src = fetchurl {
545 src = fetchurl {
546 url = "https://files.pythonhosted.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
546 url = "https://files.pythonhosted.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
547 sha256 = "17ih23ld2nzgc3xwgbay911l6lh96jp1zshmskm17n1gg2i7mg6f";
547 sha256 = "17ih23ld2nzgc3xwgbay911l6lh96jp1zshmskm17n1gg2i7mg6f";
548 };
548 };
549 meta = {
549 meta = {
550 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
550 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
551 };
551 };
552 };
552 };
553 "graphviz" = super.buildPythonPackage {
553 "graphviz" = super.buildPythonPackage {
554 name = "graphviz-0.9";
554 name = "graphviz-0.9";
555 doCheck = false;
555 doCheck = false;
556 src = fetchurl {
556 src = fetchurl {
557 url = "https://files.pythonhosted.org/packages/2b/e6/71521bab8fb99833133f08f6ac0460e2f6b425a7f75ac4b02323c3c3b512/graphviz-0.9.zip";
557 url = "https://files.pythonhosted.org/packages/2b/e6/71521bab8fb99833133f08f6ac0460e2f6b425a7f75ac4b02323c3c3b512/graphviz-0.9.zip";
558 sha256 = "14r9brj4r31b3qy1nnn34v3l4h0n39bqxg9sn2fz4p3pp5mglnl6";
558 sha256 = "14r9brj4r31b3qy1nnn34v3l4h0n39bqxg9sn2fz4p3pp5mglnl6";
559 };
559 };
560 meta = {
560 meta = {
561 license = [ pkgs.lib.licenses.mit ];
561 license = [ pkgs.lib.licenses.mit ];
562 };
562 };
563 };
563 };
564 "greenlet" = super.buildPythonPackage {
564 "greenlet" = super.buildPythonPackage {
565 name = "greenlet-0.4.13";
565 name = "greenlet-0.4.13";
566 doCheck = false;
566 doCheck = false;
567 src = fetchurl {
567 src = fetchurl {
568 url = "https://files.pythonhosted.org/packages/13/de/ba92335e9e76040ca7274224942282a80d54f85e342a5e33c5277c7f87eb/greenlet-0.4.13.tar.gz";
568 url = "https://files.pythonhosted.org/packages/13/de/ba92335e9e76040ca7274224942282a80d54f85e342a5e33c5277c7f87eb/greenlet-0.4.13.tar.gz";
569 sha256 = "1r412gfx25jrdiv444prmz5a8igrfabwnwqyr6b52ypq7ga87vqg";
569 sha256 = "1r412gfx25jrdiv444prmz5a8igrfabwnwqyr6b52ypq7ga87vqg";
570 };
570 };
571 meta = {
571 meta = {
572 license = [ pkgs.lib.licenses.mit ];
572 license = [ pkgs.lib.licenses.mit ];
573 };
573 };
574 };
574 };
575 "gunicorn" = super.buildPythonPackage {
575 "gunicorn" = super.buildPythonPackage {
576 name = "gunicorn-19.9.0";
576 name = "gunicorn-19.9.0";
577 doCheck = false;
577 doCheck = false;
578 src = fetchurl {
578 src = fetchurl {
579 url = "https://files.pythonhosted.org/packages/47/52/68ba8e5e8ba251e54006a49441f7ccabca83b6bef5aedacb4890596c7911/gunicorn-19.9.0.tar.gz";
579 url = "https://files.pythonhosted.org/packages/47/52/68ba8e5e8ba251e54006a49441f7ccabca83b6bef5aedacb4890596c7911/gunicorn-19.9.0.tar.gz";
580 sha256 = "1wzlf4xmn6qjirh5w81l6i6kqjnab1n1qqkh7zsj1yb6gh4n49ps";
580 sha256 = "1wzlf4xmn6qjirh5w81l6i6kqjnab1n1qqkh7zsj1yb6gh4n49ps";
581 };
581 };
582 meta = {
582 meta = {
583 license = [ pkgs.lib.licenses.mit ];
583 license = [ pkgs.lib.licenses.mit ];
584 };
584 };
585 };
585 };
586 "html5lib" = super.buildPythonPackage {
586 "html5lib" = super.buildPythonPackage {
587 name = "html5lib-1.0.1";
587 name = "html5lib-1.0.1";
588 doCheck = false;
588 doCheck = false;
589 propagatedBuildInputs = [
589 propagatedBuildInputs = [
590 self."six"
590 self."six"
591 self."webencodings"
591 self."webencodings"
592 ];
592 ];
593 src = fetchurl {
593 src = fetchurl {
594 url = "https://files.pythonhosted.org/packages/85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f/html5lib-1.0.1.tar.gz";
594 url = "https://files.pythonhosted.org/packages/85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f/html5lib-1.0.1.tar.gz";
595 sha256 = "0dipzfrycv6j1jw82v9b7d8lzggx3x8xngx6l4xrqkxwvg7hvjv6";
595 sha256 = "0dipzfrycv6j1jw82v9b7d8lzggx3x8xngx6l4xrqkxwvg7hvjv6";
596 };
596 };
597 meta = {
597 meta = {
598 license = [ pkgs.lib.licenses.mit ];
598 license = [ pkgs.lib.licenses.mit ];
599 };
599 };
600 };
600 };
601 "hupper" = super.buildPythonPackage {
601 "hupper" = super.buildPythonPackage {
602 name = "hupper-1.3";
602 name = "hupper-1.3";
603 doCheck = false;
603 doCheck = false;
604 src = fetchurl {
604 src = fetchurl {
605 url = "https://files.pythonhosted.org/packages/51/0c/96335b1f2f32245fb871eea5bb9773196505ddb71fad15190056a282df9e/hupper-1.3.tar.gz";
605 url = "https://files.pythonhosted.org/packages/51/0c/96335b1f2f32245fb871eea5bb9773196505ddb71fad15190056a282df9e/hupper-1.3.tar.gz";
606 sha256 = "1pkyrm9c2crc32ps00k1ahnc5clj3pjwiarc7j0x8aykwih7ff10";
606 sha256 = "1pkyrm9c2crc32ps00k1ahnc5clj3pjwiarc7j0x8aykwih7ff10";
607 };
607 };
608 meta = {
608 meta = {
609 license = [ pkgs.lib.licenses.mit ];
609 license = [ pkgs.lib.licenses.mit ];
610 };
610 };
611 };
611 };
612 "infrae.cache" = super.buildPythonPackage {
612 "infrae.cache" = super.buildPythonPackage {
613 name = "infrae.cache-1.0.1";
613 name = "infrae.cache-1.0.1";
614 doCheck = false;
614 doCheck = false;
615 propagatedBuildInputs = [
615 propagatedBuildInputs = [
616 self."beaker"
616 self."beaker"
617 self."repoze.lru"
617 self."repoze.lru"
618 ];
618 ];
619 src = fetchurl {
619 src = fetchurl {
620 url = "https://files.pythonhosted.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
620 url = "https://files.pythonhosted.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
621 sha256 = "1dvqsjn8vw253wz9d1pz17j79mf4bs53dvp2qxck2qdp1am1njw4";
621 sha256 = "1dvqsjn8vw253wz9d1pz17j79mf4bs53dvp2qxck2qdp1am1njw4";
622 };
622 };
623 meta = {
623 meta = {
624 license = [ pkgs.lib.licenses.zpl21 ];
624 license = [ pkgs.lib.licenses.zpl21 ];
625 };
625 };
626 };
626 };
627 "invoke" = super.buildPythonPackage {
627 "invoke" = super.buildPythonPackage {
628 name = "invoke-0.13.0";
628 name = "invoke-0.13.0";
629 doCheck = false;
629 doCheck = false;
630 src = fetchurl {
630 src = fetchurl {
631 url = "https://files.pythonhosted.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
631 url = "https://files.pythonhosted.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
632 sha256 = "0794vhgxfmkh0vzkkg5cfv1w82g3jc3xr18wim29far9qpx9468s";
632 sha256 = "0794vhgxfmkh0vzkkg5cfv1w82g3jc3xr18wim29far9qpx9468s";
633 };
633 };
634 meta = {
634 meta = {
635 license = [ pkgs.lib.licenses.bsdOriginal ];
635 license = [ pkgs.lib.licenses.bsdOriginal ];
636 };
636 };
637 };
637 };
638 "ipaddress" = super.buildPythonPackage {
638 "ipaddress" = super.buildPythonPackage {
639 name = "ipaddress-1.0.22";
639 name = "ipaddress-1.0.22";
640 doCheck = false;
640 doCheck = false;
641 src = fetchurl {
641 src = fetchurl {
642 url = "https://files.pythonhosted.org/packages/97/8d/77b8cedcfbf93676148518036c6b1ce7f8e14bf07e95d7fd4ddcb8cc052f/ipaddress-1.0.22.tar.gz";
642 url = "https://files.pythonhosted.org/packages/97/8d/77b8cedcfbf93676148518036c6b1ce7f8e14bf07e95d7fd4ddcb8cc052f/ipaddress-1.0.22.tar.gz";
643 sha256 = "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi";
643 sha256 = "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi";
644 };
644 };
645 meta = {
645 meta = {
646 license = [ pkgs.lib.licenses.psfl ];
646 license = [ pkgs.lib.licenses.psfl ];
647 };
647 };
648 };
648 };
649 "ipdb" = super.buildPythonPackage {
649 "ipdb" = super.buildPythonPackage {
650 name = "ipdb-0.11";
650 name = "ipdb-0.11";
651 doCheck = false;
651 doCheck = false;
652 propagatedBuildInputs = [
652 propagatedBuildInputs = [
653 self."setuptools"
653 self."setuptools"
654 self."ipython"
654 self."ipython"
655 ];
655 ];
656 src = fetchurl {
656 src = fetchurl {
657 url = "https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz";
657 url = "https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz";
658 sha256 = "02m0l8wrhhd3z7dg3czn5ys1g5pxib516hpshdzp7rxzsxgcd0bh";
658 sha256 = "02m0l8wrhhd3z7dg3czn5ys1g5pxib516hpshdzp7rxzsxgcd0bh";
659 };
659 };
660 meta = {
660 meta = {
661 license = [ pkgs.lib.licenses.bsdOriginal ];
661 license = [ pkgs.lib.licenses.bsdOriginal ];
662 };
662 };
663 };
663 };
664 "ipython" = super.buildPythonPackage {
664 "ipython" = super.buildPythonPackage {
665 name = "ipython-5.1.0";
665 name = "ipython-5.1.0";
666 doCheck = false;
666 doCheck = false;
667 propagatedBuildInputs = [
667 propagatedBuildInputs = [
668 self."setuptools"
668 self."setuptools"
669 self."decorator"
669 self."decorator"
670 self."pickleshare"
670 self."pickleshare"
671 self."simplegeneric"
671 self."simplegeneric"
672 self."traitlets"
672 self."traitlets"
673 self."prompt-toolkit"
673 self."prompt-toolkit"
674 self."pygments"
674 self."pygments"
675 self."pexpect"
675 self."pexpect"
676 self."backports.shutil-get-terminal-size"
676 self."backports.shutil-get-terminal-size"
677 self."pathlib2"
677 self."pathlib2"
678 self."pexpect"
678 self."pexpect"
679 ];
679 ];
680 src = fetchurl {
680 src = fetchurl {
681 url = "https://files.pythonhosted.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
681 url = "https://files.pythonhosted.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
682 sha256 = "0qdrf6aj9kvjczd5chj1my8y2iq09am9l8bb2a1334a52d76kx3y";
682 sha256 = "0qdrf6aj9kvjczd5chj1my8y2iq09am9l8bb2a1334a52d76kx3y";
683 };
683 };
684 meta = {
684 meta = {
685 license = [ pkgs.lib.licenses.bsdOriginal ];
685 license = [ pkgs.lib.licenses.bsdOriginal ];
686 };
686 };
687 };
687 };
688 "ipython-genutils" = super.buildPythonPackage {
688 "ipython-genutils" = super.buildPythonPackage {
689 name = "ipython-genutils-0.2.0";
689 name = "ipython-genutils-0.2.0";
690 doCheck = false;
690 doCheck = false;
691 src = fetchurl {
691 src = fetchurl {
692 url = "https://files.pythonhosted.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
692 url = "https://files.pythonhosted.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
693 sha256 = "1a4bc9y8hnvq6cp08qs4mckgm6i6ajpndp4g496rvvzcfmp12bpb";
693 sha256 = "1a4bc9y8hnvq6cp08qs4mckgm6i6ajpndp4g496rvvzcfmp12bpb";
694 };
694 };
695 meta = {
695 meta = {
696 license = [ pkgs.lib.licenses.bsdOriginal ];
696 license = [ pkgs.lib.licenses.bsdOriginal ];
697 };
697 };
698 };
698 };
699 "iso8601" = super.buildPythonPackage {
699 "iso8601" = super.buildPythonPackage {
700 name = "iso8601-0.1.11";
700 name = "iso8601-0.1.11";
701 doCheck = false;
701 doCheck = false;
702 src = fetchurl {
702 src = fetchurl {
703 url = "https://files.pythonhosted.org/packages/c0/75/c9209ee4d1b5975eb8c2cba4428bde6b61bd55664a98290dd015cdb18e98/iso8601-0.1.11.tar.gz";
703 url = "https://files.pythonhosted.org/packages/c0/75/c9209ee4d1b5975eb8c2cba4428bde6b61bd55664a98290dd015cdb18e98/iso8601-0.1.11.tar.gz";
704 sha256 = "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8";
704 sha256 = "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8";
705 };
705 };
706 meta = {
706 meta = {
707 license = [ pkgs.lib.licenses.mit ];
707 license = [ pkgs.lib.licenses.mit ];
708 };
708 };
709 };
709 };
710 "itsdangerous" = super.buildPythonPackage {
710 "itsdangerous" = super.buildPythonPackage {
711 name = "itsdangerous-0.24";
711 name = "itsdangerous-0.24";
712 doCheck = false;
712 doCheck = false;
713 src = fetchurl {
713 src = fetchurl {
714 url = "https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
714 url = "https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
715 sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
715 sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
716 };
716 };
717 meta = {
717 meta = {
718 license = [ pkgs.lib.licenses.bsdOriginal ];
718 license = [ pkgs.lib.licenses.bsdOriginal ];
719 };
719 };
720 };
720 };
721 "jinja2" = super.buildPythonPackage {
721 "jinja2" = super.buildPythonPackage {
722 name = "jinja2-2.9.6";
722 name = "jinja2-2.9.6";
723 doCheck = false;
723 doCheck = false;
724 propagatedBuildInputs = [
724 propagatedBuildInputs = [
725 self."markupsafe"
725 self."markupsafe"
726 ];
726 ];
727 src = fetchurl {
727 src = fetchurl {
728 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
728 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
729 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
729 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
730 };
730 };
731 meta = {
731 meta = {
732 license = [ pkgs.lib.licenses.bsdOriginal ];
732 license = [ pkgs.lib.licenses.bsdOriginal ];
733 };
733 };
734 };
734 };
735 "jsonschema" = super.buildPythonPackage {
735 "jsonschema" = super.buildPythonPackage {
736 name = "jsonschema-2.6.0";
736 name = "jsonschema-2.6.0";
737 doCheck = false;
737 doCheck = false;
738 propagatedBuildInputs = [
738 propagatedBuildInputs = [
739 self."functools32"
739 self."functools32"
740 ];
740 ];
741 src = fetchurl {
741 src = fetchurl {
742 url = "https://files.pythonhosted.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
742 url = "https://files.pythonhosted.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
743 sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
743 sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
744 };
744 };
745 meta = {
745 meta = {
746 license = [ pkgs.lib.licenses.mit ];
746 license = [ pkgs.lib.licenses.mit ];
747 };
747 };
748 };
748 };
749 "jupyter-client" = super.buildPythonPackage {
749 "jupyter-client" = super.buildPythonPackage {
750 name = "jupyter-client-5.0.0";
750 name = "jupyter-client-5.0.0";
751 doCheck = false;
751 doCheck = false;
752 propagatedBuildInputs = [
752 propagatedBuildInputs = [
753 self."traitlets"
753 self."traitlets"
754 self."jupyter-core"
754 self."jupyter-core"
755 self."pyzmq"
755 self."pyzmq"
756 self."python-dateutil"
756 self."python-dateutil"
757 ];
757 ];
758 src = fetchurl {
758 src = fetchurl {
759 url = "https://files.pythonhosted.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
759 url = "https://files.pythonhosted.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
760 sha256 = "0nxw4rqk4wsjhc87gjqd7pv89cb9dnimcfnmcmp85bmrvv1gjri7";
760 sha256 = "0nxw4rqk4wsjhc87gjqd7pv89cb9dnimcfnmcmp85bmrvv1gjri7";
761 };
761 };
762 meta = {
762 meta = {
763 license = [ pkgs.lib.licenses.bsdOriginal ];
763 license = [ pkgs.lib.licenses.bsdOriginal ];
764 };
764 };
765 };
765 };
766 "jupyter-core" = super.buildPythonPackage {
766 "jupyter-core" = super.buildPythonPackage {
767 name = "jupyter-core-4.4.0";
767 name = "jupyter-core-4.4.0";
768 doCheck = false;
768 doCheck = false;
769 propagatedBuildInputs = [
769 propagatedBuildInputs = [
770 self."traitlets"
770 self."traitlets"
771 ];
771 ];
772 src = fetchurl {
772 src = fetchurl {
773 url = "https://files.pythonhosted.org/packages/b6/2d/2804f4de3a95583f65e5dcb4d7c8c7183124882323758996e867f47e72af/jupyter_core-4.4.0.tar.gz";
773 url = "https://files.pythonhosted.org/packages/b6/2d/2804f4de3a95583f65e5dcb4d7c8c7183124882323758996e867f47e72af/jupyter_core-4.4.0.tar.gz";
774 sha256 = "1dy083rarba8prn9f9srxq3c7n7vyql02ycrqq306c40lr57aw5s";
774 sha256 = "1dy083rarba8prn9f9srxq3c7n7vyql02ycrqq306c40lr57aw5s";
775 };
775 };
776 meta = {
776 meta = {
777 license = [ pkgs.lib.licenses.bsdOriginal ];
777 license = [ pkgs.lib.licenses.bsdOriginal ];
778 };
778 };
779 };
779 };
780 "kombu" = super.buildPythonPackage {
780 "kombu" = super.buildPythonPackage {
781 name = "kombu-4.2.0";
781 name = "kombu-4.2.0";
782 doCheck = false;
782 doCheck = false;
783 propagatedBuildInputs = [
783 propagatedBuildInputs = [
784 self."amqp"
784 self."amqp"
785 ];
785 ];
786 src = fetchurl {
786 src = fetchurl {
787 url = "https://files.pythonhosted.org/packages/ab/b1/46a7a8babf5e60f3b2ca081a100af8edfcf132078a726375f52a054e70cf/kombu-4.2.0.tar.gz";
787 url = "https://files.pythonhosted.org/packages/ab/b1/46a7a8babf5e60f3b2ca081a100af8edfcf132078a726375f52a054e70cf/kombu-4.2.0.tar.gz";
788 sha256 = "1yz19qlqf0inl1mnwlpq9j6kj9r67clpy0xg99phyg4329rw80fn";
788 sha256 = "1yz19qlqf0inl1mnwlpq9j6kj9r67clpy0xg99phyg4329rw80fn";
789 };
789 };
790 meta = {
790 meta = {
791 license = [ pkgs.lib.licenses.bsdOriginal ];
791 license = [ pkgs.lib.licenses.bsdOriginal ];
792 };
792 };
793 };
793 };
794 "lxml" = super.buildPythonPackage {
794 "lxml" = super.buildPythonPackage {
795 name = "lxml-3.7.3";
795 name = "lxml-3.7.3";
796 doCheck = false;
796 doCheck = false;
797 src = fetchurl {
797 src = fetchurl {
798 url = "https://files.pythonhosted.org/packages/39/e8/a8e0b1fa65dd021d48fe21464f71783655f39a41f218293c1c590d54eb82/lxml-3.7.3.tar.gz";
798 url = "https://files.pythonhosted.org/packages/39/e8/a8e0b1fa65dd021d48fe21464f71783655f39a41f218293c1c590d54eb82/lxml-3.7.3.tar.gz";
799 sha256 = "1iv1jgkqn1hdh1xyxri6g0y1s67h01jzjkw2nhkx3rqylmw2sl5a";
799 sha256 = "1iv1jgkqn1hdh1xyxri6g0y1s67h01jzjkw2nhkx3rqylmw2sl5a";
800 };
800 };
801 meta = {
801 meta = {
802 license = [ pkgs.lib.licenses.bsdOriginal ];
802 license = [ pkgs.lib.licenses.bsdOriginal ];
803 };
803 };
804 };
804 };
805 "mako" = super.buildPythonPackage {
805 "mako" = super.buildPythonPackage {
806 name = "mako-1.0.7";
806 name = "mako-1.0.7";
807 doCheck = false;
807 doCheck = false;
808 propagatedBuildInputs = [
808 propagatedBuildInputs = [
809 self."markupsafe"
809 self."markupsafe"
810 ];
810 ];
811 src = fetchurl {
811 src = fetchurl {
812 url = "https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
812 url = "https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
813 sha256 = "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf";
813 sha256 = "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf";
814 };
814 };
815 meta = {
815 meta = {
816 license = [ pkgs.lib.licenses.mit ];
816 license = [ pkgs.lib.licenses.mit ];
817 };
817 };
818 };
818 };
819 "markdown" = super.buildPythonPackage {
819 "markdown" = super.buildPythonPackage {
820 name = "markdown-2.6.11";
820 name = "markdown-2.6.11";
821 doCheck = false;
821 doCheck = false;
822 src = fetchurl {
822 src = fetchurl {
823 url = "https://files.pythonhosted.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
823 url = "https://files.pythonhosted.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
824 sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
824 sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
825 };
825 };
826 meta = {
826 meta = {
827 license = [ pkgs.lib.licenses.bsdOriginal ];
827 license = [ pkgs.lib.licenses.bsdOriginal ];
828 };
828 };
829 };
829 };
830 "markupsafe" = super.buildPythonPackage {
830 "markupsafe" = super.buildPythonPackage {
831 name = "markupsafe-1.0";
831 name = "markupsafe-1.0";
832 doCheck = false;
832 doCheck = false;
833 src = fetchurl {
833 src = fetchurl {
834 url = "https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
834 url = "https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
835 sha256 = "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6";
835 sha256 = "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6";
836 };
836 };
837 meta = {
837 meta = {
838 license = [ pkgs.lib.licenses.bsdOriginal ];
838 license = [ pkgs.lib.licenses.bsdOriginal ];
839 };
839 };
840 };
840 };
841 "meld3" = super.buildPythonPackage {
841 "meld3" = super.buildPythonPackage {
842 name = "meld3-1.0.2";
842 name = "meld3-1.0.2";
843 doCheck = false;
843 doCheck = false;
844 src = fetchurl {
844 src = fetchurl {
845 url = "https://files.pythonhosted.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
845 url = "https://files.pythonhosted.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
846 sha256 = "0n4mkwlpsqnmn0dm0wm5hn9nkda0nafl0jdy5sdl5977znh59dzp";
846 sha256 = "0n4mkwlpsqnmn0dm0wm5hn9nkda0nafl0jdy5sdl5977znh59dzp";
847 };
847 };
848 meta = {
848 meta = {
849 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
849 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
850 };
850 };
851 };
851 };
852 "mistune" = super.buildPythonPackage {
852 "mistune" = super.buildPythonPackage {
853 name = "mistune-0.8.3";
853 name = "mistune-0.8.3";
854 doCheck = false;
854 doCheck = false;
855 src = fetchurl {
855 src = fetchurl {
856 url = "https://files.pythonhosted.org/packages/9d/be/e06d4346cc608a01dec6bf770d7d0303a4fd6db588b318ced18f5f257145/mistune-0.8.3.tar.gz";
856 url = "https://files.pythonhosted.org/packages/9d/be/e06d4346cc608a01dec6bf770d7d0303a4fd6db588b318ced18f5f257145/mistune-0.8.3.tar.gz";
857 sha256 = "06b662p6kf46wh2jsabaqhaq4bz1srh2zxkrnx4yg96azlxw645w";
857 sha256 = "06b662p6kf46wh2jsabaqhaq4bz1srh2zxkrnx4yg96azlxw645w";
858 };
858 };
859 meta = {
859 meta = {
860 license = [ pkgs.lib.licenses.bsdOriginal ];
860 license = [ pkgs.lib.licenses.bsdOriginal ];
861 };
861 };
862 };
862 };
863 "mock" = super.buildPythonPackage {
863 "mock" = super.buildPythonPackage {
864 name = "mock-1.0.1";
864 name = "mock-1.0.1";
865 doCheck = false;
865 doCheck = false;
866 src = fetchurl {
866 src = fetchurl {
867 url = "https://files.pythonhosted.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
867 url = "https://files.pythonhosted.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
868 sha256 = "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq";
868 sha256 = "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq";
869 };
869 };
870 meta = {
870 meta = {
871 license = [ pkgs.lib.licenses.bsdOriginal ];
871 license = [ pkgs.lib.licenses.bsdOriginal ];
872 };
872 };
873 };
873 };
874 "more-itertools" = super.buildPythonPackage {
874 "more-itertools" = super.buildPythonPackage {
875 name = "more-itertools-4.3.0";
875 name = "more-itertools-4.3.0";
876 doCheck = false;
876 doCheck = false;
877 propagatedBuildInputs = [
877 propagatedBuildInputs = [
878 self."six"
878 self."six"
879 ];
879 ];
880 src = fetchurl {
880 src = fetchurl {
881 url = "https://files.pythonhosted.org/packages/88/ff/6d485d7362f39880810278bdc906c13300db05485d9c65971dec1142da6a/more-itertools-4.3.0.tar.gz";
881 url = "https://files.pythonhosted.org/packages/88/ff/6d485d7362f39880810278bdc906c13300db05485d9c65971dec1142da6a/more-itertools-4.3.0.tar.gz";
882 sha256 = "17h3na0rdh8xq30w4b9pizgkdxmm51896bxw600x84jflg9vaxn4";
882 sha256 = "17h3na0rdh8xq30w4b9pizgkdxmm51896bxw600x84jflg9vaxn4";
883 };
883 };
884 meta = {
884 meta = {
885 license = [ pkgs.lib.licenses.mit ];
885 license = [ pkgs.lib.licenses.mit ];
886 };
886 };
887 };
887 };
888 "msgpack-python" = super.buildPythonPackage {
888 "msgpack-python" = super.buildPythonPackage {
889 name = "msgpack-python-0.5.6";
889 name = "msgpack-python-0.5.6";
890 doCheck = false;
890 doCheck = false;
891 src = fetchurl {
891 src = fetchurl {
892 url = "https://files.pythonhosted.org/packages/8a/20/6eca772d1a5830336f84aca1d8198e5a3f4715cd1c7fc36d3cc7f7185091/msgpack-python-0.5.6.tar.gz";
892 url = "https://files.pythonhosted.org/packages/8a/20/6eca772d1a5830336f84aca1d8198e5a3f4715cd1c7fc36d3cc7f7185091/msgpack-python-0.5.6.tar.gz";
893 sha256 = "16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p";
893 sha256 = "16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p";
894 };
894 };
895 meta = {
895 meta = {
896 license = [ pkgs.lib.licenses.asl20 ];
896 license = [ pkgs.lib.licenses.asl20 ];
897 };
897 };
898 };
898 };
899 "mysql-python" = super.buildPythonPackage {
899 "mysql-python" = super.buildPythonPackage {
900 name = "mysql-python-1.2.5";
900 name = "mysql-python-1.2.5";
901 doCheck = false;
901 doCheck = false;
902 src = fetchurl {
902 src = fetchurl {
903 url = "https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
903 url = "https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
904 sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
904 sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
905 };
905 };
906 meta = {
906 meta = {
907 license = [ pkgs.lib.licenses.gpl1 ];
907 license = [ pkgs.lib.licenses.gpl1 ];
908 };
908 };
909 };
909 };
910 "nbconvert" = super.buildPythonPackage {
910 "nbconvert" = super.buildPythonPackage {
911 name = "nbconvert-5.3.1";
911 name = "nbconvert-5.3.1";
912 doCheck = false;
912 doCheck = false;
913 propagatedBuildInputs = [
913 propagatedBuildInputs = [
914 self."mistune"
914 self."mistune"
915 self."jinja2"
915 self."jinja2"
916 self."pygments"
916 self."pygments"
917 self."traitlets"
917 self."traitlets"
918 self."jupyter-core"
918 self."jupyter-core"
919 self."nbformat"
919 self."nbformat"
920 self."entrypoints"
920 self."entrypoints"
921 self."bleach"
921 self."bleach"
922 self."pandocfilters"
922 self."pandocfilters"
923 self."testpath"
923 self."testpath"
924 ];
924 ];
925 src = fetchurl {
925 src = fetchurl {
926 url = "https://files.pythonhosted.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
926 url = "https://files.pythonhosted.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
927 sha256 = "1f9dkvpx186xjm4xab0qbph588mncp4vqk3fmxrsnqs43mks9c8j";
927 sha256 = "1f9dkvpx186xjm4xab0qbph588mncp4vqk3fmxrsnqs43mks9c8j";
928 };
928 };
929 meta = {
929 meta = {
930 license = [ pkgs.lib.licenses.bsdOriginal ];
930 license = [ pkgs.lib.licenses.bsdOriginal ];
931 };
931 };
932 };
932 };
933 "nbformat" = super.buildPythonPackage {
933 "nbformat" = super.buildPythonPackage {
934 name = "nbformat-4.4.0";
934 name = "nbformat-4.4.0";
935 doCheck = false;
935 doCheck = false;
936 propagatedBuildInputs = [
936 propagatedBuildInputs = [
937 self."ipython-genutils"
937 self."ipython-genutils"
938 self."traitlets"
938 self."traitlets"
939 self."jsonschema"
939 self."jsonschema"
940 self."jupyter-core"
940 self."jupyter-core"
941 ];
941 ];
942 src = fetchurl {
942 src = fetchurl {
943 url = "https://files.pythonhosted.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
943 url = "https://files.pythonhosted.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
944 sha256 = "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp";
944 sha256 = "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp";
945 };
945 };
946 meta = {
946 meta = {
947 license = [ pkgs.lib.licenses.bsdOriginal ];
947 license = [ pkgs.lib.licenses.bsdOriginal ];
948 };
948 };
949 };
949 };
950 "objgraph" = super.buildPythonPackage {
950 "objgraph" = super.buildPythonPackage {
951 name = "objgraph-3.1.1";
951 name = "objgraph-3.1.1";
952 doCheck = false;
952 doCheck = false;
953 propagatedBuildInputs = [
953 propagatedBuildInputs = [
954 self."graphviz"
954 self."graphviz"
955 ];
955 ];
956 src = fetchurl {
956 src = fetchurl {
957 url = "https://files.pythonhosted.org/packages/be/58/9ca81a20cc837054e94866df1475d899caaa94f3732b8a46006858b015f7/objgraph-3.1.1.tar.gz";
957 url = "https://files.pythonhosted.org/packages/be/58/9ca81a20cc837054e94866df1475d899caaa94f3732b8a46006858b015f7/objgraph-3.1.1.tar.gz";
958 sha256 = "17aq4cwainiwvj8x61j0hx45c313bkwza5fijnmmw8v8glyy2bcc";
958 sha256 = "17aq4cwainiwvj8x61j0hx45c313bkwza5fijnmmw8v8glyy2bcc";
959 };
959 };
960 meta = {
960 meta = {
961 license = [ pkgs.lib.licenses.mit ];
961 license = [ pkgs.lib.licenses.mit ];
962 };
962 };
963 };
963 };
964 "packaging" = super.buildPythonPackage {
964 "packaging" = super.buildPythonPackage {
965 name = "packaging-15.2";
965 name = "packaging-15.2";
966 doCheck = false;
966 doCheck = false;
967 src = fetchurl {
967 src = fetchurl {
968 url = "https://files.pythonhosted.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
968 url = "https://files.pythonhosted.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
969 sha256 = "1zn60w84bxvw6wypffka18ca66pa1k2cfrq3cq8fnsfja5m3k4ng";
969 sha256 = "1zn60w84bxvw6wypffka18ca66pa1k2cfrq3cq8fnsfja5m3k4ng";
970 };
970 };
971 meta = {
971 meta = {
972 license = [ pkgs.lib.licenses.asl20 ];
972 license = [ pkgs.lib.licenses.asl20 ];
973 };
973 };
974 };
974 };
975 "pandocfilters" = super.buildPythonPackage {
975 "pandocfilters" = super.buildPythonPackage {
976 name = "pandocfilters-1.4.2";
976 name = "pandocfilters-1.4.2";
977 doCheck = false;
977 doCheck = false;
978 src = fetchurl {
978 src = fetchurl {
979 url = "https://files.pythonhosted.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
979 url = "https://files.pythonhosted.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
980 sha256 = "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk";
980 sha256 = "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk";
981 };
981 };
982 meta = {
982 meta = {
983 license = [ pkgs.lib.licenses.bsdOriginal ];
983 license = [ pkgs.lib.licenses.bsdOriginal ];
984 };
984 };
985 };
985 };
986 "paste" = super.buildPythonPackage {
986 "paste" = super.buildPythonPackage {
987 name = "paste-2.0.3";
987 name = "paste-2.0.3";
988 doCheck = false;
988 doCheck = false;
989 propagatedBuildInputs = [
989 propagatedBuildInputs = [
990 self."six"
990 self."six"
991 ];
991 ];
992 src = fetchurl {
992 src = fetchurl {
993 url = "https://files.pythonhosted.org/packages/30/c3/5c2f7c7a02e4f58d4454353fa1c32c94f79fa4e36d07a67c0ac295ea369e/Paste-2.0.3.tar.gz";
993 url = "https://files.pythonhosted.org/packages/30/c3/5c2f7c7a02e4f58d4454353fa1c32c94f79fa4e36d07a67c0ac295ea369e/Paste-2.0.3.tar.gz";
994 sha256 = "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3";
994 sha256 = "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3";
995 };
995 };
996 meta = {
996 meta = {
997 license = [ pkgs.lib.licenses.mit ];
997 license = [ pkgs.lib.licenses.mit ];
998 };
998 };
999 };
999 };
1000 "pastedeploy" = super.buildPythonPackage {
1000 "pastedeploy" = super.buildPythonPackage {
1001 name = "pastedeploy-1.5.2";
1001 name = "pastedeploy-1.5.2";
1002 doCheck = false;
1002 doCheck = false;
1003 src = fetchurl {
1003 src = fetchurl {
1004 url = "https://files.pythonhosted.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz";
1004 url = "https://files.pythonhosted.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz";
1005 sha256 = "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm";
1005 sha256 = "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm";
1006 };
1006 };
1007 meta = {
1007 meta = {
1008 license = [ pkgs.lib.licenses.mit ];
1008 license = [ pkgs.lib.licenses.mit ];
1009 };
1009 };
1010 };
1010 };
1011 "pastescript" = super.buildPythonPackage {
1011 "pastescript" = super.buildPythonPackage {
1012 name = "pastescript-2.0.2";
1012 name = "pastescript-2.0.2";
1013 doCheck = false;
1013 doCheck = false;
1014 propagatedBuildInputs = [
1014 propagatedBuildInputs = [
1015 self."paste"
1015 self."paste"
1016 self."pastedeploy"
1016 self."pastedeploy"
1017 self."six"
1017 self."six"
1018 ];
1018 ];
1019 src = fetchurl {
1019 src = fetchurl {
1020 url = "https://files.pythonhosted.org/packages/e5/f0/78e766c3dcc61a4f3a6f71dd8c95168ae9c7a31722b5663d19c1fdf62cb6/PasteScript-2.0.2.tar.gz";
1020 url = "https://files.pythonhosted.org/packages/e5/f0/78e766c3dcc61a4f3a6f71dd8c95168ae9c7a31722b5663d19c1fdf62cb6/PasteScript-2.0.2.tar.gz";
1021 sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
1021 sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
1022 };
1022 };
1023 meta = {
1023 meta = {
1024 license = [ pkgs.lib.licenses.mit ];
1024 license = [ pkgs.lib.licenses.mit ];
1025 };
1025 };
1026 };
1026 };
1027 "pathlib2" = super.buildPythonPackage {
1027 "pathlib2" = super.buildPythonPackage {
1028 name = "pathlib2-2.3.0";
1028 name = "pathlib2-2.3.0";
1029 doCheck = false;
1029 doCheck = false;
1030 propagatedBuildInputs = [
1030 propagatedBuildInputs = [
1031 self."six"
1031 self."six"
1032 self."scandir"
1032 self."scandir"
1033 ];
1033 ];
1034 src = fetchurl {
1034 src = fetchurl {
1035 url = "https://files.pythonhosted.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz";
1035 url = "https://files.pythonhosted.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz";
1036 sha256 = "1cx5gs2v9j2vnzmcrbq5l8fq2mwrr1h6pyf1sjdji2w1bavm09fk";
1036 sha256 = "1cx5gs2v9j2vnzmcrbq5l8fq2mwrr1h6pyf1sjdji2w1bavm09fk";
1037 };
1037 };
1038 meta = {
1038 meta = {
1039 license = [ pkgs.lib.licenses.mit ];
1039 license = [ pkgs.lib.licenses.mit ];
1040 };
1040 };
1041 };
1041 };
1042 "peppercorn" = super.buildPythonPackage {
1042 "peppercorn" = super.buildPythonPackage {
1043 name = "peppercorn-0.5";
1043 name = "peppercorn-0.5";
1044 doCheck = false;
1044 doCheck = false;
1045 src = fetchurl {
1045 src = fetchurl {
1046 url = "https://files.pythonhosted.org/packages/45/ec/a62ec317d1324a01567c5221b420742f094f05ee48097e5157d32be3755c/peppercorn-0.5.tar.gz";
1046 url = "https://files.pythonhosted.org/packages/45/ec/a62ec317d1324a01567c5221b420742f094f05ee48097e5157d32be3755c/peppercorn-0.5.tar.gz";
1047 sha256 = "0jvp144zn7yqk9kbpxc059167mlqk85i5lpvl1niw8gsa5fvl74j";
1047 sha256 = "0jvp144zn7yqk9kbpxc059167mlqk85i5lpvl1niw8gsa5fvl74j";
1048 };
1048 };
1049 meta = {
1049 meta = {
1050 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1050 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1051 };
1051 };
1052 };
1052 };
1053 "pexpect" = super.buildPythonPackage {
1053 "pexpect" = super.buildPythonPackage {
1054 name = "pexpect-4.6.0";
1054 name = "pexpect-4.6.0";
1055 doCheck = false;
1055 doCheck = false;
1056 propagatedBuildInputs = [
1056 propagatedBuildInputs = [
1057 self."ptyprocess"
1057 self."ptyprocess"
1058 ];
1058 ];
1059 src = fetchurl {
1059 src = fetchurl {
1060 url = "https://files.pythonhosted.org/packages/89/43/07d07654ee3e25235d8cea4164cdee0ec39d1fda8e9203156ebe403ffda4/pexpect-4.6.0.tar.gz";
1060 url = "https://files.pythonhosted.org/packages/89/43/07d07654ee3e25235d8cea4164cdee0ec39d1fda8e9203156ebe403ffda4/pexpect-4.6.0.tar.gz";
1061 sha256 = "1fla85g47iaxxpjhp9vkxdnv4pgc7rplfy6ja491smrrk0jqi3ia";
1061 sha256 = "1fla85g47iaxxpjhp9vkxdnv4pgc7rplfy6ja491smrrk0jqi3ia";
1062 };
1062 };
1063 meta = {
1063 meta = {
1064 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1064 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1065 };
1065 };
1066 };
1066 };
1067 "pickleshare" = super.buildPythonPackage {
1067 "pickleshare" = super.buildPythonPackage {
1068 name = "pickleshare-0.7.4";
1068 name = "pickleshare-0.7.4";
1069 doCheck = false;
1069 doCheck = false;
1070 propagatedBuildInputs = [
1070 propagatedBuildInputs = [
1071 self."pathlib2"
1071 self."pathlib2"
1072 ];
1072 ];
1073 src = fetchurl {
1073 src = fetchurl {
1074 url = "https://files.pythonhosted.org/packages/69/fe/dd137d84daa0fd13a709e448138e310d9ea93070620c9db5454e234af525/pickleshare-0.7.4.tar.gz";
1074 url = "https://files.pythonhosted.org/packages/69/fe/dd137d84daa0fd13a709e448138e310d9ea93070620c9db5454e234af525/pickleshare-0.7.4.tar.gz";
1075 sha256 = "0yvk14dzxk7g6qpr7iw23vzqbsr0dh4ij4xynkhnzpfz4xr2bac4";
1075 sha256 = "0yvk14dzxk7g6qpr7iw23vzqbsr0dh4ij4xynkhnzpfz4xr2bac4";
1076 };
1076 };
1077 meta = {
1077 meta = {
1078 license = [ pkgs.lib.licenses.mit ];
1078 license = [ pkgs.lib.licenses.mit ];
1079 };
1079 };
1080 };
1080 };
1081 "plaster" = super.buildPythonPackage {
1081 "plaster" = super.buildPythonPackage {
1082 name = "plaster-1.0";
1082 name = "plaster-1.0";
1083 doCheck = false;
1083 doCheck = false;
1084 propagatedBuildInputs = [
1084 propagatedBuildInputs = [
1085 self."setuptools"
1085 self."setuptools"
1086 ];
1086 ];
1087 src = fetchurl {
1087 src = fetchurl {
1088 url = "https://files.pythonhosted.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1088 url = "https://files.pythonhosted.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1089 sha256 = "1hy8k0nv2mxq94y5aysk6hjk9ryb4bsd13g83m60hcyzxz3wflc3";
1089 sha256 = "1hy8k0nv2mxq94y5aysk6hjk9ryb4bsd13g83m60hcyzxz3wflc3";
1090 };
1090 };
1091 meta = {
1091 meta = {
1092 license = [ pkgs.lib.licenses.mit ];
1092 license = [ pkgs.lib.licenses.mit ];
1093 };
1093 };
1094 };
1094 };
1095 "plaster-pastedeploy" = super.buildPythonPackage {
1095 "plaster-pastedeploy" = super.buildPythonPackage {
1096 name = "plaster-pastedeploy-0.6";
1096 name = "plaster-pastedeploy-0.6";
1097 doCheck = false;
1097 doCheck = false;
1098 propagatedBuildInputs = [
1098 propagatedBuildInputs = [
1099 self."pastedeploy"
1099 self."pastedeploy"
1100 self."plaster"
1100 self."plaster"
1101 ];
1101 ];
1102 src = fetchurl {
1102 src = fetchurl {
1103 url = "https://files.pythonhosted.org/packages/3f/e7/6a6833158d2038ec40085433308a1e164fd1dac595513f6dd556d5669bb8/plaster_pastedeploy-0.6.tar.gz";
1103 url = "https://files.pythonhosted.org/packages/3f/e7/6a6833158d2038ec40085433308a1e164fd1dac595513f6dd556d5669bb8/plaster_pastedeploy-0.6.tar.gz";
1104 sha256 = "1bkggk18f4z2bmsmxyxabvf62znvjwbivzh880419r3ap0616cf2";
1104 sha256 = "1bkggk18f4z2bmsmxyxabvf62znvjwbivzh880419r3ap0616cf2";
1105 };
1105 };
1106 meta = {
1106 meta = {
1107 license = [ pkgs.lib.licenses.mit ];
1107 license = [ pkgs.lib.licenses.mit ];
1108 };
1108 };
1109 };
1109 };
1110 "pluggy" = super.buildPythonPackage {
1110 "pluggy" = super.buildPythonPackage {
1111 name = "pluggy-0.6.0";
1111 name = "pluggy-0.6.0";
1112 doCheck = false;
1112 doCheck = false;
1113 src = fetchurl {
1113 src = fetchurl {
1114 url = "https://files.pythonhosted.org/packages/11/bf/cbeb8cdfaffa9f2ea154a30ae31a9d04a1209312e2919138b4171a1f8199/pluggy-0.6.0.tar.gz";
1114 url = "https://files.pythonhosted.org/packages/11/bf/cbeb8cdfaffa9f2ea154a30ae31a9d04a1209312e2919138b4171a1f8199/pluggy-0.6.0.tar.gz";
1115 sha256 = "1zqckndfn85l1cd8pndw212zg1bq9fkg1nnj32kp2mppppsyg2kz";
1115 sha256 = "1zqckndfn85l1cd8pndw212zg1bq9fkg1nnj32kp2mppppsyg2kz";
1116 };
1116 };
1117 meta = {
1117 meta = {
1118 license = [ pkgs.lib.licenses.mit ];
1118 license = [ pkgs.lib.licenses.mit ];
1119 };
1119 };
1120 };
1120 };
1121 "prompt-toolkit" = super.buildPythonPackage {
1121 "prompt-toolkit" = super.buildPythonPackage {
1122 name = "prompt-toolkit-1.0.15";
1122 name = "prompt-toolkit-1.0.15";
1123 doCheck = false;
1123 doCheck = false;
1124 propagatedBuildInputs = [
1124 propagatedBuildInputs = [
1125 self."six"
1125 self."six"
1126 self."wcwidth"
1126 self."wcwidth"
1127 ];
1127 ];
1128 src = fetchurl {
1128 src = fetchurl {
1129 url = "https://files.pythonhosted.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz";
1129 url = "https://files.pythonhosted.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz";
1130 sha256 = "05v9h5nydljwpj5nm8n804ms0glajwfy1zagrzqrg91wk3qqi1c5";
1130 sha256 = "05v9h5nydljwpj5nm8n804ms0glajwfy1zagrzqrg91wk3qqi1c5";
1131 };
1131 };
1132 meta = {
1132 meta = {
1133 license = [ pkgs.lib.licenses.bsdOriginal ];
1133 license = [ pkgs.lib.licenses.bsdOriginal ];
1134 };
1134 };
1135 };
1135 };
1136 "psutil" = super.buildPythonPackage {
1136 "psutil" = super.buildPythonPackage {
1137 name = "psutil-5.4.6";
1137 name = "psutil-5.4.6";
1138 doCheck = false;
1138 doCheck = false;
1139 src = fetchurl {
1139 src = fetchurl {
1140 url = "https://files.pythonhosted.org/packages/51/9e/0f8f5423ce28c9109807024f7bdde776ed0b1161de20b408875de7e030c3/psutil-5.4.6.tar.gz";
1140 url = "https://files.pythonhosted.org/packages/51/9e/0f8f5423ce28c9109807024f7bdde776ed0b1161de20b408875de7e030c3/psutil-5.4.6.tar.gz";
1141 sha256 = "1xmw4qi6hnrhw81xqzkvmsm9im7j2vkk4v26ycjwq2jczqsmlvk8";
1141 sha256 = "1xmw4qi6hnrhw81xqzkvmsm9im7j2vkk4v26ycjwq2jczqsmlvk8";
1142 };
1142 };
1143 meta = {
1143 meta = {
1144 license = [ pkgs.lib.licenses.bsdOriginal ];
1144 license = [ pkgs.lib.licenses.bsdOriginal ];
1145 };
1145 };
1146 };
1146 };
1147 "psycopg2" = super.buildPythonPackage {
1147 "psycopg2" = super.buildPythonPackage {
1148 name = "psycopg2-2.7.4";
1148 name = "psycopg2-2.7.4";
1149 doCheck = false;
1149 doCheck = false;
1150 src = fetchurl {
1150 src = fetchurl {
1151 url = "https://files.pythonhosted.org/packages/74/83/51580322ed0e82cba7ad8e0af590b8fb2cf11bd5aaa1ed872661bd36f462/psycopg2-2.7.4.tar.gz";
1151 url = "https://files.pythonhosted.org/packages/74/83/51580322ed0e82cba7ad8e0af590b8fb2cf11bd5aaa1ed872661bd36f462/psycopg2-2.7.4.tar.gz";
1152 sha256 = "02b2yaf1hlwb91xkscbzmajpfj5z3d8yikzh5r48fs8gss8i3xcb";
1152 sha256 = "02b2yaf1hlwb91xkscbzmajpfj5z3d8yikzh5r48fs8gss8i3xcb";
1153 };
1153 };
1154 meta = {
1154 meta = {
1155 license = [ pkgs.lib.licenses.zpl21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1155 license = [ pkgs.lib.licenses.zpl21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1156 };
1156 };
1157 };
1157 };
1158 "ptyprocess" = super.buildPythonPackage {
1158 "ptyprocess" = super.buildPythonPackage {
1159 name = "ptyprocess-0.6.0";
1159 name = "ptyprocess-0.6.0";
1160 doCheck = false;
1160 doCheck = false;
1161 src = fetchurl {
1161 src = fetchurl {
1162 url = "https://files.pythonhosted.org/packages/7d/2d/e4b8733cf79b7309d84c9081a4ab558c89d8c89da5961bf4ddb050ca1ce0/ptyprocess-0.6.0.tar.gz";
1162 url = "https://files.pythonhosted.org/packages/7d/2d/e4b8733cf79b7309d84c9081a4ab558c89d8c89da5961bf4ddb050ca1ce0/ptyprocess-0.6.0.tar.gz";
1163 sha256 = "1h4lcd3w5nrxnsk436ar7fwkiy5rfn5wj2xwy9l0r4mdqnf2jgwj";
1163 sha256 = "1h4lcd3w5nrxnsk436ar7fwkiy5rfn5wj2xwy9l0r4mdqnf2jgwj";
1164 };
1164 };
1165 meta = {
1165 meta = {
1166 license = [ ];
1166 license = [ ];
1167 };
1167 };
1168 };
1168 };
1169 "py" = super.buildPythonPackage {
1169 "py" = super.buildPythonPackage {
1170 name = "py-1.5.3";
1170 name = "py-1.5.3";
1171 doCheck = false;
1171 doCheck = false;
1172 src = fetchurl {
1172 src = fetchurl {
1173 url = "https://files.pythonhosted.org/packages/f7/84/b4c6e84672c4ceb94f727f3da8344037b62cee960d80e999b1cd9b832d83/py-1.5.3.tar.gz";
1173 url = "https://files.pythonhosted.org/packages/f7/84/b4c6e84672c4ceb94f727f3da8344037b62cee960d80e999b1cd9b832d83/py-1.5.3.tar.gz";
1174 sha256 = "10gq2lckvgwlk9w6yzijhzkarx44hsaknd0ypa08wlnpjnsgmj99";
1174 sha256 = "10gq2lckvgwlk9w6yzijhzkarx44hsaknd0ypa08wlnpjnsgmj99";
1175 };
1175 };
1176 meta = {
1176 meta = {
1177 license = [ pkgs.lib.licenses.mit ];
1177 license = [ pkgs.lib.licenses.mit ];
1178 };
1178 };
1179 };
1179 };
1180 "py-bcrypt" = super.buildPythonPackage {
1180 "py-bcrypt" = super.buildPythonPackage {
1181 name = "py-bcrypt-0.4";
1181 name = "py-bcrypt-0.4";
1182 doCheck = false;
1182 doCheck = false;
1183 src = fetchurl {
1183 src = fetchurl {
1184 url = "https://files.pythonhosted.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1184 url = "https://files.pythonhosted.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1185 sha256 = "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az";
1185 sha256 = "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az";
1186 };
1186 };
1187 meta = {
1187 meta = {
1188 license = [ pkgs.lib.licenses.bsdOriginal ];
1188 license = [ pkgs.lib.licenses.bsdOriginal ];
1189 };
1189 };
1190 };
1190 };
1191 "py-gfm" = super.buildPythonPackage {
1191 "py-gfm" = super.buildPythonPackage {
1192 name = "py-gfm-0.1.3";
1192 name = "py-gfm-0.1.3";
1193 doCheck = false;
1193 doCheck = false;
1194 propagatedBuildInputs = [
1194 propagatedBuildInputs = [
1195 self."setuptools"
1195 self."setuptools"
1196 self."markdown"
1196 self."markdown"
1197 ];
1197 ];
1198 src = fetchurl {
1198 src = fetchurl {
1199 url = "https://files.pythonhosted.org/packages/12/e4/6b3d8678da04f97d7490d8264d8de51c2dc9fb91209ccee9c515c95e14c5/py-gfm-0.1.3.tar.gz";
1199 url = "https://files.pythonhosted.org/packages/12/e4/6b3d8678da04f97d7490d8264d8de51c2dc9fb91209ccee9c515c95e14c5/py-gfm-0.1.3.tar.gz";
1200 sha256 = "162ggwwj0af9g3s1k8m4bfwbvis03x9pinnf35mj79pb90rf81zi";
1200 sha256 = "162ggwwj0af9g3s1k8m4bfwbvis03x9pinnf35mj79pb90rf81zi";
1201 };
1201 };
1202 meta = {
1202 meta = {
1203 license = [ pkgs.lib.licenses.bsdOriginal ];
1203 license = [ pkgs.lib.licenses.bsdOriginal ];
1204 };
1204 };
1205 };
1205 };
1206 "pyasn1" = super.buildPythonPackage {
1206 "pyasn1" = super.buildPythonPackage {
1207 name = "pyasn1-0.4.4";
1207 name = "pyasn1-0.4.4";
1208 doCheck = false;
1208 doCheck = false;
1209 src = fetchurl {
1209 src = fetchurl {
1210 url = "https://files.pythonhosted.org/packages/10/46/059775dc8e50f722d205452bced4b3cc965d27e8c3389156acd3b1123ae3/pyasn1-0.4.4.tar.gz";
1210 url = "https://files.pythonhosted.org/packages/10/46/059775dc8e50f722d205452bced4b3cc965d27e8c3389156acd3b1123ae3/pyasn1-0.4.4.tar.gz";
1211 sha256 = "0drilmx5j25aplfr5wrml0030cs5fgxp9yp94fhllxgx28yjm3zm";
1211 sha256 = "0drilmx5j25aplfr5wrml0030cs5fgxp9yp94fhllxgx28yjm3zm";
1212 };
1212 };
1213 meta = {
1213 meta = {
1214 license = [ pkgs.lib.licenses.bsdOriginal ];
1214 license = [ pkgs.lib.licenses.bsdOriginal ];
1215 };
1215 };
1216 };
1216 };
1217 "pyasn1-modules" = super.buildPythonPackage {
1217 "pyasn1-modules" = super.buildPythonPackage {
1218 name = "pyasn1-modules-0.2.2";
1218 name = "pyasn1-modules-0.2.2";
1219 doCheck = false;
1219 doCheck = false;
1220 propagatedBuildInputs = [
1220 propagatedBuildInputs = [
1221 self."pyasn1"
1221 self."pyasn1"
1222 ];
1222 ];
1223 src = fetchurl {
1223 src = fetchurl {
1224 url = "https://files.pythonhosted.org/packages/37/33/74ebdc52be534e683dc91faf263931bc00ae05c6073909fde53999088541/pyasn1-modules-0.2.2.tar.gz";
1224 url = "https://files.pythonhosted.org/packages/37/33/74ebdc52be534e683dc91faf263931bc00ae05c6073909fde53999088541/pyasn1-modules-0.2.2.tar.gz";
1225 sha256 = "0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0";
1225 sha256 = "0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0";
1226 };
1226 };
1227 meta = {
1227 meta = {
1228 license = [ pkgs.lib.licenses.bsdOriginal ];
1228 license = [ pkgs.lib.licenses.bsdOriginal ];
1229 };
1229 };
1230 };
1230 };
1231 "pycrypto" = super.buildPythonPackage {
1231 "pycrypto" = super.buildPythonPackage {
1232 name = "pycrypto-2.6.1";
1232 name = "pycrypto-2.6.1";
1233 doCheck = false;
1233 doCheck = false;
1234 src = fetchurl {
1234 src = fetchurl {
1235 url = "https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1235 url = "https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1236 sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj";
1236 sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj";
1237 };
1237 };
1238 meta = {
1238 meta = {
1239 license = [ pkgs.lib.licenses.publicDomain ];
1239 license = [ pkgs.lib.licenses.publicDomain ];
1240 };
1240 };
1241 };
1241 };
1242 "pycurl" = super.buildPythonPackage {
1242 "pycurl" = super.buildPythonPackage {
1243 name = "pycurl-7.43.0.2";
1243 name = "pycurl-7.43.0.2";
1244 doCheck = false;
1244 doCheck = false;
1245 src = fetchurl {
1245 src = fetchurl {
1246 url = "https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz";
1246 url = "https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz";
1247 sha256 = "1915kb04k1j4y6k1dx1sgnbddxrl9r1n4q928if2lkrdm73xy30g";
1247 sha256 = "1915kb04k1j4y6k1dx1sgnbddxrl9r1n4q928if2lkrdm73xy30g";
1248 };
1248 };
1249 meta = {
1249 meta = {
1250 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1250 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1251 };
1251 };
1252 };
1252 };
1253 "pyflakes" = super.buildPythonPackage {
1253 "pyflakes" = super.buildPythonPackage {
1254 name = "pyflakes-0.8.1";
1254 name = "pyflakes-0.8.1";
1255 doCheck = false;
1255 doCheck = false;
1256 src = fetchurl {
1256 src = fetchurl {
1257 url = "https://files.pythonhosted.org/packages/75/22/a90ec0252f4f87f3ffb6336504de71fe16a49d69c4538dae2f12b9360a38/pyflakes-0.8.1.tar.gz";
1257 url = "https://files.pythonhosted.org/packages/75/22/a90ec0252f4f87f3ffb6336504de71fe16a49d69c4538dae2f12b9360a38/pyflakes-0.8.1.tar.gz";
1258 sha256 = "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z";
1258 sha256 = "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z";
1259 };
1259 };
1260 meta = {
1260 meta = {
1261 license = [ pkgs.lib.licenses.mit ];
1261 license = [ pkgs.lib.licenses.mit ];
1262 };
1262 };
1263 };
1263 };
1264 "pygments" = super.buildPythonPackage {
1264 "pygments" = super.buildPythonPackage {
1265 name = "pygments-2.2.0";
1265 name = "pygments-2.2.0";
1266 doCheck = false;
1266 doCheck = false;
1267 src = fetchurl {
1267 src = fetchurl {
1268 url = "https://files.pythonhosted.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz";
1268 url = "https://files.pythonhosted.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz";
1269 sha256 = "1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv";
1269 sha256 = "1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv";
1270 };
1270 };
1271 meta = {
1271 meta = {
1272 license = [ pkgs.lib.licenses.bsdOriginal ];
1272 license = [ pkgs.lib.licenses.bsdOriginal ];
1273 };
1273 };
1274 };
1274 };
1275 "pygments-markdown-lexer" = super.buildPythonPackage {
1275 "pygments-markdown-lexer" = super.buildPythonPackage {
1276 name = "pygments-markdown-lexer-0.1.0.dev39";
1276 name = "pygments-markdown-lexer-0.1.0.dev39";
1277 doCheck = false;
1277 doCheck = false;
1278 propagatedBuildInputs = [
1278 propagatedBuildInputs = [
1279 self."pygments"
1279 self."pygments"
1280 ];
1280 ];
1281 src = fetchurl {
1281 src = fetchurl {
1282 url = "https://files.pythonhosted.org/packages/c3/12/674cdee66635d638cedb2c5d9c85ce507b7b2f91bdba29e482f1b1160ff6/pygments-markdown-lexer-0.1.0.dev39.zip";
1282 url = "https://files.pythonhosted.org/packages/c3/12/674cdee66635d638cedb2c5d9c85ce507b7b2f91bdba29e482f1b1160ff6/pygments-markdown-lexer-0.1.0.dev39.zip";
1283 sha256 = "1pzb5wy23q3fhs0rqzasjnw6hdzwjngpakb73i98cn0b8lk8q4jc";
1283 sha256 = "1pzb5wy23q3fhs0rqzasjnw6hdzwjngpakb73i98cn0b8lk8q4jc";
1284 };
1284 };
1285 meta = {
1285 meta = {
1286 license = [ pkgs.lib.licenses.asl20 ];
1286 license = [ pkgs.lib.licenses.asl20 ];
1287 };
1287 };
1288 };
1288 };
1289 "pymysql" = super.buildPythonPackage {
1289 "pymysql" = super.buildPythonPackage {
1290 name = "pymysql-0.8.1";
1290 name = "pymysql-0.8.1";
1291 doCheck = false;
1291 doCheck = false;
1292 src = fetchurl {
1292 src = fetchurl {
1293 url = "https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fdf2009d3e29903a55a0494d3a9a2fac0/PyMySQL-0.8.1.tar.gz";
1293 url = "https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fdf2009d3e29903a55a0494d3a9a2fac0/PyMySQL-0.8.1.tar.gz";
1294 sha256 = "0a96crz55bw4h6myh833skrli7b0ck89m3x673y2z2ryy7zrpq9l";
1294 sha256 = "0a96crz55bw4h6myh833skrli7b0ck89m3x673y2z2ryy7zrpq9l";
1295 };
1295 };
1296 meta = {
1296 meta = {
1297 license = [ pkgs.lib.licenses.mit ];
1297 license = [ pkgs.lib.licenses.mit ];
1298 };
1298 };
1299 };
1299 };
1300 "pyotp" = super.buildPythonPackage {
1300 "pyotp" = super.buildPythonPackage {
1301 name = "pyotp-2.2.6";
1301 name = "pyotp-2.2.6";
1302 doCheck = false;
1302 doCheck = false;
1303 src = fetchurl {
1303 src = fetchurl {
1304 url = "https://files.pythonhosted.org/packages/67/69/131f5ad63de40c30f3be88d891e4a2ea1b69398528db99bc1e5c543422fa/pyotp-2.2.6.tar.gz";
1304 url = "https://files.pythonhosted.org/packages/67/69/131f5ad63de40c30f3be88d891e4a2ea1b69398528db99bc1e5c543422fa/pyotp-2.2.6.tar.gz";
1305 sha256 = "0sdxxvr3j4j0pk26v258jpxhgpbnpmyqhvzhl24hsd50j7fk14fx";
1305 sha256 = "0sdxxvr3j4j0pk26v258jpxhgpbnpmyqhvzhl24hsd50j7fk14fx";
1306 };
1306 };
1307 meta = {
1307 meta = {
1308 license = [ pkgs.lib.licenses.bsdOriginal ];
1308 license = [ pkgs.lib.licenses.bsdOriginal ];
1309 };
1309 };
1310 };
1310 };
1311 "pyparsing" = super.buildPythonPackage {
1311 "pyparsing" = super.buildPythonPackage {
1312 name = "pyparsing-1.5.7";
1312 name = "pyparsing-1.5.7";
1313 doCheck = false;
1313 doCheck = false;
1314 src = fetchurl {
1314 src = fetchurl {
1315 url = "https://files.pythonhosted.org/packages/6f/2c/47457771c02a8ff0f302b695e094ec309e30452232bd79198ee94fda689f/pyparsing-1.5.7.tar.gz";
1315 url = "https://files.pythonhosted.org/packages/6f/2c/47457771c02a8ff0f302b695e094ec309e30452232bd79198ee94fda689f/pyparsing-1.5.7.tar.gz";
1316 sha256 = "17z7ws076z977sclj628fvwrp8y9j2rvdjcsq42v129n1gwi8vk4";
1316 sha256 = "17z7ws076z977sclj628fvwrp8y9j2rvdjcsq42v129n1gwi8vk4";
1317 };
1317 };
1318 meta = {
1318 meta = {
1319 license = [ pkgs.lib.licenses.mit ];
1319 license = [ pkgs.lib.licenses.mit ];
1320 };
1320 };
1321 };
1321 };
1322 "pyramid" = super.buildPythonPackage {
1322 "pyramid" = super.buildPythonPackage {
1323 name = "pyramid-1.9.2";
1323 name = "pyramid-1.9.2";
1324 doCheck = false;
1324 doCheck = false;
1325 propagatedBuildInputs = [
1325 propagatedBuildInputs = [
1326 self."setuptools"
1326 self."setuptools"
1327 self."webob"
1327 self."webob"
1328 self."repoze.lru"
1328 self."repoze.lru"
1329 self."zope.interface"
1329 self."zope.interface"
1330 self."zope.deprecation"
1330 self."zope.deprecation"
1331 self."venusian"
1331 self."venusian"
1332 self."translationstring"
1332 self."translationstring"
1333 self."pastedeploy"
1333 self."pastedeploy"
1334 self."plaster"
1334 self."plaster"
1335 self."plaster-pastedeploy"
1335 self."plaster-pastedeploy"
1336 self."hupper"
1336 self."hupper"
1337 ];
1337 ];
1338 src = fetchurl {
1338 src = fetchurl {
1339 url = "https://files.pythonhosted.org/packages/a0/c1/b321d07cfc4870541989ad131c86a1d593bfe802af0eca9718a0dadfb97a/pyramid-1.9.2.tar.gz";
1339 url = "https://files.pythonhosted.org/packages/a0/c1/b321d07cfc4870541989ad131c86a1d593bfe802af0eca9718a0dadfb97a/pyramid-1.9.2.tar.gz";
1340 sha256 = "09drsl0346nchgxp2j7sa5hlk7mkhfld9wvbd0wicacrp26a92fg";
1340 sha256 = "09drsl0346nchgxp2j7sa5hlk7mkhfld9wvbd0wicacrp26a92fg";
1341 };
1341 };
1342 meta = {
1342 meta = {
1343 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1343 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1344 };
1344 };
1345 };
1345 };
1346 "pyramid-beaker" = super.buildPythonPackage {
1346 "pyramid-beaker" = super.buildPythonPackage {
1347 name = "pyramid-beaker-0.8";
1347 name = "pyramid-beaker-0.8";
1348 doCheck = false;
1348 doCheck = false;
1349 propagatedBuildInputs = [
1349 propagatedBuildInputs = [
1350 self."pyramid"
1350 self."pyramid"
1351 self."beaker"
1351 self."beaker"
1352 ];
1352 ];
1353 src = fetchurl {
1353 src = fetchurl {
1354 url = "https://files.pythonhosted.org/packages/d9/6e/b85426e00fd3d57f4545f74e1c3828552d8700f13ededeef9233f7bca8be/pyramid_beaker-0.8.tar.gz";
1354 url = "https://files.pythonhosted.org/packages/d9/6e/b85426e00fd3d57f4545f74e1c3828552d8700f13ededeef9233f7bca8be/pyramid_beaker-0.8.tar.gz";
1355 sha256 = "0hflx3qkcdml1mwpq53sz46s7jickpfn0zy0ns2c7j445j66bp3p";
1355 sha256 = "0hflx3qkcdml1mwpq53sz46s7jickpfn0zy0ns2c7j445j66bp3p";
1356 };
1356 };
1357 meta = {
1357 meta = {
1358 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1358 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1359 };
1359 };
1360 };
1360 };
1361 "pyramid-debugtoolbar" = super.buildPythonPackage {
1361 "pyramid-debugtoolbar" = super.buildPythonPackage {
1362 name = "pyramid-debugtoolbar-4.4";
1362 name = "pyramid-debugtoolbar-4.4";
1363 doCheck = false;
1363 doCheck = false;
1364 propagatedBuildInputs = [
1364 propagatedBuildInputs = [
1365 self."pyramid"
1365 self."pyramid"
1366 self."pyramid-mako"
1366 self."pyramid-mako"
1367 self."repoze.lru"
1367 self."repoze.lru"
1368 self."pygments"
1368 self."pygments"
1369 self."ipaddress"
1369 self."ipaddress"
1370 ];
1370 ];
1371 src = fetchurl {
1371 src = fetchurl {
1372 url = "https://files.pythonhosted.org/packages/00/6f/c04eb4e715a7a5a4b24079ab7ffd1dceb1f70b2e24fc17686a2922dbac0a/pyramid_debugtoolbar-4.4.tar.gz";
1372 url = "https://files.pythonhosted.org/packages/00/6f/c04eb4e715a7a5a4b24079ab7ffd1dceb1f70b2e24fc17686a2922dbac0a/pyramid_debugtoolbar-4.4.tar.gz";
1373 sha256 = "17p7nxvapvy2hab1rah3ndq2kbs4v83pixj8x2n4m7008ai9lxsz";
1373 sha256 = "17p7nxvapvy2hab1rah3ndq2kbs4v83pixj8x2n4m7008ai9lxsz";
1374 };
1374 };
1375 meta = {
1375 meta = {
1376 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1376 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1377 };
1377 };
1378 };
1378 };
1379 "pyramid-jinja2" = super.buildPythonPackage {
1379 "pyramid-jinja2" = super.buildPythonPackage {
1380 name = "pyramid-jinja2-2.7";
1380 name = "pyramid-jinja2-2.7";
1381 doCheck = false;
1381 doCheck = false;
1382 propagatedBuildInputs = [
1382 propagatedBuildInputs = [
1383 self."pyramid"
1383 self."pyramid"
1384 self."zope.deprecation"
1384 self."zope.deprecation"
1385 self."jinja2"
1385 self."jinja2"
1386 self."markupsafe"
1386 self."markupsafe"
1387 ];
1387 ];
1388 src = fetchurl {
1388 src = fetchurl {
1389 url = "https://files.pythonhosted.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1389 url = "https://files.pythonhosted.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1390 sha256 = "1sz5s0pp5jqhf4w22w9527yz8hgdi4mhr6apd6vw1gm5clghh8aw";
1390 sha256 = "1sz5s0pp5jqhf4w22w9527yz8hgdi4mhr6apd6vw1gm5clghh8aw";
1391 };
1391 };
1392 meta = {
1392 meta = {
1393 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1393 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1394 };
1394 };
1395 };
1395 };
1396 "pyramid-mako" = super.buildPythonPackage {
1396 "pyramid-mako" = super.buildPythonPackage {
1397 name = "pyramid-mako-1.0.2";
1397 name = "pyramid-mako-1.0.2";
1398 doCheck = false;
1398 doCheck = false;
1399 propagatedBuildInputs = [
1399 propagatedBuildInputs = [
1400 self."pyramid"
1400 self."pyramid"
1401 self."mako"
1401 self."mako"
1402 ];
1402 ];
1403 src = fetchurl {
1403 src = fetchurl {
1404 url = "https://files.pythonhosted.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1404 url = "https://files.pythonhosted.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1405 sha256 = "18gk2vliq8z4acblsl6yzgbvnr9rlxjlcqir47km7kvlk1xri83d";
1405 sha256 = "18gk2vliq8z4acblsl6yzgbvnr9rlxjlcqir47km7kvlk1xri83d";
1406 };
1406 };
1407 meta = {
1407 meta = {
1408 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1408 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1409 };
1409 };
1410 };
1410 };
1411 "pysqlite" = super.buildPythonPackage {
1411 "pysqlite" = super.buildPythonPackage {
1412 name = "pysqlite-2.8.3";
1412 name = "pysqlite-2.8.3";
1413 doCheck = false;
1413 doCheck = false;
1414 src = fetchurl {
1414 src = fetchurl {
1415 url = "https://files.pythonhosted.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1415 url = "https://files.pythonhosted.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1416 sha256 = "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp";
1416 sha256 = "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp";
1417 };
1417 };
1418 meta = {
1418 meta = {
1419 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1419 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1420 };
1420 };
1421 };
1421 };
1422 "pytest" = super.buildPythonPackage {
1422 "pytest" = super.buildPythonPackage {
1423 name = "pytest-3.6.0";
1423 name = "pytest-3.6.0";
1424 doCheck = false;
1424 doCheck = false;
1425 propagatedBuildInputs = [
1425 propagatedBuildInputs = [
1426 self."py"
1426 self."py"
1427 self."six"
1427 self."six"
1428 self."setuptools"
1428 self."setuptools"
1429 self."attrs"
1429 self."attrs"
1430 self."more-itertools"
1430 self."more-itertools"
1431 self."atomicwrites"
1431 self."atomicwrites"
1432 self."pluggy"
1432 self."pluggy"
1433 self."funcsigs"
1433 self."funcsigs"
1434 ];
1434 ];
1435 src = fetchurl {
1435 src = fetchurl {
1436 url = "https://files.pythonhosted.org/packages/67/6a/5bcdc22f8dbada1d2910d6e1a3a03f6b14306c78f81122890735b28be4bf/pytest-3.6.0.tar.gz";
1436 url = "https://files.pythonhosted.org/packages/67/6a/5bcdc22f8dbada1d2910d6e1a3a03f6b14306c78f81122890735b28be4bf/pytest-3.6.0.tar.gz";
1437 sha256 = "0bdfazvjjbxssqzyvkb3m2x2in7xv56ipr899l00s87k7815sm9r";
1437 sha256 = "0bdfazvjjbxssqzyvkb3m2x2in7xv56ipr899l00s87k7815sm9r";
1438 };
1438 };
1439 meta = {
1439 meta = {
1440 license = [ pkgs.lib.licenses.mit ];
1440 license = [ pkgs.lib.licenses.mit ];
1441 };
1441 };
1442 };
1442 };
1443 "pytest-cov" = super.buildPythonPackage {
1443 "pytest-cov" = super.buildPythonPackage {
1444 name = "pytest-cov-2.5.1";
1444 name = "pytest-cov-2.5.1";
1445 doCheck = false;
1445 doCheck = false;
1446 propagatedBuildInputs = [
1446 propagatedBuildInputs = [
1447 self."pytest"
1447 self."pytest"
1448 self."coverage"
1448 self."coverage"
1449 ];
1449 ];
1450 src = fetchurl {
1450 src = fetchurl {
1451 url = "https://files.pythonhosted.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz";
1451 url = "https://files.pythonhosted.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz";
1452 sha256 = "0bbfpwdh9k3636bxc88vz9fa7vf4akchgn513ql1vd0xy4n7bah3";
1452 sha256 = "0bbfpwdh9k3636bxc88vz9fa7vf4akchgn513ql1vd0xy4n7bah3";
1453 };
1453 };
1454 meta = {
1454 meta = {
1455 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1455 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1456 };
1456 };
1457 };
1457 };
1458 "pytest-profiling" = super.buildPythonPackage {
1458 "pytest-profiling" = super.buildPythonPackage {
1459 name = "pytest-profiling-1.3.0";
1459 name = "pytest-profiling-1.3.0";
1460 doCheck = false;
1460 doCheck = false;
1461 propagatedBuildInputs = [
1461 propagatedBuildInputs = [
1462 self."six"
1462 self."six"
1463 self."pytest"
1463 self."pytest"
1464 self."gprof2dot"
1464 self."gprof2dot"
1465 ];
1465 ];
1466 src = fetchurl {
1466 src = fetchurl {
1467 url = "https://files.pythonhosted.org/packages/f5/34/4626126e041a51ef50a80d0619519b18d20aef249aac25b0d0fdd47e57ee/pytest-profiling-1.3.0.tar.gz";
1467 url = "https://files.pythonhosted.org/packages/f5/34/4626126e041a51ef50a80d0619519b18d20aef249aac25b0d0fdd47e57ee/pytest-profiling-1.3.0.tar.gz";
1468 sha256 = "08r5afx5z22yvpmsnl91l4amsy1yxn8qsmm61mhp06mz8zjs51kb";
1468 sha256 = "08r5afx5z22yvpmsnl91l4amsy1yxn8qsmm61mhp06mz8zjs51kb";
1469 };
1469 };
1470 meta = {
1470 meta = {
1471 license = [ pkgs.lib.licenses.mit ];
1471 license = [ pkgs.lib.licenses.mit ];
1472 };
1472 };
1473 };
1473 };
1474 "pytest-runner" = super.buildPythonPackage {
1474 "pytest-runner" = super.buildPythonPackage {
1475 name = "pytest-runner-4.2";
1475 name = "pytest-runner-4.2";
1476 doCheck = false;
1476 doCheck = false;
1477 src = fetchurl {
1477 src = fetchurl {
1478 url = "https://files.pythonhosted.org/packages/9e/b7/fe6e8f87f9a756fd06722216f1b6698ccba4d269eac6329d9f0c441d0f93/pytest-runner-4.2.tar.gz";
1478 url = "https://files.pythonhosted.org/packages/9e/b7/fe6e8f87f9a756fd06722216f1b6698ccba4d269eac6329d9f0c441d0f93/pytest-runner-4.2.tar.gz";
1479 sha256 = "1gkpyphawxz38ni1gdq1fmwyqcg02m7ypzqvv46z06crwdxi2gyj";
1479 sha256 = "1gkpyphawxz38ni1gdq1fmwyqcg02m7ypzqvv46z06crwdxi2gyj";
1480 };
1480 };
1481 meta = {
1481 meta = {
1482 license = [ pkgs.lib.licenses.mit ];
1482 license = [ pkgs.lib.licenses.mit ];
1483 };
1483 };
1484 };
1484 };
1485 "pytest-sugar" = super.buildPythonPackage {
1485 "pytest-sugar" = super.buildPythonPackage {
1486 name = "pytest-sugar-0.9.1";
1486 name = "pytest-sugar-0.9.1";
1487 doCheck = false;
1487 doCheck = false;
1488 propagatedBuildInputs = [
1488 propagatedBuildInputs = [
1489 self."pytest"
1489 self."pytest"
1490 self."termcolor"
1490 self."termcolor"
1491 ];
1491 ];
1492 src = fetchurl {
1492 src = fetchurl {
1493 url = "https://files.pythonhosted.org/packages/3e/6a/a3f909083079d03bde11d06ab23088886bbe25f2c97fbe4bb865e2bf05bc/pytest-sugar-0.9.1.tar.gz";
1493 url = "https://files.pythonhosted.org/packages/3e/6a/a3f909083079d03bde11d06ab23088886bbe25f2c97fbe4bb865e2bf05bc/pytest-sugar-0.9.1.tar.gz";
1494 sha256 = "0b4av40dv30727m54v211r0nzwjp2ajkjgxix6j484qjmwpw935b";
1494 sha256 = "0b4av40dv30727m54v211r0nzwjp2ajkjgxix6j484qjmwpw935b";
1495 };
1495 };
1496 meta = {
1496 meta = {
1497 license = [ pkgs.lib.licenses.bsdOriginal ];
1497 license = [ pkgs.lib.licenses.bsdOriginal ];
1498 };
1498 };
1499 };
1499 };
1500 "pytest-timeout" = super.buildPythonPackage {
1500 "pytest-timeout" = super.buildPythonPackage {
1501 name = "pytest-timeout-1.2.1";
1501 name = "pytest-timeout-1.2.1";
1502 doCheck = false;
1502 doCheck = false;
1503 propagatedBuildInputs = [
1503 propagatedBuildInputs = [
1504 self."pytest"
1504 self."pytest"
1505 ];
1505 ];
1506 src = fetchurl {
1506 src = fetchurl {
1507 url = "https://files.pythonhosted.org/packages/be/e9/a9106b8bc87521c6813060f50f7d1fdc15665bc1bbbe71c0ffc1c571aaa2/pytest-timeout-1.2.1.tar.gz";
1507 url = "https://files.pythonhosted.org/packages/be/e9/a9106b8bc87521c6813060f50f7d1fdc15665bc1bbbe71c0ffc1c571aaa2/pytest-timeout-1.2.1.tar.gz";
1508 sha256 = "1kdp6qbh5v1168l99rba5yfzvy05gmzkmkhldgp36p9xcdjd5dv8";
1508 sha256 = "1kdp6qbh5v1168l99rba5yfzvy05gmzkmkhldgp36p9xcdjd5dv8";
1509 };
1509 };
1510 meta = {
1510 meta = {
1511 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1511 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1512 };
1512 };
1513 };
1513 };
1514 "python-dateutil" = super.buildPythonPackage {
1514 "python-dateutil" = super.buildPythonPackage {
1515 name = "python-dateutil-2.7.3";
1515 name = "python-dateutil-2.7.3";
1516 doCheck = false;
1516 doCheck = false;
1517 propagatedBuildInputs = [
1517 propagatedBuildInputs = [
1518 self."six"
1518 self."six"
1519 ];
1519 ];
1520 src = fetchurl {
1520 src = fetchurl {
1521 url = "https://files.pythonhosted.org/packages/a0/b0/a4e3241d2dee665fea11baec21389aec6886655cd4db7647ddf96c3fad15/python-dateutil-2.7.3.tar.gz";
1521 url = "https://files.pythonhosted.org/packages/a0/b0/a4e3241d2dee665fea11baec21389aec6886655cd4db7647ddf96c3fad15/python-dateutil-2.7.3.tar.gz";
1522 sha256 = "1f7h54lg0w2ckch7592xpjkh8dg87k2br256h0iw49zn6bg02w72";
1522 sha256 = "1f7h54lg0w2ckch7592xpjkh8dg87k2br256h0iw49zn6bg02w72";
1523 };
1523 };
1524 meta = {
1524 meta = {
1525 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.asl20 { fullName = "Dual License"; } ];
1525 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.asl20 { fullName = "Dual License"; } ];
1526 };
1526 };
1527 };
1527 };
1528 "python-editor" = super.buildPythonPackage {
1528 "python-editor" = super.buildPythonPackage {
1529 name = "python-editor-1.0.3";
1529 name = "python-editor-1.0.3";
1530 doCheck = false;
1530 doCheck = false;
1531 src = fetchurl {
1531 src = fetchurl {
1532 url = "https://files.pythonhosted.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz";
1532 url = "https://files.pythonhosted.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz";
1533 sha256 = "0rf5xz8vw93v7mhdcvind7fkykipzga430wkcd7wk892xsn6dh53";
1533 sha256 = "0rf5xz8vw93v7mhdcvind7fkykipzga430wkcd7wk892xsn6dh53";
1534 };
1534 };
1535 meta = {
1535 meta = {
1536 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1536 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1537 };
1537 };
1538 };
1538 };
1539 "python-ldap" = super.buildPythonPackage {
1539 "python-ldap" = super.buildPythonPackage {
1540 name = "python-ldap-3.1.0";
1540 name = "python-ldap-3.1.0";
1541 doCheck = false;
1541 doCheck = false;
1542 propagatedBuildInputs = [
1542 propagatedBuildInputs = [
1543 self."pyasn1"
1543 self."pyasn1"
1544 self."pyasn1-modules"
1544 self."pyasn1-modules"
1545 ];
1545 ];
1546 src = fetchurl {
1546 src = fetchurl {
1547 url = "https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz";
1547 url = "https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz";
1548 sha256 = "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1";
1548 sha256 = "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1";
1549 };
1549 };
1550 meta = {
1550 meta = {
1551 license = [ pkgs.lib.licenses.psfl ];
1551 license = [ pkgs.lib.licenses.psfl ];
1552 };
1552 };
1553 };
1553 };
1554 "python-memcached" = super.buildPythonPackage {
1554 "python-memcached" = super.buildPythonPackage {
1555 name = "python-memcached-1.59";
1555 name = "python-memcached-1.59";
1556 doCheck = false;
1556 doCheck = false;
1557 propagatedBuildInputs = [
1557 propagatedBuildInputs = [
1558 self."six"
1558 self."six"
1559 ];
1559 ];
1560 src = fetchurl {
1560 src = fetchurl {
1561 url = "https://files.pythonhosted.org/packages/90/59/5faf6e3cd8a568dd4f737ddae4f2e54204fd8c51f90bf8df99aca6c22318/python-memcached-1.59.tar.gz";
1561 url = "https://files.pythonhosted.org/packages/90/59/5faf6e3cd8a568dd4f737ddae4f2e54204fd8c51f90bf8df99aca6c22318/python-memcached-1.59.tar.gz";
1562 sha256 = "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2";
1562 sha256 = "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2";
1563 };
1563 };
1564 meta = {
1564 meta = {
1565 license = [ pkgs.lib.licenses.psfl ];
1565 license = [ pkgs.lib.licenses.psfl ];
1566 };
1566 };
1567 };
1567 };
1568 "python-pam" = super.buildPythonPackage {
1568 "python-pam" = super.buildPythonPackage {
1569 name = "python-pam-1.8.4";
1569 name = "python-pam-1.8.4";
1570 doCheck = false;
1570 doCheck = false;
1571 src = fetchurl {
1571 src = fetchurl {
1572 url = "https://files.pythonhosted.org/packages/01/16/544d01cae9f28e0292dbd092b6b8b0bf222b528f362ee768a5bed2140111/python-pam-1.8.4.tar.gz";
1572 url = "https://files.pythonhosted.org/packages/01/16/544d01cae9f28e0292dbd092b6b8b0bf222b528f362ee768a5bed2140111/python-pam-1.8.4.tar.gz";
1573 sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
1573 sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
1574 };
1574 };
1575 meta = {
1575 meta = {
1576 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1576 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1577 };
1577 };
1578 };
1578 };
1579 "pytz" = super.buildPythonPackage {
1579 "pytz" = super.buildPythonPackage {
1580 name = "pytz-2018.4";
1580 name = "pytz-2018.4";
1581 doCheck = false;
1581 doCheck = false;
1582 src = fetchurl {
1582 src = fetchurl {
1583 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
1583 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
1584 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
1584 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
1585 };
1585 };
1586 meta = {
1586 meta = {
1587 license = [ pkgs.lib.licenses.mit ];
1587 license = [ pkgs.lib.licenses.mit ];
1588 };
1588 };
1589 };
1589 };
1590 "pyzmq" = super.buildPythonPackage {
1590 "pyzmq" = super.buildPythonPackage {
1591 name = "pyzmq-14.6.0";
1591 name = "pyzmq-14.6.0";
1592 doCheck = false;
1592 doCheck = false;
1593 src = fetchurl {
1593 src = fetchurl {
1594 url = "https://files.pythonhosted.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1594 url = "https://files.pythonhosted.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1595 sha256 = "1frmbjykvhmdg64g7sn20c9fpamrsfxwci1nhhg8q7jgz5pq0ikp";
1595 sha256 = "1frmbjykvhmdg64g7sn20c9fpamrsfxwci1nhhg8q7jgz5pq0ikp";
1596 };
1596 };
1597 meta = {
1597 meta = {
1598 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1598 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1599 };
1599 };
1600 };
1600 };
1601 "redis" = super.buildPythonPackage {
1601 "redis" = super.buildPythonPackage {
1602 name = "redis-2.10.6";
1602 name = "redis-2.10.6";
1603 doCheck = false;
1603 doCheck = false;
1604 src = fetchurl {
1604 src = fetchurl {
1605 url = "https://files.pythonhosted.org/packages/09/8d/6d34b75326bf96d4139a2ddd8e74b80840f800a0a79f9294399e212cb9a7/redis-2.10.6.tar.gz";
1605 url = "https://files.pythonhosted.org/packages/09/8d/6d34b75326bf96d4139a2ddd8e74b80840f800a0a79f9294399e212cb9a7/redis-2.10.6.tar.gz";
1606 sha256 = "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52";
1606 sha256 = "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52";
1607 };
1607 };
1608 meta = {
1608 meta = {
1609 license = [ pkgs.lib.licenses.mit ];
1609 license = [ pkgs.lib.licenses.mit ];
1610 };
1610 };
1611 };
1611 };
1612 "repoze.lru" = super.buildPythonPackage {
1612 "repoze.lru" = super.buildPythonPackage {
1613 name = "repoze.lru-0.7";
1613 name = "repoze.lru-0.7";
1614 doCheck = false;
1614 doCheck = false;
1615 src = fetchurl {
1615 src = fetchurl {
1616 url = "https://files.pythonhosted.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1616 url = "https://files.pythonhosted.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1617 sha256 = "0xzz1aw2smy8hdszrq8yhnklx6w1r1mf55061kalw3iq35gafa84";
1617 sha256 = "0xzz1aw2smy8hdszrq8yhnklx6w1r1mf55061kalw3iq35gafa84";
1618 };
1618 };
1619 meta = {
1619 meta = {
1620 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1620 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1621 };
1621 };
1622 };
1622 };
1623 "requests" = super.buildPythonPackage {
1623 "requests" = super.buildPythonPackage {
1624 name = "requests-2.9.1";
1624 name = "requests-2.9.1";
1625 doCheck = false;
1625 doCheck = false;
1626 src = fetchurl {
1626 src = fetchurl {
1627 url = "https://files.pythonhosted.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1627 url = "https://files.pythonhosted.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1628 sha256 = "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5";
1628 sha256 = "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5";
1629 };
1629 };
1630 meta = {
1630 meta = {
1631 license = [ pkgs.lib.licenses.asl20 ];
1631 license = [ pkgs.lib.licenses.asl20 ];
1632 };
1632 };
1633 };
1633 };
1634 "rhodecode-enterprise-ce" = super.buildPythonPackage {
1634 "rhodecode-enterprise-ce" = super.buildPythonPackage {
1635 name = "rhodecode-enterprise-ce-4.13.0";
1635 name = "rhodecode-enterprise-ce-4.13.0";
1636 buildInputs = [
1636 buildInputs = [
1637 self."pytest"
1637 self."pytest"
1638 self."py"
1638 self."py"
1639 self."pytest-cov"
1639 self."pytest-cov"
1640 self."pytest-sugar"
1640 self."pytest-sugar"
1641 self."pytest-runner"
1641 self."pytest-runner"
1642 self."pytest-profiling"
1642 self."pytest-profiling"
1643 self."gprof2dot"
1643 self."gprof2dot"
1644 self."pytest-timeout"
1644 self."pytest-timeout"
1645 self."mock"
1645 self."mock"
1646 self."webtest"
1646 self."webtest"
1647 self."cov-core"
1647 self."cov-core"
1648 self."coverage"
1648 self."coverage"
1649 self."configobj"
1649 self."configobj"
1650 ];
1650 ];
1651 doCheck = true;
1651 doCheck = true;
1652 propagatedBuildInputs = [
1652 propagatedBuildInputs = [
1653 self."setuptools-scm"
1653 self."setuptools-scm"
1654 self."amqp"
1654 self."amqp"
1655 self."authomatic"
1655 self."authomatic"
1656 self."atomicwrites"
1657 self."attrs"
1656 self."babel"
1658 self."babel"
1657 self."beaker"
1659 self."beaker"
1658 self."celery"
1660 self."celery"
1659 self."chameleon"
1661 self."chameleon"
1660 self."channelstream"
1662 self."channelstream"
1661 self."click"
1663 self."click"
1662 self."colander"
1664 self."colander"
1663 self."configobj"
1665 self."configobj"
1664 self."cssselect"
1666 self."cssselect"
1665 self."decorator"
1667 self."decorator"
1666 self."deform"
1668 self."deform"
1667 self."docutils"
1669 self."docutils"
1668 self."dogpile.cache"
1670 self."dogpile.cache"
1669 self."dogpile.core"
1671 self."dogpile.core"
1670 self."ecdsa"
1672 self."ecdsa"
1671 self."formencode"
1673 self."formencode"
1672 self."future"
1674 self."future"
1673 self."futures"
1675 self."futures"
1674 self."gnureadline"
1676 self."gnureadline"
1675 self."infrae.cache"
1677 self."infrae.cache"
1676 self."iso8601"
1678 self."iso8601"
1677 self."itsdangerous"
1679 self."itsdangerous"
1678 self."jinja2"
1680 self."jinja2"
1679 self."billiard"
1681 self."billiard"
1680 self."kombu"
1682 self."kombu"
1681 self."lxml"
1683 self."lxml"
1682 self."mako"
1684 self."mako"
1683 self."markdown"
1685 self."markdown"
1684 self."markupsafe"
1686 self."markupsafe"
1685 self."msgpack-python"
1687 self."msgpack-python"
1686 self."mysql-python"
1688 self."mysql-python"
1687 self."pymysql"
1689 self."pymysql"
1688 self."pyotp"
1690 self."pyotp"
1689 self."objgraph"
1691 self."objgraph"
1690 self."packaging"
1692 self."packaging"
1691 self."paste"
1693 self."paste"
1692 self."pastedeploy"
1694 self."pastedeploy"
1693 self."pastescript"
1695 self."pastescript"
1694 self."pathlib2"
1696 self."pathlib2"
1695 self."peppercorn"
1697 self."peppercorn"
1696 self."psutil"
1698 self."psutil"
1697 self."psycopg2"
1699 self."psycopg2"
1698 self."py-bcrypt"
1700 self."py-bcrypt"
1699 self."pycrypto"
1701 self."pycrypto"
1700 self."pycurl"
1702 self."pycurl"
1701 self."pyflakes"
1703 self."pyflakes"
1702 self."pygments-markdown-lexer"
1704 self."pygments-markdown-lexer"
1703 self."pygments"
1705 self."pygments"
1704 self."pyparsing"
1706 self."pyparsing"
1705 self."pyramid-beaker"
1707 self."pyramid-beaker"
1706 self."pyramid-debugtoolbar"
1708 self."pyramid-debugtoolbar"
1707 self."pyramid-jinja2"
1709 self."pyramid-jinja2"
1708 self."pyramid-mako"
1710 self."pyramid-mako"
1709 self."pyramid"
1711 self."pyramid"
1710 self."pysqlite"
1712 self."pysqlite"
1711 self."python-dateutil"
1713 self."python-dateutil"
1712 self."python-ldap"
1714 self."python-ldap"
1713 self."python-memcached"
1715 self."python-memcached"
1714 self."python-pam"
1716 self."python-pam"
1715 self."pytz"
1717 self."pytz"
1716 self."tzlocal"
1718 self."tzlocal"
1717 self."pyzmq"
1719 self."pyzmq"
1718 self."py-gfm"
1720 self."py-gfm"
1719 self."redis"
1721 self."redis"
1720 self."repoze.lru"
1722 self."repoze.lru"
1721 self."requests"
1723 self."requests"
1722 self."routes"
1724 self."routes"
1723 self."setproctitle"
1725 self."setproctitle"
1724 self."simplejson"
1726 self."simplejson"
1725 self."six"
1727 self."six"
1726 self."sqlalchemy"
1728 self."sqlalchemy"
1727 self."sshpubkeys"
1729 self."sshpubkeys"
1728 self."subprocess32"
1730 self."subprocess32"
1729 self."supervisor"
1731 self."supervisor"
1730 self."tempita"
1732 self."tempita"
1731 self."translationstring"
1733 self."translationstring"
1732 self."trollius"
1734 self."trollius"
1733 self."urllib3"
1735 self."urllib3"
1734 self."urlobject"
1736 self."urlobject"
1735 self."venusian"
1737 self."venusian"
1736 self."weberror"
1738 self."weberror"
1737 self."webhelpers2"
1739 self."webhelpers2"
1738 self."webhelpers"
1740 self."webhelpers"
1739 self."webob"
1741 self."webob"
1740 self."whoosh"
1742 self."whoosh"
1741 self."wsgiref"
1743 self."wsgiref"
1742 self."zope.cachedescriptors"
1744 self."zope.cachedescriptors"
1743 self."zope.deprecation"
1745 self."zope.deprecation"
1744 self."zope.event"
1746 self."zope.event"
1745 self."zope.interface"
1747 self."zope.interface"
1746 self."nbconvert"
1748 self."nbconvert"
1747 self."bleach"
1749 self."bleach"
1748 self."nbformat"
1750 self."nbformat"
1749 self."jupyter-client"
1751 self."jupyter-client"
1750 self."alembic"
1752 self."alembic"
1751 self."invoke"
1753 self."invoke"
1752 self."bumpversion"
1754 self."bumpversion"
1753 self."gevent"
1755 self."gevent"
1754 self."greenlet"
1756 self."greenlet"
1755 self."gunicorn"
1757 self."gunicorn"
1756 self."waitress"
1758 self."waitress"
1757 self."ipdb"
1759 self."ipdb"
1758 self."ipython"
1760 self."ipython"
1759 self."cprofilev"
1761 self."cprofilev"
1760 self."bottle"
1762 self."bottle"
1761 self."rhodecode-tools"
1763 self."rhodecode-tools"
1762 self."appenlight-client"
1764 self."appenlight-client"
1763 self."pytest"
1765 self."pytest"
1764 self."py"
1766 self."py"
1765 self."pytest-cov"
1767 self."pytest-cov"
1766 self."pytest-sugar"
1768 self."pytest-sugar"
1767 self."pytest-runner"
1769 self."pytest-runner"
1768 self."pytest-profiling"
1770 self."pytest-profiling"
1769 self."gprof2dot"
1771 self."gprof2dot"
1770 self."pytest-timeout"
1772 self."pytest-timeout"
1771 self."mock"
1773 self."mock"
1772 self."webtest"
1774 self."webtest"
1773 self."cov-core"
1775 self."cov-core"
1774 self."coverage"
1776 self."coverage"
1775 ];
1777 ];
1776 src = ./.;
1778 src = ./.;
1777 meta = {
1779 meta = {
1778 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1780 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1779 };
1781 };
1780 };
1782 };
1781 "rhodecode-tools" = super.buildPythonPackage {
1783 "rhodecode-tools" = super.buildPythonPackage {
1782 name = "rhodecode-tools-0.16.0";
1784 name = "rhodecode-tools-0.16.0";
1783 doCheck = false;
1785 doCheck = false;
1784 propagatedBuildInputs = [
1786 propagatedBuildInputs = [
1785 self."click"
1787 self."click"
1786 self."future"
1788 self."future"
1787 self."six"
1789 self."six"
1788 self."mako"
1790 self."mako"
1789 self."markupsafe"
1791 self."markupsafe"
1790 self."requests"
1792 self."requests"
1791 self."elasticsearch"
1793 self."elasticsearch"
1792 self."elasticsearch-dsl"
1794 self."elasticsearch-dsl"
1793 self."urllib3"
1795 self."urllib3"
1794 self."whoosh"
1796 self."whoosh"
1795 ];
1797 ];
1796 src = fetchurl {
1798 src = fetchurl {
1797 url = "https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.16.0.tar.gz?md5=87f81286b49156c2ac36f1a1acfa2164";
1799 url = "https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.16.0.tar.gz?md5=87f81286b49156c2ac36f1a1acfa2164";
1798 sha256 = "00xcc2mj99lx9d0ksml0p2xrd00kf5ypwyigg58cc9j9bznx7mzr";
1800 sha256 = "00xcc2mj99lx9d0ksml0p2xrd00kf5ypwyigg58cc9j9bznx7mzr";
1799 };
1801 };
1800 meta = {
1802 meta = {
1801 license = [ { fullName = "AGPLv3 and Proprietary"; } ];
1803 license = [ { fullName = "AGPLv3 and Proprietary"; } ];
1802 };
1804 };
1803 };
1805 };
1804 "routes" = super.buildPythonPackage {
1806 "routes" = super.buildPythonPackage {
1805 name = "routes-2.4.1";
1807 name = "routes-2.4.1";
1806 doCheck = false;
1808 doCheck = false;
1807 propagatedBuildInputs = [
1809 propagatedBuildInputs = [
1808 self."six"
1810 self."six"
1809 self."repoze.lru"
1811 self."repoze.lru"
1810 ];
1812 ];
1811 src = fetchurl {
1813 src = fetchurl {
1812 url = "https://files.pythonhosted.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
1814 url = "https://files.pythonhosted.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
1813 sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
1815 sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
1814 };
1816 };
1815 meta = {
1817 meta = {
1816 license = [ pkgs.lib.licenses.mit ];
1818 license = [ pkgs.lib.licenses.mit ];
1817 };
1819 };
1818 };
1820 };
1819 "scandir" = super.buildPythonPackage {
1821 "scandir" = super.buildPythonPackage {
1820 name = "scandir-1.9.0";
1822 name = "scandir-1.9.0";
1821 doCheck = false;
1823 doCheck = false;
1822 src = fetchurl {
1824 src = fetchurl {
1823 url = "https://files.pythonhosted.org/packages/16/2a/557af1181e6b4e30254d5a6163b18f5053791ca66e251e77ab08887e8fe3/scandir-1.9.0.tar.gz";
1825 url = "https://files.pythonhosted.org/packages/16/2a/557af1181e6b4e30254d5a6163b18f5053791ca66e251e77ab08887e8fe3/scandir-1.9.0.tar.gz";
1824 sha256 = "0r3hvf1a9jm1rkqgx40gxkmccknkaiqjavs8lccgq9s8khh5x5s4";
1826 sha256 = "0r3hvf1a9jm1rkqgx40gxkmccknkaiqjavs8lccgq9s8khh5x5s4";
1825 };
1827 };
1826 meta = {
1828 meta = {
1827 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1829 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1828 };
1830 };
1829 };
1831 };
1830 "setproctitle" = super.buildPythonPackage {
1832 "setproctitle" = super.buildPythonPackage {
1831 name = "setproctitle-1.1.10";
1833 name = "setproctitle-1.1.10";
1832 doCheck = false;
1834 doCheck = false;
1833 src = fetchurl {
1835 src = fetchurl {
1834 url = "https://files.pythonhosted.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1836 url = "https://files.pythonhosted.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1835 sha256 = "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2";
1837 sha256 = "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2";
1836 };
1838 };
1837 meta = {
1839 meta = {
1838 license = [ pkgs.lib.licenses.bsdOriginal ];
1840 license = [ pkgs.lib.licenses.bsdOriginal ];
1839 };
1841 };
1840 };
1842 };
1841 "setuptools" = super.buildPythonPackage {
1843 "setuptools" = super.buildPythonPackage {
1842 name = "setuptools-40.1.0";
1844 name = "setuptools-40.1.0";
1843 doCheck = false;
1845 doCheck = false;
1844 src = fetchurl {
1846 src = fetchurl {
1845 url = "https://files.pythonhosted.org/packages/5a/df/b2e3d9693bb0dcbeac516a73dd7a9eb82b126ae52e4a74605a9b01beddd5/setuptools-40.1.0.zip";
1847 url = "https://files.pythonhosted.org/packages/5a/df/b2e3d9693bb0dcbeac516a73dd7a9eb82b126ae52e4a74605a9b01beddd5/setuptools-40.1.0.zip";
1846 sha256 = "0w1blx5ajga5y15dci0mddk49cf2xpq0mp7rp7jrqr2diqk00ib6";
1848 sha256 = "0w1blx5ajga5y15dci0mddk49cf2xpq0mp7rp7jrqr2diqk00ib6";
1847 };
1849 };
1848 meta = {
1850 meta = {
1849 license = [ pkgs.lib.licenses.mit ];
1851 license = [ pkgs.lib.licenses.mit ];
1850 };
1852 };
1851 };
1853 };
1852 "setuptools-scm" = super.buildPythonPackage {
1854 "setuptools-scm" = super.buildPythonPackage {
1853 name = "setuptools-scm-2.1.0";
1855 name = "setuptools-scm-2.1.0";
1854 doCheck = false;
1856 doCheck = false;
1855 src = fetchurl {
1857 src = fetchurl {
1856 url = "https://files.pythonhosted.org/packages/e5/62/f9e1ac314464eb5945c97542acb6bf6f3381dfa5d7a658de7730c36f31a1/setuptools_scm-2.1.0.tar.gz";
1858 url = "https://files.pythonhosted.org/packages/e5/62/f9e1ac314464eb5945c97542acb6bf6f3381dfa5d7a658de7730c36f31a1/setuptools_scm-2.1.0.tar.gz";
1857 sha256 = "0yb364cgk15sfw3x8ln4ssh98z1dj6n8iiz4r2rw1cfsxhgi8rx7";
1859 sha256 = "0yb364cgk15sfw3x8ln4ssh98z1dj6n8iiz4r2rw1cfsxhgi8rx7";
1858 };
1860 };
1859 meta = {
1861 meta = {
1860 license = [ pkgs.lib.licenses.mit ];
1862 license = [ pkgs.lib.licenses.mit ];
1861 };
1863 };
1862 };
1864 };
1863 "simplegeneric" = super.buildPythonPackage {
1865 "simplegeneric" = super.buildPythonPackage {
1864 name = "simplegeneric-0.8.1";
1866 name = "simplegeneric-0.8.1";
1865 doCheck = false;
1867 doCheck = false;
1866 src = fetchurl {
1868 src = fetchurl {
1867 url = "https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1869 url = "https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1868 sha256 = "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw";
1870 sha256 = "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw";
1869 };
1871 };
1870 meta = {
1872 meta = {
1871 license = [ pkgs.lib.licenses.zpl21 ];
1873 license = [ pkgs.lib.licenses.zpl21 ];
1872 };
1874 };
1873 };
1875 };
1874 "simplejson" = super.buildPythonPackage {
1876 "simplejson" = super.buildPythonPackage {
1875 name = "simplejson-3.11.1";
1877 name = "simplejson-3.11.1";
1876 doCheck = false;
1878 doCheck = false;
1877 src = fetchurl {
1879 src = fetchurl {
1878 url = "https://files.pythonhosted.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz";
1880 url = "https://files.pythonhosted.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz";
1879 sha256 = "1rr58dppsq73p0qcd9bsw066cdd3v63sqv7j6sqni8frvm4jv8h1";
1881 sha256 = "1rr58dppsq73p0qcd9bsw066cdd3v63sqv7j6sqni8frvm4jv8h1";
1880 };
1882 };
1881 meta = {
1883 meta = {
1882 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1884 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1883 };
1885 };
1884 };
1886 };
1885 "six" = super.buildPythonPackage {
1887 "six" = super.buildPythonPackage {
1886 name = "six-1.11.0";
1888 name = "six-1.11.0";
1887 doCheck = false;
1889 doCheck = false;
1888 src = fetchurl {
1890 src = fetchurl {
1889 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1891 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1890 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
1892 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
1891 };
1893 };
1892 meta = {
1894 meta = {
1893 license = [ pkgs.lib.licenses.mit ];
1895 license = [ pkgs.lib.licenses.mit ];
1894 };
1896 };
1895 };
1897 };
1896 "sqlalchemy" = super.buildPythonPackage {
1898 "sqlalchemy" = super.buildPythonPackage {
1897 name = "sqlalchemy-1.1.18";
1899 name = "sqlalchemy-1.1.18";
1898 doCheck = false;
1900 doCheck = false;
1899 src = fetchurl {
1901 src = fetchurl {
1900 url = "https://files.pythonhosted.org/packages/cc/4d/96d93ff77cd67aca7618e402191eee3490d8f5f245d6ab7622d35fe504f4/SQLAlchemy-1.1.18.tar.gz";
1902 url = "https://files.pythonhosted.org/packages/cc/4d/96d93ff77cd67aca7618e402191eee3490d8f5f245d6ab7622d35fe504f4/SQLAlchemy-1.1.18.tar.gz";
1901 sha256 = "1ab4ysip6irajfbxl9wy27kv76miaz8h6759hfx92499z4dcf3lb";
1903 sha256 = "1ab4ysip6irajfbxl9wy27kv76miaz8h6759hfx92499z4dcf3lb";
1902 };
1904 };
1903 meta = {
1905 meta = {
1904 license = [ pkgs.lib.licenses.mit ];
1906 license = [ pkgs.lib.licenses.mit ];
1905 };
1907 };
1906 };
1908 };
1907 "sshpubkeys" = super.buildPythonPackage {
1909 "sshpubkeys" = super.buildPythonPackage {
1908 name = "sshpubkeys-2.2.0";
1910 name = "sshpubkeys-2.2.0";
1909 doCheck = false;
1911 doCheck = false;
1910 propagatedBuildInputs = [
1912 propagatedBuildInputs = [
1911 self."pycrypto"
1913 self."pycrypto"
1912 self."ecdsa"
1914 self."ecdsa"
1913 ];
1915 ];
1914 src = fetchurl {
1916 src = fetchurl {
1915 url = "https://files.pythonhosted.org/packages/27/da/337fabeb3dca6b62039a93ceaa636f25065e0ae92b575b1235342076cf0a/sshpubkeys-2.2.0.tar.gz";
1917 url = "https://files.pythonhosted.org/packages/27/da/337fabeb3dca6b62039a93ceaa636f25065e0ae92b575b1235342076cf0a/sshpubkeys-2.2.0.tar.gz";
1916 sha256 = "0r4kpwzmg96a2x56pllik7dmc3fnqk189v3sfgsi07q2ryrhr6xm";
1918 sha256 = "0r4kpwzmg96a2x56pllik7dmc3fnqk189v3sfgsi07q2ryrhr6xm";
1917 };
1919 };
1918 meta = {
1920 meta = {
1919 license = [ pkgs.lib.licenses.bsdOriginal ];
1921 license = [ pkgs.lib.licenses.bsdOriginal ];
1920 };
1922 };
1921 };
1923 };
1922 "subprocess32" = super.buildPythonPackage {
1924 "subprocess32" = super.buildPythonPackage {
1923 name = "subprocess32-3.5.1";
1925 name = "subprocess32-3.5.1";
1924 doCheck = false;
1926 doCheck = false;
1925 src = fetchurl {
1927 src = fetchurl {
1926 url = "https://files.pythonhosted.org/packages/de/fb/fd3e91507021e2aecdb081d1b920082628d6b8869ead845e3e87b3d2e2ca/subprocess32-3.5.1.tar.gz";
1928 url = "https://files.pythonhosted.org/packages/de/fb/fd3e91507021e2aecdb081d1b920082628d6b8869ead845e3e87b3d2e2ca/subprocess32-3.5.1.tar.gz";
1927 sha256 = "0wgi3bfnssid1g6h0v803z3k1wjal6il16nr3r9c587cfzwfkv0q";
1929 sha256 = "0wgi3bfnssid1g6h0v803z3k1wjal6il16nr3r9c587cfzwfkv0q";
1928 };
1930 };
1929 meta = {
1931 meta = {
1930 license = [ pkgs.lib.licenses.psfl ];
1932 license = [ pkgs.lib.licenses.psfl ];
1931 };
1933 };
1932 };
1934 };
1933 "supervisor" = super.buildPythonPackage {
1935 "supervisor" = super.buildPythonPackage {
1934 name = "supervisor-3.3.4";
1936 name = "supervisor-3.3.4";
1935 doCheck = false;
1937 doCheck = false;
1936 propagatedBuildInputs = [
1938 propagatedBuildInputs = [
1937 self."meld3"
1939 self."meld3"
1938 ];
1940 ];
1939 src = fetchurl {
1941 src = fetchurl {
1940 url = "https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz";
1942 url = "https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz";
1941 sha256 = "0wp62z9xprvz2krg02xnbwcnq6pxfq3byd8cxx8c2d8xznih28i1";
1943 sha256 = "0wp62z9xprvz2krg02xnbwcnq6pxfq3byd8cxx8c2d8xznih28i1";
1942 };
1944 };
1943 meta = {
1945 meta = {
1944 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1946 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1945 };
1947 };
1946 };
1948 };
1947 "tempita" = super.buildPythonPackage {
1949 "tempita" = super.buildPythonPackage {
1948 name = "tempita-0.5.2";
1950 name = "tempita-0.5.2";
1949 doCheck = false;
1951 doCheck = false;
1950 src = fetchurl {
1952 src = fetchurl {
1951 url = "https://files.pythonhosted.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
1953 url = "https://files.pythonhosted.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
1952 sha256 = "177wwq45slfyajd8csy477bmdmzipyw0dm7i85k3akb7m85wzkna";
1954 sha256 = "177wwq45slfyajd8csy477bmdmzipyw0dm7i85k3akb7m85wzkna";
1953 };
1955 };
1954 meta = {
1956 meta = {
1955 license = [ pkgs.lib.licenses.mit ];
1957 license = [ pkgs.lib.licenses.mit ];
1956 };
1958 };
1957 };
1959 };
1958 "termcolor" = super.buildPythonPackage {
1960 "termcolor" = super.buildPythonPackage {
1959 name = "termcolor-1.1.0";
1961 name = "termcolor-1.1.0";
1960 doCheck = false;
1962 doCheck = false;
1961 src = fetchurl {
1963 src = fetchurl {
1962 url = "https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
1964 url = "https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
1963 sha256 = "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x";
1965 sha256 = "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x";
1964 };
1966 };
1965 meta = {
1967 meta = {
1966 license = [ pkgs.lib.licenses.mit ];
1968 license = [ pkgs.lib.licenses.mit ];
1967 };
1969 };
1968 };
1970 };
1969 "testpath" = super.buildPythonPackage {
1971 "testpath" = super.buildPythonPackage {
1970 name = "testpath-0.3.1";
1972 name = "testpath-0.3.1";
1971 doCheck = false;
1973 doCheck = false;
1972 src = fetchurl {
1974 src = fetchurl {
1973 url = "https://files.pythonhosted.org/packages/f4/8b/b71e9ee10e5f751e9d959bc750ab122ba04187f5aa52aabdc4e63b0e31a7/testpath-0.3.1.tar.gz";
1975 url = "https://files.pythonhosted.org/packages/f4/8b/b71e9ee10e5f751e9d959bc750ab122ba04187f5aa52aabdc4e63b0e31a7/testpath-0.3.1.tar.gz";
1974 sha256 = "02bnmkvm6a8a1p5kcygylcd19v2s040qw3zp1n8ab3bqkj1kflqd";
1976 sha256 = "02bnmkvm6a8a1p5kcygylcd19v2s040qw3zp1n8ab3bqkj1kflqd";
1975 };
1977 };
1976 meta = {
1978 meta = {
1977 license = [ ];
1979 license = [ ];
1978 };
1980 };
1979 };
1981 };
1980 "traitlets" = super.buildPythonPackage {
1982 "traitlets" = super.buildPythonPackage {
1981 name = "traitlets-4.3.2";
1983 name = "traitlets-4.3.2";
1982 doCheck = false;
1984 doCheck = false;
1983 propagatedBuildInputs = [
1985 propagatedBuildInputs = [
1984 self."ipython-genutils"
1986 self."ipython-genutils"
1985 self."six"
1987 self."six"
1986 self."decorator"
1988 self."decorator"
1987 self."enum34"
1989 self."enum34"
1988 ];
1990 ];
1989 src = fetchurl {
1991 src = fetchurl {
1990 url = "https://files.pythonhosted.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
1992 url = "https://files.pythonhosted.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
1991 sha256 = "0dbq7sx26xqz5ixs711k5nc88p8a0nqyz6162pwks5dpcz9d4jww";
1993 sha256 = "0dbq7sx26xqz5ixs711k5nc88p8a0nqyz6162pwks5dpcz9d4jww";
1992 };
1994 };
1993 meta = {
1995 meta = {
1994 license = [ pkgs.lib.licenses.bsdOriginal ];
1996 license = [ pkgs.lib.licenses.bsdOriginal ];
1995 };
1997 };
1996 };
1998 };
1997 "translationstring" = super.buildPythonPackage {
1999 "translationstring" = super.buildPythonPackage {
1998 name = "translationstring-1.3";
2000 name = "translationstring-1.3";
1999 doCheck = false;
2001 doCheck = false;
2000 src = fetchurl {
2002 src = fetchurl {
2001 url = "https://files.pythonhosted.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
2003 url = "https://files.pythonhosted.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
2002 sha256 = "0bdpcnd9pv0131dl08h4zbcwmgc45lyvq3pa224xwan5b3x4rr2f";
2004 sha256 = "0bdpcnd9pv0131dl08h4zbcwmgc45lyvq3pa224xwan5b3x4rr2f";
2003 };
2005 };
2004 meta = {
2006 meta = {
2005 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
2007 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
2006 };
2008 };
2007 };
2009 };
2008 "trollius" = super.buildPythonPackage {
2010 "trollius" = super.buildPythonPackage {
2009 name = "trollius-1.0.4";
2011 name = "trollius-1.0.4";
2010 doCheck = false;
2012 doCheck = false;
2011 propagatedBuildInputs = [
2013 propagatedBuildInputs = [
2012 self."futures"
2014 self."futures"
2013 ];
2015 ];
2014 src = fetchurl {
2016 src = fetchurl {
2015 url = "https://files.pythonhosted.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz";
2017 url = "https://files.pythonhosted.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz";
2016 sha256 = "0xny8y12x3wrflmyn6xi8a7n3m3ac80fgmgzphx5jbbaxkjcm148";
2018 sha256 = "0xny8y12x3wrflmyn6xi8a7n3m3ac80fgmgzphx5jbbaxkjcm148";
2017 };
2019 };
2018 meta = {
2020 meta = {
2019 license = [ pkgs.lib.licenses.asl20 ];
2021 license = [ pkgs.lib.licenses.asl20 ];
2020 };
2022 };
2021 };
2023 };
2022 "tzlocal" = super.buildPythonPackage {
2024 "tzlocal" = super.buildPythonPackage {
2023 name = "tzlocal-1.5.1";
2025 name = "tzlocal-1.5.1";
2024 doCheck = false;
2026 doCheck = false;
2025 propagatedBuildInputs = [
2027 propagatedBuildInputs = [
2026 self."pytz"
2028 self."pytz"
2027 ];
2029 ];
2028 src = fetchurl {
2030 src = fetchurl {
2029 url = "https://files.pythonhosted.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
2031 url = "https://files.pythonhosted.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
2030 sha256 = "0kiciwiqx0bv0fbc913idxibc4ygg4cb7f8rcpd9ij2shi4bigjf";
2032 sha256 = "0kiciwiqx0bv0fbc913idxibc4ygg4cb7f8rcpd9ij2shi4bigjf";
2031 };
2033 };
2032 meta = {
2034 meta = {
2033 license = [ pkgs.lib.licenses.mit ];
2035 license = [ pkgs.lib.licenses.mit ];
2034 };
2036 };
2035 };
2037 };
2036 "urllib3" = super.buildPythonPackage {
2038 "urllib3" = super.buildPythonPackage {
2037 name = "urllib3-1.21";
2039 name = "urllib3-1.21";
2038 doCheck = false;
2040 doCheck = false;
2039 src = fetchurl {
2041 src = fetchurl {
2040 url = "https://files.pythonhosted.org/packages/34/95/7b28259d0006ed681c424cd71a668363265eac92b67dddd018eb9a22bff8/urllib3-1.21.tar.gz";
2042 url = "https://files.pythonhosted.org/packages/34/95/7b28259d0006ed681c424cd71a668363265eac92b67dddd018eb9a22bff8/urllib3-1.21.tar.gz";
2041 sha256 = "0irnj4wvh2y36s4q3l2vas9qr9m766w6w418nb490j3mf8a8zw6h";
2043 sha256 = "0irnj4wvh2y36s4q3l2vas9qr9m766w6w418nb490j3mf8a8zw6h";
2042 };
2044 };
2043 meta = {
2045 meta = {
2044 license = [ pkgs.lib.licenses.mit ];
2046 license = [ pkgs.lib.licenses.mit ];
2045 };
2047 };
2046 };
2048 };
2047 "urlobject" = super.buildPythonPackage {
2049 "urlobject" = super.buildPythonPackage {
2048 name = "urlobject-2.4.3";
2050 name = "urlobject-2.4.3";
2049 doCheck = false;
2051 doCheck = false;
2050 src = fetchurl {
2052 src = fetchurl {
2051 url = "https://files.pythonhosted.org/packages/e2/b8/1d0a916f4b34c4618846e6da0e4eeaa8fcb4a2f39e006434fe38acb74b34/URLObject-2.4.3.tar.gz";
2053 url = "https://files.pythonhosted.org/packages/e2/b8/1d0a916f4b34c4618846e6da0e4eeaa8fcb4a2f39e006434fe38acb74b34/URLObject-2.4.3.tar.gz";
2052 sha256 = "1ahc8ficzfvr2avln71immfh4ls0zyv6cdaa5xmkdj5rd87f5cj7";
2054 sha256 = "1ahc8ficzfvr2avln71immfh4ls0zyv6cdaa5xmkdj5rd87f5cj7";
2053 };
2055 };
2054 meta = {
2056 meta = {
2055 license = [ pkgs.lib.licenses.publicDomain ];
2057 license = [ pkgs.lib.licenses.publicDomain ];
2056 };
2058 };
2057 };
2059 };
2058 "venusian" = super.buildPythonPackage {
2060 "venusian" = super.buildPythonPackage {
2059 name = "venusian-1.1.0";
2061 name = "venusian-1.1.0";
2060 doCheck = false;
2062 doCheck = false;
2061 src = fetchurl {
2063 src = fetchurl {
2062 url = "https://files.pythonhosted.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz";
2064 url = "https://files.pythonhosted.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz";
2063 sha256 = "0zapz131686qm0gazwy8bh11vr57pr89jbwbl50s528sqy9f80lr";
2065 sha256 = "0zapz131686qm0gazwy8bh11vr57pr89jbwbl50s528sqy9f80lr";
2064 };
2066 };
2065 meta = {
2067 meta = {
2066 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
2068 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
2067 };
2069 };
2068 };
2070 };
2069 "vine" = super.buildPythonPackage {
2071 "vine" = super.buildPythonPackage {
2070 name = "vine-1.1.4";
2072 name = "vine-1.1.4";
2071 doCheck = false;
2073 doCheck = false;
2072 src = fetchurl {
2074 src = fetchurl {
2073 url = "https://files.pythonhosted.org/packages/32/23/36284986e011f3c130d802c3c66abd8f1aef371eae110ddf80c5ae22e1ff/vine-1.1.4.tar.gz";
2075 url = "https://files.pythonhosted.org/packages/32/23/36284986e011f3c130d802c3c66abd8f1aef371eae110ddf80c5ae22e1ff/vine-1.1.4.tar.gz";
2074 sha256 = "0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj";
2076 sha256 = "0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj";
2075 };
2077 };
2076 meta = {
2078 meta = {
2077 license = [ pkgs.lib.licenses.bsdOriginal ];
2079 license = [ pkgs.lib.licenses.bsdOriginal ];
2078 };
2080 };
2079 };
2081 };
2080 "waitress" = super.buildPythonPackage {
2082 "waitress" = super.buildPythonPackage {
2081 name = "waitress-1.1.0";
2083 name = "waitress-1.1.0";
2082 doCheck = false;
2084 doCheck = false;
2083 src = fetchurl {
2085 src = fetchurl {
2084 url = "https://files.pythonhosted.org/packages/3c/68/1c10dd5c556872ceebe88483b0436140048d39de83a84a06a8baa8136f4f/waitress-1.1.0.tar.gz";
2086 url = "https://files.pythonhosted.org/packages/3c/68/1c10dd5c556872ceebe88483b0436140048d39de83a84a06a8baa8136f4f/waitress-1.1.0.tar.gz";
2085 sha256 = "1a85gyji0kajc3p0s1pwwfm06w4wfxjkvvl4rnrz3h164kbd6g6k";
2087 sha256 = "1a85gyji0kajc3p0s1pwwfm06w4wfxjkvvl4rnrz3h164kbd6g6k";
2086 };
2088 };
2087 meta = {
2089 meta = {
2088 license = [ pkgs.lib.licenses.zpl21 ];
2090 license = [ pkgs.lib.licenses.zpl21 ];
2089 };
2091 };
2090 };
2092 };
2091 "wcwidth" = super.buildPythonPackage {
2093 "wcwidth" = super.buildPythonPackage {
2092 name = "wcwidth-0.1.7";
2094 name = "wcwidth-0.1.7";
2093 doCheck = false;
2095 doCheck = false;
2094 src = fetchurl {
2096 src = fetchurl {
2095 url = "https://files.pythonhosted.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
2097 url = "https://files.pythonhosted.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
2096 sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
2098 sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
2097 };
2099 };
2098 meta = {
2100 meta = {
2099 license = [ pkgs.lib.licenses.mit ];
2101 license = [ pkgs.lib.licenses.mit ];
2100 };
2102 };
2101 };
2103 };
2102 "webencodings" = super.buildPythonPackage {
2104 "webencodings" = super.buildPythonPackage {
2103 name = "webencodings-0.5.1";
2105 name = "webencodings-0.5.1";
2104 doCheck = false;
2106 doCheck = false;
2105 src = fetchurl {
2107 src = fetchurl {
2106 url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
2108 url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
2107 sha256 = "08qrgrc4hrximb2gqnl69g01s93rhf2842jfxdjljc1dbwj1qsmk";
2109 sha256 = "08qrgrc4hrximb2gqnl69g01s93rhf2842jfxdjljc1dbwj1qsmk";
2108 };
2110 };
2109 meta = {
2111 meta = {
2110 license = [ pkgs.lib.licenses.bsdOriginal ];
2112 license = [ pkgs.lib.licenses.bsdOriginal ];
2111 };
2113 };
2112 };
2114 };
2113 "weberror" = super.buildPythonPackage {
2115 "weberror" = super.buildPythonPackage {
2114 name = "weberror-0.10.3";
2116 name = "weberror-0.10.3";
2115 doCheck = false;
2117 doCheck = false;
2116 propagatedBuildInputs = [
2118 propagatedBuildInputs = [
2117 self."webob"
2119 self."webob"
2118 self."tempita"
2120 self."tempita"
2119 self."pygments"
2121 self."pygments"
2120 self."paste"
2122 self."paste"
2121 ];
2123 ];
2122 src = fetchurl {
2124 src = fetchurl {
2123 url = "https://files.pythonhosted.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
2125 url = "https://files.pythonhosted.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
2124 sha256 = "0frg4kvycqpj5bi8asfqfs6bxsr2cvjvb6b56c4d1ai1z57kbjx6";
2126 sha256 = "0frg4kvycqpj5bi8asfqfs6bxsr2cvjvb6b56c4d1ai1z57kbjx6";
2125 };
2127 };
2126 meta = {
2128 meta = {
2127 license = [ pkgs.lib.licenses.mit ];
2129 license = [ pkgs.lib.licenses.mit ];
2128 };
2130 };
2129 };
2131 };
2130 "webhelpers" = super.buildPythonPackage {
2132 "webhelpers" = super.buildPythonPackage {
2131 name = "webhelpers-1.3";
2133 name = "webhelpers-1.3";
2132 doCheck = false;
2134 doCheck = false;
2133 propagatedBuildInputs = [
2135 propagatedBuildInputs = [
2134 self."markupsafe"
2136 self."markupsafe"
2135 ];
2137 ];
2136 src = fetchurl {
2138 src = fetchurl {
2137 url = "https://files.pythonhosted.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
2139 url = "https://files.pythonhosted.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
2138 sha256 = "10x5i82qdkrvyw18gsybwggfhfpl869siaab89vnndi9x62g51pa";
2140 sha256 = "10x5i82qdkrvyw18gsybwggfhfpl869siaab89vnndi9x62g51pa";
2139 };
2141 };
2140 meta = {
2142 meta = {
2141 license = [ pkgs.lib.licenses.bsdOriginal ];
2143 license = [ pkgs.lib.licenses.bsdOriginal ];
2142 };
2144 };
2143 };
2145 };
2144 "webhelpers2" = super.buildPythonPackage {
2146 "webhelpers2" = super.buildPythonPackage {
2145 name = "webhelpers2-2.0";
2147 name = "webhelpers2-2.0";
2146 doCheck = false;
2148 doCheck = false;
2147 propagatedBuildInputs = [
2149 propagatedBuildInputs = [
2148 self."markupsafe"
2150 self."markupsafe"
2149 self."six"
2151 self."six"
2150 ];
2152 ];
2151 src = fetchurl {
2153 src = fetchurl {
2152 url = "https://files.pythonhosted.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
2154 url = "https://files.pythonhosted.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
2153 sha256 = "0aphva1qmxh83n01p53f5fd43m4srzbnfbz5ajvbx9aj2aipwmcs";
2155 sha256 = "0aphva1qmxh83n01p53f5fd43m4srzbnfbz5ajvbx9aj2aipwmcs";
2154 };
2156 };
2155 meta = {
2157 meta = {
2156 license = [ pkgs.lib.licenses.mit ];
2158 license = [ pkgs.lib.licenses.mit ];
2157 };
2159 };
2158 };
2160 };
2159 "webob" = super.buildPythonPackage {
2161 "webob" = super.buildPythonPackage {
2160 name = "webob-1.7.4";
2162 name = "webob-1.7.4";
2161 doCheck = false;
2163 doCheck = false;
2162 src = fetchurl {
2164 src = fetchurl {
2163 url = "https://files.pythonhosted.org/packages/75/34/731e23f52371852dfe7490a61644826ba7fe70fd52a377aaca0f4956ba7f/WebOb-1.7.4.tar.gz";
2165 url = "https://files.pythonhosted.org/packages/75/34/731e23f52371852dfe7490a61644826ba7fe70fd52a377aaca0f4956ba7f/WebOb-1.7.4.tar.gz";
2164 sha256 = "1na01ljg04z40il7vcrn8g29vaw7nvg1xvhk64cr4jys5wcay44d";
2166 sha256 = "1na01ljg04z40il7vcrn8g29vaw7nvg1xvhk64cr4jys5wcay44d";
2165 };
2167 };
2166 meta = {
2168 meta = {
2167 license = [ pkgs.lib.licenses.mit ];
2169 license = [ pkgs.lib.licenses.mit ];
2168 };
2170 };
2169 };
2171 };
2170 "webtest" = super.buildPythonPackage {
2172 "webtest" = super.buildPythonPackage {
2171 name = "webtest-2.0.29";
2173 name = "webtest-2.0.29";
2172 doCheck = false;
2174 doCheck = false;
2173 propagatedBuildInputs = [
2175 propagatedBuildInputs = [
2174 self."six"
2176 self."six"
2175 self."webob"
2177 self."webob"
2176 self."waitress"
2178 self."waitress"
2177 self."beautifulsoup4"
2179 self."beautifulsoup4"
2178 ];
2180 ];
2179 src = fetchurl {
2181 src = fetchurl {
2180 url = "https://files.pythonhosted.org/packages/94/de/8f94738be649997da99c47b104aa3c3984ecec51a1d8153ed09638253d56/WebTest-2.0.29.tar.gz";
2182 url = "https://files.pythonhosted.org/packages/94/de/8f94738be649997da99c47b104aa3c3984ecec51a1d8153ed09638253d56/WebTest-2.0.29.tar.gz";
2181 sha256 = "0bcj1ica5lnmj5zbvk46x28kgphcsgh7sfnwjmn0cr94mhawrg6v";
2183 sha256 = "0bcj1ica5lnmj5zbvk46x28kgphcsgh7sfnwjmn0cr94mhawrg6v";
2182 };
2184 };
2183 meta = {
2185 meta = {
2184 license = [ pkgs.lib.licenses.mit ];
2186 license = [ pkgs.lib.licenses.mit ];
2185 };
2187 };
2186 };
2188 };
2187 "whoosh" = super.buildPythonPackage {
2189 "whoosh" = super.buildPythonPackage {
2188 name = "whoosh-2.7.4";
2190 name = "whoosh-2.7.4";
2189 doCheck = false;
2191 doCheck = false;
2190 src = fetchurl {
2192 src = fetchurl {
2191 url = "https://files.pythonhosted.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
2193 url = "https://files.pythonhosted.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
2192 sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
2194 sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
2193 };
2195 };
2194 meta = {
2196 meta = {
2195 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
2197 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
2196 };
2198 };
2197 };
2199 };
2198 "ws4py" = super.buildPythonPackage {
2200 "ws4py" = super.buildPythonPackage {
2199 name = "ws4py-0.5.1";
2201 name = "ws4py-0.5.1";
2200 doCheck = false;
2202 doCheck = false;
2201 src = fetchurl {
2203 src = fetchurl {
2202 url = "https://files.pythonhosted.org/packages/53/20/4019a739b2eefe9282d3822ef6a225250af964b117356971bd55e274193c/ws4py-0.5.1.tar.gz";
2204 url = "https://files.pythonhosted.org/packages/53/20/4019a739b2eefe9282d3822ef6a225250af964b117356971bd55e274193c/ws4py-0.5.1.tar.gz";
2203 sha256 = "10slbbf2jm4hpr92jx7kh7mhf48sjl01v2w4d8z3f1p0ybbp7l19";
2205 sha256 = "10slbbf2jm4hpr92jx7kh7mhf48sjl01v2w4d8z3f1p0ybbp7l19";
2204 };
2206 };
2205 meta = {
2207 meta = {
2206 license = [ pkgs.lib.licenses.bsdOriginal ];
2208 license = [ pkgs.lib.licenses.bsdOriginal ];
2207 };
2209 };
2208 };
2210 };
2209 "wsgiref" = super.buildPythonPackage {
2211 "wsgiref" = super.buildPythonPackage {
2210 name = "wsgiref-0.1.2";
2212 name = "wsgiref-0.1.2";
2211 doCheck = false;
2213 doCheck = false;
2212 src = fetchurl {
2214 src = fetchurl {
2213 url = "https://files.pythonhosted.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2215 url = "https://files.pythonhosted.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2214 sha256 = "0y8fyjmpq7vwwm4x732w97qbkw78rjwal5409k04cw4m03411rn7";
2216 sha256 = "0y8fyjmpq7vwwm4x732w97qbkw78rjwal5409k04cw4m03411rn7";
2215 };
2217 };
2216 meta = {
2218 meta = {
2217 license = [ { fullName = "PSF or ZPL"; } ];
2219 license = [ { fullName = "PSF or ZPL"; } ];
2218 };
2220 };
2219 };
2221 };
2220 "zope.cachedescriptors" = super.buildPythonPackage {
2222 "zope.cachedescriptors" = super.buildPythonPackage {
2221 name = "zope.cachedescriptors-4.3.1";
2223 name = "zope.cachedescriptors-4.3.1";
2222 doCheck = false;
2224 doCheck = false;
2223 propagatedBuildInputs = [
2225 propagatedBuildInputs = [
2224 self."setuptools"
2226 self."setuptools"
2225 ];
2227 ];
2226 src = fetchurl {
2228 src = fetchurl {
2227 url = "https://files.pythonhosted.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2229 url = "https://files.pythonhosted.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2228 sha256 = "0jhr3m5p74c6r7k8iv0005b8bfsialih9d7zl5vx38rf5xq1lk8z";
2230 sha256 = "0jhr3m5p74c6r7k8iv0005b8bfsialih9d7zl5vx38rf5xq1lk8z";
2229 };
2231 };
2230 meta = {
2232 meta = {
2231 license = [ pkgs.lib.licenses.zpl21 ];
2233 license = [ pkgs.lib.licenses.zpl21 ];
2232 };
2234 };
2233 };
2235 };
2234 "zope.deprecation" = super.buildPythonPackage {
2236 "zope.deprecation" = super.buildPythonPackage {
2235 name = "zope.deprecation-4.3.0";
2237 name = "zope.deprecation-4.3.0";
2236 doCheck = false;
2238 doCheck = false;
2237 propagatedBuildInputs = [
2239 propagatedBuildInputs = [
2238 self."setuptools"
2240 self."setuptools"
2239 ];
2241 ];
2240 src = fetchurl {
2242 src = fetchurl {
2241 url = "https://files.pythonhosted.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz";
2243 url = "https://files.pythonhosted.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz";
2242 sha256 = "095jas41wbxgmw95kwdxqhbc3bgihw2hzj9b3qpdg85apcsf2lkx";
2244 sha256 = "095jas41wbxgmw95kwdxqhbc3bgihw2hzj9b3qpdg85apcsf2lkx";
2243 };
2245 };
2244 meta = {
2246 meta = {
2245 license = [ pkgs.lib.licenses.zpl21 ];
2247 license = [ pkgs.lib.licenses.zpl21 ];
2246 };
2248 };
2247 };
2249 };
2248 "zope.event" = super.buildPythonPackage {
2250 "zope.event" = super.buildPythonPackage {
2249 name = "zope.event-4.3.0";
2251 name = "zope.event-4.3.0";
2250 doCheck = false;
2252 doCheck = false;
2251 propagatedBuildInputs = [
2253 propagatedBuildInputs = [
2252 self."setuptools"
2254 self."setuptools"
2253 ];
2255 ];
2254 src = fetchurl {
2256 src = fetchurl {
2255 url = "https://files.pythonhosted.org/packages/9e/d0/54ba59f19a0635f6591b74be259cf6fbf67e73f4edda27b5cd0cf4d26efa/zope.event-4.3.0.tar.gz";
2257 url = "https://files.pythonhosted.org/packages/9e/d0/54ba59f19a0635f6591b74be259cf6fbf67e73f4edda27b5cd0cf4d26efa/zope.event-4.3.0.tar.gz";
2256 sha256 = "1rrkyx42bcq8dkpj23c2v99kczlrg8d39c06q5qpr0vs4hjfmv70";
2258 sha256 = "1rrkyx42bcq8dkpj23c2v99kczlrg8d39c06q5qpr0vs4hjfmv70";
2257 };
2259 };
2258 meta = {
2260 meta = {
2259 license = [ pkgs.lib.licenses.zpl21 ];
2261 license = [ pkgs.lib.licenses.zpl21 ];
2260 };
2262 };
2261 };
2263 };
2262 "zope.interface" = super.buildPythonPackage {
2264 "zope.interface" = super.buildPythonPackage {
2263 name = "zope.interface-4.5.0";
2265 name = "zope.interface-4.5.0";
2264 doCheck = false;
2266 doCheck = false;
2265 propagatedBuildInputs = [
2267 propagatedBuildInputs = [
2266 self."setuptools"
2268 self."setuptools"
2267 ];
2269 ];
2268 src = fetchurl {
2270 src = fetchurl {
2269 url = "https://files.pythonhosted.org/packages/ac/8a/657532df378c2cd2a1fe6b12be3b4097521570769d4852ec02c24bd3594e/zope.interface-4.5.0.tar.gz";
2271 url = "https://files.pythonhosted.org/packages/ac/8a/657532df378c2cd2a1fe6b12be3b4097521570769d4852ec02c24bd3594e/zope.interface-4.5.0.tar.gz";
2270 sha256 = "0k67m60ij06wkg82n15qgyn96waf4pmrkhv0njpkfzpmv5q89hsp";
2272 sha256 = "0k67m60ij06wkg82n15qgyn96waf4pmrkhv0njpkfzpmv5q89hsp";
2271 };
2273 };
2272 meta = {
2274 meta = {
2273 license = [ pkgs.lib.licenses.zpl21 ];
2275 license = [ pkgs.lib.licenses.zpl21 ];
2274 };
2276 };
2275 };
2277 };
2276
2278
2277 ### Test requirements
2279 ### Test requirements
2278
2280
2279
2281
2280 }
2282 }
@@ -1,132 +1,134 b''
1 ## dependencies
1 ## dependencies
2
2
3 setuptools-scm==2.1.0
3 setuptools-scm==2.1.0
4 amqp==2.3.1
4 amqp==2.3.1
5 # not released authomatic that has updated some oauth providers
5 # not released authomatic that has updated some oauth providers
6 https://code.rhodecode.com/upstream/authomatic/archive/90a9ce60cc405ae8a2bf5c3713acd5d78579a04e.tar.gz?md5=3c68720a1322b25254009518d1ff6801#egg=authomatic==0.1.0.post1
6 https://code.rhodecode.com/upstream/authomatic/archive/90a9ce60cc405ae8a2bf5c3713acd5d78579a04e.tar.gz?md5=3c68720a1322b25254009518d1ff6801#egg=authomatic==0.1.0.post1
7 atomicwrites==1.1.5
8 attrs==18.1.0
7 babel==1.3
9 babel==1.3
8 beaker==1.9.1
10 beaker==1.9.1
9 celery==4.1.1
11 celery==4.1.1
10 chameleon==2.24
12 chameleon==2.24
11 channelstream==0.5.2
13 channelstream==0.5.2
12 click==6.6
14 click==6.6
13 colander==1.4.0
15 colander==1.4.0
14 # our custom configobj
16 # our custom configobj
15 https://code.rhodecode.com/upstream/configobj/archive/a11ff0a0bd4fbda9e3a91267e720f88329efb4a6.tar.gz?md5=9916c524ea11a6c418217af6b28d4b3c#egg=configobj==5.0.6
17 https://code.rhodecode.com/upstream/configobj/archive/a11ff0a0bd4fbda9e3a91267e720f88329efb4a6.tar.gz?md5=9916c524ea11a6c418217af6b28d4b3c#egg=configobj==5.0.6
16 cssselect==1.0.3
18 cssselect==1.0.3
17 decorator==4.1.2
19 decorator==4.1.2
18 deform==2.0.5
20 deform==2.0.5
19 docutils==0.14.0
21 docutils==0.14.0
20 dogpile.cache==0.6.6
22 dogpile.cache==0.6.6
21 dogpile.core==0.4.1
23 dogpile.core==0.4.1
22 ecdsa==0.13
24 ecdsa==0.13
23 formencode==1.2.4
25 formencode==1.2.4
24 future==0.14.3
26 future==0.14.3
25 futures==3.0.2
27 futures==3.0.2
26 gnureadline==6.3.8
28 gnureadline==6.3.8
27 infrae.cache==1.0.1
29 infrae.cache==1.0.1
28 iso8601==0.1.11
30 iso8601==0.1.11
29 itsdangerous==0.24
31 itsdangerous==0.24
30 jinja2==2.9.6
32 jinja2==2.9.6
31 billiard==3.5.0.3
33 billiard==3.5.0.3
32 kombu==4.2.0
34 kombu==4.2.0
33 lxml==3.7.3
35 lxml==3.7.3
34 mako==1.0.7
36 mako==1.0.7
35 markdown==2.6.11
37 markdown==2.6.11
36 markupsafe==1.0.0
38 markupsafe==1.0.0
37 msgpack-python==0.5.6
39 msgpack-python==0.5.6
38 mysql-python==1.2.5
40 mysql-python==1.2.5
39 pymysql==0.8.1
41 pymysql==0.8.1
40 pyotp==2.2.6
42 pyotp==2.2.6
41 objgraph==3.1.1
43 objgraph==3.1.1
42 packaging==15.2
44 packaging==15.2
43 paste==2.0.3
45 paste==2.0.3
44 pastedeploy==1.5.2
46 pastedeploy==1.5.2
45 pastescript==2.0.2
47 pastescript==2.0.2
46 pathlib2==2.3.0
48 pathlib2==2.3.0
47 peppercorn==0.5
49 peppercorn==0.5
48 psutil==5.4.6
50 psutil==5.4.6
49 psycopg2==2.7.4
51 psycopg2==2.7.4
50 py-bcrypt==0.4
52 py-bcrypt==0.4
51 pycrypto==2.6.1
53 pycrypto==2.6.1
52 pycurl==7.43.0.2
54 pycurl==7.43.0.2
53 pyflakes==0.8.1
55 pyflakes==0.8.1
54 pygments-markdown-lexer==0.1.0.dev39
56 pygments-markdown-lexer==0.1.0.dev39
55 pygments==2.2.0
57 pygments==2.2.0
56 pyparsing==1.5.7
58 pyparsing==1.5.7
57 pyramid-beaker==0.8
59 pyramid-beaker==0.8
58 pyramid-debugtoolbar==4.4.0
60 pyramid-debugtoolbar==4.4.0
59 pyramid-jinja2==2.7
61 pyramid-jinja2==2.7
60 pyramid-mako==1.0.2
62 pyramid-mako==1.0.2
61 pyramid==1.9.2
63 pyramid==1.9.2
62 pysqlite==2.8.3
64 pysqlite==2.8.3
63 python-dateutil
65 python-dateutil
64 python-ldap==3.1.0
66 python-ldap==3.1.0
65 python-memcached==1.59
67 python-memcached==1.59
66 python-pam==1.8.4
68 python-pam==1.8.4
67 pytz==2018.4
69 pytz==2018.4
68 tzlocal==1.5.1
70 tzlocal==1.5.1
69 pyzmq==14.6.0
71 pyzmq==14.6.0
70 py-gfm==0.1.3
72 py-gfm==0.1.3
71 redis==2.10.6
73 redis==2.10.6
72 repoze.lru==0.7
74 repoze.lru==0.7
73 requests==2.9.1
75 requests==2.9.1
74 routes==2.4.1
76 routes==2.4.1
75 setproctitle==1.1.10
77 setproctitle==1.1.10
76 simplejson==3.11.1
78 simplejson==3.11.1
77 six==1.11.0
79 six==1.11.0
78 sqlalchemy==1.1.18
80 sqlalchemy==1.1.18
79 sshpubkeys==2.2.0
81 sshpubkeys==2.2.0
80 subprocess32==3.5.1
82 subprocess32==3.5.1
81 supervisor==3.3.4
83 supervisor==3.3.4
82 tempita==0.5.2
84 tempita==0.5.2
83 translationstring==1.3
85 translationstring==1.3
84 trollius==1.0.4
86 trollius==1.0.4
85 urllib3==1.21
87 urllib3==1.21
86 urlobject==2.4.3
88 urlobject==2.4.3
87 venusian==1.1.0
89 venusian==1.1.0
88 weberror==0.10.3
90 weberror==0.10.3
89 webhelpers2==2.0
91 webhelpers2==2.0
90 webhelpers==1.3
92 webhelpers==1.3
91 webob==1.7.4
93 webob==1.7.4
92 whoosh==2.7.4
94 whoosh==2.7.4
93 wsgiref==0.1.2
95 wsgiref==0.1.2
94 zope.cachedescriptors==4.3.1
96 zope.cachedescriptors==4.3.1
95 zope.deprecation==4.3.0
97 zope.deprecation==4.3.0
96 zope.event==4.3.0
98 zope.event==4.3.0
97 zope.interface==4.5.0
99 zope.interface==4.5.0
98
100
99
101
100 # IPYTHON RENDERING
102 # IPYTHON RENDERING
101 # entrypoints backport, pypi version doesn't support egg installs
103 # entrypoints backport, pypi version doesn't support egg installs
102 https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313#egg=entrypoints==0.2.2.rhodecode-upstream1
104 https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313#egg=entrypoints==0.2.2.rhodecode-upstream1
103 nbconvert==5.3.1
105 nbconvert==5.3.1
104 bleach==2.1.4
106 bleach==2.1.4
105 nbformat==4.4.0
107 nbformat==4.4.0
106 jupyter_client==5.0.0
108 jupyter_client==5.0.0
107
109
108 ## cli tools
110 ## cli tools
109 alembic==0.9.9
111 alembic==0.9.9
110 invoke==0.13.0
112 invoke==0.13.0
111 bumpversion==0.5.3
113 bumpversion==0.5.3
112
114
113 ## http servers
115 ## http servers
114 gevent==1.3.5
116 gevent==1.3.5
115 greenlet==0.4.13
117 greenlet==0.4.13
116 gunicorn==19.9.0
118 gunicorn==19.9.0
117 waitress==1.1.0
119 waitress==1.1.0
118
120
119 ## debug
121 ## debug
120 ipdb==0.11.0
122 ipdb==0.11.0
121 ipython==5.1.0
123 ipython==5.1.0
122 cprofilev==1.0.7
124 cprofilev==1.0.7
123 bottle==0.12.13
125 bottle==0.12.13
124
126
125 ## rhodecode-tools, special case
127 ## rhodecode-tools, special case
126 https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.16.0.tar.gz?md5=87f81286b49156c2ac36f1a1acfa2164#egg=rhodecode-tools==0.16.0
128 https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.16.0.tar.gz?md5=87f81286b49156c2ac36f1a1acfa2164#egg=rhodecode-tools==0.16.0
127
129
128 ## appenlight
130 ## appenlight
129 appenlight-client==0.6.25
131 appenlight-client==0.6.25
130
132
131 ## test related requirements
133 ## test related requirements
132 -r requirements_test.txt
134 -r requirements_test.txt
@@ -1,64 +1,62 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2011-2018 RhodeCode GmbH
3 # Copyright (C) 2011-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21 import logging
21 import logging
22
22
23 from pyramid.view import view_config
23 from pyramid.view import view_config
24
24
25 from rhodecode.apps._base import RepoAppView
25 from rhodecode.apps._base import RepoAppView
26 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
26 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
27 from rhodecode.lib import repo_maintenance
27 from rhodecode.lib import repo_maintenance
28
28
29 log = logging.getLogger(__name__)
29 log = logging.getLogger(__name__)
30
30
31
31
32 class RepoMaintenanceView(RepoAppView):
32 class RepoMaintenanceView(RepoAppView):
33 def load_default_context(self):
33 def load_default_context(self):
34 c = self._get_local_tmpl_context()
34 c = self._get_local_tmpl_context()
35
36
37 return c
35 return c
38
36
39 @LoginRequired()
37 @LoginRequired()
40 @HasRepoPermissionAnyDecorator('repository.admin')
38 @HasRepoPermissionAnyDecorator('repository.admin')
41 @view_config(
39 @view_config(
42 route_name='edit_repo_maintenance', request_method='GET',
40 route_name='edit_repo_maintenance', request_method='GET',
43 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
41 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
44 def repo_maintenance(self):
42 def repo_maintenance(self):
45 c = self.load_default_context()
43 c = self.load_default_context()
46 c.active = 'maintenance'
44 c.active = 'maintenance'
47 maintenance = repo_maintenance.RepoMaintenance()
45 maintenance = repo_maintenance.RepoMaintenance()
48 c.executable_tasks = maintenance.get_tasks_for_repo(self.db_repo)
46 c.executable_tasks = maintenance.get_tasks_for_repo(self.db_repo)
49 return self._get_template_context(c)
47 return self._get_template_context(c)
50
48
51 @LoginRequired()
49 @LoginRequired()
52 @HasRepoPermissionAnyDecorator('repository.admin')
50 @HasRepoPermissionAnyDecorator('repository.admin')
53 @view_config(
51 @view_config(
54 route_name='edit_repo_maintenance_execute', request_method='GET',
52 route_name='edit_repo_maintenance_execute', request_method='GET',
55 renderer='json', xhr=True)
53 renderer='json', xhr=True)
56 def repo_maintenance_execute(self):
54 def repo_maintenance_execute(self):
57 c = self.load_default_context()
55 c = self.load_default_context()
58 c.active = 'maintenance'
56 c.active = 'maintenance'
59 _ = self.request.translate
57 _ = self.request.translate
60
58
61 maintenance = repo_maintenance.RepoMaintenance()
59 maintenance = repo_maintenance.RepoMaintenance()
62 executed_types = maintenance.execute(self.db_repo)
60 executed_types = maintenance.execute(self.db_repo)
63
61
64 return executed_types
62 return executed_types
@@ -1,556 +1,575 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2010-2018 RhodeCode GmbH
3 # Copyright (C) 2010-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21 import os
21 import os
22 import sys
22 import sys
23 import logging
23 import logging
24 import collections
24 import collections
25 import tempfile
25 import tempfile
26
26
27 from paste.gzipper import make_gzip_middleware
27 from paste.gzipper import make_gzip_middleware
28 import pyramid.events
28 import pyramid.events
29 from pyramid.wsgi import wsgiapp
29 from pyramid.wsgi import wsgiapp
30 from pyramid.authorization import ACLAuthorizationPolicy
30 from pyramid.authorization import ACLAuthorizationPolicy
31 from pyramid.config import Configurator
31 from pyramid.config import Configurator
32 from pyramid.settings import asbool, aslist
32 from pyramid.settings import asbool, aslist
33 from pyramid.httpexceptions import (
33 from pyramid.httpexceptions import (
34 HTTPException, HTTPError, HTTPInternalServerError, HTTPFound, HTTPNotFound)
34 HTTPException, HTTPError, HTTPInternalServerError, HTTPFound, HTTPNotFound)
35 from pyramid.renderers import render_to_response
35 from pyramid.renderers import render_to_response
36
36
37 from rhodecode.model import meta
37 from rhodecode.model import meta
38 from rhodecode.config import patches
38 from rhodecode.config import patches
39 from rhodecode.config import utils as config_utils
39 from rhodecode.config import utils as config_utils
40 from rhodecode.config.environment import load_pyramid_environment
40 from rhodecode.config.environment import load_pyramid_environment
41
41
42 import rhodecode.events
42 import rhodecode.events
43 from rhodecode.lib.middleware.vcs import VCSMiddleware
43 from rhodecode.lib.middleware.vcs import VCSMiddleware
44 from rhodecode.lib.request import Request
44 from rhodecode.lib.request import Request
45 from rhodecode.lib.vcs import VCSCommunicationError
45 from rhodecode.lib.vcs import VCSCommunicationError
46 from rhodecode.lib.exceptions import VCSServerUnavailable
46 from rhodecode.lib.exceptions import VCSServerUnavailable
47 from rhodecode.lib.middleware.appenlight import wrap_in_appenlight_if_enabled
47 from rhodecode.lib.middleware.appenlight import wrap_in_appenlight_if_enabled
48 from rhodecode.lib.middleware.https_fixup import HttpsFixup
48 from rhodecode.lib.middleware.https_fixup import HttpsFixup
49 from rhodecode.lib.celerylib.loader import configure_celery
49 from rhodecode.lib.celerylib.loader import configure_celery
50 from rhodecode.lib.plugins.utils import register_rhodecode_plugin
50 from rhodecode.lib.plugins.utils import register_rhodecode_plugin
51 from rhodecode.lib.utils2 import aslist as rhodecode_aslist, AttributeDict
51 from rhodecode.lib.utils2 import aslist as rhodecode_aslist, AttributeDict
52 from rhodecode.lib.exc_tracking import store_exception
52 from rhodecode.lib.exc_tracking import store_exception
53 from rhodecode.subscribers import (
53 from rhodecode.subscribers import (
54 scan_repositories_if_enabled, write_js_routes_if_enabled,
54 scan_repositories_if_enabled, write_js_routes_if_enabled,
55 write_metadata_if_needed, inject_app_settings)
55 write_metadata_if_needed, inject_app_settings)
56
56
57
57
58 log = logging.getLogger(__name__)
58 log = logging.getLogger(__name__)
59
59
60
60
61 def is_http_error(response):
61 def is_http_error(response):
62 # error which should have traceback
62 # error which should have traceback
63 return response.status_code > 499
63 return response.status_code > 499
64
64
65
65
66 def make_pyramid_app(global_config, **settings):
66 def make_pyramid_app(global_config, **settings):
67 """
67 """
68 Constructs the WSGI application based on Pyramid.
68 Constructs the WSGI application based on Pyramid.
69
69
70 Specials:
70 Specials:
71
71
72 * The application can also be integrated like a plugin via the call to
72 * The application can also be integrated like a plugin via the call to
73 `includeme`. This is accompanied with the other utility functions which
73 `includeme`. This is accompanied with the other utility functions which
74 are called. Changing this should be done with great care to not break
74 are called. Changing this should be done with great care to not break
75 cases when these fragments are assembled from another place.
75 cases when these fragments are assembled from another place.
76
76
77 """
77 """
78
78
79 # Allows to use format style "{ENV_NAME}" placeholders in the configuration. It
79 # Allows to use format style "{ENV_NAME}" placeholders in the configuration. It
80 # will be replaced by the value of the environment variable "NAME" in this case.
80 # will be replaced by the value of the environment variable "NAME" in this case.
81 environ = {
81 environ = {
82 'ENV_{}'.format(key): value for key, value in os.environ.items()}
82 'ENV_{}'.format(key): value for key, value in os.environ.items()}
83
83
84 global_config = _substitute_values(global_config, environ)
84 global_config = _substitute_values(global_config, environ)
85 settings = _substitute_values(settings, environ)
85 settings = _substitute_values(settings, environ)
86
86
87 sanitize_settings_and_apply_defaults(settings)
87 sanitize_settings_and_apply_defaults(settings)
88
88
89 config = Configurator(settings=settings)
89 config = Configurator(settings=settings)
90
90
91 # Apply compatibility patches
91 # Apply compatibility patches
92 patches.inspect_getargspec()
92 patches.inspect_getargspec()
93
93
94 load_pyramid_environment(global_config, settings)
94 load_pyramid_environment(global_config, settings)
95
95
96 # Static file view comes first
96 # Static file view comes first
97 includeme_first(config)
97 includeme_first(config)
98
98
99 includeme(config)
99 includeme(config)
100
100
101 pyramid_app = config.make_wsgi_app()
101 pyramid_app = config.make_wsgi_app()
102 pyramid_app = wrap_app_in_wsgi_middlewares(pyramid_app, config)
102 pyramid_app = wrap_app_in_wsgi_middlewares(pyramid_app, config)
103 pyramid_app.config = config
103 pyramid_app.config = config
104
104
105 config.configure_celery(global_config['__file__'])
105 config.configure_celery(global_config['__file__'])
106 # creating the app uses a connection - return it after we are done
106 # creating the app uses a connection - return it after we are done
107 meta.Session.remove()
107 meta.Session.remove()
108
108
109 log.info('Pyramid app %s created and configured.', pyramid_app)
109 log.info('Pyramid app %s created and configured.', pyramid_app)
110 return pyramid_app
110 return pyramid_app
111
111
112
112
113 def not_found_view(request):
113 def not_found_view(request):
114 """
114 """
115 This creates the view which should be registered as not-found-view to
115 This creates the view which should be registered as not-found-view to
116 pyramid.
116 pyramid.
117 """
117 """
118
118
119 if not getattr(request, 'vcs_call', None):
119 if not getattr(request, 'vcs_call', None):
120 # handle like regular case with our error_handler
120 # handle like regular case with our error_handler
121 return error_handler(HTTPNotFound(), request)
121 return error_handler(HTTPNotFound(), request)
122
122
123 # handle not found view as a vcs call
123 # handle not found view as a vcs call
124 settings = request.registry.settings
124 settings = request.registry.settings
125 ae_client = getattr(request, 'ae_client', None)
125 ae_client = getattr(request, 'ae_client', None)
126 vcs_app = VCSMiddleware(
126 vcs_app = VCSMiddleware(
127 HTTPNotFound(), request.registry, settings,
127 HTTPNotFound(), request.registry, settings,
128 appenlight_client=ae_client)
128 appenlight_client=ae_client)
129
129
130 return wsgiapp(vcs_app)(None, request)
130 return wsgiapp(vcs_app)(None, request)
131
131
132
132
133 def error_handler(exception, request):
133 def error_handler(exception, request):
134 import rhodecode
134 import rhodecode
135 from rhodecode.lib import helpers
135 from rhodecode.lib import helpers
136
136
137 rhodecode_title = rhodecode.CONFIG.get('rhodecode_title') or 'RhodeCode'
137 rhodecode_title = rhodecode.CONFIG.get('rhodecode_title') or 'RhodeCode'
138
138
139 base_response = HTTPInternalServerError()
139 base_response = HTTPInternalServerError()
140 # prefer original exception for the response since it may have headers set
140 # prefer original exception for the response since it may have headers set
141 if isinstance(exception, HTTPException):
141 if isinstance(exception, HTTPException):
142 base_response = exception
142 base_response = exception
143 elif isinstance(exception, VCSCommunicationError):
143 elif isinstance(exception, VCSCommunicationError):
144 base_response = VCSServerUnavailable()
144 base_response = VCSServerUnavailable()
145
145
146 if is_http_error(base_response):
146 if is_http_error(base_response):
147 log.exception(
147 log.exception(
148 'error occurred handling this request for path: %s', request.path)
148 'error occurred handling this request for path: %s', request.path)
149
149
150 error_explanation = base_response.explanation or str(base_response)
150 error_explanation = base_response.explanation or str(base_response)
151 if base_response.status_code == 404:
151 if base_response.status_code == 404:
152 error_explanation += " Or you don't have permission to access it."
152 error_explanation += " Or you don't have permission to access it."
153 c = AttributeDict()
153 c = AttributeDict()
154 c.error_message = base_response.status
154 c.error_message = base_response.status
155 c.error_explanation = error_explanation
155 c.error_explanation = error_explanation
156 c.visual = AttributeDict()
156 c.visual = AttributeDict()
157
157
158 c.visual.rhodecode_support_url = (
158 c.visual.rhodecode_support_url = (
159 request.registry.settings.get('rhodecode_support_url') or
159 request.registry.settings.get('rhodecode_support_url') or
160 request.route_url('rhodecode_support')
160 request.route_url('rhodecode_support')
161 )
161 )
162 c.redirect_time = 0
162 c.redirect_time = 0
163 c.rhodecode_name = rhodecode_title
163 c.rhodecode_name = rhodecode_title
164 if not c.rhodecode_name:
164 if not c.rhodecode_name:
165 c.rhodecode_name = 'Rhodecode'
165 c.rhodecode_name = 'Rhodecode'
166
166
167 c.causes = []
167 c.causes = []
168 if is_http_error(base_response):
168 if is_http_error(base_response):
169 c.causes.append('Server is overloaded.')
169 c.causes.append('Server is overloaded.')
170 c.causes.append('Server database connection is lost.')
170 c.causes.append('Server database connection is lost.')
171 c.causes.append('Server expected unhandled error.')
171 c.causes.append('Server expected unhandled error.')
172
172
173 if hasattr(base_response, 'causes'):
173 if hasattr(base_response, 'causes'):
174 c.causes = base_response.causes
174 c.causes = base_response.causes
175
175
176 c.messages = helpers.flash.pop_messages(request=request)
176 c.messages = helpers.flash.pop_messages(request=request)
177
177
178 exc_info = sys.exc_info()
178 exc_info = sys.exc_info()
179 c.exception_id = id(exc_info)
179 c.exception_id = id(exc_info)
180 c.show_exception_id = isinstance(base_response, VCSServerUnavailable) \
180 c.show_exception_id = isinstance(base_response, VCSServerUnavailable) \
181 or base_response.status_code > 499
181 or base_response.status_code > 499
182 c.exception_id_url = request.route_url(
182 c.exception_id_url = request.route_url(
183 'admin_settings_exception_tracker_show', exception_id=c.exception_id)
183 'admin_settings_exception_tracker_show', exception_id=c.exception_id)
184
184
185 if c.show_exception_id:
185 if c.show_exception_id:
186 store_exception(c.exception_id, exc_info)
186 store_exception(c.exception_id, exc_info)
187
187
188 response = render_to_response(
188 response = render_to_response(
189 '/errors/error_document.mako', {'c': c, 'h': helpers}, request=request,
189 '/errors/error_document.mako', {'c': c, 'h': helpers}, request=request,
190 response=base_response)
190 response=base_response)
191
191
192 return response
192 return response
193
193
194
194
195 def includeme_first(config):
195 def includeme_first(config):
196 # redirect automatic browser favicon.ico requests to correct place
196 # redirect automatic browser favicon.ico requests to correct place
197 def favicon_redirect(context, request):
197 def favicon_redirect(context, request):
198 return HTTPFound(
198 return HTTPFound(
199 request.static_path('rhodecode:public/images/favicon.ico'))
199 request.static_path('rhodecode:public/images/favicon.ico'))
200
200
201 config.add_view(favicon_redirect, route_name='favicon')
201 config.add_view(favicon_redirect, route_name='favicon')
202 config.add_route('favicon', '/favicon.ico')
202 config.add_route('favicon', '/favicon.ico')
203
203
204 def robots_redirect(context, request):
204 def robots_redirect(context, request):
205 return HTTPFound(
205 return HTTPFound(
206 request.static_path('rhodecode:public/robots.txt'))
206 request.static_path('rhodecode:public/robots.txt'))
207
207
208 config.add_view(robots_redirect, route_name='robots')
208 config.add_view(robots_redirect, route_name='robots')
209 config.add_route('robots', '/robots.txt')
209 config.add_route('robots', '/robots.txt')
210
210
211 config.add_static_view(
211 config.add_static_view(
212 '_static/deform', 'deform:static')
212 '_static/deform', 'deform:static')
213 config.add_static_view(
213 config.add_static_view(
214 '_static/rhodecode', path='rhodecode:public', cache_max_age=3600 * 24)
214 '_static/rhodecode', path='rhodecode:public', cache_max_age=3600 * 24)
215
215
216
216
217 def includeme(config):
217 def includeme(config):
218 settings = config.registry.settings
218 settings = config.registry.settings
219 config.set_request_factory(Request)
219 config.set_request_factory(Request)
220
220
221 # plugin information
221 # plugin information
222 config.registry.rhodecode_plugins = collections.OrderedDict()
222 config.registry.rhodecode_plugins = collections.OrderedDict()
223
223
224 config.add_directive(
224 config.add_directive(
225 'register_rhodecode_plugin', register_rhodecode_plugin)
225 'register_rhodecode_plugin', register_rhodecode_plugin)
226
226
227 config.add_directive('configure_celery', configure_celery)
227 config.add_directive('configure_celery', configure_celery)
228
228
229 if asbool(settings.get('appenlight', 'false')):
229 if asbool(settings.get('appenlight', 'false')):
230 config.include('appenlight_client.ext.pyramid_tween')
230 config.include('appenlight_client.ext.pyramid_tween')
231
231
232 # Includes which are required. The application would fail without them.
232 # Includes which are required. The application would fail without them.
233 config.include('pyramid_mako')
233 config.include('pyramid_mako')
234 config.include('pyramid_beaker')
234 config.include('pyramid_beaker')
235 config.include('rhodecode.lib.rc_cache')
235 config.include('rhodecode.lib.rc_cache')
236
236
237 config.include('rhodecode.authentication')
237 config.include('rhodecode.authentication')
238 config.include('rhodecode.integrations')
238 config.include('rhodecode.integrations')
239
239
240 # apps
240 # apps
241 config.include('rhodecode.apps._base')
241 config.include('rhodecode.apps._base')
242 config.include('rhodecode.apps.ops')
242 config.include('rhodecode.apps.ops')
243
243
244 config.include('rhodecode.apps.admin')
244 config.include('rhodecode.apps.admin')
245 config.include('rhodecode.apps.channelstream')
245 config.include('rhodecode.apps.channelstream')
246 config.include('rhodecode.apps.login')
246 config.include('rhodecode.apps.login')
247 config.include('rhodecode.apps.home')
247 config.include('rhodecode.apps.home')
248 config.include('rhodecode.apps.journal')
248 config.include('rhodecode.apps.journal')
249 config.include('rhodecode.apps.repository')
249 config.include('rhodecode.apps.repository')
250 config.include('rhodecode.apps.repo_group')
250 config.include('rhodecode.apps.repo_group')
251 config.include('rhodecode.apps.user_group')
251 config.include('rhodecode.apps.user_group')
252 config.include('rhodecode.apps.search')
252 config.include('rhodecode.apps.search')
253 config.include('rhodecode.apps.user_profile')
253 config.include('rhodecode.apps.user_profile')
254 config.include('rhodecode.apps.user_group_profile')
254 config.include('rhodecode.apps.user_group_profile')
255 config.include('rhodecode.apps.my_account')
255 config.include('rhodecode.apps.my_account')
256 config.include('rhodecode.apps.svn_support')
256 config.include('rhodecode.apps.svn_support')
257 config.include('rhodecode.apps.ssh_support')
257 config.include('rhodecode.apps.ssh_support')
258 config.include('rhodecode.apps.gist')
258 config.include('rhodecode.apps.gist')
259
259
260 config.include('rhodecode.apps.debug_style')
260 config.include('rhodecode.apps.debug_style')
261 config.include('rhodecode.tweens')
261 config.include('rhodecode.tweens')
262 config.include('rhodecode.api')
262 config.include('rhodecode.api')
263
263
264 config.add_route(
264 config.add_route(
265 'rhodecode_support', 'https://rhodecode.com/help/', static=True)
265 'rhodecode_support', 'https://rhodecode.com/help/', static=True)
266
266
267 config.add_translation_dirs('rhodecode:i18n/')
267 config.add_translation_dirs('rhodecode:i18n/')
268 settings['default_locale_name'] = settings.get('lang', 'en')
268 settings['default_locale_name'] = settings.get('lang', 'en')
269
269
270 # Add subscribers.
270 # Add subscribers.
271 config.add_subscriber(inject_app_settings,
271 config.add_subscriber(inject_app_settings,
272 pyramid.events.ApplicationCreated)
272 pyramid.events.ApplicationCreated)
273 config.add_subscriber(scan_repositories_if_enabled,
273 config.add_subscriber(scan_repositories_if_enabled,
274 pyramid.events.ApplicationCreated)
274 pyramid.events.ApplicationCreated)
275 config.add_subscriber(write_metadata_if_needed,
275 config.add_subscriber(write_metadata_if_needed,
276 pyramid.events.ApplicationCreated)
276 pyramid.events.ApplicationCreated)
277 config.add_subscriber(write_js_routes_if_enabled,
277 config.add_subscriber(write_js_routes_if_enabled,
278 pyramid.events.ApplicationCreated)
278 pyramid.events.ApplicationCreated)
279
279
280 # request custom methods
280 # request custom methods
281 config.add_request_method(
281 config.add_request_method(
282 'rhodecode.lib.partial_renderer.get_partial_renderer',
282 'rhodecode.lib.partial_renderer.get_partial_renderer',
283 'get_partial_renderer')
283 'get_partial_renderer')
284
284
285 # Set the authorization policy.
285 # Set the authorization policy.
286 authz_policy = ACLAuthorizationPolicy()
286 authz_policy = ACLAuthorizationPolicy()
287 config.set_authorization_policy(authz_policy)
287 config.set_authorization_policy(authz_policy)
288
288
289 # Set the default renderer for HTML templates to mako.
289 # Set the default renderer for HTML templates to mako.
290 config.add_mako_renderer('.html')
290 config.add_mako_renderer('.html')
291
291
292 config.add_renderer(
292 config.add_renderer(
293 name='json_ext',
293 name='json_ext',
294 factory='rhodecode.lib.ext_json_renderer.pyramid_ext_json')
294 factory='rhodecode.lib.ext_json_renderer.pyramid_ext_json')
295
295
296 # include RhodeCode plugins
296 # include RhodeCode plugins
297 includes = aslist(settings.get('rhodecode.includes', []))
297 includes = aslist(settings.get('rhodecode.includes', []))
298 for inc in includes:
298 for inc in includes:
299 config.include(inc)
299 config.include(inc)
300
300
301 # custom not found view, if our pyramid app doesn't know how to handle
301 # custom not found view, if our pyramid app doesn't know how to handle
302 # the request pass it to potential VCS handling ap
302 # the request pass it to potential VCS handling ap
303 config.add_notfound_view(not_found_view)
303 config.add_notfound_view(not_found_view)
304 if not settings.get('debugtoolbar.enabled', False):
304 if not settings.get('debugtoolbar.enabled', False):
305 # disabled debugtoolbar handle all exceptions via the error_handlers
305 # disabled debugtoolbar handle all exceptions via the error_handlers
306 config.add_view(error_handler, context=Exception)
306 config.add_view(error_handler, context=Exception)
307
307
308 # all errors including 403/404/50X
308 # all errors including 403/404/50X
309 config.add_view(error_handler, context=HTTPError)
309 config.add_view(error_handler, context=HTTPError)
310
310
311
311
312 def wrap_app_in_wsgi_middlewares(pyramid_app, config):
312 def wrap_app_in_wsgi_middlewares(pyramid_app, config):
313 """
313 """
314 Apply outer WSGI middlewares around the application.
314 Apply outer WSGI middlewares around the application.
315 """
315 """
316 registry = config.registry
316 registry = config.registry
317 settings = registry.settings
317 settings = registry.settings
318
318
319 # enable https redirects based on HTTP_X_URL_SCHEME set by proxy
319 # enable https redirects based on HTTP_X_URL_SCHEME set by proxy
320 pyramid_app = HttpsFixup(pyramid_app, settings)
320 pyramid_app = HttpsFixup(pyramid_app, settings)
321
321
322 pyramid_app, _ae_client = wrap_in_appenlight_if_enabled(
322 pyramid_app, _ae_client = wrap_in_appenlight_if_enabled(
323 pyramid_app, settings)
323 pyramid_app, settings)
324 registry.ae_client = _ae_client
324 registry.ae_client = _ae_client
325
325
326 if settings['gzip_responses']:
326 if settings['gzip_responses']:
327 pyramid_app = make_gzip_middleware(
327 pyramid_app = make_gzip_middleware(
328 pyramid_app, settings, compress_level=1)
328 pyramid_app, settings, compress_level=1)
329
329
330 # this should be the outer most middleware in the wsgi stack since
330 # this should be the outer most middleware in the wsgi stack since
331 # middleware like Routes make database calls
331 # middleware like Routes make database calls
332 def pyramid_app_with_cleanup(environ, start_response):
332 def pyramid_app_with_cleanup(environ, start_response):
333 try:
333 try:
334 return pyramid_app(environ, start_response)
334 return pyramid_app(environ, start_response)
335 finally:
335 finally:
336 # Dispose current database session and rollback uncommitted
336 # Dispose current database session and rollback uncommitted
337 # transactions.
337 # transactions.
338 meta.Session.remove()
338 meta.Session.remove()
339
339
340 # In a single threaded mode server, on non sqlite db we should have
340 # In a single threaded mode server, on non sqlite db we should have
341 # '0 Current Checked out connections' at the end of a request,
341 # '0 Current Checked out connections' at the end of a request,
342 # if not, then something, somewhere is leaving a connection open
342 # if not, then something, somewhere is leaving a connection open
343 pool = meta.Base.metadata.bind.engine.pool
343 pool = meta.Base.metadata.bind.engine.pool
344 log.debug('sa pool status: %s', pool.status())
344 log.debug('sa pool status: %s', pool.status())
345 log.debug('Request processing finalized')
345 log.debug('Request processing finalized')
346
346
347 return pyramid_app_with_cleanup
347 return pyramid_app_with_cleanup
348
348
349
349
350 def sanitize_settings_and_apply_defaults(settings):
350 def sanitize_settings_and_apply_defaults(settings):
351 """
351 """
352 Applies settings defaults and does all type conversion.
352 Applies settings defaults and does all type conversion.
353
353
354 We would move all settings parsing and preparation into this place, so that
354 We would move all settings parsing and preparation into this place, so that
355 we have only one place left which deals with this part. The remaining parts
355 we have only one place left which deals with this part. The remaining parts
356 of the application would start to rely fully on well prepared settings.
356 of the application would start to rely fully on well prepared settings.
357
357
358 This piece would later be split up per topic to avoid a big fat monster
358 This piece would later be split up per topic to avoid a big fat monster
359 function.
359 function.
360 """
360 """
361
361
362 settings.setdefault('rhodecode.edition', 'Community Edition')
362 settings.setdefault('rhodecode.edition', 'Community Edition')
363
363
364 if 'mako.default_filters' not in settings:
364 if 'mako.default_filters' not in settings:
365 # set custom default filters if we don't have it defined
365 # set custom default filters if we don't have it defined
366 settings['mako.imports'] = 'from rhodecode.lib.base import h_filter'
366 settings['mako.imports'] = 'from rhodecode.lib.base import h_filter'
367 settings['mako.default_filters'] = 'h_filter'
367 settings['mako.default_filters'] = 'h_filter'
368
368
369 if 'mako.directories' not in settings:
369 if 'mako.directories' not in settings:
370 mako_directories = settings.setdefault('mako.directories', [
370 mako_directories = settings.setdefault('mako.directories', [
371 # Base templates of the original application
371 # Base templates of the original application
372 'rhodecode:templates',
372 'rhodecode:templates',
373 ])
373 ])
374 log.debug(
374 log.debug(
375 "Using the following Mako template directories: %s",
375 "Using the following Mako template directories: %s",
376 mako_directories)
376 mako_directories)
377
377
378 # Default includes, possible to change as a user
378 # Default includes, possible to change as a user
379 pyramid_includes = settings.setdefault('pyramid.includes', [
379 pyramid_includes = settings.setdefault('pyramid.includes', [
380 'rhodecode.lib.middleware.request_wrapper',
380 'rhodecode.lib.middleware.request_wrapper',
381 ])
381 ])
382 log.debug(
382 log.debug(
383 "Using the following pyramid.includes: %s",
383 "Using the following pyramid.includes: %s",
384 pyramid_includes)
384 pyramid_includes)
385
385
386 # TODO: johbo: Re-think this, usually the call to config.include
386 # TODO: johbo: Re-think this, usually the call to config.include
387 # should allow to pass in a prefix.
387 # should allow to pass in a prefix.
388 settings.setdefault('rhodecode.api.url', '/_admin/api')
388 settings.setdefault('rhodecode.api.url', '/_admin/api')
389
389
390 # Sanitize generic settings.
390 # Sanitize generic settings.
391 _list_setting(settings, 'default_encoding', 'UTF-8')
391 _list_setting(settings, 'default_encoding', 'UTF-8')
392 _bool_setting(settings, 'is_test', 'false')
392 _bool_setting(settings, 'is_test', 'false')
393 _bool_setting(settings, 'gzip_responses', 'false')
393 _bool_setting(settings, 'gzip_responses', 'false')
394
394
395 # Call split out functions that sanitize settings for each topic.
395 # Call split out functions that sanitize settings for each topic.
396 _sanitize_appenlight_settings(settings)
396 _sanitize_appenlight_settings(settings)
397 _sanitize_vcs_settings(settings)
397 _sanitize_vcs_settings(settings)
398 _sanitize_cache_settings(settings)
398 _sanitize_cache_settings(settings)
399
399
400 # configure instance id
400 # configure instance id
401 config_utils.set_instance_id(settings)
401 config_utils.set_instance_id(settings)
402
402
403 return settings
403 return settings
404
404
405
405
406 def _sanitize_appenlight_settings(settings):
406 def _sanitize_appenlight_settings(settings):
407 _bool_setting(settings, 'appenlight', 'false')
407 _bool_setting(settings, 'appenlight', 'false')
408
408
409
409
410 def _sanitize_vcs_settings(settings):
410 def _sanitize_vcs_settings(settings):
411 """
411 """
412 Applies settings defaults and does type conversion for all VCS related
412 Applies settings defaults and does type conversion for all VCS related
413 settings.
413 settings.
414 """
414 """
415 _string_setting(settings, 'vcs.svn.compatible_version', '')
415 _string_setting(settings, 'vcs.svn.compatible_version', '')
416 _string_setting(settings, 'git_rev_filter', '--all')
416 _string_setting(settings, 'git_rev_filter', '--all')
417 _string_setting(settings, 'vcs.hooks.protocol', 'http')
417 _string_setting(settings, 'vcs.hooks.protocol', 'http')
418 _string_setting(settings, 'vcs.hooks.host', '127.0.0.1')
418 _string_setting(settings, 'vcs.hooks.host', '127.0.0.1')
419 _string_setting(settings, 'vcs.scm_app_implementation', 'http')
419 _string_setting(settings, 'vcs.scm_app_implementation', 'http')
420 _string_setting(settings, 'vcs.server', '')
420 _string_setting(settings, 'vcs.server', '')
421 _string_setting(settings, 'vcs.server.log_level', 'debug')
421 _string_setting(settings, 'vcs.server.log_level', 'debug')
422 _string_setting(settings, 'vcs.server.protocol', 'http')
422 _string_setting(settings, 'vcs.server.protocol', 'http')
423 _bool_setting(settings, 'startup.import_repos', 'false')
423 _bool_setting(settings, 'startup.import_repos', 'false')
424 _bool_setting(settings, 'vcs.hooks.direct_calls', 'false')
424 _bool_setting(settings, 'vcs.hooks.direct_calls', 'false')
425 _bool_setting(settings, 'vcs.server.enable', 'true')
425 _bool_setting(settings, 'vcs.server.enable', 'true')
426 _bool_setting(settings, 'vcs.start_server', 'false')
426 _bool_setting(settings, 'vcs.start_server', 'false')
427 _list_setting(settings, 'vcs.backends', 'hg, git, svn')
427 _list_setting(settings, 'vcs.backends', 'hg, git, svn')
428 _int_setting(settings, 'vcs.connection_timeout', 3600)
428 _int_setting(settings, 'vcs.connection_timeout', 3600)
429
429
430 # Support legacy values of vcs.scm_app_implementation. Legacy
430 # Support legacy values of vcs.scm_app_implementation. Legacy
431 # configurations may use 'rhodecode.lib.middleware.utils.scm_app_http', or
431 # configurations may use 'rhodecode.lib.middleware.utils.scm_app_http', or
432 # disabled since 4.13 'vcsserver.scm_app' which is now mapped to 'http'.
432 # disabled since 4.13 'vcsserver.scm_app' which is now mapped to 'http'.
433 scm_app_impl = settings['vcs.scm_app_implementation']
433 scm_app_impl = settings['vcs.scm_app_implementation']
434 if scm_app_impl in ['rhodecode.lib.middleware.utils.scm_app_http', 'vcsserver.scm_app']:
434 if scm_app_impl in ['rhodecode.lib.middleware.utils.scm_app_http', 'vcsserver.scm_app']:
435 settings['vcs.scm_app_implementation'] = 'http'
435 settings['vcs.scm_app_implementation'] = 'http'
436
436
437
437
438 def _sanitize_cache_settings(settings):
438 def _sanitize_cache_settings(settings):
439 _string_setting(settings, 'cache_dir',
439 default_cache_dir = os.path.join(tempfile.gettempdir(), 'rc_cache')
440 os.path.join(tempfile.gettempdir(), 'rc_cache'))
440
441 # save default, cache dir, and use it for all backends later.
442 default_cache_dir = _string_setting(
443 settings,
444 'cache_dir',
445 default_cache_dir, lower=False, default_when_empty=True)
446
447 # ensure we have our dir created
448 if not os.path.isdir(default_cache_dir):
449 os.makedirs(default_cache_dir, mode=0755)
450
441 # cache_perms
451 # cache_perms
442 _string_setting(
452 _string_setting(
443 settings,
453 settings,
444 'rc_cache.cache_perms.backend',
454 'rc_cache.cache_perms.backend',
445 'dogpile.cache.rc.file_namespace')
455 'dogpile.cache.rc.file_namespace', lower=False)
446 _int_setting(
456 _int_setting(
447 settings,
457 settings,
448 'rc_cache.cache_perms.expiration_time',
458 'rc_cache.cache_perms.expiration_time',
449 60)
459 60)
450 _string_setting(
460 _string_setting(
451 settings,
461 settings,
452 'rc_cache.cache_perms.arguments.filename',
462 'rc_cache.cache_perms.arguments.filename',
453 os.path.join(tempfile.gettempdir(), 'rc_cache_1'))
463 os.path.join(default_cache_dir, 'rc_cache_1'), lower=False)
454
464
455 # cache_repo
465 # cache_repo
456 _string_setting(
466 _string_setting(
457 settings,
467 settings,
458 'rc_cache.cache_repo.backend',
468 'rc_cache.cache_repo.backend',
459 'dogpile.cache.rc.file_namespace')
469 'dogpile.cache.rc.file_namespace', lower=False)
460 _int_setting(
470 _int_setting(
461 settings,
471 settings,
462 'rc_cache.cache_repo.expiration_time',
472 'rc_cache.cache_repo.expiration_time',
463 60)
473 60)
464 _string_setting(
474 _string_setting(
465 settings,
475 settings,
466 'rc_cache.cache_repo.arguments.filename',
476 'rc_cache.cache_repo.arguments.filename',
467 os.path.join(tempfile.gettempdir(), 'rc_cache_2'))
477 os.path.join(default_cache_dir, 'rc_cache_2'), lower=False)
468
478
469 # cache_license
479 # cache_license
470 _string_setting(
480 _string_setting(
471 settings,
481 settings,
472 'rc_cache.cache_license.backend',
482 'rc_cache.cache_license.backend',
473 'dogpile.cache.rc.file_namespace')
483 'dogpile.cache.rc.file_namespace', lower=False)
474 _int_setting(
484 _int_setting(
475 settings,
485 settings,
476 'rc_cache.cache_license.expiration_time',
486 'rc_cache.cache_license.expiration_time',
477 5*60)
487 5*60)
478 _string_setting(
488 _string_setting(
479 settings,
489 settings,
480 'rc_cache.cache_license.arguments.filename',
490 'rc_cache.cache_license.arguments.filename',
481 os.path.join(tempfile.gettempdir(), 'rc_cache_3'))
491 os.path.join(default_cache_dir, 'rc_cache_3'), lower=False)
482
492
483 # cache_repo_longterm memory, 96H
493 # cache_repo_longterm memory, 96H
484 _string_setting(
494 _string_setting(
485 settings,
495 settings,
486 'rc_cache.cache_repo_longterm.backend',
496 'rc_cache.cache_repo_longterm.backend',
487 'dogpile.cache.rc.memory_lru')
497 'dogpile.cache.rc.memory_lru', lower=False)
488 _int_setting(
498 _int_setting(
489 settings,
499 settings,
490 'rc_cache.cache_repo_longterm.expiration_time',
500 'rc_cache.cache_repo_longterm.expiration_time',
491 345600)
501 345600)
492 _int_setting(
502 _int_setting(
493 settings,
503 settings,
494 'rc_cache.cache_repo_longterm.max_size',
504 'rc_cache.cache_repo_longterm.max_size',
495 10000)
505 10000)
496
506
497 # sql_cache_short
507 # sql_cache_short
498 _string_setting(
508 _string_setting(
499 settings,
509 settings,
500 'rc_cache.sql_cache_short.backend',
510 'rc_cache.sql_cache_short.backend',
501 'dogpile.cache.rc.memory_lru')
511 'dogpile.cache.rc.memory_lru', lower=False)
502 _int_setting(
512 _int_setting(
503 settings,
513 settings,
504 'rc_cache.sql_cache_short.expiration_time',
514 'rc_cache.sql_cache_short.expiration_time',
505 30)
515 30)
506 _int_setting(
516 _int_setting(
507 settings,
517 settings,
508 'rc_cache.sql_cache_short.max_size',
518 'rc_cache.sql_cache_short.max_size',
509 10000)
519 10000)
510
520
511
521
512 def _int_setting(settings, name, default):
522 def _int_setting(settings, name, default):
513 settings[name] = int(settings.get(name, default))
523 settings[name] = int(settings.get(name, default))
524 return settings[name]
514
525
515
526
516 def _bool_setting(settings, name, default):
527 def _bool_setting(settings, name, default):
517 input_val = settings.get(name, default)
528 input_val = settings.get(name, default)
518 if isinstance(input_val, unicode):
529 if isinstance(input_val, unicode):
519 input_val = input_val.encode('utf8')
530 input_val = input_val.encode('utf8')
520 settings[name] = asbool(input_val)
531 settings[name] = asbool(input_val)
532 return settings[name]
521
533
522
534
523 def _list_setting(settings, name, default):
535 def _list_setting(settings, name, default):
524 raw_value = settings.get(name, default)
536 raw_value = settings.get(name, default)
525
537
526 old_separator = ','
538 old_separator = ','
527 if old_separator in raw_value:
539 if old_separator in raw_value:
528 # If we get a comma separated list, pass it to our own function.
540 # If we get a comma separated list, pass it to our own function.
529 settings[name] = rhodecode_aslist(raw_value, sep=old_separator)
541 settings[name] = rhodecode_aslist(raw_value, sep=old_separator)
530 else:
542 else:
531 # Otherwise we assume it uses pyramids space/newline separation.
543 # Otherwise we assume it uses pyramids space/newline separation.
532 settings[name] = aslist(raw_value)
544 settings[name] = aslist(raw_value)
545 return settings[name]
533
546
534
547
535 def _string_setting(settings, name, default, lower=True):
548 def _string_setting(settings, name, default, lower=True, default_when_empty=False):
536 value = settings.get(name, default)
549 value = settings.get(name, default)
550
551 if default_when_empty and not value:
552 # use default value when value is empty
553 value = default
554
537 if lower:
555 if lower:
538 value = value.lower()
556 value = value.lower()
539 settings[name] = value
557 settings[name] = value
558 return settings[name]
540
559
541
560
542 def _substitute_values(mapping, substitutions):
561 def _substitute_values(mapping, substitutions):
543
562
544 try:
563 try:
545 result = {
564 result = {
546 # Note: Cannot use regular replacements, since they would clash
565 # Note: Cannot use regular replacements, since they would clash
547 # with the implementation of ConfigParser. Using "format" instead.
566 # with the implementation of ConfigParser. Using "format" instead.
548 key: value.format(**substitutions)
567 key: value.format(**substitutions)
549 for key, value in mapping.items()
568 for key, value in mapping.items()
550 }
569 }
551 except KeyError as e:
570 except KeyError as e:
552 raise ValueError(
571 raise ValueError(
553 'Failed to substitute env variable: {}. '
572 'Failed to substitute env variable: {}. '
554 'Make sure you have specified this env variable without ENV_ prefix'.format(e))
573 'Make sure you have specified this env variable without ENV_ prefix'.format(e))
555
574
556 return result
575 return result
@@ -1,89 +1,94 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2010-2018 RhodeCode GmbH
3 # Copyright (C) 2010-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21 import os
21 import os
22 import shlex
22 import shlex
23 import platform
23 import platform
24
24
25 from rhodecode.model import init_model
25 from rhodecode.model import init_model
26
26
27
27
28 def configure_vcs(config):
28 def configure_vcs(config):
29 """
29 """
30 Patch VCS config with some RhodeCode specific stuff
30 Patch VCS config with some RhodeCode specific stuff
31 """
31 """
32 from rhodecode.lib.vcs import conf
32 from rhodecode.lib.vcs import conf
33 import rhodecode.lib.vcs.conf.settings
33 import rhodecode.lib.vcs.conf.settings
34
34
35 conf.settings.BACKENDS = {
35 conf.settings.BACKENDS = {
36 'hg': 'rhodecode.lib.vcs.backends.hg.MercurialRepository',
36 'hg': 'rhodecode.lib.vcs.backends.hg.MercurialRepository',
37 'git': 'rhodecode.lib.vcs.backends.git.GitRepository',
37 'git': 'rhodecode.lib.vcs.backends.git.GitRepository',
38 'svn': 'rhodecode.lib.vcs.backends.svn.SubversionRepository',
38 'svn': 'rhodecode.lib.vcs.backends.svn.SubversionRepository',
39 }
39 }
40
40
41 conf.settings.HOOKS_PROTOCOL = config['vcs.hooks.protocol']
41 conf.settings.HOOKS_PROTOCOL = config['vcs.hooks.protocol']
42 conf.settings.HOOKS_HOST = config['vcs.hooks.host']
42 conf.settings.HOOKS_HOST = config['vcs.hooks.host']
43 conf.settings.HOOKS_DIRECT_CALLS = config['vcs.hooks.direct_calls']
43 conf.settings.HOOKS_DIRECT_CALLS = config['vcs.hooks.direct_calls']
44 conf.settings.GIT_REV_FILTER = shlex.split(config['git_rev_filter'])
44 conf.settings.GIT_REV_FILTER = shlex.split(config['git_rev_filter'])
45 conf.settings.DEFAULT_ENCODINGS = config['default_encoding']
45 conf.settings.DEFAULT_ENCODINGS = config['default_encoding']
46 conf.settings.ALIASES[:] = config['vcs.backends']
46 conf.settings.ALIASES[:] = config['vcs.backends']
47 conf.settings.SVN_COMPATIBLE_VERSION = config['vcs.svn.compatible_version']
47 conf.settings.SVN_COMPATIBLE_VERSION = config['vcs.svn.compatible_version']
48
48
49
49
50 def initialize_database(config):
50 def initialize_database(config):
51 from rhodecode.lib.utils2 import engine_from_config, get_encryption_key
51 from rhodecode.lib.utils2 import engine_from_config, get_encryption_key
52 engine = engine_from_config(config, 'sqlalchemy.db1.')
52 engine = engine_from_config(config, 'sqlalchemy.db1.')
53 init_model(engine, encryption_key=get_encryption_key(config))
53 init_model(engine, encryption_key=get_encryption_key(config))
54
54
55
55
56 def initialize_test_environment(settings, test_env=None):
56 def initialize_test_environment(settings, test_env=None):
57 if test_env is None:
57 if test_env is None:
58 test_env = not int(os.environ.get('RC_NO_TMP_PATH', 0))
58 test_env = not int(os.environ.get('RC_NO_TMP_PATH', 0))
59
59
60 from rhodecode.lib.utils import (
60 from rhodecode.lib.utils import (
61 create_test_directory, create_test_database, create_test_repositories,
61 create_test_directory, create_test_database, create_test_repositories,
62 create_test_index)
62 create_test_index)
63 from rhodecode.tests import TESTS_TMP_PATH
63 from rhodecode.tests import TESTS_TMP_PATH
64 from rhodecode.lib.vcs.backends.hg import largefiles_store
64 from rhodecode.lib.vcs.backends.hg import largefiles_store
65 from rhodecode.lib.vcs.backends.git import lfs_store
65 from rhodecode.lib.vcs.backends.git import lfs_store
66
66
67 # test repos
67 # test repos
68 if test_env:
68 if test_env:
69 create_test_directory(TESTS_TMP_PATH)
69 create_test_directory(TESTS_TMP_PATH)
70 # large object stores
70 # large object stores
71 create_test_directory(largefiles_store(TESTS_TMP_PATH))
71 create_test_directory(largefiles_store(TESTS_TMP_PATH))
72 create_test_directory(lfs_store(TESTS_TMP_PATH))
72 create_test_directory(lfs_store(TESTS_TMP_PATH))
73
73
74 create_test_database(TESTS_TMP_PATH, settings)
74 create_test_database(TESTS_TMP_PATH, settings)
75 create_test_repositories(TESTS_TMP_PATH, settings)
75 create_test_repositories(TESTS_TMP_PATH, settings)
76 create_test_index(TESTS_TMP_PATH, settings)
76 create_test_index(TESTS_TMP_PATH, settings)
77
77
78
78
79 def get_vcs_server_protocol(config):
79 def get_vcs_server_protocol(config):
80 return config['vcs.server.protocol']
80 return config['vcs.server.protocol']
81
81
82
82
83 def set_instance_id(config):
83 def set_instance_id(config):
84 """ Sets a dynamic generated config['instance_id'] if missing or '*' """
84 """
85 Sets a dynamic generated config['instance_id'] if missing or '*'
86 E.g instance_id = *cluster-1 or instance_id = *
87 """
85
88
86 config['instance_id'] = config.get('instance_id') or ''
89 config['instance_id'] = config.get('instance_id') or ''
87 if config['instance_id'] == '*' or not config['instance_id']:
90 instance_id = config['instance_id']
91 if instance_id.startswith('*') or not instance_id:
92 prefix = instance_id.lstrip('*')
88 _platform_id = platform.uname()[1] or 'instance'
93 _platform_id = platform.uname()[1] or 'instance'
89 config['instance_id'] = '%s-%s' % (_platform_id, os.getpid())
94 config['instance_id'] = '%s%s-%s' % (prefix, _platform_id, os.getpid())
@@ -1,70 +1,74 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2012-2018 RhodeCode GmbH
3 # Copyright (C) 2012-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20 import sys
21 import logging
21 import logging
22
22
23 from rhodecode.integrations.registry import IntegrationTypeRegistry
23 from rhodecode.integrations.registry import IntegrationTypeRegistry
24 from rhodecode.integrations.types import webhook, slack, hipchat, email, base
24 from rhodecode.integrations.types import webhook, slack, hipchat, email, base
25 from rhodecode.lib.exc_tracking import store_exception
26
25 log = logging.getLogger(__name__)
27 log = logging.getLogger(__name__)
26
28
27
29
28 # TODO: dan: This is currently global until we figure out what to do about
30 # TODO: dan: This is currently global until we figure out what to do about
29 # VCS's not having a pyramid context - move it to pyramid app configuration
31 # VCS's not having a pyramid context - move it to pyramid app configuration
30 # includeme level later to allow per instance integration setup
32 # includeme level later to allow per instance integration setup
31 integration_type_registry = IntegrationTypeRegistry()
33 integration_type_registry = IntegrationTypeRegistry()
32
34
33 integration_type_registry.register_integration_type(
35 integration_type_registry.register_integration_type(
34 webhook.WebhookIntegrationType)
36 webhook.WebhookIntegrationType)
35 integration_type_registry.register_integration_type(
37 integration_type_registry.register_integration_type(
36 slack.SlackIntegrationType)
38 slack.SlackIntegrationType)
37 integration_type_registry.register_integration_type(
39 integration_type_registry.register_integration_type(
38 hipchat.HipchatIntegrationType)
40 hipchat.HipchatIntegrationType)
39 integration_type_registry.register_integration_type(
41 integration_type_registry.register_integration_type(
40 email.EmailIntegrationType)
42 email.EmailIntegrationType)
41
43
42
44
43 # dummy EE integration to show users what we have in EE edition
45 # dummy EE integration to show users what we have in EE edition
44 integration_type_registry.register_integration_type(
46 integration_type_registry.register_integration_type(
45 base.EEIntegration('Jira Issues integration', 'jira'))
47 base.EEIntegration('Jira Issues integration', 'jira'))
46 integration_type_registry.register_integration_type(
48 integration_type_registry.register_integration_type(
47 base.EEIntegration('Redmine Tracker integration', 'redmine'))
49 base.EEIntegration('Redmine Tracker integration', 'redmine'))
48 integration_type_registry.register_integration_type(
50 integration_type_registry.register_integration_type(
49 base.EEIntegration('Jenkins CI integration', 'jenkins'))
51 base.EEIntegration('Jenkins CI integration', 'jenkins'))
50
52
51
53
52 def integrations_event_handler(event):
54 def integrations_event_handler(event):
53 """
55 """
54 Takes an event and passes it to all enabled integrations
56 Takes an event and passes it to all enabled integrations
55 """
57 """
56 from rhodecode.model.integration import IntegrationModel
58 from rhodecode.model.integration import IntegrationModel
57
59
58 integration_model = IntegrationModel()
60 integration_model = IntegrationModel()
59 integrations = integration_model.get_for_event(event)
61 integrations = integration_model.get_for_event(event)
60 for integration in integrations:
62 for integration in integrations:
61 try:
63 try:
62 integration_model.send_event(integration, event)
64 integration_model.send_event(integration, event)
63 except Exception:
65 except Exception:
66 exc_info = sys.exc_info()
67 store_exception(id(exc_info), exc_info)
64 log.exception(
68 log.exception(
65 'failure occurred when sending event %s to integration %s' % (
69 'failure occurred when sending event %s to integration %s' % (
66 event, integration))
70 event, integration))
67
71
68
72
69 def includeme(config):
73 def includeme(config):
70 config.include('rhodecode.integrations.routes')
74 config.include('rhodecode.integrations.routes')
@@ -1,146 +1,153 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2010-2018 RhodeCode GmbH
3 # Copyright (C) 2010-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21 import os
21 import os
22 import time
22 import time
23 import datetime
23 import datetime
24 import msgpack
24 import msgpack
25 import logging
25 import logging
26 import traceback
26 import traceback
27 import tempfile
27 import tempfile
28
28
29
29
30 log = logging.getLogger(__name__)
30 log = logging.getLogger(__name__)
31
31
32 # NOTE: Any changes should be synced with exc_tracking at vcsserver.lib.exc_tracking
32 # NOTE: Any changes should be synced with exc_tracking at vcsserver.lib.exc_tracking
33 global_prefix = 'rhodecode'
33 global_prefix = 'rhodecode'
34
34
35
35
36 def exc_serialize(exc_id, tb, exc_type):
36 def exc_serialize(exc_id, tb, exc_type):
37
37
38 data = {
38 data = {
39 'version': 'v1',
39 'version': 'v1',
40 'exc_id': exc_id,
40 'exc_id': exc_id,
41 'exc_utc_date': datetime.datetime.utcnow().isoformat(),
41 'exc_utc_date': datetime.datetime.utcnow().isoformat(),
42 'exc_timestamp': repr(time.time()),
42 'exc_timestamp': repr(time.time()),
43 'exc_message': tb,
43 'exc_message': tb,
44 'exc_type': exc_type,
44 'exc_type': exc_type,
45 }
45 }
46 return msgpack.packb(data), data
46 return msgpack.packb(data), data
47
47
48
48
49 def exc_unserialize(tb):
49 def exc_unserialize(tb):
50 return msgpack.unpackb(tb)
50 return msgpack.unpackb(tb)
51
51
52
52
53 def get_exc_store():
53 def get_exc_store():
54 """
54 """
55 Get and create exception store if it's not existing
55 Get and create exception store if it's not existing
56 """
56 """
57 exc_store_dir = 'rc_exception_store_v1'
57 exc_store_dir = 'rc_exception_store_v1'
58 # fallback
58 # fallback
59 _exc_store_path = os.path.join(tempfile.gettempdir(), exc_store_dir)
59 _exc_store_path = os.path.join(tempfile.gettempdir(), exc_store_dir)
60
60
61 exc_store_dir = '' # TODO: need a persistent cross instance store here
61 exc_store_dir = '' # TODO: need a persistent cross instance store here
62 if exc_store_dir:
62 if exc_store_dir:
63 _exc_store_path = os.path.join(exc_store_dir, exc_store_dir)
63 _exc_store_path = os.path.join(exc_store_dir, exc_store_dir)
64
64
65 _exc_store_path = os.path.abspath(_exc_store_path)
65 _exc_store_path = os.path.abspath(_exc_store_path)
66 if not os.path.isdir(_exc_store_path):
66 if not os.path.isdir(_exc_store_path):
67 os.makedirs(_exc_store_path)
67 os.makedirs(_exc_store_path)
68 log.debug('Initializing exceptions store at %s', _exc_store_path)
68 log.debug('Initializing exceptions store at %s', _exc_store_path)
69 return _exc_store_path
69 return _exc_store_path
70
70
71
71
72 def _store_exception(exc_id, exc_info, prefix):
72 def _store_exception(exc_id, exc_info, prefix):
73 exc_type, exc_value, exc_traceback = exc_info
73 exc_type, exc_value, exc_traceback = exc_info
74 tb = ''.join(traceback.format_exception(
74 tb = ''.join(traceback.format_exception(
75 exc_type, exc_value, exc_traceback, None))
75 exc_type, exc_value, exc_traceback, None))
76
76
77 exc_type_name = exc_type.__name__
77 exc_type_name = exc_type.__name__
78 exc_store_path = get_exc_store()
78 exc_store_path = get_exc_store()
79 exc_data, org_data = exc_serialize(exc_id, tb, exc_type_name)
79 exc_data, org_data = exc_serialize(exc_id, tb, exc_type_name)
80 exc_pref_id = '{}_{}_{}'.format(exc_id, prefix, org_data['exc_timestamp'])
80 exc_pref_id = '{}_{}_{}'.format(exc_id, prefix, org_data['exc_timestamp'])
81 if not os.path.isdir(exc_store_path):
81 if not os.path.isdir(exc_store_path):
82 os.makedirs(exc_store_path)
82 os.makedirs(exc_store_path)
83 stored_exc_path = os.path.join(exc_store_path, exc_pref_id)
83 stored_exc_path = os.path.join(exc_store_path, exc_pref_id)
84 with open(stored_exc_path, 'wb') as f:
84 with open(stored_exc_path, 'wb') as f:
85 f.write(exc_data)
85 f.write(exc_data)
86 log.debug('Stored generated exception %s as: %s', exc_id, stored_exc_path)
86 log.debug('Stored generated exception %s as: %s', exc_id, stored_exc_path)
87
87
88
88
89 def store_exception(exc_id, exc_info, prefix=global_prefix):
89 def store_exception(exc_id, exc_info, prefix=global_prefix):
90 """
91 Example usage::
92
93 exc_info = sys.exc_info()
94 store_exception(id(exc_info), exc_info)
95 """
96
90 try:
97 try:
91 _store_exception(exc_id=exc_id, exc_info=exc_info, prefix=prefix)
98 _store_exception(exc_id=exc_id, exc_info=exc_info, prefix=prefix)
92 except Exception:
99 except Exception:
93 log.exception('Failed to store exception `%s` information', exc_id)
100 log.exception('Failed to store exception `%s` information', exc_id)
94 # there's no way this can fail, it will crash server badly if it does.
101 # there's no way this can fail, it will crash server badly if it does.
95 pass
102 pass
96
103
97
104
98 def _find_exc_file(exc_id, prefix=global_prefix):
105 def _find_exc_file(exc_id, prefix=global_prefix):
99 exc_store_path = get_exc_store()
106 exc_store_path = get_exc_store()
100 if prefix:
107 if prefix:
101 exc_id = '{}_{}'.format(exc_id, prefix)
108 exc_id = '{}_{}'.format(exc_id, prefix)
102 else:
109 else:
103 # search without a prefix
110 # search without a prefix
104 exc_id = '{}'.format(exc_id)
111 exc_id = '{}'.format(exc_id)
105
112
106 # we need to search the store for such start pattern as above
113 # we need to search the store for such start pattern as above
107 for fname in os.listdir(exc_store_path):
114 for fname in os.listdir(exc_store_path):
108 if fname.startswith(exc_id):
115 if fname.startswith(exc_id):
109 exc_id = os.path.join(exc_store_path, fname)
116 exc_id = os.path.join(exc_store_path, fname)
110 break
117 break
111 continue
118 continue
112 else:
119 else:
113 exc_id = None
120 exc_id = None
114
121
115 return exc_id
122 return exc_id
116
123
117
124
118 def _read_exception(exc_id, prefix):
125 def _read_exception(exc_id, prefix):
119 exc_id_file_path = _find_exc_file(exc_id=exc_id, prefix=prefix)
126 exc_id_file_path = _find_exc_file(exc_id=exc_id, prefix=prefix)
120 if exc_id_file_path:
127 if exc_id_file_path:
121 with open(exc_id_file_path, 'rb') as f:
128 with open(exc_id_file_path, 'rb') as f:
122 return exc_unserialize(f.read())
129 return exc_unserialize(f.read())
123 else:
130 else:
124 log.debug('Exception File `%s` not found', exc_id_file_path)
131 log.debug('Exception File `%s` not found', exc_id_file_path)
125 return None
132 return None
126
133
127
134
128 def read_exception(exc_id, prefix=global_prefix):
135 def read_exception(exc_id, prefix=global_prefix):
129 try:
136 try:
130 return _read_exception(exc_id=exc_id, prefix=prefix)
137 return _read_exception(exc_id=exc_id, prefix=prefix)
131 except Exception:
138 except Exception:
132 log.exception('Failed to read exception `%s` information', exc_id)
139 log.exception('Failed to read exception `%s` information', exc_id)
133 # there's no way this can fail, it will crash server badly if it does.
140 # there's no way this can fail, it will crash server badly if it does.
134 return None
141 return None
135
142
136
143
137 def delete_exception(exc_id, prefix=global_prefix):
144 def delete_exception(exc_id, prefix=global_prefix):
138 try:
145 try:
139 exc_id_file_path = _find_exc_file(exc_id, prefix=prefix)
146 exc_id_file_path = _find_exc_file(exc_id, prefix=prefix)
140 if exc_id_file_path:
147 if exc_id_file_path:
141 os.remove(exc_id_file_path)
148 os.remove(exc_id_file_path)
142
149
143 except Exception:
150 except Exception:
144 log.exception('Failed to remove exception `%s` information', exc_id)
151 log.exception('Failed to remove exception `%s` information', exc_id)
145 # there's no way this can fail, it will crash server badly if it does.
152 # there's no way this can fail, it will crash server badly if it does.
146 pass
153 pass
@@ -1,118 +1,175 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2017-2018 RhodeCode GmbH
3 # Copyright (C) 2017-2018 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 import logging
20 import logging
21
21
22 log = logging.getLogger(__name__)
22 log = logging.getLogger(__name__)
23
23
24
24
25 class MaintenanceTask(object):
25 class MaintenanceTask(object):
26 human_name = 'undefined'
26 human_name = 'undefined'
27
27
28 def __init__(self, db_repo):
28 def __init__(self, db_repo):
29 self.db_repo = db_repo
29 self.db_repo = db_repo
30
30
31 def run(self):
31 def run(self):
32 """Execute task and return task human value"""
32 """Execute task and return task human value"""
33 raise NotImplementedError()
33 raise NotImplementedError()
34
34
35
35
36 class GitGC(MaintenanceTask):
36 class GitGC(MaintenanceTask):
37 human_name = 'GIT Garbage collect'
37 human_name = 'GIT Garbage collect'
38
38
39 def _count_objects(self, repo):
39 def _count_objects(self, repo):
40 stdout, stderr = repo.run_git_command(
40 stdout, stderr = repo.run_git_command(
41 ['count-objects', '-v'], fail_on_stderr=False)
41 ['count-objects', '-v'], fail_on_stderr=False)
42
42
43 errors = ' '
43 errors = ' '
44 objects = ' '.join(stdout.splitlines())
44 objects = ' '.join(stdout.splitlines())
45
45
46 if stderr:
46 if stderr:
47 errors = '\nSTD ERR:' + '\n'.join(stderr.splitlines())
47 errors = '\nSTD ERR:' + '\n'.join(stderr.splitlines())
48 return objects + errors
48 return objects + errors
49
49
50 def run(self):
50 def run(self):
51 output = []
51 output = []
52 instance = self.db_repo.scm_instance()
52 instance = self.db_repo.scm_instance()
53
53
54 objects = self._count_objects(instance)
54 objects_before = self._count_objects(instance)
55 output.append(objects)
56 log.debug('GIT objects:%s', objects)
57
58 stdout, stderr = instance.run_git_command(
59 ['gc', '--aggressive'], fail_on_stderr=False)
60
55
61 out = 'executed git gc --aggressive'
56 log.debug('GIT objects:%s', objects_before)
62 if stderr:
57 cmd = ['gc', '--aggressive']
63 out = ''.join(stderr.splitlines())
58 stdout, stderr = instance.run_git_command(cmd, fail_on_stderr=False)
64
59
65 elif stdout:
60 out = 'executed {}'.format(' '.join(cmd))
66 out = ''.join(stdout.splitlines())
67
68 output.append(out)
61 output.append(out)
69
62
70 objects = self._count_objects(instance)
63 out = ''
71 log.debug('GIT objects:%s', objects)
64 if stderr:
72 output.append(objects)
65 out += ''.join(stderr.splitlines())
66
67 if stdout:
68 out += ''.join(stdout.splitlines())
69
70 if out:
71 output.append(out)
72
73 objects_after = self._count_objects(instance)
74 log.debug('GIT objects:%s', objects_after)
75 output.append('objects before :' + objects_before)
76 output.append('objects after :' + objects_after)
77
78 return '\n'.join(output)
79
80
81 class GitFSCK(MaintenanceTask):
82 human_name = 'GIT FSCK'
83
84 def run(self):
85 output = []
86 instance = self.db_repo.scm_instance()
87
88 cmd = ['fsck', '--full']
89 stdout, stderr = instance.run_git_command(cmd, fail_on_stderr=False)
90
91 out = 'executed {}'.format(' '.join(cmd))
92 output.append(out)
93
94 out = ''
95 if stderr:
96 out += ''.join(stderr.splitlines())
97
98 if stdout:
99 out += ''.join(stdout.splitlines())
100
101 if out:
102 output.append(out)
103
104 return '\n'.join(output)
105
106
107 class GitRepack(MaintenanceTask):
108 human_name = 'GIT Repack'
109
110 def run(self):
111 output = []
112 instance = self.db_repo.scm_instance()
113 cmd = ['repack', '-a', '-d',
114 '--window-memory', '10m', '--max-pack-size', '100m']
115 stdout, stderr = instance.run_git_command(cmd, fail_on_stderr=False)
116
117 out = 'executed {}'.format(' '.join(cmd))
118 output.append(out)
119 out = ''
120
121 if stderr:
122 out += ''.join(stderr.splitlines())
123
124 if stdout:
125 out += ''.join(stdout.splitlines())
126
127 if out:
128 output.append(out)
73
129
74 return '\n'.join(output)
130 return '\n'.join(output)
75
131
76
132
77 class HGVerify(MaintenanceTask):
133 class HGVerify(MaintenanceTask):
78 human_name = 'HG Verify repo'
134 human_name = 'HG Verify repo'
79
135
80 def run(self):
136 def run(self):
81 instance = self.db_repo.scm_instance()
137 instance = self.db_repo.scm_instance()
82 res = instance.verify()
138 res = instance.verify()
83 return res
139 return res
84
140
85
141
86 class SVNVerify(MaintenanceTask):
142 class SVNVerify(MaintenanceTask):
87 human_name = 'SVN Verify repo'
143 human_name = 'SVN Verify repo'
88
144
89 def run(self):
145 def run(self):
90 instance = self.db_repo.scm_instance()
146 instance = self.db_repo.scm_instance()
91 res = instance.verify()
147 res = instance.verify()
92 return res
148 return res
93
149
94
150
95 class RepoMaintenance(object):
151 class RepoMaintenance(object):
96 """
152 """
97 Performs maintenance of repository based on it's type
153 Performs maintenance of repository based on it's type
98 """
154 """
99 tasks = {
155 tasks = {
100 'hg': [HGVerify],
156 'hg': [HGVerify],
101 'git': [GitGC],
157 'git': [GitFSCK, GitGC, GitRepack],
102 'svn': [SVNVerify],
158 'svn': [SVNVerify],
103 }
159 }
104
160
105 def get_tasks_for_repo(self, db_repo):
161 def get_tasks_for_repo(self, db_repo):
106 """
162 """
107 fetches human names of tasks pending for execution for given type of repo
163 fetches human names of tasks pending for execution for given type of repo
108 """
164 """
109 tasks = []
165 tasks = []
110 for task in self.tasks[db_repo.repo_type]:
166 for task in self.tasks[db_repo.repo_type]:
111 tasks.append(task.human_name)
167 tasks.append(task.human_name)
112 return tasks
168 return tasks
113
169
114 def execute(self, db_repo):
170 def execute(self, db_repo):
115 executed_tasks = []
171 executed_tasks = []
116 for task in self.tasks[db_repo.repo_type]:
172 for task in self.tasks[db_repo.repo_type]:
117 executed_tasks.append(task(db_repo).run())
173 output = task.human_name + ':\n' + task(db_repo).run() + '\n--\n'
174 executed_tasks.append(output)
118 return executed_tasks
175 return executed_tasks
General Comments 0
You need to be logged in to leave comments. Login now