##// END OF EJS Templates
re-captcha: adjust for v2 that is the only left one supported since 1st of May.
marcink -
r2737:e890a093 stable
parent child Browse files
Show More
@@ -1,257 +1,250 b''
1 # Overrides for the generated python-packages.nix
1 # Overrides for the generated python-packages.nix
2 #
2 #
3 # This function is intended to be used as an extension to the generated file
3 # This function is intended to be used as an extension to the generated file
4 # python-packages.nix. The main objective is to add needed dependencies of C
4 # python-packages.nix. The main objective is to add needed dependencies of C
5 # libraries and tweak the build instructions where needed.
5 # libraries and tweak the build instructions where needed.
6
6
7 { pkgs, basePythonPackages }:
7 { pkgs, basePythonPackages }:
8
8
9 let
9 let
10 sed = "sed -i";
10 sed = "sed -i";
11 localLicenses = {
11 localLicenses = {
12 repoze = {
12 repoze = {
13 fullName = "Repoze License";
13 fullName = "Repoze License";
14 url = http://www.repoze.org/LICENSE.txt;
14 url = http://www.repoze.org/LICENSE.txt;
15 };
15 };
16 };
16 };
17
17
18 in
18 in
19
19
20 self: super: {
20 self: super: {
21
21
22 appenlight-client = super.appenlight-client.override (attrs: {
22 appenlight-client = super.appenlight-client.override (attrs: {
23 meta = {
23 meta = {
24 license = [ pkgs.lib.licenses.bsdOriginal ];
24 license = [ pkgs.lib.licenses.bsdOriginal ];
25 };
25 };
26 });
26 });
27
27
28 Beaker = super.Beaker.override (attrs: {
28 Beaker = super.Beaker.override (attrs: {
29 patches = [
29 patches = [
30 ./patch-beaker-lock-func-debug.diff
30 ./patch-beaker-lock-func-debug.diff
31 ];
31 ];
32 });
32 });
33
33
34 future = super.future.override (attrs: {
34 future = super.future.override (attrs: {
35 meta = {
35 meta = {
36 license = [ pkgs.lib.licenses.mit ];
36 license = [ pkgs.lib.licenses.mit ];
37 };
37 };
38 });
38 });
39
39
40 testpath = super.testpath.override (attrs: {
40 testpath = super.testpath.override (attrs: {
41 meta = {
41 meta = {
42 license = [ pkgs.lib.licenses.mit ];
42 license = [ pkgs.lib.licenses.mit ];
43 };
43 };
44 });
44 });
45
45
46 gnureadline = super.gnureadline.override (attrs: {
46 gnureadline = super.gnureadline.override (attrs: {
47 buildInputs = attrs.buildInputs ++ [
47 buildInputs = attrs.buildInputs ++ [
48 pkgs.ncurses
48 pkgs.ncurses
49 ];
49 ];
50 patchPhase = ''
50 patchPhase = ''
51 substituteInPlace setup.py --replace "/bin/bash" "${pkgs.bash}/bin/bash"
51 substituteInPlace setup.py --replace "/bin/bash" "${pkgs.bash}/bin/bash"
52 '';
52 '';
53 });
53 });
54
54
55 gunicorn = super.gunicorn.override (attrs: {
55 gunicorn = super.gunicorn.override (attrs: {
56 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
56 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
57 # johbo: futures is needed as long as we are on Python 2, otherwise
57 # johbo: futures is needed as long as we are on Python 2, otherwise
58 # gunicorn explodes if used with multiple threads per worker.
58 # gunicorn explodes if used with multiple threads per worker.
59 self.futures
59 self.futures
60 ];
60 ];
61 });
61 });
62
62
63 nbconvert = super.nbconvert.override (attrs: {
63 nbconvert = super.nbconvert.override (attrs: {
64 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
64 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
65 # marcink: plug in jupyter-client for notebook rendering
65 # marcink: plug in jupyter-client for notebook rendering
66 self.jupyter-client
66 self.jupyter-client
67 ];
67 ];
68 });
68 });
69
69
70 ipython = super.ipython.override (attrs: {
70 ipython = super.ipython.override (attrs: {
71 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
71 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
72 self.gnureadline
72 self.gnureadline
73 ];
73 ];
74 });
74 });
75
75
76 lxml = super.lxml.override (attrs: {
76 lxml = super.lxml.override (attrs: {
77 # johbo: On 16.09 we need this to compile on darwin, otherwise compilation
77 # johbo: On 16.09 we need this to compile on darwin, otherwise compilation
78 # fails on Darwin.
78 # fails on Darwin.
79 hardeningDisable = if pkgs.stdenv.isDarwin then [ "format" ] else null;
79 hardeningDisable = if pkgs.stdenv.isDarwin then [ "format" ] else null;
80 buildInputs = with self; [
80 buildInputs = with self; [
81 pkgs.libxml2
81 pkgs.libxml2
82 pkgs.libxslt
82 pkgs.libxslt
83 ];
83 ];
84 });
84 });
85
85
86 MySQL-python = super.MySQL-python.override (attrs: {
86 MySQL-python = super.MySQL-python.override (attrs: {
87 buildInputs = attrs.buildInputs ++ [
87 buildInputs = attrs.buildInputs ++ [
88 pkgs.openssl
88 pkgs.openssl
89 ];
89 ];
90 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
90 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
91 pkgs.libmysql
91 pkgs.libmysql
92 pkgs.zlib
92 pkgs.zlib
93 ];
93 ];
94 });
94 });
95
95
96 psutil = super.psutil.override (attrs: {
96 psutil = super.psutil.override (attrs: {
97 buildInputs = attrs.buildInputs ++
97 buildInputs = attrs.buildInputs ++
98 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.IOKit;
98 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.IOKit;
99 });
99 });
100
100
101 psycopg2 = super.psycopg2.override (attrs: {
101 psycopg2 = super.psycopg2.override (attrs: {
102 buildInputs = attrs.buildInputs ++
102 buildInputs = attrs.buildInputs ++
103 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.openssl;
103 pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.openssl;
104 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
104 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
105 pkgs.postgresql
105 pkgs.postgresql
106 ];
106 ];
107 meta = {
107 meta = {
108 license = pkgs.lib.licenses.lgpl3Plus;
108 license = pkgs.lib.licenses.lgpl3Plus;
109 };
109 };
110 });
110 });
111
111
112 pycurl = super.pycurl.override (attrs: {
112 pycurl = super.pycurl.override (attrs: {
113 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
113 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
114 pkgs.curl
114 pkgs.curl
115 pkgs.openssl
115 pkgs.openssl
116 ];
116 ];
117 preConfigure = ''
117 preConfigure = ''
118 substituteInPlace setup.py --replace '--static-libs' '--libs'
118 substituteInPlace setup.py --replace '--static-libs' '--libs'
119 export PYCURL_SSL_LIBRARY=openssl
119 export PYCURL_SSL_LIBRARY=openssl
120 '';
120 '';
121 meta = {
121 meta = {
122 # TODO: It is LGPL and MIT
122 # TODO: It is LGPL and MIT
123 license = pkgs.lib.licenses.mit;
123 license = pkgs.lib.licenses.mit;
124 };
124 };
125 });
125 });
126
126
127 pyramid = super.pyramid.override (attrs: {
127 pyramid = super.pyramid.override (attrs: {
128 postFixup = ''
128 postFixup = ''
129 wrapPythonPrograms
129 wrapPythonPrograms
130 # TODO: johbo: "wrapPython" adds this magic line which
130 # TODO: johbo: "wrapPython" adds this magic line which
131 # confuses pserve.
131 # confuses pserve.
132 ${sed} '/import sys; sys.argv/d' $out/bin/.pserve-wrapped
132 ${sed} '/import sys; sys.argv/d' $out/bin/.pserve-wrapped
133 '';
133 '';
134 meta = {
134 meta = {
135 license = localLicenses.repoze;
135 license = localLicenses.repoze;
136 };
136 };
137 });
137 });
138
138
139 pyramid-debugtoolbar = super.pyramid-debugtoolbar.override (attrs: {
139 pyramid-debugtoolbar = super.pyramid-debugtoolbar.override (attrs: {
140 meta = {
140 meta = {
141 license = [ pkgs.lib.licenses.bsdOriginal localLicenses.repoze ];
141 license = [ pkgs.lib.licenses.bsdOriginal localLicenses.repoze ];
142 };
142 };
143 });
143 });
144
144
145 pysqlite = super.pysqlite.override (attrs: {
145 pysqlite = super.pysqlite.override (attrs: {
146 propagatedBuildInputs = [
146 propagatedBuildInputs = [
147 pkgs.sqlite
147 pkgs.sqlite
148 ];
148 ];
149 meta = {
149 meta = {
150 license = [ pkgs.lib.licenses.zlib pkgs.lib.licenses.libpng ];
150 license = [ pkgs.lib.licenses.zlib pkgs.lib.licenses.libpng ];
151 };
151 };
152 });
152 });
153
153
154 pytest-runner = super.pytest-runner.override (attrs: {
154 pytest-runner = super.pytest-runner.override (attrs: {
155 propagatedBuildInputs = [
155 propagatedBuildInputs = [
156 self.setuptools-scm
156 self.setuptools-scm
157 ];
157 ];
158 });
158 });
159
159
160 python-ldap = super.python-ldap.override (attrs: {
160 python-ldap = super.python-ldap.override (attrs: {
161 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
161 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
162 pkgs.cyrus_sasl
162 pkgs.cyrus_sasl
163 pkgs.openldap
163 pkgs.openldap
164 pkgs.openssl
164 pkgs.openssl
165 ];
165 ];
166 # TODO: johbo: Remove the "or" once we drop 16.03 support.
166 # TODO: johbo: Remove the "or" once we drop 16.03 support.
167 NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl.dev or pkgs.cyrus_sasl}/include/sasl";
167 NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl.dev or pkgs.cyrus_sasl}/include/sasl";
168 });
168 });
169
169
170 python-pam = super.python-pam.override (attrs:
170 python-pam = super.python-pam.override (attrs:
171 let
171 let
172 includeLibPam = pkgs.stdenv.isLinux;
172 includeLibPam = pkgs.stdenv.isLinux;
173 in {
173 in {
174 # TODO: johbo: Move the option up into the default.nix, we should
174 # TODO: johbo: Move the option up into the default.nix, we should
175 # include python-pam only on supported platforms.
175 # include python-pam only on supported platforms.
176 propagatedBuildInputs = attrs.propagatedBuildInputs ++
176 propagatedBuildInputs = attrs.propagatedBuildInputs ++
177 pkgs.lib.optional includeLibPam [
177 pkgs.lib.optional includeLibPam [
178 pkgs.pam
178 pkgs.pam
179 ];
179 ];
180 # TODO: johbo: Check if this can be avoided, or transform into
180 # TODO: johbo: Check if this can be avoided, or transform into
181 # a real patch
181 # a real patch
182 patchPhase = pkgs.lib.optionals includeLibPam ''
182 patchPhase = pkgs.lib.optionals includeLibPam ''
183 substituteInPlace pam.py \
183 substituteInPlace pam.py \
184 --replace 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so.0"'
184 --replace 'find_library("pam")' '"${pkgs.pam}/lib/libpam.so.0"'
185 '';
185 '';
186 });
186 });
187
187
188 URLObject = super.URLObject.override (attrs: {
188 URLObject = super.URLObject.override (attrs: {
189 meta = {
189 meta = {
190 license = {
190 license = {
191 spdxId = "Unlicense";
191 spdxId = "Unlicense";
192 fullName = "The Unlicense";
192 fullName = "The Unlicense";
193 url = http://unlicense.org/;
193 url = http://unlicense.org/;
194 };
194 };
195 };
195 };
196 });
196 });
197
197
198 docutils = super.docutils.override (attrs: {
198 docutils = super.docutils.override (attrs: {
199 meta = {
199 meta = {
200 license = pkgs.lib.licenses.bsd2;
200 license = pkgs.lib.licenses.bsd2;
201 };
201 };
202 });
202 });
203
203
204 colander = super.colander.override (attrs: {
204 colander = super.colander.override (attrs: {
205 meta = {
205 meta = {
206 license = localLicenses.repoze;
206 license = localLicenses.repoze;
207 };
207 };
208 });
208 });
209
209
210 pyramid-beaker = super.pyramid-beaker.override (attrs: {
210 pyramid-beaker = super.pyramid-beaker.override (attrs: {
211 meta = {
211 meta = {
212 license = localLicenses.repoze;
212 license = localLicenses.repoze;
213 };
213 };
214 });
214 });
215
215
216 pyramid-mako = super.pyramid-mako.override (attrs: {
216 pyramid-mako = super.pyramid-mako.override (attrs: {
217 meta = {
217 meta = {
218 license = localLicenses.repoze;
218 license = localLicenses.repoze;
219 };
219 };
220 });
220 });
221
221
222 repoze.lru = super.repoze.lru.override (attrs: {
222 repoze.lru = super.repoze.lru.override (attrs: {
223 meta = {
223 meta = {
224 license = localLicenses.repoze;
224 license = localLicenses.repoze;
225 };
225 };
226 });
226 });
227
227
228 recaptcha-client = super.recaptcha-client.override (attrs: {
229 meta = {
230 # TODO: It is MIT/X11
231 license = pkgs.lib.licenses.mit;
232 };
233 });
234
235 python-editor = super.python-editor.override (attrs: {
228 python-editor = super.python-editor.override (attrs: {
236 meta = {
229 meta = {
237 license = pkgs.lib.licenses.asl20;
230 license = pkgs.lib.licenses.asl20;
238 };
231 };
239 });
232 });
240
233
241 translationstring = super.translationstring.override (attrs: {
234 translationstring = super.translationstring.override (attrs: {
242 meta = {
235 meta = {
243 license = localLicenses.repoze;
236 license = localLicenses.repoze;
244 };
237 };
245 });
238 });
246
239
247 venusian = super.venusian.override (attrs: {
240 venusian = super.venusian.override (attrs: {
248 meta = {
241 meta = {
249 license = localLicenses.repoze;
242 license = localLicenses.repoze;
250 };
243 };
251 });
244 });
252
245
253 # Avoid that setuptools is replaced, this leads to trouble
246 # Avoid that setuptools is replaced, this leads to trouble
254 # with buildPythonPackage.
247 # with buildPythonPackage.
255 setuptools = basePythonPackages.setuptools;
248 setuptools = basePythonPackages.setuptools;
256
249
257 }
250 }
@@ -1,2099 +1,2086 b''
1 # Generated by pip2nix 0.4.0
1 # Generated by pip2nix 0.4.0
2 # See https://github.com/johbo/pip2nix
2 # See https://github.com/johbo/pip2nix
3
3
4 {
4 {
5 Babel = super.buildPythonPackage {
5 Babel = super.buildPythonPackage {
6 name = "Babel-1.3";
6 name = "Babel-1.3";
7 buildInputs = with self; [];
7 buildInputs = with self; [];
8 doCheck = false;
8 doCheck = false;
9 propagatedBuildInputs = with self; [pytz];
9 propagatedBuildInputs = with self; [pytz];
10 src = fetchurl {
10 src = fetchurl {
11 url = "https://pypi.python.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
11 url = "https://pypi.python.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
12 md5 = "5264ceb02717843cbc9ffce8e6e06bdb";
12 md5 = "5264ceb02717843cbc9ffce8e6e06bdb";
13 };
13 };
14 meta = {
14 meta = {
15 license = [ pkgs.lib.licenses.bsdOriginal ];
15 license = [ pkgs.lib.licenses.bsdOriginal ];
16 };
16 };
17 };
17 };
18 Beaker = super.buildPythonPackage {
18 Beaker = super.buildPythonPackage {
19 name = "Beaker-1.9.1";
19 name = "Beaker-1.9.1";
20 buildInputs = with self; [];
20 buildInputs = with self; [];
21 doCheck = false;
21 doCheck = false;
22 propagatedBuildInputs = with self; [funcsigs];
22 propagatedBuildInputs = with self; [funcsigs];
23 src = fetchurl {
23 src = fetchurl {
24 url = "https://pypi.python.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
24 url = "https://pypi.python.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
25 md5 = "46fda0a164e2b0d24ccbda51a2310301";
25 md5 = "46fda0a164e2b0d24ccbda51a2310301";
26 };
26 };
27 meta = {
27 meta = {
28 license = [ pkgs.lib.licenses.bsdOriginal ];
28 license = [ pkgs.lib.licenses.bsdOriginal ];
29 };
29 };
30 };
30 };
31 CProfileV = super.buildPythonPackage {
31 CProfileV = super.buildPythonPackage {
32 name = "CProfileV-1.0.7";
32 name = "CProfileV-1.0.7";
33 buildInputs = with self; [];
33 buildInputs = with self; [];
34 doCheck = false;
34 doCheck = false;
35 propagatedBuildInputs = with self; [bottle];
35 propagatedBuildInputs = with self; [bottle];
36 src = fetchurl {
36 src = fetchurl {
37 url = "https://pypi.python.org/packages/df/50/d8c1ada7d537c64b0f76453fa31dedb6af6e27b82fcf0331e5f71a4cf98b/CProfileV-1.0.7.tar.gz";
37 url = "https://pypi.python.org/packages/df/50/d8c1ada7d537c64b0f76453fa31dedb6af6e27b82fcf0331e5f71a4cf98b/CProfileV-1.0.7.tar.gz";
38 md5 = "db4c7640438aa3d8887e194c81c7a019";
38 md5 = "db4c7640438aa3d8887e194c81c7a019";
39 };
39 };
40 meta = {
40 meta = {
41 license = [ pkgs.lib.licenses.mit ];
41 license = [ pkgs.lib.licenses.mit ];
42 };
42 };
43 };
43 };
44 Chameleon = super.buildPythonPackage {
44 Chameleon = super.buildPythonPackage {
45 name = "Chameleon-2.24";
45 name = "Chameleon-2.24";
46 buildInputs = with self; [];
46 buildInputs = with self; [];
47 doCheck = false;
47 doCheck = false;
48 propagatedBuildInputs = with self; [];
48 propagatedBuildInputs = with self; [];
49 src = fetchurl {
49 src = fetchurl {
50 url = "https://pypi.python.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
50 url = "https://pypi.python.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
51 md5 = "1b01f1f6533a8a11d0d2f2366dec5342";
51 md5 = "1b01f1f6533a8a11d0d2f2366dec5342";
52 };
52 };
53 meta = {
53 meta = {
54 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
54 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
55 };
55 };
56 };
56 };
57 FormEncode = super.buildPythonPackage {
57 FormEncode = super.buildPythonPackage {
58 name = "FormEncode-1.2.4";
58 name = "FormEncode-1.2.4";
59 buildInputs = with self; [];
59 buildInputs = with self; [];
60 doCheck = false;
60 doCheck = false;
61 propagatedBuildInputs = with self; [];
61 propagatedBuildInputs = with self; [];
62 src = fetchurl {
62 src = fetchurl {
63 url = "https://pypi.python.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
63 url = "https://pypi.python.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
64 md5 = "6bc17fb9aed8aea198975e888e2077f4";
64 md5 = "6bc17fb9aed8aea198975e888e2077f4";
65 };
65 };
66 meta = {
66 meta = {
67 license = [ pkgs.lib.licenses.psfl ];
67 license = [ pkgs.lib.licenses.psfl ];
68 };
68 };
69 };
69 };
70 Jinja2 = super.buildPythonPackage {
70 Jinja2 = super.buildPythonPackage {
71 name = "Jinja2-2.9.6";
71 name = "Jinja2-2.9.6";
72 buildInputs = with self; [];
72 buildInputs = with self; [];
73 doCheck = false;
73 doCheck = false;
74 propagatedBuildInputs = with self; [MarkupSafe];
74 propagatedBuildInputs = with self; [MarkupSafe];
75 src = fetchurl {
75 src = fetchurl {
76 url = "https://pypi.python.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
76 url = "https://pypi.python.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
77 md5 = "6411537324b4dba0956aaa8109f3c77b";
77 md5 = "6411537324b4dba0956aaa8109f3c77b";
78 };
78 };
79 meta = {
79 meta = {
80 license = [ pkgs.lib.licenses.bsdOriginal ];
80 license = [ pkgs.lib.licenses.bsdOriginal ];
81 };
81 };
82 };
82 };
83 Mako = super.buildPythonPackage {
83 Mako = super.buildPythonPackage {
84 name = "Mako-1.0.7";
84 name = "Mako-1.0.7";
85 buildInputs = with self; [];
85 buildInputs = with self; [];
86 doCheck = false;
86 doCheck = false;
87 propagatedBuildInputs = with self; [MarkupSafe];
87 propagatedBuildInputs = with self; [MarkupSafe];
88 src = fetchurl {
88 src = fetchurl {
89 url = "https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
89 url = "https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
90 md5 = "5836cc997b1b773ef389bf6629c30e65";
90 md5 = "5836cc997b1b773ef389bf6629c30e65";
91 };
91 };
92 meta = {
92 meta = {
93 license = [ pkgs.lib.licenses.mit ];
93 license = [ pkgs.lib.licenses.mit ];
94 };
94 };
95 };
95 };
96 Markdown = super.buildPythonPackage {
96 Markdown = super.buildPythonPackage {
97 name = "Markdown-2.6.11";
97 name = "Markdown-2.6.11";
98 buildInputs = with self; [];
98 buildInputs = with self; [];
99 doCheck = false;
99 doCheck = false;
100 propagatedBuildInputs = with self; [];
100 propagatedBuildInputs = with self; [];
101 src = fetchurl {
101 src = fetchurl {
102 url = "https://pypi.python.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
102 url = "https://pypi.python.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
103 md5 = "a67c1b2914f7d74eeede2ebe0fdae470";
103 md5 = "a67c1b2914f7d74eeede2ebe0fdae470";
104 };
104 };
105 meta = {
105 meta = {
106 license = [ pkgs.lib.licenses.bsdOriginal ];
106 license = [ pkgs.lib.licenses.bsdOriginal ];
107 };
107 };
108 };
108 };
109 MarkupSafe = super.buildPythonPackage {
109 MarkupSafe = super.buildPythonPackage {
110 name = "MarkupSafe-1.0";
110 name = "MarkupSafe-1.0";
111 buildInputs = with self; [];
111 buildInputs = with self; [];
112 doCheck = false;
112 doCheck = false;
113 propagatedBuildInputs = with self; [];
113 propagatedBuildInputs = with self; [];
114 src = fetchurl {
114 src = fetchurl {
115 url = "https://pypi.python.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
115 url = "https://pypi.python.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz";
116 md5 = "2fcedc9284d50e577b5192e8e3578355";
116 md5 = "2fcedc9284d50e577b5192e8e3578355";
117 };
117 };
118 meta = {
118 meta = {
119 license = [ pkgs.lib.licenses.bsdOriginal ];
119 license = [ pkgs.lib.licenses.bsdOriginal ];
120 };
120 };
121 };
121 };
122 MySQL-python = super.buildPythonPackage {
122 MySQL-python = super.buildPythonPackage {
123 name = "MySQL-python-1.2.5";
123 name = "MySQL-python-1.2.5";
124 buildInputs = with self; [];
124 buildInputs = with self; [];
125 doCheck = false;
125 doCheck = false;
126 propagatedBuildInputs = with self; [];
126 propagatedBuildInputs = with self; [];
127 src = fetchurl {
127 src = fetchurl {
128 url = "https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
128 url = "https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
129 md5 = "654f75b302db6ed8dc5a898c625e030c";
129 md5 = "654f75b302db6ed8dc5a898c625e030c";
130 };
130 };
131 meta = {
131 meta = {
132 license = [ pkgs.lib.licenses.gpl1 ];
132 license = [ pkgs.lib.licenses.gpl1 ];
133 };
133 };
134 };
134 };
135 Paste = super.buildPythonPackage {
135 Paste = super.buildPythonPackage {
136 name = "Paste-2.0.3";
136 name = "Paste-2.0.3";
137 buildInputs = with self; [];
137 buildInputs = with self; [];
138 doCheck = false;
138 doCheck = false;
139 propagatedBuildInputs = with self; [six];
139 propagatedBuildInputs = with self; [six];
140 src = fetchurl {
140 src = fetchurl {
141 url = "https://pypi.python.org/packages/30/c3/5c2f7c7a02e4f58d4454353fa1c32c94f79fa4e36d07a67c0ac295ea369e/Paste-2.0.3.tar.gz";
141 url = "https://pypi.python.org/packages/30/c3/5c2f7c7a02e4f58d4454353fa1c32c94f79fa4e36d07a67c0ac295ea369e/Paste-2.0.3.tar.gz";
142 md5 = "1231e14eae62fa7ed76e9130b04bc61e";
142 md5 = "1231e14eae62fa7ed76e9130b04bc61e";
143 };
143 };
144 meta = {
144 meta = {
145 license = [ pkgs.lib.licenses.mit ];
145 license = [ pkgs.lib.licenses.mit ];
146 };
146 };
147 };
147 };
148 PasteDeploy = super.buildPythonPackage {
148 PasteDeploy = super.buildPythonPackage {
149 name = "PasteDeploy-1.5.2";
149 name = "PasteDeploy-1.5.2";
150 buildInputs = with self; [];
150 buildInputs = with self; [];
151 doCheck = false;
151 doCheck = false;
152 propagatedBuildInputs = with self; [];
152 propagatedBuildInputs = with self; [];
153 src = fetchurl {
153 src = fetchurl {
154 url = "https://pypi.python.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz";
154 url = "https://pypi.python.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz";
155 md5 = "352b7205c78c8de4987578d19431af3b";
155 md5 = "352b7205c78c8de4987578d19431af3b";
156 };
156 };
157 meta = {
157 meta = {
158 license = [ pkgs.lib.licenses.mit ];
158 license = [ pkgs.lib.licenses.mit ];
159 };
159 };
160 };
160 };
161 PasteScript = super.buildPythonPackage {
161 PasteScript = super.buildPythonPackage {
162 name = "PasteScript-2.0.2";
162 name = "PasteScript-2.0.2";
163 buildInputs = with self; [];
163 buildInputs = with self; [];
164 doCheck = false;
164 doCheck = false;
165 propagatedBuildInputs = with self; [Paste PasteDeploy six];
165 propagatedBuildInputs = with self; [Paste PasteDeploy six];
166 src = fetchurl {
166 src = fetchurl {
167 url = "https://pypi.python.org/packages/e5/f0/78e766c3dcc61a4f3a6f71dd8c95168ae9c7a31722b5663d19c1fdf62cb6/PasteScript-2.0.2.tar.gz";
167 url = "https://pypi.python.org/packages/e5/f0/78e766c3dcc61a4f3a6f71dd8c95168ae9c7a31722b5663d19c1fdf62cb6/PasteScript-2.0.2.tar.gz";
168 md5 = "ccb3045445097192ca71a13b746c77b2";
168 md5 = "ccb3045445097192ca71a13b746c77b2";
169 };
169 };
170 meta = {
170 meta = {
171 license = [ pkgs.lib.licenses.mit ];
171 license = [ pkgs.lib.licenses.mit ];
172 };
172 };
173 };
173 };
174 Pygments = super.buildPythonPackage {
174 Pygments = super.buildPythonPackage {
175 name = "Pygments-2.2.0";
175 name = "Pygments-2.2.0";
176 buildInputs = with self; [];
176 buildInputs = with self; [];
177 doCheck = false;
177 doCheck = false;
178 propagatedBuildInputs = with self; [];
178 propagatedBuildInputs = with self; [];
179 src = fetchurl {
179 src = fetchurl {
180 url = "https://pypi.python.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz";
180 url = "https://pypi.python.org/packages/71/2a/2e4e77803a8bd6408a2903340ac498cb0a2181811af7c9ec92cb70b0308a/Pygments-2.2.0.tar.gz";
181 md5 = "13037baca42f16917cbd5ad2fab50844";
181 md5 = "13037baca42f16917cbd5ad2fab50844";
182 };
182 };
183 meta = {
183 meta = {
184 license = [ pkgs.lib.licenses.bsdOriginal ];
184 license = [ pkgs.lib.licenses.bsdOriginal ];
185 };
185 };
186 };
186 };
187 Routes = super.buildPythonPackage {
187 Routes = super.buildPythonPackage {
188 name = "Routes-2.4.1";
188 name = "Routes-2.4.1";
189 buildInputs = with self; [];
189 buildInputs = with self; [];
190 doCheck = false;
190 doCheck = false;
191 propagatedBuildInputs = with self; [six repoze.lru];
191 propagatedBuildInputs = with self; [six repoze.lru];
192 src = fetchurl {
192 src = fetchurl {
193 url = "https://pypi.python.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
193 url = "https://pypi.python.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
194 md5 = "c058dff6832941dec47e0d0052548ad8";
194 md5 = "c058dff6832941dec47e0d0052548ad8";
195 };
195 };
196 meta = {
196 meta = {
197 license = [ pkgs.lib.licenses.mit ];
197 license = [ pkgs.lib.licenses.mit ];
198 };
198 };
199 };
199 };
200 SQLAlchemy = super.buildPythonPackage {
200 SQLAlchemy = super.buildPythonPackage {
201 name = "SQLAlchemy-1.1.15";
201 name = "SQLAlchemy-1.1.15";
202 buildInputs = with self; [];
202 buildInputs = with self; [];
203 doCheck = false;
203 doCheck = false;
204 propagatedBuildInputs = with self; [];
204 propagatedBuildInputs = with self; [];
205 src = fetchurl {
205 src = fetchurl {
206 url = "https://pypi.python.org/packages/c2/f6/11fcc1ce19a7cb81b1c9377f4e27ce3813265611922e355905e57c44d164/SQLAlchemy-1.1.15.tar.gz";
206 url = "https://pypi.python.org/packages/c2/f6/11fcc1ce19a7cb81b1c9377f4e27ce3813265611922e355905e57c44d164/SQLAlchemy-1.1.15.tar.gz";
207 md5 = "077f9bd3339957f53068b5572a152674";
207 md5 = "077f9bd3339957f53068b5572a152674";
208 };
208 };
209 meta = {
209 meta = {
210 license = [ pkgs.lib.licenses.mit ];
210 license = [ pkgs.lib.licenses.mit ];
211 };
211 };
212 };
212 };
213 Tempita = super.buildPythonPackage {
213 Tempita = super.buildPythonPackage {
214 name = "Tempita-0.5.2";
214 name = "Tempita-0.5.2";
215 buildInputs = with self; [];
215 buildInputs = with self; [];
216 doCheck = false;
216 doCheck = false;
217 propagatedBuildInputs = with self; [];
217 propagatedBuildInputs = with self; [];
218 src = fetchurl {
218 src = fetchurl {
219 url = "https://pypi.python.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
219 url = "https://pypi.python.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
220 md5 = "4c2f17bb9d481821c41b6fbee904cea1";
220 md5 = "4c2f17bb9d481821c41b6fbee904cea1";
221 };
221 };
222 meta = {
222 meta = {
223 license = [ pkgs.lib.licenses.mit ];
223 license = [ pkgs.lib.licenses.mit ];
224 };
224 };
225 };
225 };
226 URLObject = super.buildPythonPackage {
226 URLObject = super.buildPythonPackage {
227 name = "URLObject-2.4.0";
227 name = "URLObject-2.4.0";
228 buildInputs = with self; [];
228 buildInputs = with self; [];
229 doCheck = false;
229 doCheck = false;
230 propagatedBuildInputs = with self; [];
230 propagatedBuildInputs = with self; [];
231 src = fetchurl {
231 src = fetchurl {
232 url = "https://pypi.python.org/packages/cb/b6/e25e58500f9caef85d664bec71ec67c116897bfebf8622c32cb75d1ca199/URLObject-2.4.0.tar.gz";
232 url = "https://pypi.python.org/packages/cb/b6/e25e58500f9caef85d664bec71ec67c116897bfebf8622c32cb75d1ca199/URLObject-2.4.0.tar.gz";
233 md5 = "2ed819738a9f0a3051f31dc9924e3065";
233 md5 = "2ed819738a9f0a3051f31dc9924e3065";
234 };
234 };
235 meta = {
235 meta = {
236 license = [ ];
236 license = [ ];
237 };
237 };
238 };
238 };
239 WebError = super.buildPythonPackage {
239 WebError = super.buildPythonPackage {
240 name = "WebError-0.10.3";
240 name = "WebError-0.10.3";
241 buildInputs = with self; [];
241 buildInputs = with self; [];
242 doCheck = false;
242 doCheck = false;
243 propagatedBuildInputs = with self; [WebOb Tempita Pygments Paste];
243 propagatedBuildInputs = with self; [WebOb Tempita Pygments Paste];
244 src = fetchurl {
244 src = fetchurl {
245 url = "https://pypi.python.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
245 url = "https://pypi.python.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
246 md5 = "84b9990b0baae6fd440b1e60cdd06f9a";
246 md5 = "84b9990b0baae6fd440b1e60cdd06f9a";
247 };
247 };
248 meta = {
248 meta = {
249 license = [ pkgs.lib.licenses.mit ];
249 license = [ pkgs.lib.licenses.mit ];
250 };
250 };
251 };
251 };
252 WebHelpers = super.buildPythonPackage {
252 WebHelpers = super.buildPythonPackage {
253 name = "WebHelpers-1.3";
253 name = "WebHelpers-1.3";
254 buildInputs = with self; [];
254 buildInputs = with self; [];
255 doCheck = false;
255 doCheck = false;
256 propagatedBuildInputs = with self; [MarkupSafe];
256 propagatedBuildInputs = with self; [MarkupSafe];
257 src = fetchurl {
257 src = fetchurl {
258 url = "https://pypi.python.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
258 url = "https://pypi.python.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
259 md5 = "32749ffadfc40fea51075a7def32588b";
259 md5 = "32749ffadfc40fea51075a7def32588b";
260 };
260 };
261 meta = {
261 meta = {
262 license = [ pkgs.lib.licenses.bsdOriginal ];
262 license = [ pkgs.lib.licenses.bsdOriginal ];
263 };
263 };
264 };
264 };
265 WebHelpers2 = super.buildPythonPackage {
265 WebHelpers2 = super.buildPythonPackage {
266 name = "WebHelpers2-2.0";
266 name = "WebHelpers2-2.0";
267 buildInputs = with self; [];
267 buildInputs = with self; [];
268 doCheck = false;
268 doCheck = false;
269 propagatedBuildInputs = with self; [MarkupSafe six];
269 propagatedBuildInputs = with self; [MarkupSafe six];
270 src = fetchurl {
270 src = fetchurl {
271 url = "https://pypi.python.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
271 url = "https://pypi.python.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
272 md5 = "0f6b68d70c12ee0aed48c00b24da13d3";
272 md5 = "0f6b68d70c12ee0aed48c00b24da13d3";
273 };
273 };
274 meta = {
274 meta = {
275 license = [ pkgs.lib.licenses.mit ];
275 license = [ pkgs.lib.licenses.mit ];
276 };
276 };
277 };
277 };
278 WebOb = super.buildPythonPackage {
278 WebOb = super.buildPythonPackage {
279 name = "WebOb-1.7.4";
279 name = "WebOb-1.7.4";
280 buildInputs = with self; [];
280 buildInputs = with self; [];
281 doCheck = false;
281 doCheck = false;
282 propagatedBuildInputs = with self; [];
282 propagatedBuildInputs = with self; [];
283 src = fetchurl {
283 src = fetchurl {
284 url = "https://pypi.python.org/packages/75/34/731e23f52371852dfe7490a61644826ba7fe70fd52a377aaca0f4956ba7f/WebOb-1.7.4.tar.gz";
284 url = "https://pypi.python.org/packages/75/34/731e23f52371852dfe7490a61644826ba7fe70fd52a377aaca0f4956ba7f/WebOb-1.7.4.tar.gz";
285 md5 = "397e46892d7f199b1a07eb20a2d3d9bd";
285 md5 = "397e46892d7f199b1a07eb20a2d3d9bd";
286 };
286 };
287 meta = {
287 meta = {
288 license = [ pkgs.lib.licenses.mit ];
288 license = [ pkgs.lib.licenses.mit ];
289 };
289 };
290 };
290 };
291 WebTest = super.buildPythonPackage {
291 WebTest = super.buildPythonPackage {
292 name = "WebTest-2.0.29";
292 name = "WebTest-2.0.29";
293 buildInputs = with self; [];
293 buildInputs = with self; [];
294 doCheck = false;
294 doCheck = false;
295 propagatedBuildInputs = with self; [six WebOb waitress beautifulsoup4];
295 propagatedBuildInputs = with self; [six WebOb waitress beautifulsoup4];
296 src = fetchurl {
296 src = fetchurl {
297 url = "https://pypi.python.org/packages/94/de/8f94738be649997da99c47b104aa3c3984ecec51a1d8153ed09638253d56/WebTest-2.0.29.tar.gz";
297 url = "https://pypi.python.org/packages/94/de/8f94738be649997da99c47b104aa3c3984ecec51a1d8153ed09638253d56/WebTest-2.0.29.tar.gz";
298 md5 = "30b4cf0d340b9a5335fac4389e6f84fc";
298 md5 = "30b4cf0d340b9a5335fac4389e6f84fc";
299 };
299 };
300 meta = {
300 meta = {
301 license = [ pkgs.lib.licenses.mit ];
301 license = [ pkgs.lib.licenses.mit ];
302 };
302 };
303 };
303 };
304 Whoosh = super.buildPythonPackage {
304 Whoosh = super.buildPythonPackage {
305 name = "Whoosh-2.7.4";
305 name = "Whoosh-2.7.4";
306 buildInputs = with self; [];
306 buildInputs = with self; [];
307 doCheck = false;
307 doCheck = false;
308 propagatedBuildInputs = with self; [];
308 propagatedBuildInputs = with self; [];
309 src = fetchurl {
309 src = fetchurl {
310 url = "https://pypi.python.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
310 url = "https://pypi.python.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
311 md5 = "c2710105f20b3e29936bd2357383c325";
311 md5 = "c2710105f20b3e29936bd2357383c325";
312 };
312 };
313 meta = {
313 meta = {
314 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
314 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
315 };
315 };
316 };
316 };
317 alembic = super.buildPythonPackage {
317 alembic = super.buildPythonPackage {
318 name = "alembic-0.9.8";
318 name = "alembic-0.9.8";
319 buildInputs = with self; [];
319 buildInputs = with self; [];
320 doCheck = false;
320 doCheck = false;
321 propagatedBuildInputs = with self; [SQLAlchemy Mako python-editor python-dateutil];
321 propagatedBuildInputs = with self; [SQLAlchemy Mako python-editor python-dateutil];
322 src = fetchurl {
322 src = fetchurl {
323 url = "https://pypi.python.org/packages/a1/95/2252783859df9ec76b9a25d968c2827ed75a43ba34c6e8d38f87a5c0fb26/alembic-0.9.8.tar.gz";
323 url = "https://pypi.python.org/packages/a1/95/2252783859df9ec76b9a25d968c2827ed75a43ba34c6e8d38f87a5c0fb26/alembic-0.9.8.tar.gz";
324 md5 = "5cfef58641c9a94d4a5d547e951a7dda";
324 md5 = "5cfef58641c9a94d4a5d547e951a7dda";
325 };
325 };
326 meta = {
326 meta = {
327 license = [ pkgs.lib.licenses.mit ];
327 license = [ pkgs.lib.licenses.mit ];
328 };
328 };
329 };
329 };
330 amqp = super.buildPythonPackage {
330 amqp = super.buildPythonPackage {
331 name = "amqp-2.2.2";
331 name = "amqp-2.2.2";
332 buildInputs = with self; [];
332 buildInputs = with self; [];
333 doCheck = false;
333 doCheck = false;
334 propagatedBuildInputs = with self; [vine];
334 propagatedBuildInputs = with self; [vine];
335 src = fetchurl {
335 src = fetchurl {
336 url = "https://pypi.python.org/packages/e0/70/9ab9ccd8247fb7d2adb717e9f6a0ed358c9e1ab2c349048b0352f9e80ee2/amqp-2.2.2.tar.gz";
336 url = "https://pypi.python.org/packages/e0/70/9ab9ccd8247fb7d2adb717e9f6a0ed358c9e1ab2c349048b0352f9e80ee2/amqp-2.2.2.tar.gz";
337 md5 = "0971a3fd2d635ded45c349cfc17106bd";
337 md5 = "0971a3fd2d635ded45c349cfc17106bd";
338 };
338 };
339 meta = {
339 meta = {
340 license = [ pkgs.lib.licenses.bsdOriginal ];
340 license = [ pkgs.lib.licenses.bsdOriginal ];
341 };
341 };
342 };
342 };
343 appenlight-client = super.buildPythonPackage {
343 appenlight-client = super.buildPythonPackage {
344 name = "appenlight-client-0.6.25";
344 name = "appenlight-client-0.6.25";
345 buildInputs = with self; [];
345 buildInputs = with self; [];
346 doCheck = false;
346 doCheck = false;
347 propagatedBuildInputs = with self; [WebOb requests six];
347 propagatedBuildInputs = with self; [WebOb requests six];
348 src = fetchurl {
348 src = fetchurl {
349 url = "https://pypi.python.org/packages/fa/44/2911ef85ea4f4fe65058fd22959d8dad598fab6a3c84e5bcb569d15c8783/appenlight_client-0.6.25.tar.gz";
349 url = "https://pypi.python.org/packages/fa/44/2911ef85ea4f4fe65058fd22959d8dad598fab6a3c84e5bcb569d15c8783/appenlight_client-0.6.25.tar.gz";
350 md5 = "76dd2f9d42659fae8f290982078dc880";
350 md5 = "76dd2f9d42659fae8f290982078dc880";
351 };
351 };
352 meta = {
352 meta = {
353 license = [ pkgs.lib.licenses.bsdOriginal ];
353 license = [ pkgs.lib.licenses.bsdOriginal ];
354 };
354 };
355 };
355 };
356 authomatic = super.buildPythonPackage {
356 authomatic = super.buildPythonPackage {
357 name = "authomatic-0.1.0.post1";
357 name = "authomatic-0.1.0.post1";
358 buildInputs = with self; [];
358 buildInputs = with self; [];
359 doCheck = false;
359 doCheck = false;
360 propagatedBuildInputs = with self; [];
360 propagatedBuildInputs = with self; [];
361 src = fetchurl {
361 src = fetchurl {
362 url = "https://pypi.python.org/packages/08/1a/8a930461e604c2d5a7a871e1ac59fa82ccf994c32e807230c8d2fb07815a/Authomatic-0.1.0.post1.tar.gz";
362 url = "https://pypi.python.org/packages/08/1a/8a930461e604c2d5a7a871e1ac59fa82ccf994c32e807230c8d2fb07815a/Authomatic-0.1.0.post1.tar.gz";
363 md5 = "be3f3ce08747d776aae6d6cc8dcb49a9";
363 md5 = "be3f3ce08747d776aae6d6cc8dcb49a9";
364 };
364 };
365 meta = {
365 meta = {
366 license = [ pkgs.lib.licenses.mit ];
366 license = [ pkgs.lib.licenses.mit ];
367 };
367 };
368 };
368 };
369 backports.shutil-get-terminal-size = super.buildPythonPackage {
369 backports.shutil-get-terminal-size = super.buildPythonPackage {
370 name = "backports.shutil-get-terminal-size-1.0.0";
370 name = "backports.shutil-get-terminal-size-1.0.0";
371 buildInputs = with self; [];
371 buildInputs = with self; [];
372 doCheck = false;
372 doCheck = false;
373 propagatedBuildInputs = with self; [];
373 propagatedBuildInputs = with self; [];
374 src = fetchurl {
374 src = fetchurl {
375 url = "https://pypi.python.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
375 url = "https://pypi.python.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
376 md5 = "03267762480bd86b50580dc19dff3c66";
376 md5 = "03267762480bd86b50580dc19dff3c66";
377 };
377 };
378 meta = {
378 meta = {
379 license = [ pkgs.lib.licenses.mit ];
379 license = [ pkgs.lib.licenses.mit ];
380 };
380 };
381 };
381 };
382 beautifulsoup4 = super.buildPythonPackage {
382 beautifulsoup4 = super.buildPythonPackage {
383 name = "beautifulsoup4-4.6.0";
383 name = "beautifulsoup4-4.6.0";
384 buildInputs = with self; [];
384 buildInputs = with self; [];
385 doCheck = false;
385 doCheck = false;
386 propagatedBuildInputs = with self; [];
386 propagatedBuildInputs = with self; [];
387 src = fetchurl {
387 src = fetchurl {
388 url = "https://pypi.python.org/packages/fa/8d/1d14391fdaed5abada4e0f63543fef49b8331a34ca60c88bd521bcf7f782/beautifulsoup4-4.6.0.tar.gz";
388 url = "https://pypi.python.org/packages/fa/8d/1d14391fdaed5abada4e0f63543fef49b8331a34ca60c88bd521bcf7f782/beautifulsoup4-4.6.0.tar.gz";
389 md5 = "c17714d0f91a23b708a592cb3c697728";
389 md5 = "c17714d0f91a23b708a592cb3c697728";
390 };
390 };
391 meta = {
391 meta = {
392 license = [ pkgs.lib.licenses.mit ];
392 license = [ pkgs.lib.licenses.mit ];
393 };
393 };
394 };
394 };
395 billiard = super.buildPythonPackage {
395 billiard = super.buildPythonPackage {
396 name = "billiard-3.5.0.3";
396 name = "billiard-3.5.0.3";
397 buildInputs = with self; [];
397 buildInputs = with self; [];
398 doCheck = false;
398 doCheck = false;
399 propagatedBuildInputs = with self; [];
399 propagatedBuildInputs = with self; [];
400 src = fetchurl {
400 src = fetchurl {
401 url = "https://pypi.python.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
401 url = "https://pypi.python.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
402 md5 = "113ba481e48400adbf6fbbf59a2f8554";
402 md5 = "113ba481e48400adbf6fbbf59a2f8554";
403 };
403 };
404 meta = {
404 meta = {
405 license = [ pkgs.lib.licenses.bsdOriginal ];
405 license = [ pkgs.lib.licenses.bsdOriginal ];
406 };
406 };
407 };
407 };
408 bleach = super.buildPythonPackage {
408 bleach = super.buildPythonPackage {
409 name = "bleach-2.1.2";
409 name = "bleach-2.1.2";
410 buildInputs = with self; [];
410 buildInputs = with self; [];
411 doCheck = false;
411 doCheck = false;
412 propagatedBuildInputs = with self; [six html5lib];
412 propagatedBuildInputs = with self; [six html5lib];
413 src = fetchurl {
413 src = fetchurl {
414 url = "https://pypi.python.org/packages/b3/5f/0da670d30d3ffbc57cc97fa82947f81bbe3eab8d441e2d42e661f215baf2/bleach-2.1.2.tar.gz";
414 url = "https://pypi.python.org/packages/b3/5f/0da670d30d3ffbc57cc97fa82947f81bbe3eab8d441e2d42e661f215baf2/bleach-2.1.2.tar.gz";
415 md5 = "d0b14ae43a437ee0c650e04c6063eedd";
415 md5 = "d0b14ae43a437ee0c650e04c6063eedd";
416 };
416 };
417 meta = {
417 meta = {
418 license = [ pkgs.lib.licenses.asl20 ];
418 license = [ pkgs.lib.licenses.asl20 ];
419 };
419 };
420 };
420 };
421 bottle = super.buildPythonPackage {
421 bottle = super.buildPythonPackage {
422 name = "bottle-0.12.13";
422 name = "bottle-0.12.13";
423 buildInputs = with self; [];
423 buildInputs = with self; [];
424 doCheck = false;
424 doCheck = false;
425 propagatedBuildInputs = with self; [];
425 propagatedBuildInputs = with self; [];
426 src = fetchurl {
426 src = fetchurl {
427 url = "https://pypi.python.org/packages/bd/99/04dc59ced52a8261ee0f965a8968717a255ea84a36013e527944dbf3468c/bottle-0.12.13.tar.gz";
427 url = "https://pypi.python.org/packages/bd/99/04dc59ced52a8261ee0f965a8968717a255ea84a36013e527944dbf3468c/bottle-0.12.13.tar.gz";
428 md5 = "d2fe1b48c1d49217e78bf326b1cad437";
428 md5 = "d2fe1b48c1d49217e78bf326b1cad437";
429 };
429 };
430 meta = {
430 meta = {
431 license = [ pkgs.lib.licenses.mit ];
431 license = [ pkgs.lib.licenses.mit ];
432 };
432 };
433 };
433 };
434 bumpversion = super.buildPythonPackage {
434 bumpversion = super.buildPythonPackage {
435 name = "bumpversion-0.5.3";
435 name = "bumpversion-0.5.3";
436 buildInputs = with self; [];
436 buildInputs = with self; [];
437 doCheck = false;
437 doCheck = false;
438 propagatedBuildInputs = with self; [];
438 propagatedBuildInputs = with self; [];
439 src = fetchurl {
439 src = fetchurl {
440 url = "https://pypi.python.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
440 url = "https://pypi.python.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
441 md5 = "c66a3492eafcf5ad4b024be9fca29820";
441 md5 = "c66a3492eafcf5ad4b024be9fca29820";
442 };
442 };
443 meta = {
443 meta = {
444 license = [ pkgs.lib.licenses.mit ];
444 license = [ pkgs.lib.licenses.mit ];
445 };
445 };
446 };
446 };
447 celery = super.buildPythonPackage {
447 celery = super.buildPythonPackage {
448 name = "celery-4.1.0";
448 name = "celery-4.1.0";
449 buildInputs = with self; [];
449 buildInputs = with self; [];
450 doCheck = false;
450 doCheck = false;
451 propagatedBuildInputs = with self; [pytz billiard kombu];
451 propagatedBuildInputs = with self; [pytz billiard kombu];
452 src = fetchurl {
452 src = fetchurl {
453 url = "https://pypi.python.org/packages/07/65/88a2a45fc80f487872c93121a701a53bbbc3d3d832016876fac84fc8d46a/celery-4.1.0.tar.gz";
453 url = "https://pypi.python.org/packages/07/65/88a2a45fc80f487872c93121a701a53bbbc3d3d832016876fac84fc8d46a/celery-4.1.0.tar.gz";
454 md5 = "db91e1d26936381127f01e150fe3054a";
454 md5 = "db91e1d26936381127f01e150fe3054a";
455 };
455 };
456 meta = {
456 meta = {
457 license = [ pkgs.lib.licenses.bsdOriginal ];
457 license = [ pkgs.lib.licenses.bsdOriginal ];
458 };
458 };
459 };
459 };
460 channelstream = super.buildPythonPackage {
460 channelstream = super.buildPythonPackage {
461 name = "channelstream-0.5.2";
461 name = "channelstream-0.5.2";
462 buildInputs = with self; [];
462 buildInputs = with self; [];
463 doCheck = false;
463 doCheck = false;
464 propagatedBuildInputs = with self; [gevent ws4py pyramid pyramid-jinja2 itsdangerous requests six];
464 propagatedBuildInputs = with self; [gevent ws4py pyramid pyramid-jinja2 itsdangerous requests six];
465 src = fetchurl {
465 src = fetchurl {
466 url = "https://pypi.python.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
466 url = "https://pypi.python.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
467 md5 = "1c5eb2a8a405be6f1073da94da6d81d3";
467 md5 = "1c5eb2a8a405be6f1073da94da6d81d3";
468 };
468 };
469 meta = {
469 meta = {
470 license = [ pkgs.lib.licenses.bsdOriginal ];
470 license = [ pkgs.lib.licenses.bsdOriginal ];
471 };
471 };
472 };
472 };
473 click = super.buildPythonPackage {
473 click = super.buildPythonPackage {
474 name = "click-6.6";
474 name = "click-6.6";
475 buildInputs = with self; [];
475 buildInputs = with self; [];
476 doCheck = false;
476 doCheck = false;
477 propagatedBuildInputs = with self; [];
477 propagatedBuildInputs = with self; [];
478 src = fetchurl {
478 src = fetchurl {
479 url = "https://pypi.python.org/packages/7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/click-6.6.tar.gz";
479 url = "https://pypi.python.org/packages/7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/click-6.6.tar.gz";
480 md5 = "d0b09582123605220ad6977175f3e51d";
480 md5 = "d0b09582123605220ad6977175f3e51d";
481 };
481 };
482 meta = {
482 meta = {
483 license = [ pkgs.lib.licenses.bsdOriginal ];
483 license = [ pkgs.lib.licenses.bsdOriginal ];
484 };
484 };
485 };
485 };
486 colander = super.buildPythonPackage {
486 colander = super.buildPythonPackage {
487 name = "colander-1.4";
487 name = "colander-1.4";
488 buildInputs = with self; [];
488 buildInputs = with self; [];
489 doCheck = false;
489 doCheck = false;
490 propagatedBuildInputs = with self; [translationstring iso8601];
490 propagatedBuildInputs = with self; [translationstring iso8601];
491 src = fetchurl {
491 src = fetchurl {
492 url = "https://pypi.python.org/packages/cc/e2/c4e716ac4a426d8ad4dfe306c34f0018a22275d2420815784005bf771c84/colander-1.4.tar.gz";
492 url = "https://pypi.python.org/packages/cc/e2/c4e716ac4a426d8ad4dfe306c34f0018a22275d2420815784005bf771c84/colander-1.4.tar.gz";
493 md5 = "cbb8e403c2ba05aeaa419d51fdb93736";
493 md5 = "cbb8e403c2ba05aeaa419d51fdb93736";
494 };
494 };
495 meta = {
495 meta = {
496 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
496 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
497 };
497 };
498 };
498 };
499 configobj = super.buildPythonPackage {
499 configobj = super.buildPythonPackage {
500 name = "configobj-5.0.6";
500 name = "configobj-5.0.6";
501 buildInputs = with self; [];
501 buildInputs = with self; [];
502 doCheck = false;
502 doCheck = false;
503 propagatedBuildInputs = with self; [six];
503 propagatedBuildInputs = with self; [six];
504 src = fetchurl {
504 src = fetchurl {
505 url = "https://pypi.python.org/packages/64/61/079eb60459c44929e684fa7d9e2fdca403f67d64dd9dbac27296be2e0fab/configobj-5.0.6.tar.gz";
505 url = "https://pypi.python.org/packages/64/61/079eb60459c44929e684fa7d9e2fdca403f67d64dd9dbac27296be2e0fab/configobj-5.0.6.tar.gz";
506 md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
506 md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
507 };
507 };
508 meta = {
508 meta = {
509 license = [ pkgs.lib.licenses.bsdOriginal ];
509 license = [ pkgs.lib.licenses.bsdOriginal ];
510 };
510 };
511 };
511 };
512 configparser = super.buildPythonPackage {
512 configparser = super.buildPythonPackage {
513 name = "configparser-3.5.0";
513 name = "configparser-3.5.0";
514 buildInputs = with self; [];
514 buildInputs = with self; [];
515 doCheck = false;
515 doCheck = false;
516 propagatedBuildInputs = with self; [];
516 propagatedBuildInputs = with self; [];
517 src = fetchurl {
517 src = fetchurl {
518 url = "https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz";
518 url = "https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz";
519 md5 = "cfdd915a5b7a6c09917a64a573140538";
519 md5 = "cfdd915a5b7a6c09917a64a573140538";
520 };
520 };
521 meta = {
521 meta = {
522 license = [ pkgs.lib.licenses.mit ];
522 license = [ pkgs.lib.licenses.mit ];
523 };
523 };
524 };
524 };
525 cov-core = super.buildPythonPackage {
525 cov-core = super.buildPythonPackage {
526 name = "cov-core-1.15.0";
526 name = "cov-core-1.15.0";
527 buildInputs = with self; [];
527 buildInputs = with self; [];
528 doCheck = false;
528 doCheck = false;
529 propagatedBuildInputs = with self; [coverage];
529 propagatedBuildInputs = with self; [coverage];
530 src = fetchurl {
530 src = fetchurl {
531 url = "https://pypi.python.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
531 url = "https://pypi.python.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
532 md5 = "f519d4cb4c4e52856afb14af52919fe6";
532 md5 = "f519d4cb4c4e52856afb14af52919fe6";
533 };
533 };
534 meta = {
534 meta = {
535 license = [ pkgs.lib.licenses.mit ];
535 license = [ pkgs.lib.licenses.mit ];
536 };
536 };
537 };
537 };
538 coverage = super.buildPythonPackage {
538 coverage = super.buildPythonPackage {
539 name = "coverage-3.7.1";
539 name = "coverage-3.7.1";
540 buildInputs = with self; [];
540 buildInputs = with self; [];
541 doCheck = false;
541 doCheck = false;
542 propagatedBuildInputs = with self; [];
542 propagatedBuildInputs = with self; [];
543 src = fetchurl {
543 src = fetchurl {
544 url = "https://pypi.python.org/packages/09/4f/89b06c7fdc09687bca507dc411c342556ef9c5a3b26756137a4878ff19bf/coverage-3.7.1.tar.gz";
544 url = "https://pypi.python.org/packages/09/4f/89b06c7fdc09687bca507dc411c342556ef9c5a3b26756137a4878ff19bf/coverage-3.7.1.tar.gz";
545 md5 = "c47b36ceb17eaff3ecfab3bcd347d0df";
545 md5 = "c47b36ceb17eaff3ecfab3bcd347d0df";
546 };
546 };
547 meta = {
547 meta = {
548 license = [ pkgs.lib.licenses.bsdOriginal ];
548 license = [ pkgs.lib.licenses.bsdOriginal ];
549 };
549 };
550 };
550 };
551 cssselect = super.buildPythonPackage {
551 cssselect = super.buildPythonPackage {
552 name = "cssselect-1.0.1";
552 name = "cssselect-1.0.1";
553 buildInputs = with self; [];
553 buildInputs = with self; [];
554 doCheck = false;
554 doCheck = false;
555 propagatedBuildInputs = with self; [];
555 propagatedBuildInputs = with self; [];
556 src = fetchurl {
556 src = fetchurl {
557 url = "https://pypi.python.org/packages/77/ff/9c865275cd19290feba56344eba570e719efb7ca5b34d67ed12b22ebbb0d/cssselect-1.0.1.tar.gz";
557 url = "https://pypi.python.org/packages/77/ff/9c865275cd19290feba56344eba570e719efb7ca5b34d67ed12b22ebbb0d/cssselect-1.0.1.tar.gz";
558 md5 = "3fa03bf82a9f0b1223c0f1eb1369e139";
558 md5 = "3fa03bf82a9f0b1223c0f1eb1369e139";
559 };
559 };
560 meta = {
560 meta = {
561 license = [ pkgs.lib.licenses.bsdOriginal ];
561 license = [ pkgs.lib.licenses.bsdOriginal ];
562 };
562 };
563 };
563 };
564 decorator = super.buildPythonPackage {
564 decorator = super.buildPythonPackage {
565 name = "decorator-4.1.2";
565 name = "decorator-4.1.2";
566 buildInputs = with self; [];
566 buildInputs = with self; [];
567 doCheck = false;
567 doCheck = false;
568 propagatedBuildInputs = with self; [];
568 propagatedBuildInputs = with self; [];
569 src = fetchurl {
569 src = fetchurl {
570 url = "https://pypi.python.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
570 url = "https://pypi.python.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
571 md5 = "a0f7f4fe00ae2dde93494d90c192cf8c";
571 md5 = "a0f7f4fe00ae2dde93494d90c192cf8c";
572 };
572 };
573 meta = {
573 meta = {
574 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
574 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
575 };
575 };
576 };
576 };
577 deform = super.buildPythonPackage {
577 deform = super.buildPythonPackage {
578 name = "deform-2.0.4";
578 name = "deform-2.0.4";
579 buildInputs = with self; [];
579 buildInputs = with self; [];
580 doCheck = false;
580 doCheck = false;
581 propagatedBuildInputs = with self; [Chameleon colander iso8601 peppercorn translationstring zope.deprecation];
581 propagatedBuildInputs = with self; [Chameleon colander iso8601 peppercorn translationstring zope.deprecation];
582 src = fetchurl {
582 src = fetchurl {
583 url = "https://pypi.python.org/packages/66/3b/eefcb07abcab7a97f6665aa2d0cf1af741d9d6e78a2e4657fd2b89f89880/deform-2.0.4.tar.gz";
583 url = "https://pypi.python.org/packages/66/3b/eefcb07abcab7a97f6665aa2d0cf1af741d9d6e78a2e4657fd2b89f89880/deform-2.0.4.tar.gz";
584 md5 = "34756e42cf50dd4b4430809116c4ec0a";
584 md5 = "34756e42cf50dd4b4430809116c4ec0a";
585 };
585 };
586 meta = {
586 meta = {
587 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
587 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
588 };
588 };
589 };
589 };
590 docutils = super.buildPythonPackage {
590 docutils = super.buildPythonPackage {
591 name = "docutils-0.14";
591 name = "docutils-0.14";
592 buildInputs = with self; [];
592 buildInputs = with self; [];
593 doCheck = false;
593 doCheck = false;
594 propagatedBuildInputs = with self; [];
594 propagatedBuildInputs = with self; [];
595 src = fetchurl {
595 src = fetchurl {
596 url = "https://pypi.python.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
596 url = "https://pypi.python.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
597 md5 = "c53768d63db3873b7d452833553469de";
597 md5 = "c53768d63db3873b7d452833553469de";
598 };
598 };
599 meta = {
599 meta = {
600 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 ];
600 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 ];
601 };
601 };
602 };
602 };
603 dogpile.cache = super.buildPythonPackage {
603 dogpile.cache = super.buildPythonPackage {
604 name = "dogpile.cache-0.6.4";
604 name = "dogpile.cache-0.6.4";
605 buildInputs = with self; [];
605 buildInputs = with self; [];
606 doCheck = false;
606 doCheck = false;
607 propagatedBuildInputs = with self; [];
607 propagatedBuildInputs = with self; [];
608 src = fetchurl {
608 src = fetchurl {
609 url = "https://pypi.python.org/packages/b6/3d/35c05ca01c070bb70d9d422f2c4858ecb021b05b21af438fec5ccd7b945c/dogpile.cache-0.6.4.tar.gz";
609 url = "https://pypi.python.org/packages/b6/3d/35c05ca01c070bb70d9d422f2c4858ecb021b05b21af438fec5ccd7b945c/dogpile.cache-0.6.4.tar.gz";
610 md5 = "66e0a6cae6c08cb1ea25f89d0eadfeb0";
610 md5 = "66e0a6cae6c08cb1ea25f89d0eadfeb0";
611 };
611 };
612 meta = {
612 meta = {
613 license = [ pkgs.lib.licenses.bsdOriginal ];
613 license = [ pkgs.lib.licenses.bsdOriginal ];
614 };
614 };
615 };
615 };
616 dogpile.core = super.buildPythonPackage {
616 dogpile.core = super.buildPythonPackage {
617 name = "dogpile.core-0.4.1";
617 name = "dogpile.core-0.4.1";
618 buildInputs = with self; [];
618 buildInputs = with self; [];
619 doCheck = false;
619 doCheck = false;
620 propagatedBuildInputs = with self; [];
620 propagatedBuildInputs = with self; [];
621 src = fetchurl {
621 src = fetchurl {
622 url = "https://pypi.python.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
622 url = "https://pypi.python.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
623 md5 = "01cb19f52bba3e95c9b560f39341f045";
623 md5 = "01cb19f52bba3e95c9b560f39341f045";
624 };
624 };
625 meta = {
625 meta = {
626 license = [ pkgs.lib.licenses.bsdOriginal ];
626 license = [ pkgs.lib.licenses.bsdOriginal ];
627 };
627 };
628 };
628 };
629 ecdsa = super.buildPythonPackage {
629 ecdsa = super.buildPythonPackage {
630 name = "ecdsa-0.13";
630 name = "ecdsa-0.13";
631 buildInputs = with self; [];
631 buildInputs = with self; [];
632 doCheck = false;
632 doCheck = false;
633 propagatedBuildInputs = with self; [];
633 propagatedBuildInputs = with self; [];
634 src = fetchurl {
634 src = fetchurl {
635 url = "https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz";
635 url = "https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz";
636 md5 = "1f60eda9cb5c46722856db41a3ae6670";
636 md5 = "1f60eda9cb5c46722856db41a3ae6670";
637 };
637 };
638 meta = {
638 meta = {
639 license = [ pkgs.lib.licenses.mit ];
639 license = [ pkgs.lib.licenses.mit ];
640 };
640 };
641 };
641 };
642 elasticsearch = super.buildPythonPackage {
642 elasticsearch = super.buildPythonPackage {
643 name = "elasticsearch-2.3.0";
643 name = "elasticsearch-2.3.0";
644 buildInputs = with self; [];
644 buildInputs = with self; [];
645 doCheck = false;
645 doCheck = false;
646 propagatedBuildInputs = with self; [urllib3];
646 propagatedBuildInputs = with self; [urllib3];
647 src = fetchurl {
647 src = fetchurl {
648 url = "https://pypi.python.org/packages/10/35/5fd52c5f0b0ee405ed4b5195e8bce44c5e041787680dc7b94b8071cac600/elasticsearch-2.3.0.tar.gz";
648 url = "https://pypi.python.org/packages/10/35/5fd52c5f0b0ee405ed4b5195e8bce44c5e041787680dc7b94b8071cac600/elasticsearch-2.3.0.tar.gz";
649 md5 = "2550f3b51629cf1ef9636608af92c340";
649 md5 = "2550f3b51629cf1ef9636608af92c340";
650 };
650 };
651 meta = {
651 meta = {
652 license = [ pkgs.lib.licenses.asl20 ];
652 license = [ pkgs.lib.licenses.asl20 ];
653 };
653 };
654 };
654 };
655 elasticsearch-dsl = super.buildPythonPackage {
655 elasticsearch-dsl = super.buildPythonPackage {
656 name = "elasticsearch-dsl-2.2.0";
656 name = "elasticsearch-dsl-2.2.0";
657 buildInputs = with self; [];
657 buildInputs = with self; [];
658 doCheck = false;
658 doCheck = false;
659 propagatedBuildInputs = with self; [six python-dateutil elasticsearch];
659 propagatedBuildInputs = with self; [six python-dateutil elasticsearch];
660 src = fetchurl {
660 src = fetchurl {
661 url = "https://pypi.python.org/packages/66/2f/52a086968788e58461641570f45c3207a52d46ebbe9b77dc22b6a8ffda66/elasticsearch-dsl-2.2.0.tar.gz";
661 url = "https://pypi.python.org/packages/66/2f/52a086968788e58461641570f45c3207a52d46ebbe9b77dc22b6a8ffda66/elasticsearch-dsl-2.2.0.tar.gz";
662 md5 = "fa6bd3c87ea3caa8f0f051bc37c53221";
662 md5 = "fa6bd3c87ea3caa8f0f051bc37c53221";
663 };
663 };
664 meta = {
664 meta = {
665 license = [ pkgs.lib.licenses.asl20 ];
665 license = [ pkgs.lib.licenses.asl20 ];
666 };
666 };
667 };
667 };
668 entrypoints = super.buildPythonPackage {
668 entrypoints = super.buildPythonPackage {
669 name = "entrypoints-0.2.2";
669 name = "entrypoints-0.2.2";
670 buildInputs = with self; [];
670 buildInputs = with self; [];
671 doCheck = false;
671 doCheck = false;
672 propagatedBuildInputs = with self; [configparser];
672 propagatedBuildInputs = with self; [configparser];
673 src = fetchurl {
673 src = fetchurl {
674 url = "https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313";
674 url = "https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313";
675 md5 = "7db37771aea9ac9fefe093e5d6987313";
675 md5 = "7db37771aea9ac9fefe093e5d6987313";
676 };
676 };
677 meta = {
677 meta = {
678 license = [ pkgs.lib.licenses.mit ];
678 license = [ pkgs.lib.licenses.mit ];
679 };
679 };
680 };
680 };
681 enum34 = super.buildPythonPackage {
681 enum34 = super.buildPythonPackage {
682 name = "enum34-1.1.6";
682 name = "enum34-1.1.6";
683 buildInputs = with self; [];
683 buildInputs = with self; [];
684 doCheck = false;
684 doCheck = false;
685 propagatedBuildInputs = with self; [];
685 propagatedBuildInputs = with self; [];
686 src = fetchurl {
686 src = fetchurl {
687 url = "https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
687 url = "https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
688 md5 = "5f13a0841a61f7fc295c514490d120d0";
688 md5 = "5f13a0841a61f7fc295c514490d120d0";
689 };
689 };
690 meta = {
690 meta = {
691 license = [ pkgs.lib.licenses.bsdOriginal ];
691 license = [ pkgs.lib.licenses.bsdOriginal ];
692 };
692 };
693 };
693 };
694 funcsigs = super.buildPythonPackage {
694 funcsigs = super.buildPythonPackage {
695 name = "funcsigs-1.0.2";
695 name = "funcsigs-1.0.2";
696 buildInputs = with self; [];
696 buildInputs = with self; [];
697 doCheck = false;
697 doCheck = false;
698 propagatedBuildInputs = with self; [];
698 propagatedBuildInputs = with self; [];
699 src = fetchurl {
699 src = fetchurl {
700 url = "https://pypi.python.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
700 url = "https://pypi.python.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
701 md5 = "7e583285b1fb8a76305d6d68f4ccc14e";
701 md5 = "7e583285b1fb8a76305d6d68f4ccc14e";
702 };
702 };
703 meta = {
703 meta = {
704 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
704 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
705 };
705 };
706 };
706 };
707 functools32 = super.buildPythonPackage {
707 functools32 = super.buildPythonPackage {
708 name = "functools32-3.2.3.post2";
708 name = "functools32-3.2.3.post2";
709 buildInputs = with self; [];
709 buildInputs = with self; [];
710 doCheck = false;
710 doCheck = false;
711 propagatedBuildInputs = with self; [];
711 propagatedBuildInputs = with self; [];
712 src = fetchurl {
712 src = fetchurl {
713 url = "https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
713 url = "https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
714 md5 = "09f24ffd9af9f6cd0f63cb9f4e23d4b2";
714 md5 = "09f24ffd9af9f6cd0f63cb9f4e23d4b2";
715 };
715 };
716 meta = {
716 meta = {
717 license = [ pkgs.lib.licenses.psfl ];
717 license = [ pkgs.lib.licenses.psfl ];
718 };
718 };
719 };
719 };
720 future = super.buildPythonPackage {
720 future = super.buildPythonPackage {
721 name = "future-0.14.3";
721 name = "future-0.14.3";
722 buildInputs = with self; [];
722 buildInputs = with self; [];
723 doCheck = false;
723 doCheck = false;
724 propagatedBuildInputs = with self; [];
724 propagatedBuildInputs = with self; [];
725 src = fetchurl {
725 src = fetchurl {
726 url = "https://pypi.python.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
726 url = "https://pypi.python.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
727 md5 = "e94079b0bd1fc054929e8769fc0f6083";
727 md5 = "e94079b0bd1fc054929e8769fc0f6083";
728 };
728 };
729 meta = {
729 meta = {
730 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
730 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
731 };
731 };
732 };
732 };
733 futures = super.buildPythonPackage {
733 futures = super.buildPythonPackage {
734 name = "futures-3.0.2";
734 name = "futures-3.0.2";
735 buildInputs = with self; [];
735 buildInputs = with self; [];
736 doCheck = false;
736 doCheck = false;
737 propagatedBuildInputs = with self; [];
737 propagatedBuildInputs = with self; [];
738 src = fetchurl {
738 src = fetchurl {
739 url = "https://pypi.python.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
739 url = "https://pypi.python.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
740 md5 = "42aaf1e4de48d6e871d77dc1f9d96d5a";
740 md5 = "42aaf1e4de48d6e871d77dc1f9d96d5a";
741 };
741 };
742 meta = {
742 meta = {
743 license = [ pkgs.lib.licenses.bsdOriginal ];
743 license = [ pkgs.lib.licenses.bsdOriginal ];
744 };
744 };
745 };
745 };
746 gevent = super.buildPythonPackage {
746 gevent = super.buildPythonPackage {
747 name = "gevent-1.2.2";
747 name = "gevent-1.2.2";
748 buildInputs = with self; [];
748 buildInputs = with self; [];
749 doCheck = false;
749 doCheck = false;
750 propagatedBuildInputs = with self; [greenlet];
750 propagatedBuildInputs = with self; [greenlet];
751 src = fetchurl {
751 src = fetchurl {
752 url = "https://pypi.python.org/packages/1b/92/b111f76e54d2be11375b47b213b56687214f258fd9dae703546d30b837be/gevent-1.2.2.tar.gz";
752 url = "https://pypi.python.org/packages/1b/92/b111f76e54d2be11375b47b213b56687214f258fd9dae703546d30b837be/gevent-1.2.2.tar.gz";
753 md5 = "7f0baf355384fe5ff2ecf66853422554";
753 md5 = "7f0baf355384fe5ff2ecf66853422554";
754 };
754 };
755 meta = {
755 meta = {
756 license = [ pkgs.lib.licenses.mit ];
756 license = [ pkgs.lib.licenses.mit ];
757 };
757 };
758 };
758 };
759 gnureadline = super.buildPythonPackage {
759 gnureadline = super.buildPythonPackage {
760 name = "gnureadline-6.3.8";
760 name = "gnureadline-6.3.8";
761 buildInputs = with self; [];
761 buildInputs = with self; [];
762 doCheck = false;
762 doCheck = false;
763 propagatedBuildInputs = with self; [];
763 propagatedBuildInputs = with self; [];
764 src = fetchurl {
764 src = fetchurl {
765 url = "https://pypi.python.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
765 url = "https://pypi.python.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
766 md5 = "ba341f4b907250bd1f47dbc06290604f";
766 md5 = "ba341f4b907250bd1f47dbc06290604f";
767 };
767 };
768 meta = {
768 meta = {
769 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
769 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
770 };
770 };
771 };
771 };
772 gprof2dot = super.buildPythonPackage {
772 gprof2dot = super.buildPythonPackage {
773 name = "gprof2dot-2017.9.19";
773 name = "gprof2dot-2017.9.19";
774 buildInputs = with self; [];
774 buildInputs = with self; [];
775 doCheck = false;
775 doCheck = false;
776 propagatedBuildInputs = with self; [];
776 propagatedBuildInputs = with self; [];
777 src = fetchurl {
777 src = fetchurl {
778 url = "https://pypi.python.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
778 url = "https://pypi.python.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
779 md5 = "cda2d552bb0d0b9f16e6824a9aabd225";
779 md5 = "cda2d552bb0d0b9f16e6824a9aabd225";
780 };
780 };
781 meta = {
781 meta = {
782 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
782 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
783 };
783 };
784 };
784 };
785 graphviz = super.buildPythonPackage {
785 graphviz = super.buildPythonPackage {
786 name = "graphviz-0.8.2";
786 name = "graphviz-0.8.2";
787 buildInputs = with self; [];
787 buildInputs = with self; [];
788 doCheck = false;
788 doCheck = false;
789 propagatedBuildInputs = with self; [];
789 propagatedBuildInputs = with self; [];
790 src = fetchurl {
790 src = fetchurl {
791 url = "https://pypi.python.org/packages/fa/d1/63b62dee9e55368f60b5ea445e6afb361bb47e692fc27553f3672e16efb8/graphviz-0.8.2.zip";
791 url = "https://pypi.python.org/packages/fa/d1/63b62dee9e55368f60b5ea445e6afb361bb47e692fc27553f3672e16efb8/graphviz-0.8.2.zip";
792 md5 = "50866e780f43e1cb0d073c70424fcaff";
792 md5 = "50866e780f43e1cb0d073c70424fcaff";
793 };
793 };
794 meta = {
794 meta = {
795 license = [ pkgs.lib.licenses.mit ];
795 license = [ pkgs.lib.licenses.mit ];
796 };
796 };
797 };
797 };
798 greenlet = super.buildPythonPackage {
798 greenlet = super.buildPythonPackage {
799 name = "greenlet-0.4.13";
799 name = "greenlet-0.4.13";
800 buildInputs = with self; [];
800 buildInputs = with self; [];
801 doCheck = false;
801 doCheck = false;
802 propagatedBuildInputs = with self; [];
802 propagatedBuildInputs = with self; [];
803 src = fetchurl {
803 src = fetchurl {
804 url = "https://pypi.python.org/packages/13/de/ba92335e9e76040ca7274224942282a80d54f85e342a5e33c5277c7f87eb/greenlet-0.4.13.tar.gz";
804 url = "https://pypi.python.org/packages/13/de/ba92335e9e76040ca7274224942282a80d54f85e342a5e33c5277c7f87eb/greenlet-0.4.13.tar.gz";
805 md5 = "6e0b9dd5385f81d478451ec8ed1d62b3";
805 md5 = "6e0b9dd5385f81d478451ec8ed1d62b3";
806 };
806 };
807 meta = {
807 meta = {
808 license = [ pkgs.lib.licenses.mit ];
808 license = [ pkgs.lib.licenses.mit ];
809 };
809 };
810 };
810 };
811 gunicorn = super.buildPythonPackage {
811 gunicorn = super.buildPythonPackage {
812 name = "gunicorn-19.7.1";
812 name = "gunicorn-19.7.1";
813 buildInputs = with self; [];
813 buildInputs = with self; [];
814 doCheck = false;
814 doCheck = false;
815 propagatedBuildInputs = with self; [];
815 propagatedBuildInputs = with self; [];
816 src = fetchurl {
816 src = fetchurl {
817 url = "https://pypi.python.org/packages/30/3a/10bb213cede0cc4d13ac2263316c872a64bf4c819000c8ccd801f1d5f822/gunicorn-19.7.1.tar.gz";
817 url = "https://pypi.python.org/packages/30/3a/10bb213cede0cc4d13ac2263316c872a64bf4c819000c8ccd801f1d5f822/gunicorn-19.7.1.tar.gz";
818 md5 = "174d3c3cd670a5be0404d84c484e590c";
818 md5 = "174d3c3cd670a5be0404d84c484e590c";
819 };
819 };
820 meta = {
820 meta = {
821 license = [ pkgs.lib.licenses.mit ];
821 license = [ pkgs.lib.licenses.mit ];
822 };
822 };
823 };
823 };
824 html5lib = super.buildPythonPackage {
824 html5lib = super.buildPythonPackage {
825 name = "html5lib-1.0.1";
825 name = "html5lib-1.0.1";
826 buildInputs = with self; [];
826 buildInputs = with self; [];
827 doCheck = false;
827 doCheck = false;
828 propagatedBuildInputs = with self; [six webencodings];
828 propagatedBuildInputs = with self; [six webencodings];
829 src = fetchurl {
829 src = fetchurl {
830 url = "https://pypi.python.org/packages/85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f/html5lib-1.0.1.tar.gz";
830 url = "https://pypi.python.org/packages/85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f/html5lib-1.0.1.tar.gz";
831 md5 = "942a0688d6bdf20d087c9805c40182ad";
831 md5 = "942a0688d6bdf20d087c9805c40182ad";
832 };
832 };
833 meta = {
833 meta = {
834 license = [ pkgs.lib.licenses.mit ];
834 license = [ pkgs.lib.licenses.mit ];
835 };
835 };
836 };
836 };
837 hupper = super.buildPythonPackage {
837 hupper = super.buildPythonPackage {
838 name = "hupper-1.0";
838 name = "hupper-1.0";
839 buildInputs = with self; [];
839 buildInputs = with self; [];
840 doCheck = false;
840 doCheck = false;
841 propagatedBuildInputs = with self; [];
841 propagatedBuildInputs = with self; [];
842 src = fetchurl {
842 src = fetchurl {
843 url = "https://pypi.python.org/packages/2e/07/df892c564dc09bb3cf6f6deb976c26adf9117db75ba218cb4353dbc9d826/hupper-1.0.tar.gz";
843 url = "https://pypi.python.org/packages/2e/07/df892c564dc09bb3cf6f6deb976c26adf9117db75ba218cb4353dbc9d826/hupper-1.0.tar.gz";
844 md5 = "26e77da7d5ac5858f59af050d1a6eb5a";
844 md5 = "26e77da7d5ac5858f59af050d1a6eb5a";
845 };
845 };
846 meta = {
846 meta = {
847 license = [ pkgs.lib.licenses.mit ];
847 license = [ pkgs.lib.licenses.mit ];
848 };
848 };
849 };
849 };
850 infrae.cache = super.buildPythonPackage {
850 infrae.cache = super.buildPythonPackage {
851 name = "infrae.cache-1.0.1";
851 name = "infrae.cache-1.0.1";
852 buildInputs = with self; [];
852 buildInputs = with self; [];
853 doCheck = false;
853 doCheck = false;
854 propagatedBuildInputs = with self; [Beaker repoze.lru];
854 propagatedBuildInputs = with self; [Beaker repoze.lru];
855 src = fetchurl {
855 src = fetchurl {
856 url = "https://pypi.python.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
856 url = "https://pypi.python.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
857 md5 = "b09076a766747e6ed2a755cc62088e32";
857 md5 = "b09076a766747e6ed2a755cc62088e32";
858 };
858 };
859 meta = {
859 meta = {
860 license = [ pkgs.lib.licenses.zpt21 ];
860 license = [ pkgs.lib.licenses.zpt21 ];
861 };
861 };
862 };
862 };
863 invoke = super.buildPythonPackage {
863 invoke = super.buildPythonPackage {
864 name = "invoke-0.13.0";
864 name = "invoke-0.13.0";
865 buildInputs = with self; [];
865 buildInputs = with self; [];
866 doCheck = false;
866 doCheck = false;
867 propagatedBuildInputs = with self; [];
867 propagatedBuildInputs = with self; [];
868 src = fetchurl {
868 src = fetchurl {
869 url = "https://pypi.python.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
869 url = "https://pypi.python.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
870 md5 = "c0d1ed4bfb34eaab551662d8cfee6540";
870 md5 = "c0d1ed4bfb34eaab551662d8cfee6540";
871 };
871 };
872 meta = {
872 meta = {
873 license = [ pkgs.lib.licenses.bsdOriginal ];
873 license = [ pkgs.lib.licenses.bsdOriginal ];
874 };
874 };
875 };
875 };
876 ipaddress = super.buildPythonPackage {
876 ipaddress = super.buildPythonPackage {
877 name = "ipaddress-1.0.19";
877 name = "ipaddress-1.0.19";
878 buildInputs = with self; [];
878 buildInputs = with self; [];
879 doCheck = false;
879 doCheck = false;
880 propagatedBuildInputs = with self; [];
880 propagatedBuildInputs = with self; [];
881 src = fetchurl {
881 src = fetchurl {
882 url = "https://pypi.python.org/packages/f0/ba/860a4a3e283456d6b7e2ab39ce5cf11a3490ee1a363652ac50abf9f0f5df/ipaddress-1.0.19.tar.gz";
882 url = "https://pypi.python.org/packages/f0/ba/860a4a3e283456d6b7e2ab39ce5cf11a3490ee1a363652ac50abf9f0f5df/ipaddress-1.0.19.tar.gz";
883 md5 = "d0687efaf93a32476d81e90ba0609c57";
883 md5 = "d0687efaf93a32476d81e90ba0609c57";
884 };
884 };
885 meta = {
885 meta = {
886 license = [ pkgs.lib.licenses.psfl ];
886 license = [ pkgs.lib.licenses.psfl ];
887 };
887 };
888 };
888 };
889 ipdb = super.buildPythonPackage {
889 ipdb = super.buildPythonPackage {
890 name = "ipdb-0.10.3";
890 name = "ipdb-0.10.3";
891 buildInputs = with self; [];
891 buildInputs = with self; [];
892 doCheck = false;
892 doCheck = false;
893 propagatedBuildInputs = with self; [setuptools ipython];
893 propagatedBuildInputs = with self; [setuptools ipython];
894 src = fetchurl {
894 src = fetchurl {
895 url = "https://pypi.python.org/packages/ad/cc/0e7298e1fbf2efd52667c9354a12aa69fb6f796ce230cca03525051718ef/ipdb-0.10.3.tar.gz";
895 url = "https://pypi.python.org/packages/ad/cc/0e7298e1fbf2efd52667c9354a12aa69fb6f796ce230cca03525051718ef/ipdb-0.10.3.tar.gz";
896 md5 = "def1f6ac075d54bdee07e6501263d4fa";
896 md5 = "def1f6ac075d54bdee07e6501263d4fa";
897 };
897 };
898 meta = {
898 meta = {
899 license = [ pkgs.lib.licenses.bsdOriginal ];
899 license = [ pkgs.lib.licenses.bsdOriginal ];
900 };
900 };
901 };
901 };
902 ipython = super.buildPythonPackage {
902 ipython = super.buildPythonPackage {
903 name = "ipython-5.1.0";
903 name = "ipython-5.1.0";
904 buildInputs = with self; [];
904 buildInputs = with self; [];
905 doCheck = false;
905 doCheck = false;
906 propagatedBuildInputs = with self; [setuptools decorator pickleshare simplegeneric traitlets prompt-toolkit Pygments pexpect backports.shutil-get-terminal-size pathlib2 pexpect];
906 propagatedBuildInputs = with self; [setuptools decorator pickleshare simplegeneric traitlets prompt-toolkit Pygments pexpect backports.shutil-get-terminal-size pathlib2 pexpect];
907 src = fetchurl {
907 src = fetchurl {
908 url = "https://pypi.python.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
908 url = "https://pypi.python.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
909 md5 = "47c8122420f65b58784cb4b9b4af35e3";
909 md5 = "47c8122420f65b58784cb4b9b4af35e3";
910 };
910 };
911 meta = {
911 meta = {
912 license = [ pkgs.lib.licenses.bsdOriginal ];
912 license = [ pkgs.lib.licenses.bsdOriginal ];
913 };
913 };
914 };
914 };
915 ipython-genutils = super.buildPythonPackage {
915 ipython-genutils = super.buildPythonPackage {
916 name = "ipython-genutils-0.2.0";
916 name = "ipython-genutils-0.2.0";
917 buildInputs = with self; [];
917 buildInputs = with self; [];
918 doCheck = false;
918 doCheck = false;
919 propagatedBuildInputs = with self; [];
919 propagatedBuildInputs = with self; [];
920 src = fetchurl {
920 src = fetchurl {
921 url = "https://pypi.python.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
921 url = "https://pypi.python.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
922 md5 = "5a4f9781f78466da0ea1a648f3e1f79f";
922 md5 = "5a4f9781f78466da0ea1a648f3e1f79f";
923 };
923 };
924 meta = {
924 meta = {
925 license = [ pkgs.lib.licenses.bsdOriginal ];
925 license = [ pkgs.lib.licenses.bsdOriginal ];
926 };
926 };
927 };
927 };
928 iso8601 = super.buildPythonPackage {
928 iso8601 = super.buildPythonPackage {
929 name = "iso8601-0.1.12";
929 name = "iso8601-0.1.12";
930 buildInputs = with self; [];
930 buildInputs = with self; [];
931 doCheck = false;
931 doCheck = false;
932 propagatedBuildInputs = with self; [];
932 propagatedBuildInputs = with self; [];
933 src = fetchurl {
933 src = fetchurl {
934 url = "https://pypi.python.org/packages/45/13/3db24895497345fb44c4248c08b16da34a9eb02643cea2754b21b5ed08b0/iso8601-0.1.12.tar.gz";
934 url = "https://pypi.python.org/packages/45/13/3db24895497345fb44c4248c08b16da34a9eb02643cea2754b21b5ed08b0/iso8601-0.1.12.tar.gz";
935 md5 = "4de940f691c5ea759fb254384c8ddcf6";
935 md5 = "4de940f691c5ea759fb254384c8ddcf6";
936 };
936 };
937 meta = {
937 meta = {
938 license = [ pkgs.lib.licenses.mit ];
938 license = [ pkgs.lib.licenses.mit ];
939 };
939 };
940 };
940 };
941 itsdangerous = super.buildPythonPackage {
941 itsdangerous = super.buildPythonPackage {
942 name = "itsdangerous-0.24";
942 name = "itsdangerous-0.24";
943 buildInputs = with self; [];
943 buildInputs = with self; [];
944 doCheck = false;
944 doCheck = false;
945 propagatedBuildInputs = with self; [];
945 propagatedBuildInputs = with self; [];
946 src = fetchurl {
946 src = fetchurl {
947 url = "https://pypi.python.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
947 url = "https://pypi.python.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
948 md5 = "a3d55aa79369aef5345c036a8a26307f";
948 md5 = "a3d55aa79369aef5345c036a8a26307f";
949 };
949 };
950 meta = {
950 meta = {
951 license = [ pkgs.lib.licenses.bsdOriginal ];
951 license = [ pkgs.lib.licenses.bsdOriginal ];
952 };
952 };
953 };
953 };
954 jsonschema = super.buildPythonPackage {
954 jsonschema = super.buildPythonPackage {
955 name = "jsonschema-2.6.0";
955 name = "jsonschema-2.6.0";
956 buildInputs = with self; [];
956 buildInputs = with self; [];
957 doCheck = false;
957 doCheck = false;
958 propagatedBuildInputs = with self; [functools32];
958 propagatedBuildInputs = with self; [functools32];
959 src = fetchurl {
959 src = fetchurl {
960 url = "https://pypi.python.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
960 url = "https://pypi.python.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
961 md5 = "50c6b69a373a8b55ff1e0ec6e78f13f4";
961 md5 = "50c6b69a373a8b55ff1e0ec6e78f13f4";
962 };
962 };
963 meta = {
963 meta = {
964 license = [ pkgs.lib.licenses.mit ];
964 license = [ pkgs.lib.licenses.mit ];
965 };
965 };
966 };
966 };
967 jupyter-client = super.buildPythonPackage {
967 jupyter-client = super.buildPythonPackage {
968 name = "jupyter-client-5.0.0";
968 name = "jupyter-client-5.0.0";
969 buildInputs = with self; [];
969 buildInputs = with self; [];
970 doCheck = false;
970 doCheck = false;
971 propagatedBuildInputs = with self; [traitlets jupyter-core pyzmq python-dateutil];
971 propagatedBuildInputs = with self; [traitlets jupyter-core pyzmq python-dateutil];
972 src = fetchurl {
972 src = fetchurl {
973 url = "https://pypi.python.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
973 url = "https://pypi.python.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
974 md5 = "1acd331b5c9fb4d79dae9939e79f2426";
974 md5 = "1acd331b5c9fb4d79dae9939e79f2426";
975 };
975 };
976 meta = {
976 meta = {
977 license = [ pkgs.lib.licenses.bsdOriginal ];
977 license = [ pkgs.lib.licenses.bsdOriginal ];
978 };
978 };
979 };
979 };
980 jupyter-core = super.buildPythonPackage {
980 jupyter-core = super.buildPythonPackage {
981 name = "jupyter-core-4.4.0";
981 name = "jupyter-core-4.4.0";
982 buildInputs = with self; [];
982 buildInputs = with self; [];
983 doCheck = false;
983 doCheck = false;
984 propagatedBuildInputs = with self; [traitlets];
984 propagatedBuildInputs = with self; [traitlets];
985 src = fetchurl {
985 src = fetchurl {
986 url = "https://pypi.python.org/packages/b6/2d/2804f4de3a95583f65e5dcb4d7c8c7183124882323758996e867f47e72af/jupyter_core-4.4.0.tar.gz";
986 url = "https://pypi.python.org/packages/b6/2d/2804f4de3a95583f65e5dcb4d7c8c7183124882323758996e867f47e72af/jupyter_core-4.4.0.tar.gz";
987 md5 = "7829fc07884ed98459e170f217e2a5ba";
987 md5 = "7829fc07884ed98459e170f217e2a5ba";
988 };
988 };
989 meta = {
989 meta = {
990 license = [ pkgs.lib.licenses.bsdOriginal ];
990 license = [ pkgs.lib.licenses.bsdOriginal ];
991 };
991 };
992 };
992 };
993 kombu = super.buildPythonPackage {
993 kombu = super.buildPythonPackage {
994 name = "kombu-4.1.0";
994 name = "kombu-4.1.0";
995 buildInputs = with self; [];
995 buildInputs = with self; [];
996 doCheck = false;
996 doCheck = false;
997 propagatedBuildInputs = with self; [amqp];
997 propagatedBuildInputs = with self; [amqp];
998 src = fetchurl {
998 src = fetchurl {
999 url = "https://pypi.python.org/packages/03/5e/1a47d1e543d4943d65330af4e4406049f443878818fb65bfdc651bb93a96/kombu-4.1.0.tar.gz";
999 url = "https://pypi.python.org/packages/03/5e/1a47d1e543d4943d65330af4e4406049f443878818fb65bfdc651bb93a96/kombu-4.1.0.tar.gz";
1000 md5 = "2fb2be9fec0e6514231bba23a3779439";
1000 md5 = "2fb2be9fec0e6514231bba23a3779439";
1001 };
1001 };
1002 meta = {
1002 meta = {
1003 license = [ pkgs.lib.licenses.bsdOriginal ];
1003 license = [ pkgs.lib.licenses.bsdOriginal ];
1004 };
1004 };
1005 };
1005 };
1006 lxml = super.buildPythonPackage {
1006 lxml = super.buildPythonPackage {
1007 name = "lxml-3.7.3";
1007 name = "lxml-3.7.3";
1008 buildInputs = with self; [];
1008 buildInputs = with self; [];
1009 doCheck = false;
1009 doCheck = false;
1010 propagatedBuildInputs = with self; [];
1010 propagatedBuildInputs = with self; [];
1011 src = fetchurl {
1011 src = fetchurl {
1012 url = "https://pypi.python.org/packages/39/e8/a8e0b1fa65dd021d48fe21464f71783655f39a41f218293c1c590d54eb82/lxml-3.7.3.tar.gz";
1012 url = "https://pypi.python.org/packages/39/e8/a8e0b1fa65dd021d48fe21464f71783655f39a41f218293c1c590d54eb82/lxml-3.7.3.tar.gz";
1013 md5 = "075692ce442e69bbd604d44e21c02753";
1013 md5 = "075692ce442e69bbd604d44e21c02753";
1014 };
1014 };
1015 meta = {
1015 meta = {
1016 license = [ pkgs.lib.licenses.bsdOriginal ];
1016 license = [ pkgs.lib.licenses.bsdOriginal ];
1017 };
1017 };
1018 };
1018 };
1019 meld3 = super.buildPythonPackage {
1019 meld3 = super.buildPythonPackage {
1020 name = "meld3-1.0.2";
1020 name = "meld3-1.0.2";
1021 buildInputs = with self; [];
1021 buildInputs = with self; [];
1022 doCheck = false;
1022 doCheck = false;
1023 propagatedBuildInputs = with self; [];
1023 propagatedBuildInputs = with self; [];
1024 src = fetchurl {
1024 src = fetchurl {
1025 url = "https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
1025 url = "https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
1026 md5 = "3ccc78cd79cffd63a751ad7684c02c91";
1026 md5 = "3ccc78cd79cffd63a751ad7684c02c91";
1027 };
1027 };
1028 meta = {
1028 meta = {
1029 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1029 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1030 };
1030 };
1031 };
1031 };
1032 mistune = super.buildPythonPackage {
1032 mistune = super.buildPythonPackage {
1033 name = "mistune-0.8.3";
1033 name = "mistune-0.8.3";
1034 buildInputs = with self; [];
1034 buildInputs = with self; [];
1035 doCheck = false;
1035 doCheck = false;
1036 propagatedBuildInputs = with self; [];
1036 propagatedBuildInputs = with self; [];
1037 src = fetchurl {
1037 src = fetchurl {
1038 url = "https://pypi.python.org/packages/9d/be/e06d4346cc608a01dec6bf770d7d0303a4fd6db588b318ced18f5f257145/mistune-0.8.3.tar.gz";
1038 url = "https://pypi.python.org/packages/9d/be/e06d4346cc608a01dec6bf770d7d0303a4fd6db588b318ced18f5f257145/mistune-0.8.3.tar.gz";
1039 md5 = "a5e4043e93fb8f9082e27f29eeb5e054";
1039 md5 = "a5e4043e93fb8f9082e27f29eeb5e054";
1040 };
1040 };
1041 meta = {
1041 meta = {
1042 license = [ pkgs.lib.licenses.bsdOriginal ];
1042 license = [ pkgs.lib.licenses.bsdOriginal ];
1043 };
1043 };
1044 };
1044 };
1045 mock = super.buildPythonPackage {
1045 mock = super.buildPythonPackage {
1046 name = "mock-1.0.1";
1046 name = "mock-1.0.1";
1047 buildInputs = with self; [];
1047 buildInputs = with self; [];
1048 doCheck = false;
1048 doCheck = false;
1049 propagatedBuildInputs = with self; [];
1049 propagatedBuildInputs = with self; [];
1050 src = fetchurl {
1050 src = fetchurl {
1051 url = "https://pypi.python.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
1051 url = "https://pypi.python.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
1052 md5 = "c3971991738caa55ec7c356bbc154ee2";
1052 md5 = "c3971991738caa55ec7c356bbc154ee2";
1053 };
1053 };
1054 meta = {
1054 meta = {
1055 license = [ pkgs.lib.licenses.bsdOriginal ];
1055 license = [ pkgs.lib.licenses.bsdOriginal ];
1056 };
1056 };
1057 };
1057 };
1058 msgpack-python = super.buildPythonPackage {
1058 msgpack-python = super.buildPythonPackage {
1059 name = "msgpack-python-0.4.8";
1059 name = "msgpack-python-0.4.8";
1060 buildInputs = with self; [];
1060 buildInputs = with self; [];
1061 doCheck = false;
1061 doCheck = false;
1062 propagatedBuildInputs = with self; [];
1062 propagatedBuildInputs = with self; [];
1063 src = fetchurl {
1063 src = fetchurl {
1064 url = "https://pypi.python.org/packages/21/27/8a1d82041c7a2a51fcc73675875a5f9ea06c2663e02fcfeb708be1d081a0/msgpack-python-0.4.8.tar.gz";
1064 url = "https://pypi.python.org/packages/21/27/8a1d82041c7a2a51fcc73675875a5f9ea06c2663e02fcfeb708be1d081a0/msgpack-python-0.4.8.tar.gz";
1065 md5 = "dcd854fb41ee7584ebbf35e049e6be98";
1065 md5 = "dcd854fb41ee7584ebbf35e049e6be98";
1066 };
1066 };
1067 meta = {
1067 meta = {
1068 license = [ pkgs.lib.licenses.asl20 ];
1068 license = [ pkgs.lib.licenses.asl20 ];
1069 };
1069 };
1070 };
1070 };
1071 nbconvert = super.buildPythonPackage {
1071 nbconvert = super.buildPythonPackage {
1072 name = "nbconvert-5.3.1";
1072 name = "nbconvert-5.3.1";
1073 buildInputs = with self; [];
1073 buildInputs = with self; [];
1074 doCheck = false;
1074 doCheck = false;
1075 propagatedBuildInputs = with self; [mistune Jinja2 Pygments traitlets jupyter-core nbformat entrypoints bleach pandocfilters testpath];
1075 propagatedBuildInputs = with self; [mistune Jinja2 Pygments traitlets jupyter-core nbformat entrypoints bleach pandocfilters testpath];
1076 src = fetchurl {
1076 src = fetchurl {
1077 url = "https://pypi.python.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
1077 url = "https://pypi.python.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
1078 md5 = "c128d0d93d02f70a85429a383dae96d2";
1078 md5 = "c128d0d93d02f70a85429a383dae96d2";
1079 };
1079 };
1080 meta = {
1080 meta = {
1081 license = [ pkgs.lib.licenses.bsdOriginal ];
1081 license = [ pkgs.lib.licenses.bsdOriginal ];
1082 };
1082 };
1083 };
1083 };
1084 nbformat = super.buildPythonPackage {
1084 nbformat = super.buildPythonPackage {
1085 name = "nbformat-4.4.0";
1085 name = "nbformat-4.4.0";
1086 buildInputs = with self; [];
1086 buildInputs = with self; [];
1087 doCheck = false;
1087 doCheck = false;
1088 propagatedBuildInputs = with self; [ipython-genutils traitlets jsonschema jupyter-core];
1088 propagatedBuildInputs = with self; [ipython-genutils traitlets jsonschema jupyter-core];
1089 src = fetchurl {
1089 src = fetchurl {
1090 url = "https://pypi.python.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
1090 url = "https://pypi.python.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
1091 md5 = "2d5f873138d9fbc2a3f9eaaebca3b8a1";
1091 md5 = "2d5f873138d9fbc2a3f9eaaebca3b8a1";
1092 };
1092 };
1093 meta = {
1093 meta = {
1094 license = [ pkgs.lib.licenses.bsdOriginal ];
1094 license = [ pkgs.lib.licenses.bsdOriginal ];
1095 };
1095 };
1096 };
1096 };
1097 objgraph = super.buildPythonPackage {
1097 objgraph = super.buildPythonPackage {
1098 name = "objgraph-3.1.1";
1098 name = "objgraph-3.1.1";
1099 buildInputs = with self; [];
1099 buildInputs = with self; [];
1100 doCheck = false;
1100 doCheck = false;
1101 propagatedBuildInputs = with self; [graphviz];
1101 propagatedBuildInputs = with self; [graphviz];
1102 src = fetchurl {
1102 src = fetchurl {
1103 url = "https://pypi.python.org/packages/be/58/9ca81a20cc837054e94866df1475d899caaa94f3732b8a46006858b015f7/objgraph-3.1.1.tar.gz";
1103 url = "https://pypi.python.org/packages/be/58/9ca81a20cc837054e94866df1475d899caaa94f3732b8a46006858b015f7/objgraph-3.1.1.tar.gz";
1104 md5 = "253af9944763377877c3678d8aaebb8b";
1104 md5 = "253af9944763377877c3678d8aaebb8b";
1105 };
1105 };
1106 meta = {
1106 meta = {
1107 license = [ pkgs.lib.licenses.mit ];
1107 license = [ pkgs.lib.licenses.mit ];
1108 };
1108 };
1109 };
1109 };
1110 packaging = super.buildPythonPackage {
1110 packaging = super.buildPythonPackage {
1111 name = "packaging-15.2";
1111 name = "packaging-15.2";
1112 buildInputs = with self; [];
1112 buildInputs = with self; [];
1113 doCheck = false;
1113 doCheck = false;
1114 propagatedBuildInputs = with self; [];
1114 propagatedBuildInputs = with self; [];
1115 src = fetchurl {
1115 src = fetchurl {
1116 url = "https://pypi.python.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
1116 url = "https://pypi.python.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
1117 md5 = "c16093476f6ced42128bf610e5db3784";
1117 md5 = "c16093476f6ced42128bf610e5db3784";
1118 };
1118 };
1119 meta = {
1119 meta = {
1120 license = [ pkgs.lib.licenses.asl20 ];
1120 license = [ pkgs.lib.licenses.asl20 ];
1121 };
1121 };
1122 };
1122 };
1123 pandocfilters = super.buildPythonPackage {
1123 pandocfilters = super.buildPythonPackage {
1124 name = "pandocfilters-1.4.2";
1124 name = "pandocfilters-1.4.2";
1125 buildInputs = with self; [];
1125 buildInputs = with self; [];
1126 doCheck = false;
1126 doCheck = false;
1127 propagatedBuildInputs = with self; [];
1127 propagatedBuildInputs = with self; [];
1128 src = fetchurl {
1128 src = fetchurl {
1129 url = "https://pypi.python.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
1129 url = "https://pypi.python.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
1130 md5 = "dc391791ef54c7de1572d7b46b63361f";
1130 md5 = "dc391791ef54c7de1572d7b46b63361f";
1131 };
1131 };
1132 meta = {
1132 meta = {
1133 license = [ pkgs.lib.licenses.bsdOriginal ];
1133 license = [ pkgs.lib.licenses.bsdOriginal ];
1134 };
1134 };
1135 };
1135 };
1136 pathlib2 = super.buildPythonPackage {
1136 pathlib2 = super.buildPythonPackage {
1137 name = "pathlib2-2.3.0";
1137 name = "pathlib2-2.3.0";
1138 buildInputs = with self; [];
1138 buildInputs = with self; [];
1139 doCheck = false;
1139 doCheck = false;
1140 propagatedBuildInputs = with self; [six scandir];
1140 propagatedBuildInputs = with self; [six scandir];
1141 src = fetchurl {
1141 src = fetchurl {
1142 url = "https://pypi.python.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz";
1142 url = "https://pypi.python.org/packages/a1/14/df0deb867c2733f7d857523c10942b3d6612a1b222502fdffa9439943dfb/pathlib2-2.3.0.tar.gz";
1143 md5 = "89c90409d11fd5947966b6a30a47d18c";
1143 md5 = "89c90409d11fd5947966b6a30a47d18c";
1144 };
1144 };
1145 meta = {
1145 meta = {
1146 license = [ pkgs.lib.licenses.mit ];
1146 license = [ pkgs.lib.licenses.mit ];
1147 };
1147 };
1148 };
1148 };
1149 peppercorn = super.buildPythonPackage {
1149 peppercorn = super.buildPythonPackage {
1150 name = "peppercorn-0.5";
1150 name = "peppercorn-0.5";
1151 buildInputs = with self; [];
1151 buildInputs = with self; [];
1152 doCheck = false;
1152 doCheck = false;
1153 propagatedBuildInputs = with self; [];
1153 propagatedBuildInputs = with self; [];
1154 src = fetchurl {
1154 src = fetchurl {
1155 url = "https://pypi.python.org/packages/45/ec/a62ec317d1324a01567c5221b420742f094f05ee48097e5157d32be3755c/peppercorn-0.5.tar.gz";
1155 url = "https://pypi.python.org/packages/45/ec/a62ec317d1324a01567c5221b420742f094f05ee48097e5157d32be3755c/peppercorn-0.5.tar.gz";
1156 md5 = "f08efbca5790019ab45d76b7244abd40";
1156 md5 = "f08efbca5790019ab45d76b7244abd40";
1157 };
1157 };
1158 meta = {
1158 meta = {
1159 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1159 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1160 };
1160 };
1161 };
1161 };
1162 pexpect = super.buildPythonPackage {
1162 pexpect = super.buildPythonPackage {
1163 name = "pexpect-4.4.0";
1163 name = "pexpect-4.4.0";
1164 buildInputs = with self; [];
1164 buildInputs = with self; [];
1165 doCheck = false;
1165 doCheck = false;
1166 propagatedBuildInputs = with self; [ptyprocess];
1166 propagatedBuildInputs = with self; [ptyprocess];
1167 src = fetchurl {
1167 src = fetchurl {
1168 url = "https://pypi.python.org/packages/fa/c3/60c0cbf96f242d0b47a82e9ca634dcd6dcb043832cf05e17540812e1c707/pexpect-4.4.0.tar.gz";
1168 url = "https://pypi.python.org/packages/fa/c3/60c0cbf96f242d0b47a82e9ca634dcd6dcb043832cf05e17540812e1c707/pexpect-4.4.0.tar.gz";
1169 md5 = "e9b07f0765df8245ac72201d757baaef";
1169 md5 = "e9b07f0765df8245ac72201d757baaef";
1170 };
1170 };
1171 meta = {
1171 meta = {
1172 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1172 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1173 };
1173 };
1174 };
1174 };
1175 pickleshare = super.buildPythonPackage {
1175 pickleshare = super.buildPythonPackage {
1176 name = "pickleshare-0.7.4";
1176 name = "pickleshare-0.7.4";
1177 buildInputs = with self; [];
1177 buildInputs = with self; [];
1178 doCheck = false;
1178 doCheck = false;
1179 propagatedBuildInputs = with self; [pathlib2];
1179 propagatedBuildInputs = with self; [pathlib2];
1180 src = fetchurl {
1180 src = fetchurl {
1181 url = "https://pypi.python.org/packages/69/fe/dd137d84daa0fd13a709e448138e310d9ea93070620c9db5454e234af525/pickleshare-0.7.4.tar.gz";
1181 url = "https://pypi.python.org/packages/69/fe/dd137d84daa0fd13a709e448138e310d9ea93070620c9db5454e234af525/pickleshare-0.7.4.tar.gz";
1182 md5 = "6a9e5dd8dfc023031f6b7b3f824cab12";
1182 md5 = "6a9e5dd8dfc023031f6b7b3f824cab12";
1183 };
1183 };
1184 meta = {
1184 meta = {
1185 license = [ pkgs.lib.licenses.mit ];
1185 license = [ pkgs.lib.licenses.mit ];
1186 };
1186 };
1187 };
1187 };
1188 plaster = super.buildPythonPackage {
1188 plaster = super.buildPythonPackage {
1189 name = "plaster-1.0";
1189 name = "plaster-1.0";
1190 buildInputs = with self; [];
1190 buildInputs = with self; [];
1191 doCheck = false;
1191 doCheck = false;
1192 propagatedBuildInputs = with self; [setuptools];
1192 propagatedBuildInputs = with self; [setuptools];
1193 src = fetchurl {
1193 src = fetchurl {
1194 url = "https://pypi.python.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1194 url = "https://pypi.python.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1195 md5 = "80e6beb4760c16fea31754babcc0576e";
1195 md5 = "80e6beb4760c16fea31754babcc0576e";
1196 };
1196 };
1197 meta = {
1197 meta = {
1198 license = [ pkgs.lib.licenses.mit ];
1198 license = [ pkgs.lib.licenses.mit ];
1199 };
1199 };
1200 };
1200 };
1201 plaster-pastedeploy = super.buildPythonPackage {
1201 plaster-pastedeploy = super.buildPythonPackage {
1202 name = "plaster-pastedeploy-0.4.2";
1202 name = "plaster-pastedeploy-0.4.2";
1203 buildInputs = with self; [];
1203 buildInputs = with self; [];
1204 doCheck = false;
1204 doCheck = false;
1205 propagatedBuildInputs = with self; [PasteDeploy plaster];
1205 propagatedBuildInputs = with self; [PasteDeploy plaster];
1206 src = fetchurl {
1206 src = fetchurl {
1207 url = "https://pypi.python.org/packages/2c/62/0daf9c0be958e785023e583e51baac15863699e956bfb3d448898d80edd8/plaster_pastedeploy-0.4.2.tar.gz";
1207 url = "https://pypi.python.org/packages/2c/62/0daf9c0be958e785023e583e51baac15863699e956bfb3d448898d80edd8/plaster_pastedeploy-0.4.2.tar.gz";
1208 md5 = "58fd7852002909378e818c9d5b71e90a";
1208 md5 = "58fd7852002909378e818c9d5b71e90a";
1209 };
1209 };
1210 meta = {
1210 meta = {
1211 license = [ pkgs.lib.licenses.mit ];
1211 license = [ pkgs.lib.licenses.mit ];
1212 };
1212 };
1213 };
1213 };
1214 prompt-toolkit = super.buildPythonPackage {
1214 prompt-toolkit = super.buildPythonPackage {
1215 name = "prompt-toolkit-1.0.15";
1215 name = "prompt-toolkit-1.0.15";
1216 buildInputs = with self; [];
1216 buildInputs = with self; [];
1217 doCheck = false;
1217 doCheck = false;
1218 propagatedBuildInputs = with self; [six wcwidth];
1218 propagatedBuildInputs = with self; [six wcwidth];
1219 src = fetchurl {
1219 src = fetchurl {
1220 url = "https://pypi.python.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz";
1220 url = "https://pypi.python.org/packages/8a/ad/cf6b128866e78ad6d7f1dc5b7f99885fb813393d9860778b2984582e81b5/prompt_toolkit-1.0.15.tar.gz";
1221 md5 = "8fe70295006dbc8afedd43e5eba99032";
1221 md5 = "8fe70295006dbc8afedd43e5eba99032";
1222 };
1222 };
1223 meta = {
1223 meta = {
1224 license = [ pkgs.lib.licenses.bsdOriginal ];
1224 license = [ pkgs.lib.licenses.bsdOriginal ];
1225 };
1225 };
1226 };
1226 };
1227 psutil = super.buildPythonPackage {
1227 psutil = super.buildPythonPackage {
1228 name = "psutil-5.4.3";
1228 name = "psutil-5.4.3";
1229 buildInputs = with self; [];
1229 buildInputs = with self; [];
1230 doCheck = false;
1230 doCheck = false;
1231 propagatedBuildInputs = with self; [];
1231 propagatedBuildInputs = with self; [];
1232 src = fetchurl {
1232 src = fetchurl {
1233 url = "https://pypi.python.org/packages/e2/e1/600326635f97fee89bf8426fef14c5c29f4849c79f68fd79f433d8c1bd96/psutil-5.4.3.tar.gz";
1233 url = "https://pypi.python.org/packages/e2/e1/600326635f97fee89bf8426fef14c5c29f4849c79f68fd79f433d8c1bd96/psutil-5.4.3.tar.gz";
1234 md5 = "3b291833dbea631db9d271aa602a169a";
1234 md5 = "3b291833dbea631db9d271aa602a169a";
1235 };
1235 };
1236 meta = {
1236 meta = {
1237 license = [ pkgs.lib.licenses.bsdOriginal ];
1237 license = [ pkgs.lib.licenses.bsdOriginal ];
1238 };
1238 };
1239 };
1239 };
1240 psycopg2 = super.buildPythonPackage {
1240 psycopg2 = super.buildPythonPackage {
1241 name = "psycopg2-2.7.3.2";
1241 name = "psycopg2-2.7.3.2";
1242 buildInputs = with self; [];
1242 buildInputs = with self; [];
1243 doCheck = false;
1243 doCheck = false;
1244 propagatedBuildInputs = with self; [];
1244 propagatedBuildInputs = with self; [];
1245 src = fetchurl {
1245 src = fetchurl {
1246 url = "https://pypi.python.org/packages/dd/47/000b405d73ca22980684fd7bd3318690cc03cfa3b2ae1c5b7fff8050b28a/psycopg2-2.7.3.2.tar.gz";
1246 url = "https://pypi.python.org/packages/dd/47/000b405d73ca22980684fd7bd3318690cc03cfa3b2ae1c5b7fff8050b28a/psycopg2-2.7.3.2.tar.gz";
1247 md5 = "8114e672d5f23fa5329874a4314fbd6f";
1247 md5 = "8114e672d5f23fa5329874a4314fbd6f";
1248 };
1248 };
1249 meta = {
1249 meta = {
1250 license = [ pkgs.lib.licenses.zpt21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1250 license = [ pkgs.lib.licenses.zpt21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1251 };
1251 };
1252 };
1252 };
1253 ptyprocess = super.buildPythonPackage {
1253 ptyprocess = super.buildPythonPackage {
1254 name = "ptyprocess-0.5.2";
1254 name = "ptyprocess-0.5.2";
1255 buildInputs = with self; [];
1255 buildInputs = with self; [];
1256 doCheck = false;
1256 doCheck = false;
1257 propagatedBuildInputs = with self; [];
1257 propagatedBuildInputs = with self; [];
1258 src = fetchurl {
1258 src = fetchurl {
1259 url = "https://pypi.python.org/packages/51/83/5d07dc35534640b06f9d9f1a1d2bc2513fb9cc7595a1b0e28ae5477056ce/ptyprocess-0.5.2.tar.gz";
1259 url = "https://pypi.python.org/packages/51/83/5d07dc35534640b06f9d9f1a1d2bc2513fb9cc7595a1b0e28ae5477056ce/ptyprocess-0.5.2.tar.gz";
1260 md5 = "d3b8febae1b8c53b054bd818d0bb8665";
1260 md5 = "d3b8febae1b8c53b054bd818d0bb8665";
1261 };
1261 };
1262 meta = {
1262 meta = {
1263 license = [ ];
1263 license = [ ];
1264 };
1264 };
1265 };
1265 };
1266 py = super.buildPythonPackage {
1266 py = super.buildPythonPackage {
1267 name = "py-1.5.2";
1267 name = "py-1.5.2";
1268 buildInputs = with self; [];
1268 buildInputs = with self; [];
1269 doCheck = false;
1269 doCheck = false;
1270 propagatedBuildInputs = with self; [];
1270 propagatedBuildInputs = with self; [];
1271 src = fetchurl {
1271 src = fetchurl {
1272 url = "https://pypi.python.org/packages/90/e3/e075127d39d35f09a500ebb4a90afd10f9ef0a1d28a6d09abeec0e444fdd/py-1.5.2.tar.gz";
1272 url = "https://pypi.python.org/packages/90/e3/e075127d39d35f09a500ebb4a90afd10f9ef0a1d28a6d09abeec0e444fdd/py-1.5.2.tar.gz";
1273 md5 = "279ca69c632069e1b71e11b14641ca28";
1273 md5 = "279ca69c632069e1b71e11b14641ca28";
1274 };
1274 };
1275 meta = {
1275 meta = {
1276 license = [ pkgs.lib.licenses.mit ];
1276 license = [ pkgs.lib.licenses.mit ];
1277 };
1277 };
1278 };
1278 };
1279 py-bcrypt = super.buildPythonPackage {
1279 py-bcrypt = super.buildPythonPackage {
1280 name = "py-bcrypt-0.4";
1280 name = "py-bcrypt-0.4";
1281 buildInputs = with self; [];
1281 buildInputs = with self; [];
1282 doCheck = false;
1282 doCheck = false;
1283 propagatedBuildInputs = with self; [];
1283 propagatedBuildInputs = with self; [];
1284 src = fetchurl {
1284 src = fetchurl {
1285 url = "https://pypi.python.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1285 url = "https://pypi.python.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1286 md5 = "dd8b367d6b716a2ea2e72392525f4e36";
1286 md5 = "dd8b367d6b716a2ea2e72392525f4e36";
1287 };
1287 };
1288 meta = {
1288 meta = {
1289 license = [ pkgs.lib.licenses.bsdOriginal ];
1289 license = [ pkgs.lib.licenses.bsdOriginal ];
1290 };
1290 };
1291 };
1291 };
1292 py-gfm = super.buildPythonPackage {
1292 py-gfm = super.buildPythonPackage {
1293 name = "py-gfm-0.1.3";
1293 name = "py-gfm-0.1.3";
1294 buildInputs = with self; [];
1294 buildInputs = with self; [];
1295 doCheck = false;
1295 doCheck = false;
1296 propagatedBuildInputs = with self; [setuptools Markdown];
1296 propagatedBuildInputs = with self; [setuptools Markdown];
1297 src = fetchurl {
1297 src = fetchurl {
1298 url = "https://pypi.python.org/packages/12/e4/6b3d8678da04f97d7490d8264d8de51c2dc9fb91209ccee9c515c95e14c5/py-gfm-0.1.3.tar.gz";
1298 url = "https://pypi.python.org/packages/12/e4/6b3d8678da04f97d7490d8264d8de51c2dc9fb91209ccee9c515c95e14c5/py-gfm-0.1.3.tar.gz";
1299 md5 = "e588d9e69640a241b97e2c59c22527a6";
1299 md5 = "e588d9e69640a241b97e2c59c22527a6";
1300 };
1300 };
1301 meta = {
1301 meta = {
1302 license = [ pkgs.lib.licenses.bsdOriginal ];
1302 license = [ pkgs.lib.licenses.bsdOriginal ];
1303 };
1303 };
1304 };
1304 };
1305 pycrypto = super.buildPythonPackage {
1305 pycrypto = super.buildPythonPackage {
1306 name = "pycrypto-2.6.1";
1306 name = "pycrypto-2.6.1";
1307 buildInputs = with self; [];
1307 buildInputs = with self; [];
1308 doCheck = false;
1308 doCheck = false;
1309 propagatedBuildInputs = with self; [];
1309 propagatedBuildInputs = with self; [];
1310 src = fetchurl {
1310 src = fetchurl {
1311 url = "https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1311 url = "https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1312 md5 = "55a61a054aa66812daf5161a0d5d7eda";
1312 md5 = "55a61a054aa66812daf5161a0d5d7eda";
1313 };
1313 };
1314 meta = {
1314 meta = {
1315 license = [ pkgs.lib.licenses.publicDomain ];
1315 license = [ pkgs.lib.licenses.publicDomain ];
1316 };
1316 };
1317 };
1317 };
1318 pycurl = super.buildPythonPackage {
1318 pycurl = super.buildPythonPackage {
1319 name = "pycurl-7.19.5";
1319 name = "pycurl-7.19.5";
1320 buildInputs = with self; [];
1320 buildInputs = with self; [];
1321 doCheck = false;
1321 doCheck = false;
1322 propagatedBuildInputs = with self; [];
1322 propagatedBuildInputs = with self; [];
1323 src = fetchurl {
1323 src = fetchurl {
1324 url = "https://pypi.python.org/packages/6c/48/13bad289ef6f4869b1d8fc11ae54de8cfb3cc4a2eb9f7419c506f763be46/pycurl-7.19.5.tar.gz";
1324 url = "https://pypi.python.org/packages/6c/48/13bad289ef6f4869b1d8fc11ae54de8cfb3cc4a2eb9f7419c506f763be46/pycurl-7.19.5.tar.gz";
1325 md5 = "47b4eac84118e2606658122104e62072";
1325 md5 = "47b4eac84118e2606658122104e62072";
1326 };
1326 };
1327 meta = {
1327 meta = {
1328 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1328 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1329 };
1329 };
1330 };
1330 };
1331 pyflakes = super.buildPythonPackage {
1331 pyflakes = super.buildPythonPackage {
1332 name = "pyflakes-0.8.1";
1332 name = "pyflakes-0.8.1";
1333 buildInputs = with self; [];
1333 buildInputs = with self; [];
1334 doCheck = false;
1334 doCheck = false;
1335 propagatedBuildInputs = with self; [];
1335 propagatedBuildInputs = with self; [];
1336 src = fetchurl {
1336 src = fetchurl {
1337 url = "https://pypi.python.org/packages/75/22/a90ec0252f4f87f3ffb6336504de71fe16a49d69c4538dae2f12b9360a38/pyflakes-0.8.1.tar.gz";
1337 url = "https://pypi.python.org/packages/75/22/a90ec0252f4f87f3ffb6336504de71fe16a49d69c4538dae2f12b9360a38/pyflakes-0.8.1.tar.gz";
1338 md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
1338 md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
1339 };
1339 };
1340 meta = {
1340 meta = {
1341 license = [ pkgs.lib.licenses.mit ];
1341 license = [ pkgs.lib.licenses.mit ];
1342 };
1342 };
1343 };
1343 };
1344 pygments-markdown-lexer = super.buildPythonPackage {
1344 pygments-markdown-lexer = super.buildPythonPackage {
1345 name = "pygments-markdown-lexer-0.1.0.dev39";
1345 name = "pygments-markdown-lexer-0.1.0.dev39";
1346 buildInputs = with self; [];
1346 buildInputs = with self; [];
1347 doCheck = false;
1347 doCheck = false;
1348 propagatedBuildInputs = with self; [Pygments];
1348 propagatedBuildInputs = with self; [Pygments];
1349 src = fetchurl {
1349 src = fetchurl {
1350 url = "https://pypi.python.org/packages/c3/12/674cdee66635d638cedb2c5d9c85ce507b7b2f91bdba29e482f1b1160ff6/pygments-markdown-lexer-0.1.0.dev39.zip";
1350 url = "https://pypi.python.org/packages/c3/12/674cdee66635d638cedb2c5d9c85ce507b7b2f91bdba29e482f1b1160ff6/pygments-markdown-lexer-0.1.0.dev39.zip";
1351 md5 = "6360fe0f6d1f896e35b7a0142ce6459c";
1351 md5 = "6360fe0f6d1f896e35b7a0142ce6459c";
1352 };
1352 };
1353 meta = {
1353 meta = {
1354 license = [ pkgs.lib.licenses.asl20 ];
1354 license = [ pkgs.lib.licenses.asl20 ];
1355 };
1355 };
1356 };
1356 };
1357 pyparsing = super.buildPythonPackage {
1357 pyparsing = super.buildPythonPackage {
1358 name = "pyparsing-1.5.7";
1358 name = "pyparsing-1.5.7";
1359 buildInputs = with self; [];
1359 buildInputs = with self; [];
1360 doCheck = false;
1360 doCheck = false;
1361 propagatedBuildInputs = with self; [];
1361 propagatedBuildInputs = with self; [];
1362 src = fetchurl {
1362 src = fetchurl {
1363 url = "https://pypi.python.org/packages/6f/2c/47457771c02a8ff0f302b695e094ec309e30452232bd79198ee94fda689f/pyparsing-1.5.7.tar.gz";
1363 url = "https://pypi.python.org/packages/6f/2c/47457771c02a8ff0f302b695e094ec309e30452232bd79198ee94fda689f/pyparsing-1.5.7.tar.gz";
1364 md5 = "9be0fcdcc595199c646ab317c1d9a709";
1364 md5 = "9be0fcdcc595199c646ab317c1d9a709";
1365 };
1365 };
1366 meta = {
1366 meta = {
1367 license = [ pkgs.lib.licenses.mit ];
1367 license = [ pkgs.lib.licenses.mit ];
1368 };
1368 };
1369 };
1369 };
1370 pyramid = super.buildPythonPackage {
1370 pyramid = super.buildPythonPackage {
1371 name = "pyramid-1.9.1";
1371 name = "pyramid-1.9.1";
1372 buildInputs = with self; [];
1372 buildInputs = with self; [];
1373 doCheck = false;
1373 doCheck = false;
1374 propagatedBuildInputs = with self; [setuptools WebOb repoze.lru zope.interface zope.deprecation venusian translationstring PasteDeploy plaster plaster-pastedeploy hupper];
1374 propagatedBuildInputs = with self; [setuptools WebOb repoze.lru zope.interface zope.deprecation venusian translationstring PasteDeploy plaster plaster-pastedeploy hupper];
1375 src = fetchurl {
1375 src = fetchurl {
1376 url = "https://pypi.python.org/packages/9a/57/73447be9e7d0512d601e3f0a1fb9d7d1efb941911f49efdfe036d2826507/pyramid-1.9.1.tar.gz";
1376 url = "https://pypi.python.org/packages/9a/57/73447be9e7d0512d601e3f0a1fb9d7d1efb941911f49efdfe036d2826507/pyramid-1.9.1.tar.gz";
1377 md5 = "0163e19c58c2d12976a3b6fdb57e052d";
1377 md5 = "0163e19c58c2d12976a3b6fdb57e052d";
1378 };
1378 };
1379 meta = {
1379 meta = {
1380 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1380 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1381 };
1381 };
1382 };
1382 };
1383 pyramid-beaker = super.buildPythonPackage {
1383 pyramid-beaker = super.buildPythonPackage {
1384 name = "pyramid-beaker-0.8";
1384 name = "pyramid-beaker-0.8";
1385 buildInputs = with self; [];
1385 buildInputs = with self; [];
1386 doCheck = false;
1386 doCheck = false;
1387 propagatedBuildInputs = with self; [pyramid Beaker];
1387 propagatedBuildInputs = with self; [pyramid Beaker];
1388 src = fetchurl {
1388 src = fetchurl {
1389 url = "https://pypi.python.org/packages/d9/6e/b85426e00fd3d57f4545f74e1c3828552d8700f13ededeef9233f7bca8be/pyramid_beaker-0.8.tar.gz";
1389 url = "https://pypi.python.org/packages/d9/6e/b85426e00fd3d57f4545f74e1c3828552d8700f13ededeef9233f7bca8be/pyramid_beaker-0.8.tar.gz";
1390 md5 = "22f14be31b06549f80890e2c63a93834";
1390 md5 = "22f14be31b06549f80890e2c63a93834";
1391 };
1391 };
1392 meta = {
1392 meta = {
1393 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1393 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1394 };
1394 };
1395 };
1395 };
1396 pyramid-debugtoolbar = super.buildPythonPackage {
1396 pyramid-debugtoolbar = super.buildPythonPackage {
1397 name = "pyramid-debugtoolbar-4.3";
1397 name = "pyramid-debugtoolbar-4.3";
1398 buildInputs = with self; [];
1398 buildInputs = with self; [];
1399 doCheck = false;
1399 doCheck = false;
1400 propagatedBuildInputs = with self; [pyramid pyramid-mako repoze.lru Pygments ipaddress];
1400 propagatedBuildInputs = with self; [pyramid pyramid-mako repoze.lru Pygments ipaddress];
1401 src = fetchurl {
1401 src = fetchurl {
1402 url = "https://pypi.python.org/packages/a4/40/f09d8800bfc3c09bdb6c95f37bb61c890dc62c19c4e7caa304da7aa77403/pyramid_debugtoolbar-4.3.tar.gz";
1402 url = "https://pypi.python.org/packages/a4/40/f09d8800bfc3c09bdb6c95f37bb61c890dc62c19c4e7caa304da7aa77403/pyramid_debugtoolbar-4.3.tar.gz";
1403 md5 = "9c49029e9f0695130499ef6416ffaaf8";
1403 md5 = "9c49029e9f0695130499ef6416ffaaf8";
1404 };
1404 };
1405 meta = {
1405 meta = {
1406 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1406 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1407 };
1407 };
1408 };
1408 };
1409 pyramid-jinja2 = super.buildPythonPackage {
1409 pyramid-jinja2 = super.buildPythonPackage {
1410 name = "pyramid-jinja2-2.7";
1410 name = "pyramid-jinja2-2.7";
1411 buildInputs = with self; [];
1411 buildInputs = with self; [];
1412 doCheck = false;
1412 doCheck = false;
1413 propagatedBuildInputs = with self; [pyramid zope.deprecation Jinja2 MarkupSafe];
1413 propagatedBuildInputs = with self; [pyramid zope.deprecation Jinja2 MarkupSafe];
1414 src = fetchurl {
1414 src = fetchurl {
1415 url = "https://pypi.python.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1415 url = "https://pypi.python.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1416 md5 = "c2f8b2cd7b73a6f1d9a311fcfaf4fb92";
1416 md5 = "c2f8b2cd7b73a6f1d9a311fcfaf4fb92";
1417 };
1417 };
1418 meta = {
1418 meta = {
1419 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1419 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1420 };
1420 };
1421 };
1421 };
1422 pyramid-mako = super.buildPythonPackage {
1422 pyramid-mako = super.buildPythonPackage {
1423 name = "pyramid-mako-1.0.2";
1423 name = "pyramid-mako-1.0.2";
1424 buildInputs = with self; [];
1424 buildInputs = with self; [];
1425 doCheck = false;
1425 doCheck = false;
1426 propagatedBuildInputs = with self; [pyramid Mako];
1426 propagatedBuildInputs = with self; [pyramid Mako];
1427 src = fetchurl {
1427 src = fetchurl {
1428 url = "https://pypi.python.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1428 url = "https://pypi.python.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1429 md5 = "ee25343a97eb76bd90abdc2a774eb48a";
1429 md5 = "ee25343a97eb76bd90abdc2a774eb48a";
1430 };
1430 };
1431 meta = {
1431 meta = {
1432 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1432 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1433 };
1433 };
1434 };
1434 };
1435 pysqlite = super.buildPythonPackage {
1435 pysqlite = super.buildPythonPackage {
1436 name = "pysqlite-2.8.3";
1436 name = "pysqlite-2.8.3";
1437 buildInputs = with self; [];
1437 buildInputs = with self; [];
1438 doCheck = false;
1438 doCheck = false;
1439 propagatedBuildInputs = with self; [];
1439 propagatedBuildInputs = with self; [];
1440 src = fetchurl {
1440 src = fetchurl {
1441 url = "https://pypi.python.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1441 url = "https://pypi.python.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1442 md5 = "033f17b8644577715aee55e8832ac9fc";
1442 md5 = "033f17b8644577715aee55e8832ac9fc";
1443 };
1443 };
1444 meta = {
1444 meta = {
1445 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1445 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1446 };
1446 };
1447 };
1447 };
1448 pytest = super.buildPythonPackage {
1448 pytest = super.buildPythonPackage {
1449 name = "pytest-3.2.5";
1449 name = "pytest-3.2.5";
1450 buildInputs = with self; [];
1450 buildInputs = with self; [];
1451 doCheck = false;
1451 doCheck = false;
1452 propagatedBuildInputs = with self; [py setuptools];
1452 propagatedBuildInputs = with self; [py setuptools];
1453 src = fetchurl {
1453 src = fetchurl {
1454 url = "https://pypi.python.org/packages/1f/f8/8cd74c16952163ce0db0bd95fdd8810cbf093c08be00e6e665ebf0dc3138/pytest-3.2.5.tar.gz";
1454 url = "https://pypi.python.org/packages/1f/f8/8cd74c16952163ce0db0bd95fdd8810cbf093c08be00e6e665ebf0dc3138/pytest-3.2.5.tar.gz";
1455 md5 = "6dbe9bb093883f75394a689a1426ac6f";
1455 md5 = "6dbe9bb093883f75394a689a1426ac6f";
1456 };
1456 };
1457 meta = {
1457 meta = {
1458 license = [ pkgs.lib.licenses.mit ];
1458 license = [ pkgs.lib.licenses.mit ];
1459 };
1459 };
1460 };
1460 };
1461 pytest-catchlog = super.buildPythonPackage {
1461 pytest-catchlog = super.buildPythonPackage {
1462 name = "pytest-catchlog-1.2.2";
1462 name = "pytest-catchlog-1.2.2";
1463 buildInputs = with self; [];
1463 buildInputs = with self; [];
1464 doCheck = false;
1464 doCheck = false;
1465 propagatedBuildInputs = with self; [py pytest];
1465 propagatedBuildInputs = with self; [py pytest];
1466 src = fetchurl {
1466 src = fetchurl {
1467 url = "https://pypi.python.org/packages/f2/2b/2faccdb1a978fab9dd0bf31cca9f6847fbe9184a0bdcc3011ac41dd44191/pytest-catchlog-1.2.2.zip";
1467 url = "https://pypi.python.org/packages/f2/2b/2faccdb1a978fab9dd0bf31cca9f6847fbe9184a0bdcc3011ac41dd44191/pytest-catchlog-1.2.2.zip";
1468 md5 = "09d890c54c7456c818102b7ff8c182c8";
1468 md5 = "09d890c54c7456c818102b7ff8c182c8";
1469 };
1469 };
1470 meta = {
1470 meta = {
1471 license = [ pkgs.lib.licenses.mit ];
1471 license = [ pkgs.lib.licenses.mit ];
1472 };
1472 };
1473 };
1473 };
1474 pytest-cov = super.buildPythonPackage {
1474 pytest-cov = super.buildPythonPackage {
1475 name = "pytest-cov-2.5.1";
1475 name = "pytest-cov-2.5.1";
1476 buildInputs = with self; [];
1476 buildInputs = with self; [];
1477 doCheck = false;
1477 doCheck = false;
1478 propagatedBuildInputs = with self; [pytest coverage];
1478 propagatedBuildInputs = with self; [pytest coverage];
1479 src = fetchurl {
1479 src = fetchurl {
1480 url = "https://pypi.python.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz";
1480 url = "https://pypi.python.org/packages/24/b4/7290d65b2f3633db51393bdf8ae66309b37620bc3ec116c5e357e3e37238/pytest-cov-2.5.1.tar.gz";
1481 md5 = "5acf38d4909e19819eb5c1754fbfc0ac";
1481 md5 = "5acf38d4909e19819eb5c1754fbfc0ac";
1482 };
1482 };
1483 meta = {
1483 meta = {
1484 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1484 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1485 };
1485 };
1486 };
1486 };
1487 pytest-profiling = super.buildPythonPackage {
1487 pytest-profiling = super.buildPythonPackage {
1488 name = "pytest-profiling-1.2.11";
1488 name = "pytest-profiling-1.2.11";
1489 buildInputs = with self; [];
1489 buildInputs = with self; [];
1490 doCheck = false;
1490 doCheck = false;
1491 propagatedBuildInputs = with self; [six pytest gprof2dot];
1491 propagatedBuildInputs = with self; [six pytest gprof2dot];
1492 src = fetchurl {
1492 src = fetchurl {
1493 url = "https://pypi.python.org/packages/c0/4a/b4aa786e93c07a86f1f87c581a36bf355a9e06a9da7e00dbd05047626bd2/pytest-profiling-1.2.11.tar.gz";
1493 url = "https://pypi.python.org/packages/c0/4a/b4aa786e93c07a86f1f87c581a36bf355a9e06a9da7e00dbd05047626bd2/pytest-profiling-1.2.11.tar.gz";
1494 md5 = "9ef6b60248731be5d44477980408e8f7";
1494 md5 = "9ef6b60248731be5d44477980408e8f7";
1495 };
1495 };
1496 meta = {
1496 meta = {
1497 license = [ pkgs.lib.licenses.mit ];
1497 license = [ pkgs.lib.licenses.mit ];
1498 };
1498 };
1499 };
1499 };
1500 pytest-runner = super.buildPythonPackage {
1500 pytest-runner = super.buildPythonPackage {
1501 name = "pytest-runner-3.0";
1501 name = "pytest-runner-3.0";
1502 buildInputs = with self; [];
1502 buildInputs = with self; [];
1503 doCheck = false;
1503 doCheck = false;
1504 propagatedBuildInputs = with self; [];
1504 propagatedBuildInputs = with self; [];
1505 src = fetchurl {
1505 src = fetchurl {
1506 url = "https://pypi.python.org/packages/65/b4/ae89338cd2d81e2cc54bd6db2e962bfe948f612303610d68ab24539ac2d1/pytest-runner-3.0.tar.gz";
1506 url = "https://pypi.python.org/packages/65/b4/ae89338cd2d81e2cc54bd6db2e962bfe948f612303610d68ab24539ac2d1/pytest-runner-3.0.tar.gz";
1507 md5 = "8f8363a52bbabc4cedd5e239beb2ba11";
1507 md5 = "8f8363a52bbabc4cedd5e239beb2ba11";
1508 };
1508 };
1509 meta = {
1509 meta = {
1510 license = [ pkgs.lib.licenses.mit ];
1510 license = [ pkgs.lib.licenses.mit ];
1511 };
1511 };
1512 };
1512 };
1513 pytest-sugar = super.buildPythonPackage {
1513 pytest-sugar = super.buildPythonPackage {
1514 name = "pytest-sugar-0.9.0";
1514 name = "pytest-sugar-0.9.0";
1515 buildInputs = with self; [];
1515 buildInputs = with self; [];
1516 doCheck = false;
1516 doCheck = false;
1517 propagatedBuildInputs = with self; [pytest termcolor];
1517 propagatedBuildInputs = with self; [pytest termcolor];
1518 src = fetchurl {
1518 src = fetchurl {
1519 url = "https://pypi.python.org/packages/49/d8/c5ff6cca3ce2ebd8b73eec89779bf6b4a7737456a70e8ea4d44c1ff90f71/pytest-sugar-0.9.0.tar.gz";
1519 url = "https://pypi.python.org/packages/49/d8/c5ff6cca3ce2ebd8b73eec89779bf6b4a7737456a70e8ea4d44c1ff90f71/pytest-sugar-0.9.0.tar.gz";
1520 md5 = "89fbff17277fa6a95a560a04b68cb9f9";
1520 md5 = "89fbff17277fa6a95a560a04b68cb9f9";
1521 };
1521 };
1522 meta = {
1522 meta = {
1523 license = [ pkgs.lib.licenses.bsdOriginal ];
1523 license = [ pkgs.lib.licenses.bsdOriginal ];
1524 };
1524 };
1525 };
1525 };
1526 pytest-timeout = super.buildPythonPackage {
1526 pytest-timeout = super.buildPythonPackage {
1527 name = "pytest-timeout-1.2.0";
1527 name = "pytest-timeout-1.2.0";
1528 buildInputs = with self; [];
1528 buildInputs = with self; [];
1529 doCheck = false;
1529 doCheck = false;
1530 propagatedBuildInputs = with self; [pytest];
1530 propagatedBuildInputs = with self; [pytest];
1531 src = fetchurl {
1531 src = fetchurl {
1532 url = "https://pypi.python.org/packages/cc/b7/b2a61365ea6b6d2e8881360ae7ed8dad0327ad2df89f2f0be4a02304deb2/pytest-timeout-1.2.0.tar.gz";
1532 url = "https://pypi.python.org/packages/cc/b7/b2a61365ea6b6d2e8881360ae7ed8dad0327ad2df89f2f0be4a02304deb2/pytest-timeout-1.2.0.tar.gz";
1533 md5 = "83607d91aa163562c7ee835da57d061d";
1533 md5 = "83607d91aa163562c7ee835da57d061d";
1534 };
1534 };
1535 meta = {
1535 meta = {
1536 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1536 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1537 };
1537 };
1538 };
1538 };
1539 python-dateutil = super.buildPythonPackage {
1539 python-dateutil = super.buildPythonPackage {
1540 name = "python-dateutil-2.6.1";
1540 name = "python-dateutil-2.6.1";
1541 buildInputs = with self; [];
1541 buildInputs = with self; [];
1542 doCheck = false;
1542 doCheck = false;
1543 propagatedBuildInputs = with self; [six];
1543 propagatedBuildInputs = with self; [six];
1544 src = fetchurl {
1544 src = fetchurl {
1545 url = "https://pypi.python.org/packages/54/bb/f1db86504f7a49e1d9b9301531181b00a1c7325dc85a29160ee3eaa73a54/python-dateutil-2.6.1.tar.gz";
1545 url = "https://pypi.python.org/packages/54/bb/f1db86504f7a49e1d9b9301531181b00a1c7325dc85a29160ee3eaa73a54/python-dateutil-2.6.1.tar.gz";
1546 md5 = "db38f6b4511cefd76014745bb0cc45a4";
1546 md5 = "db38f6b4511cefd76014745bb0cc45a4";
1547 };
1547 };
1548 meta = {
1548 meta = {
1549 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "Simplified BSD"; } ];
1549 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "Simplified BSD"; } ];
1550 };
1550 };
1551 };
1551 };
1552 python-editor = super.buildPythonPackage {
1552 python-editor = super.buildPythonPackage {
1553 name = "python-editor-1.0.3";
1553 name = "python-editor-1.0.3";
1554 buildInputs = with self; [];
1554 buildInputs = with self; [];
1555 doCheck = false;
1555 doCheck = false;
1556 propagatedBuildInputs = with self; [];
1556 propagatedBuildInputs = with self; [];
1557 src = fetchurl {
1557 src = fetchurl {
1558 url = "https://pypi.python.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz";
1558 url = "https://pypi.python.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz";
1559 md5 = "0aca5f2ef176ce68e98a5b7e31372835";
1559 md5 = "0aca5f2ef176ce68e98a5b7e31372835";
1560 };
1560 };
1561 meta = {
1561 meta = {
1562 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1562 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1563 };
1563 };
1564 };
1564 };
1565 python-ldap = super.buildPythonPackage {
1565 python-ldap = super.buildPythonPackage {
1566 name = "python-ldap-2.4.45";
1566 name = "python-ldap-2.4.45";
1567 buildInputs = with self; [];
1567 buildInputs = with self; [];
1568 doCheck = false;
1568 doCheck = false;
1569 propagatedBuildInputs = with self; [setuptools];
1569 propagatedBuildInputs = with self; [setuptools];
1570 src = fetchurl {
1570 src = fetchurl {
1571 url = "https://pypi.python.org/packages/ce/52/6b5372d0166820f4a4b0a88ed73dc7504219355049fc1d266d8ccdb7942e/python-ldap-2.4.45.tar.gz";
1571 url = "https://pypi.python.org/packages/ce/52/6b5372d0166820f4a4b0a88ed73dc7504219355049fc1d266d8ccdb7942e/python-ldap-2.4.45.tar.gz";
1572 md5 = "6108e189a44eea8bc7d1cc281c222978";
1572 md5 = "6108e189a44eea8bc7d1cc281c222978";
1573 };
1573 };
1574 meta = {
1574 meta = {
1575 license = [ pkgs.lib.licenses.psfl ];
1575 license = [ pkgs.lib.licenses.psfl ];
1576 };
1576 };
1577 };
1577 };
1578 python-memcached = super.buildPythonPackage {
1578 python-memcached = super.buildPythonPackage {
1579 name = "python-memcached-1.58";
1579 name = "python-memcached-1.58";
1580 buildInputs = with self; [];
1580 buildInputs = with self; [];
1581 doCheck = false;
1581 doCheck = false;
1582 propagatedBuildInputs = with self; [six];
1582 propagatedBuildInputs = with self; [six];
1583 src = fetchurl {
1583 src = fetchurl {
1584 url = "https://pypi.python.org/packages/f7/62/14b2448cfb04427366f24104c9da97cf8ea380d7258a3233f066a951a8d8/python-memcached-1.58.tar.gz";
1584 url = "https://pypi.python.org/packages/f7/62/14b2448cfb04427366f24104c9da97cf8ea380d7258a3233f066a951a8d8/python-memcached-1.58.tar.gz";
1585 md5 = "23b258105013d14d899828d334e6b044";
1585 md5 = "23b258105013d14d899828d334e6b044";
1586 };
1586 };
1587 meta = {
1587 meta = {
1588 license = [ pkgs.lib.licenses.psfl ];
1588 license = [ pkgs.lib.licenses.psfl ];
1589 };
1589 };
1590 };
1590 };
1591 python-pam = super.buildPythonPackage {
1591 python-pam = super.buildPythonPackage {
1592 name = "python-pam-1.8.2";
1592 name = "python-pam-1.8.2";
1593 buildInputs = with self; [];
1593 buildInputs = with self; [];
1594 doCheck = false;
1594 doCheck = false;
1595 propagatedBuildInputs = with self; [];
1595 propagatedBuildInputs = with self; [];
1596 src = fetchurl {
1596 src = fetchurl {
1597 url = "https://pypi.python.org/packages/de/8c/f8f5d38b4f26893af267ea0b39023d4951705ab0413a39e0cf7cf4900505/python-pam-1.8.2.tar.gz";
1597 url = "https://pypi.python.org/packages/de/8c/f8f5d38b4f26893af267ea0b39023d4951705ab0413a39e0cf7cf4900505/python-pam-1.8.2.tar.gz";
1598 md5 = "db71b6b999246fb05d78ecfbe166629d";
1598 md5 = "db71b6b999246fb05d78ecfbe166629d";
1599 };
1599 };
1600 meta = {
1600 meta = {
1601 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1601 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1602 };
1602 };
1603 };
1603 };
1604 pytz = super.buildPythonPackage {
1604 pytz = super.buildPythonPackage {
1605 name = "pytz-2018.3";
1605 name = "pytz-2018.3";
1606 buildInputs = with self; [];
1606 buildInputs = with self; [];
1607 doCheck = false;
1607 doCheck = false;
1608 propagatedBuildInputs = with self; [];
1608 propagatedBuildInputs = with self; [];
1609 src = fetchurl {
1609 src = fetchurl {
1610 url = "https://pypi.python.org/packages/1b/50/4cdc62fc0753595fc16c8f722a89740f487c6e5670c644eb8983946777be/pytz-2018.3.tar.gz";
1610 url = "https://pypi.python.org/packages/1b/50/4cdc62fc0753595fc16c8f722a89740f487c6e5670c644eb8983946777be/pytz-2018.3.tar.gz";
1611 md5 = "abb07c09c79f78d7c04f222a550c99ef";
1611 md5 = "abb07c09c79f78d7c04f222a550c99ef";
1612 };
1612 };
1613 meta = {
1613 meta = {
1614 license = [ pkgs.lib.licenses.mit ];
1614 license = [ pkgs.lib.licenses.mit ];
1615 };
1615 };
1616 };
1616 };
1617 pyzmq = super.buildPythonPackage {
1617 pyzmq = super.buildPythonPackage {
1618 name = "pyzmq-14.6.0";
1618 name = "pyzmq-14.6.0";
1619 buildInputs = with self; [];
1619 buildInputs = with self; [];
1620 doCheck = false;
1620 doCheck = false;
1621 propagatedBuildInputs = with self; [];
1621 propagatedBuildInputs = with self; [];
1622 src = fetchurl {
1622 src = fetchurl {
1623 url = "https://pypi.python.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1623 url = "https://pypi.python.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1624 md5 = "395b5de95a931afa5b14c9349a5b8024";
1624 md5 = "395b5de95a931afa5b14c9349a5b8024";
1625 };
1625 };
1626 meta = {
1626 meta = {
1627 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1627 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1628 };
1628 };
1629 };
1629 };
1630 recaptcha-client = super.buildPythonPackage {
1631 name = "recaptcha-client-1.0.6";
1632 buildInputs = with self; [];
1633 doCheck = false;
1634 propagatedBuildInputs = with self; [];
1635 src = fetchurl {
1636 url = "https://pypi.python.org/packages/0a/ea/5f2fbbfd894bdac1c68ef8d92019066cfcf9fbff5fe3d728d2b5c25c8db4/recaptcha-client-1.0.6.tar.gz";
1637 md5 = "74228180f7e1fb76c4d7089160b0d919";
1638 };
1639 meta = {
1640 license = [ { fullName = "MIT/X11"; } ];
1641 };
1642 };
1643 redis = super.buildPythonPackage {
1630 redis = super.buildPythonPackage {
1644 name = "redis-2.10.6";
1631 name = "redis-2.10.6";
1645 buildInputs = with self; [];
1632 buildInputs = with self; [];
1646 doCheck = false;
1633 doCheck = false;
1647 propagatedBuildInputs = with self; [];
1634 propagatedBuildInputs = with self; [];
1648 src = fetchurl {
1635 src = fetchurl {
1649 url = "https://pypi.python.org/packages/09/8d/6d34b75326bf96d4139a2ddd8e74b80840f800a0a79f9294399e212cb9a7/redis-2.10.6.tar.gz";
1636 url = "https://pypi.python.org/packages/09/8d/6d34b75326bf96d4139a2ddd8e74b80840f800a0a79f9294399e212cb9a7/redis-2.10.6.tar.gz";
1650 md5 = "048348d8cfe0b5d0bba2f4d835005c3b";
1637 md5 = "048348d8cfe0b5d0bba2f4d835005c3b";
1651 };
1638 };
1652 meta = {
1639 meta = {
1653 license = [ pkgs.lib.licenses.mit ];
1640 license = [ pkgs.lib.licenses.mit ];
1654 };
1641 };
1655 };
1642 };
1656 repoze.lru = super.buildPythonPackage {
1643 repoze.lru = super.buildPythonPackage {
1657 name = "repoze.lru-0.7";
1644 name = "repoze.lru-0.7";
1658 buildInputs = with self; [];
1645 buildInputs = with self; [];
1659 doCheck = false;
1646 doCheck = false;
1660 propagatedBuildInputs = with self; [];
1647 propagatedBuildInputs = with self; [];
1661 src = fetchurl {
1648 src = fetchurl {
1662 url = "https://pypi.python.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1649 url = "https://pypi.python.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1663 md5 = "c08cc030387e0b1fc53c5c7d964b35e2";
1650 md5 = "c08cc030387e0b1fc53c5c7d964b35e2";
1664 };
1651 };
1665 meta = {
1652 meta = {
1666 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1653 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1667 };
1654 };
1668 };
1655 };
1669 requests = super.buildPythonPackage {
1656 requests = super.buildPythonPackage {
1670 name = "requests-2.9.1";
1657 name = "requests-2.9.1";
1671 buildInputs = with self; [];
1658 buildInputs = with self; [];
1672 doCheck = false;
1659 doCheck = false;
1673 propagatedBuildInputs = with self; [];
1660 propagatedBuildInputs = with self; [];
1674 src = fetchurl {
1661 src = fetchurl {
1675 url = "https://pypi.python.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1662 url = "https://pypi.python.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1676 md5 = "0b7f480d19012ec52bab78292efd976d";
1663 md5 = "0b7f480d19012ec52bab78292efd976d";
1677 };
1664 };
1678 meta = {
1665 meta = {
1679 license = [ pkgs.lib.licenses.asl20 ];
1666 license = [ pkgs.lib.licenses.asl20 ];
1680 };
1667 };
1681 };
1668 };
1682 rhodecode-enterprise-ce = super.buildPythonPackage {
1669 rhodecode-enterprise-ce = super.buildPythonPackage {
1683 name = "rhodecode-enterprise-ce-4.12.0";
1670 name = "rhodecode-enterprise-ce-4.12.0";
1684 buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj];
1671 buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj];
1685 doCheck = true;
1672 doCheck = true;
1686 propagatedBuildInputs = with self; [setuptools-scm amqp authomatic Babel Beaker celery Chameleon channelstream click colander configobj cssselect decorator deform docutils dogpile.cache dogpile.core ecdsa FormEncode future futures gnureadline infrae.cache iso8601 itsdangerous Jinja2 billiard kombu lxml Mako Markdown MarkupSafe msgpack-python MySQL-python objgraph packaging Paste PasteDeploy PasteScript pathlib2 peppercorn psutil psycopg2 py-bcrypt pycrypto pycurl pyflakes pygments-markdown-lexer Pygments pyparsing pyramid-beaker pyramid-debugtoolbar pyramid-jinja2 pyramid-mako pyramid pysqlite python-dateutil python-ldap python-memcached python-pam pytz tzlocal pyzmq py-gfm recaptcha-client redis repoze.lru requests Routes setproctitle simplejson six SQLAlchemy sshpubkeys subprocess32 supervisor Tempita translationstring trollius urllib3 URLObject venusian WebError WebHelpers2 WebHelpers WebOb Whoosh wsgiref zope.cachedescriptors zope.deprecation zope.event zope.interface nbconvert bleach nbformat jupyter-client alembic invoke bumpversion transifex-client gevent greenlet gunicorn waitress uWSGI ipdb ipython CProfileV bottle rhodecode-tools appenlight-client pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage];
1673 propagatedBuildInputs = with self; [setuptools-scm amqp authomatic Babel Beaker celery Chameleon channelstream click colander configobj cssselect decorator deform docutils dogpile.cache dogpile.core ecdsa FormEncode future futures gnureadline infrae.cache iso8601 itsdangerous Jinja2 billiard kombu lxml Mako Markdown MarkupSafe msgpack-python MySQL-python objgraph packaging Paste PasteDeploy PasteScript pathlib2 peppercorn psutil psycopg2 py-bcrypt pycrypto pycurl pyflakes pygments-markdown-lexer Pygments pyparsing pyramid-beaker pyramid-debugtoolbar pyramid-jinja2 pyramid-mako pyramid pysqlite python-dateutil python-ldap python-memcached python-pam pytz tzlocal pyzmq py-gfm redis repoze.lru requests Routes setproctitle simplejson six SQLAlchemy sshpubkeys subprocess32 supervisor Tempita translationstring trollius urllib3 URLObject venusian WebError WebHelpers2 WebHelpers WebOb Whoosh wsgiref zope.cachedescriptors zope.deprecation zope.event zope.interface nbconvert bleach nbformat jupyter-client alembic invoke bumpversion transifex-client gevent greenlet gunicorn waitress uWSGI ipdb ipython CProfileV bottle rhodecode-tools appenlight-client pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage];
1687 src = ./.;
1674 src = ./.;
1688 meta = {
1675 meta = {
1689 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1676 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1690 };
1677 };
1691 };
1678 };
1692 rhodecode-tools = super.buildPythonPackage {
1679 rhodecode-tools = super.buildPythonPackage {
1693 name = "rhodecode-tools-0.14.1";
1680 name = "rhodecode-tools-0.14.1";
1694 buildInputs = with self; [];
1681 buildInputs = with self; [];
1695 doCheck = false;
1682 doCheck = false;
1696 propagatedBuildInputs = with self; [click future six Mako MarkupSafe requests elasticsearch elasticsearch-dsl urllib3 Whoosh];
1683 propagatedBuildInputs = with self; [click future six Mako MarkupSafe requests elasticsearch elasticsearch-dsl urllib3 Whoosh];
1697 src = fetchurl {
1684 src = fetchurl {
1698 url = "https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.14.1.tar.gz?md5=0b9c2caad160b68889f8172ea54af7b2";
1685 url = "https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.14.1.tar.gz?md5=0b9c2caad160b68889f8172ea54af7b2";
1699 md5 = "0b9c2caad160b68889f8172ea54af7b2";
1686 md5 = "0b9c2caad160b68889f8172ea54af7b2";
1700 };
1687 };
1701 meta = {
1688 meta = {
1702 license = [ { fullName = "AGPLv3 and Proprietary"; } ];
1689 license = [ { fullName = "AGPLv3 and Proprietary"; } ];
1703 };
1690 };
1704 };
1691 };
1705 scandir = super.buildPythonPackage {
1692 scandir = super.buildPythonPackage {
1706 name = "scandir-1.7";
1693 name = "scandir-1.7";
1707 buildInputs = with self; [];
1694 buildInputs = with self; [];
1708 doCheck = false;
1695 doCheck = false;
1709 propagatedBuildInputs = with self; [];
1696 propagatedBuildInputs = with self; [];
1710 src = fetchurl {
1697 src = fetchurl {
1711 url = "https://pypi.python.org/packages/13/bb/e541b74230bbf7a20a3949a2ee6631be299378a784f5445aa5d0047c192b/scandir-1.7.tar.gz";
1698 url = "https://pypi.python.org/packages/13/bb/e541b74230bbf7a20a3949a2ee6631be299378a784f5445aa5d0047c192b/scandir-1.7.tar.gz";
1712 md5 = "037e5f24d1a0e78b17faca72dea9555f";
1699 md5 = "037e5f24d1a0e78b17faca72dea9555f";
1713 };
1700 };
1714 meta = {
1701 meta = {
1715 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1702 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1716 };
1703 };
1717 };
1704 };
1718 setproctitle = super.buildPythonPackage {
1705 setproctitle = super.buildPythonPackage {
1719 name = "setproctitle-1.1.10";
1706 name = "setproctitle-1.1.10";
1720 buildInputs = with self; [];
1707 buildInputs = with self; [];
1721 doCheck = false;
1708 doCheck = false;
1722 propagatedBuildInputs = with self; [];
1709 propagatedBuildInputs = with self; [];
1723 src = fetchurl {
1710 src = fetchurl {
1724 url = "https://pypi.python.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1711 url = "https://pypi.python.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1725 md5 = "2dcdd1b761700a5a13252fea3dfd1977";
1712 md5 = "2dcdd1b761700a5a13252fea3dfd1977";
1726 };
1713 };
1727 meta = {
1714 meta = {
1728 license = [ pkgs.lib.licenses.bsdOriginal ];
1715 license = [ pkgs.lib.licenses.bsdOriginal ];
1729 };
1716 };
1730 };
1717 };
1731 setuptools = super.buildPythonPackage {
1718 setuptools = super.buildPythonPackage {
1732 name = "setuptools-30.1.0";
1719 name = "setuptools-30.1.0";
1733 buildInputs = with self; [];
1720 buildInputs = with self; [];
1734 doCheck = false;
1721 doCheck = false;
1735 propagatedBuildInputs = with self; [];
1722 propagatedBuildInputs = with self; [];
1736 src = fetchurl {
1723 src = fetchurl {
1737 url = "https://pypi.python.org/packages/1e/43/002c8616db9a3e7be23c2556e39b90a32bb40ba0dc652de1999d5334d372/setuptools-30.1.0.tar.gz";
1724 url = "https://pypi.python.org/packages/1e/43/002c8616db9a3e7be23c2556e39b90a32bb40ba0dc652de1999d5334d372/setuptools-30.1.0.tar.gz";
1738 md5 = "cac497f42e5096ac8df29e38d3f81c3e";
1725 md5 = "cac497f42e5096ac8df29e38d3f81c3e";
1739 };
1726 };
1740 meta = {
1727 meta = {
1741 license = [ pkgs.lib.licenses.mit ];
1728 license = [ pkgs.lib.licenses.mit ];
1742 };
1729 };
1743 };
1730 };
1744 setuptools-scm = super.buildPythonPackage {
1731 setuptools-scm = super.buildPythonPackage {
1745 name = "setuptools-scm-1.15.6";
1732 name = "setuptools-scm-1.15.6";
1746 buildInputs = with self; [];
1733 buildInputs = with self; [];
1747 doCheck = false;
1734 doCheck = false;
1748 propagatedBuildInputs = with self; [];
1735 propagatedBuildInputs = with self; [];
1749 src = fetchurl {
1736 src = fetchurl {
1750 url = "https://pypi.python.org/packages/03/6d/aafdd01edd227ee879b691455bf19895091872af7e48192bea1758c82032/setuptools_scm-1.15.6.tar.gz";
1737 url = "https://pypi.python.org/packages/03/6d/aafdd01edd227ee879b691455bf19895091872af7e48192bea1758c82032/setuptools_scm-1.15.6.tar.gz";
1751 md5 = "f17493d53f0d842bb0152f214775640b";
1738 md5 = "f17493d53f0d842bb0152f214775640b";
1752 };
1739 };
1753 meta = {
1740 meta = {
1754 license = [ pkgs.lib.licenses.mit ];
1741 license = [ pkgs.lib.licenses.mit ];
1755 };
1742 };
1756 };
1743 };
1757 simplegeneric = super.buildPythonPackage {
1744 simplegeneric = super.buildPythonPackage {
1758 name = "simplegeneric-0.8.1";
1745 name = "simplegeneric-0.8.1";
1759 buildInputs = with self; [];
1746 buildInputs = with self; [];
1760 doCheck = false;
1747 doCheck = false;
1761 propagatedBuildInputs = with self; [];
1748 propagatedBuildInputs = with self; [];
1762 src = fetchurl {
1749 src = fetchurl {
1763 url = "https://pypi.python.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1750 url = "https://pypi.python.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1764 md5 = "f9c1fab00fd981be588fc32759f474e3";
1751 md5 = "f9c1fab00fd981be588fc32759f474e3";
1765 };
1752 };
1766 meta = {
1753 meta = {
1767 license = [ pkgs.lib.licenses.zpt21 ];
1754 license = [ pkgs.lib.licenses.zpt21 ];
1768 };
1755 };
1769 };
1756 };
1770 simplejson = super.buildPythonPackage {
1757 simplejson = super.buildPythonPackage {
1771 name = "simplejson-3.11.1";
1758 name = "simplejson-3.11.1";
1772 buildInputs = with self; [];
1759 buildInputs = with self; [];
1773 doCheck = false;
1760 doCheck = false;
1774 propagatedBuildInputs = with self; [];
1761 propagatedBuildInputs = with self; [];
1775 src = fetchurl {
1762 src = fetchurl {
1776 url = "https://pypi.python.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz";
1763 url = "https://pypi.python.org/packages/08/48/c97b668d6da7d7bebe7ea1817a6f76394b0ec959cb04214ca833c34359df/simplejson-3.11.1.tar.gz";
1777 md5 = "6e2f1bd5fb0a926facf5d89d217a7183";
1764 md5 = "6e2f1bd5fb0a926facf5d89d217a7183";
1778 };
1765 };
1779 meta = {
1766 meta = {
1780 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1767 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1781 };
1768 };
1782 };
1769 };
1783 six = super.buildPythonPackage {
1770 six = super.buildPythonPackage {
1784 name = "six-1.11.0";
1771 name = "six-1.11.0";
1785 buildInputs = with self; [];
1772 buildInputs = with self; [];
1786 doCheck = false;
1773 doCheck = false;
1787 propagatedBuildInputs = with self; [];
1774 propagatedBuildInputs = with self; [];
1788 src = fetchurl {
1775 src = fetchurl {
1789 url = "https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1776 url = "https://pypi.python.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1790 md5 = "d12789f9baf7e9fb2524c0c64f1773f8";
1777 md5 = "d12789f9baf7e9fb2524c0c64f1773f8";
1791 };
1778 };
1792 meta = {
1779 meta = {
1793 license = [ pkgs.lib.licenses.mit ];
1780 license = [ pkgs.lib.licenses.mit ];
1794 };
1781 };
1795 };
1782 };
1796 sshpubkeys = super.buildPythonPackage {
1783 sshpubkeys = super.buildPythonPackage {
1797 name = "sshpubkeys-2.2.0";
1784 name = "sshpubkeys-2.2.0";
1798 buildInputs = with self; [];
1785 buildInputs = with self; [];
1799 doCheck = false;
1786 doCheck = false;
1800 propagatedBuildInputs = with self; [pycrypto ecdsa];
1787 propagatedBuildInputs = with self; [pycrypto ecdsa];
1801 src = fetchurl {
1788 src = fetchurl {
1802 url = "https://pypi.python.org/packages/27/da/337fabeb3dca6b62039a93ceaa636f25065e0ae92b575b1235342076cf0a/sshpubkeys-2.2.0.tar.gz";
1789 url = "https://pypi.python.org/packages/27/da/337fabeb3dca6b62039a93ceaa636f25065e0ae92b575b1235342076cf0a/sshpubkeys-2.2.0.tar.gz";
1803 md5 = "458e45f6b92b1afa84f0ffe1f1c90935";
1790 md5 = "458e45f6b92b1afa84f0ffe1f1c90935";
1804 };
1791 };
1805 meta = {
1792 meta = {
1806 license = [ pkgs.lib.licenses.bsdOriginal ];
1793 license = [ pkgs.lib.licenses.bsdOriginal ];
1807 };
1794 };
1808 };
1795 };
1809 subprocess32 = super.buildPythonPackage {
1796 subprocess32 = super.buildPythonPackage {
1810 name = "subprocess32-3.2.7";
1797 name = "subprocess32-3.2.7";
1811 buildInputs = with self; [];
1798 buildInputs = with self; [];
1812 doCheck = false;
1799 doCheck = false;
1813 propagatedBuildInputs = with self; [];
1800 propagatedBuildInputs = with self; [];
1814 src = fetchurl {
1801 src = fetchurl {
1815 url = "https://pypi.python.org/packages/b8/2f/49e53b0d0e94611a2dc624a1ad24d41b6d94d0f1b0a078443407ea2214c2/subprocess32-3.2.7.tar.gz";
1802 url = "https://pypi.python.org/packages/b8/2f/49e53b0d0e94611a2dc624a1ad24d41b6d94d0f1b0a078443407ea2214c2/subprocess32-3.2.7.tar.gz";
1816 md5 = "824c801e479d3e916879aae3e9c15e16";
1803 md5 = "824c801e479d3e916879aae3e9c15e16";
1817 };
1804 };
1818 meta = {
1805 meta = {
1819 license = [ pkgs.lib.licenses.psfl ];
1806 license = [ pkgs.lib.licenses.psfl ];
1820 };
1807 };
1821 };
1808 };
1822 supervisor = super.buildPythonPackage {
1809 supervisor = super.buildPythonPackage {
1823 name = "supervisor-3.3.4";
1810 name = "supervisor-3.3.4";
1824 buildInputs = with self; [];
1811 buildInputs = with self; [];
1825 doCheck = false;
1812 doCheck = false;
1826 propagatedBuildInputs = with self; [meld3];
1813 propagatedBuildInputs = with self; [meld3];
1827 src = fetchurl {
1814 src = fetchurl {
1828 url = "https://pypi.python.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz";
1815 url = "https://pypi.python.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz";
1829 md5 = "f1814d71d820ddfa8c86d46a72314cec";
1816 md5 = "f1814d71d820ddfa8c86d46a72314cec";
1830 };
1817 };
1831 meta = {
1818 meta = {
1832 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1819 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1833 };
1820 };
1834 };
1821 };
1835 termcolor = super.buildPythonPackage {
1822 termcolor = super.buildPythonPackage {
1836 name = "termcolor-1.1.0";
1823 name = "termcolor-1.1.0";
1837 buildInputs = with self; [];
1824 buildInputs = with self; [];
1838 doCheck = false;
1825 doCheck = false;
1839 propagatedBuildInputs = with self; [];
1826 propagatedBuildInputs = with self; [];
1840 src = fetchurl {
1827 src = fetchurl {
1841 url = "https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
1828 url = "https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
1842 md5 = "043e89644f8909d462fbbfa511c768df";
1829 md5 = "043e89644f8909d462fbbfa511c768df";
1843 };
1830 };
1844 meta = {
1831 meta = {
1845 license = [ pkgs.lib.licenses.mit ];
1832 license = [ pkgs.lib.licenses.mit ];
1846 };
1833 };
1847 };
1834 };
1848 testpath = super.buildPythonPackage {
1835 testpath = super.buildPythonPackage {
1849 name = "testpath-0.3.1";
1836 name = "testpath-0.3.1";
1850 buildInputs = with self; [];
1837 buildInputs = with self; [];
1851 doCheck = false;
1838 doCheck = false;
1852 propagatedBuildInputs = with self; [];
1839 propagatedBuildInputs = with self; [];
1853 src = fetchurl {
1840 src = fetchurl {
1854 url = "https://pypi.python.org/packages/f4/8b/b71e9ee10e5f751e9d959bc750ab122ba04187f5aa52aabdc4e63b0e31a7/testpath-0.3.1.tar.gz";
1841 url = "https://pypi.python.org/packages/f4/8b/b71e9ee10e5f751e9d959bc750ab122ba04187f5aa52aabdc4e63b0e31a7/testpath-0.3.1.tar.gz";
1855 md5 = "2cd5ed5522fda781bb497c9d80ae2fc9";
1842 md5 = "2cd5ed5522fda781bb497c9d80ae2fc9";
1856 };
1843 };
1857 meta = {
1844 meta = {
1858 license = [ pkgs.lib.licenses.mit ];
1845 license = [ pkgs.lib.licenses.mit ];
1859 };
1846 };
1860 };
1847 };
1861 traitlets = super.buildPythonPackage {
1848 traitlets = super.buildPythonPackage {
1862 name = "traitlets-4.3.2";
1849 name = "traitlets-4.3.2";
1863 buildInputs = with self; [];
1850 buildInputs = with self; [];
1864 doCheck = false;
1851 doCheck = false;
1865 propagatedBuildInputs = with self; [ipython-genutils six decorator enum34];
1852 propagatedBuildInputs = with self; [ipython-genutils six decorator enum34];
1866 src = fetchurl {
1853 src = fetchurl {
1867 url = "https://pypi.python.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
1854 url = "https://pypi.python.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
1868 md5 = "3068663f2f38fd939a9eb3a500ccc154";
1855 md5 = "3068663f2f38fd939a9eb3a500ccc154";
1869 };
1856 };
1870 meta = {
1857 meta = {
1871 license = [ pkgs.lib.licenses.bsdOriginal ];
1858 license = [ pkgs.lib.licenses.bsdOriginal ];
1872 };
1859 };
1873 };
1860 };
1874 transifex-client = super.buildPythonPackage {
1861 transifex-client = super.buildPythonPackage {
1875 name = "transifex-client-0.12.5";
1862 name = "transifex-client-0.12.5";
1876 buildInputs = with self; [];
1863 buildInputs = with self; [];
1877 doCheck = false;
1864 doCheck = false;
1878 propagatedBuildInputs = with self; [urllib3 six];
1865 propagatedBuildInputs = with self; [urllib3 six];
1879 src = fetchurl {
1866 src = fetchurl {
1880 url = "https://pypi.python.org/packages/7b/86/60f31a0c9b8d0b1266ce15b6c80b55f88522140c8acfc395d5aec5e23475/transifex-client-0.12.5.tar.gz";
1867 url = "https://pypi.python.org/packages/7b/86/60f31a0c9b8d0b1266ce15b6c80b55f88522140c8acfc395d5aec5e23475/transifex-client-0.12.5.tar.gz";
1881 md5 = "e6e278117b23f60702c06e203b7e51ae";
1868 md5 = "e6e278117b23f60702c06e203b7e51ae";
1882 };
1869 };
1883 meta = {
1870 meta = {
1884 license = [ pkgs.lib.licenses.gpl2 ];
1871 license = [ pkgs.lib.licenses.gpl2 ];
1885 };
1872 };
1886 };
1873 };
1887 translationstring = super.buildPythonPackage {
1874 translationstring = super.buildPythonPackage {
1888 name = "translationstring-1.3";
1875 name = "translationstring-1.3";
1889 buildInputs = with self; [];
1876 buildInputs = with self; [];
1890 doCheck = false;
1877 doCheck = false;
1891 propagatedBuildInputs = with self; [];
1878 propagatedBuildInputs = with self; [];
1892 src = fetchurl {
1879 src = fetchurl {
1893 url = "https://pypi.python.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
1880 url = "https://pypi.python.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
1894 md5 = "a4b62e0f3c189c783a1685b3027f7c90";
1881 md5 = "a4b62e0f3c189c783a1685b3027f7c90";
1895 };
1882 };
1896 meta = {
1883 meta = {
1897 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
1884 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
1898 };
1885 };
1899 };
1886 };
1900 trollius = super.buildPythonPackage {
1887 trollius = super.buildPythonPackage {
1901 name = "trollius-1.0.4";
1888 name = "trollius-1.0.4";
1902 buildInputs = with self; [];
1889 buildInputs = with self; [];
1903 doCheck = false;
1890 doCheck = false;
1904 propagatedBuildInputs = with self; [futures];
1891 propagatedBuildInputs = with self; [futures];
1905 src = fetchurl {
1892 src = fetchurl {
1906 url = "https://pypi.python.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz";
1893 url = "https://pypi.python.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz";
1907 md5 = "3631a464d49d0cbfd30ab2918ef2b783";
1894 md5 = "3631a464d49d0cbfd30ab2918ef2b783";
1908 };
1895 };
1909 meta = {
1896 meta = {
1910 license = [ pkgs.lib.licenses.asl20 ];
1897 license = [ pkgs.lib.licenses.asl20 ];
1911 };
1898 };
1912 };
1899 };
1913 tzlocal = super.buildPythonPackage {
1900 tzlocal = super.buildPythonPackage {
1914 name = "tzlocal-1.5.1";
1901 name = "tzlocal-1.5.1";
1915 buildInputs = with self; [];
1902 buildInputs = with self; [];
1916 doCheck = false;
1903 doCheck = false;
1917 propagatedBuildInputs = with self; [pytz];
1904 propagatedBuildInputs = with self; [pytz];
1918 src = fetchurl {
1905 src = fetchurl {
1919 url = "https://pypi.python.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
1906 url = "https://pypi.python.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
1920 md5 = "4553be891efa0812c4adfb0c6e818eec";
1907 md5 = "4553be891efa0812c4adfb0c6e818eec";
1921 };
1908 };
1922 meta = {
1909 meta = {
1923 license = [ pkgs.lib.licenses.mit ];
1910 license = [ pkgs.lib.licenses.mit ];
1924 };
1911 };
1925 };
1912 };
1926 uWSGI = super.buildPythonPackage {
1913 uWSGI = super.buildPythonPackage {
1927 name = "uWSGI-2.0.15";
1914 name = "uWSGI-2.0.15";
1928 buildInputs = with self; [];
1915 buildInputs = with self; [];
1929 doCheck = false;
1916 doCheck = false;
1930 propagatedBuildInputs = with self; [];
1917 propagatedBuildInputs = with self; [];
1931 src = fetchurl {
1918 src = fetchurl {
1932 url = "https://pypi.python.org/packages/bb/0a/45e5aa80dc135889594bb371c082d20fb7ee7303b174874c996888cc8511/uwsgi-2.0.15.tar.gz";
1919 url = "https://pypi.python.org/packages/bb/0a/45e5aa80dc135889594bb371c082d20fb7ee7303b174874c996888cc8511/uwsgi-2.0.15.tar.gz";
1933 md5 = "fc50bd9e83b7602fa474b032167010a7";
1920 md5 = "fc50bd9e83b7602fa474b032167010a7";
1934 };
1921 };
1935 meta = {
1922 meta = {
1936 license = [ pkgs.lib.licenses.gpl2 ];
1923 license = [ pkgs.lib.licenses.gpl2 ];
1937 };
1924 };
1938 };
1925 };
1939 urllib3 = super.buildPythonPackage {
1926 urllib3 = super.buildPythonPackage {
1940 name = "urllib3-1.16";
1927 name = "urllib3-1.16";
1941 buildInputs = with self; [];
1928 buildInputs = with self; [];
1942 doCheck = false;
1929 doCheck = false;
1943 propagatedBuildInputs = with self; [];
1930 propagatedBuildInputs = with self; [];
1944 src = fetchurl {
1931 src = fetchurl {
1945 url = "https://pypi.python.org/packages/3b/f0/e763169124e3f5db0926bc3dbfcd580a105f9ca44cf5d8e6c7a803c9f6b5/urllib3-1.16.tar.gz";
1932 url = "https://pypi.python.org/packages/3b/f0/e763169124e3f5db0926bc3dbfcd580a105f9ca44cf5d8e6c7a803c9f6b5/urllib3-1.16.tar.gz";
1946 md5 = "fcaab1c5385c57deeb7053d3d7d81d59";
1933 md5 = "fcaab1c5385c57deeb7053d3d7d81d59";
1947 };
1934 };
1948 meta = {
1935 meta = {
1949 license = [ pkgs.lib.licenses.mit ];
1936 license = [ pkgs.lib.licenses.mit ];
1950 };
1937 };
1951 };
1938 };
1952 venusian = super.buildPythonPackage {
1939 venusian = super.buildPythonPackage {
1953 name = "venusian-1.1.0";
1940 name = "venusian-1.1.0";
1954 buildInputs = with self; [];
1941 buildInputs = with self; [];
1955 doCheck = false;
1942 doCheck = false;
1956 propagatedBuildInputs = with self; [];
1943 propagatedBuildInputs = with self; [];
1957 src = fetchurl {
1944 src = fetchurl {
1958 url = "https://pypi.python.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz";
1945 url = "https://pypi.python.org/packages/38/24/b4b470ab9e0a2e2e9b9030c7735828c8934b4c6b45befd1bb713ec2aeb2d/venusian-1.1.0.tar.gz";
1959 md5 = "56bc5e6756e4bda37bcdb94f74a72b8f";
1946 md5 = "56bc5e6756e4bda37bcdb94f74a72b8f";
1960 };
1947 };
1961 meta = {
1948 meta = {
1962 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1949 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1963 };
1950 };
1964 };
1951 };
1965 vine = super.buildPythonPackage {
1952 vine = super.buildPythonPackage {
1966 name = "vine-1.1.4";
1953 name = "vine-1.1.4";
1967 buildInputs = with self; [];
1954 buildInputs = with self; [];
1968 doCheck = false;
1955 doCheck = false;
1969 propagatedBuildInputs = with self; [];
1956 propagatedBuildInputs = with self; [];
1970 src = fetchurl {
1957 src = fetchurl {
1971 url = "https://pypi.python.org/packages/32/23/36284986e011f3c130d802c3c66abd8f1aef371eae110ddf80c5ae22e1ff/vine-1.1.4.tar.gz";
1958 url = "https://pypi.python.org/packages/32/23/36284986e011f3c130d802c3c66abd8f1aef371eae110ddf80c5ae22e1ff/vine-1.1.4.tar.gz";
1972 md5 = "9fdb971e7fd15b181b84f3bfcf20d11c";
1959 md5 = "9fdb971e7fd15b181b84f3bfcf20d11c";
1973 };
1960 };
1974 meta = {
1961 meta = {
1975 license = [ pkgs.lib.licenses.bsdOriginal ];
1962 license = [ pkgs.lib.licenses.bsdOriginal ];
1976 };
1963 };
1977 };
1964 };
1978 waitress = super.buildPythonPackage {
1965 waitress = super.buildPythonPackage {
1979 name = "waitress-1.1.0";
1966 name = "waitress-1.1.0";
1980 buildInputs = with self; [];
1967 buildInputs = with self; [];
1981 doCheck = false;
1968 doCheck = false;
1982 propagatedBuildInputs = with self; [];
1969 propagatedBuildInputs = with self; [];
1983 src = fetchurl {
1970 src = fetchurl {
1984 url = "https://pypi.python.org/packages/3c/68/1c10dd5c556872ceebe88483b0436140048d39de83a84a06a8baa8136f4f/waitress-1.1.0.tar.gz";
1971 url = "https://pypi.python.org/packages/3c/68/1c10dd5c556872ceebe88483b0436140048d39de83a84a06a8baa8136f4f/waitress-1.1.0.tar.gz";
1985 md5 = "0f1eb7fdfdbf2e6d18decbda1733045c";
1972 md5 = "0f1eb7fdfdbf2e6d18decbda1733045c";
1986 };
1973 };
1987 meta = {
1974 meta = {
1988 license = [ pkgs.lib.licenses.zpt21 ];
1975 license = [ pkgs.lib.licenses.zpt21 ];
1989 };
1976 };
1990 };
1977 };
1991 wcwidth = super.buildPythonPackage {
1978 wcwidth = super.buildPythonPackage {
1992 name = "wcwidth-0.1.7";
1979 name = "wcwidth-0.1.7";
1993 buildInputs = with self; [];
1980 buildInputs = with self; [];
1994 doCheck = false;
1981 doCheck = false;
1995 propagatedBuildInputs = with self; [];
1982 propagatedBuildInputs = with self; [];
1996 src = fetchurl {
1983 src = fetchurl {
1997 url = "https://pypi.python.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
1984 url = "https://pypi.python.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
1998 md5 = "b3b6a0a08f0c8a34d1de8cf44150a4ad";
1985 md5 = "b3b6a0a08f0c8a34d1de8cf44150a4ad";
1999 };
1986 };
2000 meta = {
1987 meta = {
2001 license = [ pkgs.lib.licenses.mit ];
1988 license = [ pkgs.lib.licenses.mit ];
2002 };
1989 };
2003 };
1990 };
2004 webencodings = super.buildPythonPackage {
1991 webencodings = super.buildPythonPackage {
2005 name = "webencodings-0.5.1";
1992 name = "webencodings-0.5.1";
2006 buildInputs = with self; [];
1993 buildInputs = with self; [];
2007 doCheck = false;
1994 doCheck = false;
2008 propagatedBuildInputs = with self; [];
1995 propagatedBuildInputs = with self; [];
2009 src = fetchurl {
1996 src = fetchurl {
2010 url = "https://pypi.python.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
1997 url = "https://pypi.python.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
2011 md5 = "32f6e261d52e57bf7e1c4d41546d15b8";
1998 md5 = "32f6e261d52e57bf7e1c4d41546d15b8";
2012 };
1999 };
2013 meta = {
2000 meta = {
2014 license = [ pkgs.lib.licenses.bsdOriginal ];
2001 license = [ pkgs.lib.licenses.bsdOriginal ];
2015 };
2002 };
2016 };
2003 };
2017 ws4py = super.buildPythonPackage {
2004 ws4py = super.buildPythonPackage {
2018 name = "ws4py-0.4.3";
2005 name = "ws4py-0.4.3";
2019 buildInputs = with self; [];
2006 buildInputs = with self; [];
2020 doCheck = false;
2007 doCheck = false;
2021 propagatedBuildInputs = with self; [];
2008 propagatedBuildInputs = with self; [];
2022 src = fetchurl {
2009 src = fetchurl {
2023 url = "https://pypi.python.org/packages/fa/a1/33c43a4304ac3b4dc81deb93cbd329de9297dd034d75c47cce64fda806bc/ws4py-0.4.3.tar.gz";
2010 url = "https://pypi.python.org/packages/fa/a1/33c43a4304ac3b4dc81deb93cbd329de9297dd034d75c47cce64fda806bc/ws4py-0.4.3.tar.gz";
2024 md5 = "d5834cf7d3965bb0da31bbb02bd8513a";
2011 md5 = "d5834cf7d3965bb0da31bbb02bd8513a";
2025 };
2012 };
2026 meta = {
2013 meta = {
2027 license = [ pkgs.lib.licenses.bsdOriginal ];
2014 license = [ pkgs.lib.licenses.bsdOriginal ];
2028 };
2015 };
2029 };
2016 };
2030 wsgiref = super.buildPythonPackage {
2017 wsgiref = super.buildPythonPackage {
2031 name = "wsgiref-0.1.2";
2018 name = "wsgiref-0.1.2";
2032 buildInputs = with self; [];
2019 buildInputs = with self; [];
2033 doCheck = false;
2020 doCheck = false;
2034 propagatedBuildInputs = with self; [];
2021 propagatedBuildInputs = with self; [];
2035 src = fetchurl {
2022 src = fetchurl {
2036 url = "https://pypi.python.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2023 url = "https://pypi.python.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2037 md5 = "29b146e6ebd0f9fb119fe321f7bcf6cb";
2024 md5 = "29b146e6ebd0f9fb119fe321f7bcf6cb";
2038 };
2025 };
2039 meta = {
2026 meta = {
2040 license = [ { fullName = "PSF or ZPL"; } ];
2027 license = [ { fullName = "PSF or ZPL"; } ];
2041 };
2028 };
2042 };
2029 };
2043 zope.cachedescriptors = super.buildPythonPackage {
2030 zope.cachedescriptors = super.buildPythonPackage {
2044 name = "zope.cachedescriptors-4.3.1";
2031 name = "zope.cachedescriptors-4.3.1";
2045 buildInputs = with self; [];
2032 buildInputs = with self; [];
2046 doCheck = false;
2033 doCheck = false;
2047 propagatedBuildInputs = with self; [setuptools];
2034 propagatedBuildInputs = with self; [setuptools];
2048 src = fetchurl {
2035 src = fetchurl {
2049 url = "https://pypi.python.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2036 url = "https://pypi.python.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2050 md5 = "42f3693f43bc93f3b1eb86940f58acf3";
2037 md5 = "42f3693f43bc93f3b1eb86940f58acf3";
2051 };
2038 };
2052 meta = {
2039 meta = {
2053 license = [ pkgs.lib.licenses.zpt21 ];
2040 license = [ pkgs.lib.licenses.zpt21 ];
2054 };
2041 };
2055 };
2042 };
2056 zope.deprecation = super.buildPythonPackage {
2043 zope.deprecation = super.buildPythonPackage {
2057 name = "zope.deprecation-4.3.0";
2044 name = "zope.deprecation-4.3.0";
2058 buildInputs = with self; [];
2045 buildInputs = with self; [];
2059 doCheck = false;
2046 doCheck = false;
2060 propagatedBuildInputs = with self; [setuptools];
2047 propagatedBuildInputs = with self; [setuptools];
2061 src = fetchurl {
2048 src = fetchurl {
2062 url = "https://pypi.python.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz";
2049 url = "https://pypi.python.org/packages/a1/18/2dc5e6bfe64fdc3b79411b67464c55bb0b43b127051a20f7f492ab767758/zope.deprecation-4.3.0.tar.gz";
2063 md5 = "2166b2cb7e0e96a21104e6f8f9b696bb";
2050 md5 = "2166b2cb7e0e96a21104e6f8f9b696bb";
2064 };
2051 };
2065 meta = {
2052 meta = {
2066 license = [ pkgs.lib.licenses.zpt21 ];
2053 license = [ pkgs.lib.licenses.zpt21 ];
2067 };
2054 };
2068 };
2055 };
2069 zope.event = super.buildPythonPackage {
2056 zope.event = super.buildPythonPackage {
2070 name = "zope.event-4.3.0";
2057 name = "zope.event-4.3.0";
2071 buildInputs = with self; [];
2058 buildInputs = with self; [];
2072 doCheck = false;
2059 doCheck = false;
2073 propagatedBuildInputs = with self; [setuptools];
2060 propagatedBuildInputs = with self; [setuptools];
2074 src = fetchurl {
2061 src = fetchurl {
2075 url = "https://pypi.python.org/packages/9e/d0/54ba59f19a0635f6591b74be259cf6fbf67e73f4edda27b5cd0cf4d26efa/zope.event-4.3.0.tar.gz";
2062 url = "https://pypi.python.org/packages/9e/d0/54ba59f19a0635f6591b74be259cf6fbf67e73f4edda27b5cd0cf4d26efa/zope.event-4.3.0.tar.gz";
2076 md5 = "8ca737960741c6fd112972f3313303bd";
2063 md5 = "8ca737960741c6fd112972f3313303bd";
2077 };
2064 };
2078 meta = {
2065 meta = {
2079 license = [ pkgs.lib.licenses.zpt21 ];
2066 license = [ pkgs.lib.licenses.zpt21 ];
2080 };
2067 };
2081 };
2068 };
2082 zope.interface = super.buildPythonPackage {
2069 zope.interface = super.buildPythonPackage {
2083 name = "zope.interface-4.4.3";
2070 name = "zope.interface-4.4.3";
2084 buildInputs = with self; [];
2071 buildInputs = with self; [];
2085 doCheck = false;
2072 doCheck = false;
2086 propagatedBuildInputs = with self; [setuptools];
2073 propagatedBuildInputs = with self; [setuptools];
2087 src = fetchurl {
2074 src = fetchurl {
2088 url = "https://pypi.python.org/packages/bd/d2/25349ed41f9dcff7b3baf87bd88a4c82396cf6e02f1f42bb68657a3132af/zope.interface-4.4.3.tar.gz";
2075 url = "https://pypi.python.org/packages/bd/d2/25349ed41f9dcff7b3baf87bd88a4c82396cf6e02f1f42bb68657a3132af/zope.interface-4.4.3.tar.gz";
2089 md5 = "8700a4f527c1203b34b10c2b4e7a6912";
2076 md5 = "8700a4f527c1203b34b10c2b4e7a6912";
2090 };
2077 };
2091 meta = {
2078 meta = {
2092 license = [ pkgs.lib.licenses.zpt21 ];
2079 license = [ pkgs.lib.licenses.zpt21 ];
2093 };
2080 };
2094 };
2081 };
2095
2082
2096 ### Test requirements
2083 ### Test requirements
2097
2084
2098
2085
2099 }
2086 }
@@ -1,132 +1,131 b''
1 ## core
1 ## core
2 setuptools==30.1.0
2 setuptools==30.1.0
3 setuptools-scm==1.15.6
3 setuptools-scm==1.15.6
4
4
5 amqp==2.2.2
5 amqp==2.2.2
6 authomatic==0.1.0.post1
6 authomatic==0.1.0.post1
7 Babel==1.3
7 Babel==1.3
8 Beaker==1.9.1
8 Beaker==1.9.1
9 celery==4.1.0
9 celery==4.1.0
10 Chameleon==2.24
10 Chameleon==2.24
11 channelstream==0.5.2
11 channelstream==0.5.2
12 click==6.6
12 click==6.6
13 colander==1.4.0
13 colander==1.4.0
14 configobj==5.0.6
14 configobj==5.0.6
15 cssselect==1.0.1
15 cssselect==1.0.1
16 decorator==4.1.2
16 decorator==4.1.2
17 deform==2.0.4
17 deform==2.0.4
18 docutils==0.14.0
18 docutils==0.14.0
19 dogpile.cache==0.6.4
19 dogpile.cache==0.6.4
20 dogpile.core==0.4.1
20 dogpile.core==0.4.1
21 ecdsa==0.13
21 ecdsa==0.13
22 FormEncode==1.2.4
22 FormEncode==1.2.4
23 future==0.14.3
23 future==0.14.3
24 futures==3.0.2
24 futures==3.0.2
25 gnureadline==6.3.8
25 gnureadline==6.3.8
26 infrae.cache==1.0.1
26 infrae.cache==1.0.1
27 iso8601==0.1.12
27 iso8601==0.1.12
28 itsdangerous==0.24
28 itsdangerous==0.24
29 Jinja2==2.9.6
29 Jinja2==2.9.6
30 billiard==3.5.0.3
30 billiard==3.5.0.3
31 kombu==4.1.0
31 kombu==4.1.0
32 lxml==3.7.3
32 lxml==3.7.3
33 Mako==1.0.7
33 Mako==1.0.7
34 Markdown==2.6.11
34 Markdown==2.6.11
35 MarkupSafe==1.0.0
35 MarkupSafe==1.0.0
36 msgpack-python==0.4.8
36 msgpack-python==0.4.8
37 MySQL-python==1.2.5
37 MySQL-python==1.2.5
38 objgraph==3.1.1
38 objgraph==3.1.1
39 packaging==15.2
39 packaging==15.2
40 Paste==2.0.3
40 Paste==2.0.3
41 PasteDeploy==1.5.2
41 PasteDeploy==1.5.2
42 PasteScript==2.0.2
42 PasteScript==2.0.2
43 pathlib2==2.3.0
43 pathlib2==2.3.0
44 peppercorn==0.5
44 peppercorn==0.5
45 psutil==5.4.3
45 psutil==5.4.3
46 psycopg2==2.7.3.2
46 psycopg2==2.7.3.2
47 py-bcrypt==0.4
47 py-bcrypt==0.4
48 pycrypto==2.6.1
48 pycrypto==2.6.1
49 pycurl==7.19.5
49 pycurl==7.19.5
50 pyflakes==0.8.1
50 pyflakes==0.8.1
51 pygments-markdown-lexer==0.1.0.dev39
51 pygments-markdown-lexer==0.1.0.dev39
52 Pygments==2.2.0
52 Pygments==2.2.0
53 pyparsing==1.5.7
53 pyparsing==1.5.7
54 pyramid-beaker==0.8
54 pyramid-beaker==0.8
55 pyramid-debugtoolbar==4.3.0
55 pyramid-debugtoolbar==4.3.0
56 pyramid-jinja2==2.7
56 pyramid-jinja2==2.7
57 pyramid-mako==1.0.2
57 pyramid-mako==1.0.2
58 pyramid==1.9.1
58 pyramid==1.9.1
59 pysqlite==2.8.3
59 pysqlite==2.8.3
60 python-dateutil
60 python-dateutil
61 python-ldap==2.4.45
61 python-ldap==2.4.45
62 python-memcached==1.58
62 python-memcached==1.58
63 python-pam==1.8.2
63 python-pam==1.8.2
64 pytz==2018.3
64 pytz==2018.3
65 tzlocal==1.5.1
65 tzlocal==1.5.1
66 pyzmq==14.6.0
66 pyzmq==14.6.0
67 py-gfm==0.1.3
67 py-gfm==0.1.3
68 recaptcha-client==1.0.6
69 redis==2.10.6
68 redis==2.10.6
70 repoze.lru==0.7
69 repoze.lru==0.7
71 requests==2.9.1
70 requests==2.9.1
72 Routes==2.4.1
71 Routes==2.4.1
73 setproctitle==1.1.10
72 setproctitle==1.1.10
74 simplejson==3.11.1
73 simplejson==3.11.1
75 six==1.11.0
74 six==1.11.0
76 SQLAlchemy==1.1.15
75 SQLAlchemy==1.1.15
77 sshpubkeys==2.2.0
76 sshpubkeys==2.2.0
78 subprocess32==3.2.7
77 subprocess32==3.2.7
79 supervisor==3.3.4
78 supervisor==3.3.4
80 Tempita==0.5.2
79 Tempita==0.5.2
81 translationstring==1.3
80 translationstring==1.3
82 trollius==1.0.4
81 trollius==1.0.4
83 urllib3==1.16
82 urllib3==1.16
84 URLObject==2.4.0
83 URLObject==2.4.0
85 venusian==1.1.0
84 venusian==1.1.0
86 WebError==0.10.3
85 WebError==0.10.3
87 WebHelpers2==2.0
86 WebHelpers2==2.0
88 WebHelpers==1.3
87 WebHelpers==1.3
89 WebOb==1.7.4
88 WebOb==1.7.4
90 Whoosh==2.7.4
89 Whoosh==2.7.4
91 wsgiref==0.1.2
90 wsgiref==0.1.2
92 zope.cachedescriptors==4.3.1
91 zope.cachedescriptors==4.3.1
93 zope.deprecation==4.3.0
92 zope.deprecation==4.3.0
94 zope.event==4.3.0
93 zope.event==4.3.0
95 zope.interface==4.4.3
94 zope.interface==4.4.3
96
95
97
96
98 # IPYTHON RENDERING
97 # IPYTHON RENDERING
99 # entrypoints backport, pypi version doesn't support egg installs
98 # entrypoints backport, pypi version doesn't support egg installs
100 https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313#egg=entrypoints==0.2.2.rhodecode-upstream1
99 https://code.rhodecode.com/upstream/entrypoints/archive/96e6d645684e1af3d7df5b5272f3fe85a546b233.tar.gz?md5=7db37771aea9ac9fefe093e5d6987313#egg=entrypoints==0.2.2.rhodecode-upstream1
101 nbconvert==5.3.1
100 nbconvert==5.3.1
102 bleach==2.1.2
101 bleach==2.1.2
103 nbformat==4.4.0
102 nbformat==4.4.0
104 jupyter_client==5.0.0
103 jupyter_client==5.0.0
105
104
106 ## cli tools
105 ## cli tools
107 alembic==0.9.8
106 alembic==0.9.8
108 invoke==0.13.0
107 invoke==0.13.0
109 bumpversion==0.5.3
108 bumpversion==0.5.3
110 transifex-client==0.12.5
109 transifex-client==0.12.5
111
110
112 ## http servers
111 ## http servers
113 gevent==1.2.2
112 gevent==1.2.2
114 greenlet==0.4.13
113 greenlet==0.4.13
115 gunicorn==19.7.1
114 gunicorn==19.7.1
116 waitress==1.1.0
115 waitress==1.1.0
117 uWSGI==2.0.15
116 uWSGI==2.0.15
118
117
119 ## debug
118 ## debug
120 ipdb==0.10.3
119 ipdb==0.10.3
121 ipython==5.1.0
120 ipython==5.1.0
122 CProfileV==1.0.7
121 CProfileV==1.0.7
123 bottle==0.12.13
122 bottle==0.12.13
124
123
125 ## rhodecode-tools, special case
124 ## rhodecode-tools, special case
126 https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.14.1.tar.gz?md5=0b9c2caad160b68889f8172ea54af7b2#egg=rhodecode-tools==0.14.1
125 https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.14.1.tar.gz?md5=0b9c2caad160b68889f8172ea54af7b2#egg=rhodecode-tools==0.14.1
127
126
128 ## appenlight
127 ## appenlight
129 appenlight-client==0.6.25
128 appenlight-client==0.6.25
130
129
131 ## test related requirements
130 ## test related requirements
132 -r requirements_test.txt
131 -r requirements_test.txt
@@ -1,133 +1,133 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2016-2018 RhodeCode GmbH
3 # Copyright (C) 2016-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
21
22 import mock
22 import mock
23 import pytest
23 import pytest
24
24
25 from rhodecode.apps._base import ADMIN_PREFIX
25 from rhodecode.apps._base import ADMIN_PREFIX
26 from rhodecode.apps.login.views import LoginView, CaptchaData
26 from rhodecode.apps.login.views import LoginView, CaptchaData
27 from rhodecode.model.settings import SettingsModel
27 from rhodecode.model.settings import SettingsModel
28 from rhodecode.lib.utils2 import AttributeDict
28 from rhodecode.lib.utils2 import AttributeDict
29 from rhodecode.tests.utils import AssertResponse
29 from rhodecode.tests.utils import AssertResponse
30
30
31
31
32 class RhodeCodeSetting(object):
32 class RhodeCodeSetting(object):
33 def __init__(self, name, value):
33 def __init__(self, name, value):
34 self.name = name
34 self.name = name
35 self.value = value
35 self.value = value
36
36
37 def __enter__(self):
37 def __enter__(self):
38 from rhodecode.model.settings import SettingsModel
38 from rhodecode.model.settings import SettingsModel
39 model = SettingsModel()
39 model = SettingsModel()
40 self.old_setting = model.get_setting_by_name(self.name)
40 self.old_setting = model.get_setting_by_name(self.name)
41 model.create_or_update_setting(name=self.name, val=self.value)
41 model.create_or_update_setting(name=self.name, val=self.value)
42 return self
42 return self
43
43
44 def __exit__(self, exc_type, exc_val, exc_tb):
44 def __exit__(self, exc_type, exc_val, exc_tb):
45 model = SettingsModel()
45 model = SettingsModel()
46 if self.old_setting:
46 if self.old_setting:
47 model.create_or_update_setting(
47 model.create_or_update_setting(
48 name=self.name, val=self.old_setting.app_settings_value)
48 name=self.name, val=self.old_setting.app_settings_value)
49 else:
49 else:
50 model.create_or_update_setting(name=self.name)
50 model.create_or_update_setting(name=self.name)
51
51
52
52
53 class TestRegisterCaptcha(object):
53 class TestRegisterCaptcha(object):
54
54
55 @pytest.mark.parametrize('private_key, public_key, expected', [
55 @pytest.mark.parametrize('private_key, public_key, expected', [
56 ('', '', CaptchaData(False, '', '')),
56 ('', '', CaptchaData(False, '', '')),
57 ('', 'pubkey', CaptchaData(False, '', 'pubkey')),
57 ('', 'pubkey', CaptchaData(False, '', 'pubkey')),
58 ('privkey', '', CaptchaData(True, 'privkey', '')),
58 ('privkey', '', CaptchaData(True, 'privkey', '')),
59 ('privkey', 'pubkey', CaptchaData(True, 'privkey', 'pubkey')),
59 ('privkey', 'pubkey', CaptchaData(True, 'privkey', 'pubkey')),
60 ])
60 ])
61 def test_get_captcha_data(self, private_key, public_key, expected,
61 def test_get_captcha_data(self, private_key, public_key, expected,
62 request_stub, user_util):
62 request_stub, user_util):
63 request_stub.user = user_util.create_user().AuthUser()
63 request_stub.user = user_util.create_user().AuthUser()
64 request_stub.matched_route = AttributeDict({'name': 'login'})
64 request_stub.matched_route = AttributeDict({'name': 'login'})
65 login_view = LoginView(mock.Mock(), request_stub)
65 login_view = LoginView(mock.Mock(), request_stub)
66
66
67 with RhodeCodeSetting('captcha_private_key', private_key):
67 with RhodeCodeSetting('captcha_private_key', private_key):
68 with RhodeCodeSetting('captcha_public_key', public_key):
68 with RhodeCodeSetting('captcha_public_key', public_key):
69 captcha = login_view._get_captcha_data()
69 captcha = login_view._get_captcha_data()
70 assert captcha == expected
70 assert captcha == expected
71
71
72 @pytest.mark.parametrize('active', [False, True])
72 @pytest.mark.parametrize('active', [False, True])
73 @mock.patch.object(LoginView, '_get_captcha_data')
73 @mock.patch.object(LoginView, '_get_captcha_data')
74 def test_private_key_does_not_leak_to_html(
74 def test_private_key_does_not_leak_to_html(
75 self, m_get_captcha_data, active, app):
75 self, m_get_captcha_data, active, app):
76 captcha = CaptchaData(
76 captcha = CaptchaData(
77 active=active, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
77 active=active, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
78 m_get_captcha_data.return_value = captcha
78 m_get_captcha_data.return_value = captcha
79
79
80 response = app.get(ADMIN_PREFIX + '/register')
80 response = app.get(ADMIN_PREFIX + '/register')
81 assert 'PRIVATE_KEY' not in response
81 assert 'PRIVATE_KEY' not in response
82
82
83 @pytest.mark.parametrize('active', [False, True])
83 @pytest.mark.parametrize('active', [False, True])
84 @mock.patch.object(LoginView, '_get_captcha_data')
84 @mock.patch.object(LoginView, '_get_captcha_data')
85 def test_register_view_renders_captcha(
85 def test_register_view_renders_captcha(
86 self, m_get_captcha_data, active, app):
86 self, m_get_captcha_data, active, app):
87 captcha = CaptchaData(
87 captcha = CaptchaData(
88 active=active, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
88 active=active, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
89 m_get_captcha_data.return_value = captcha
89 m_get_captcha_data.return_value = captcha
90
90
91 response = app.get(ADMIN_PREFIX + '/register')
91 response = app.get(ADMIN_PREFIX + '/register')
92
92
93 assertr = AssertResponse(response)
93 assertr = AssertResponse(response)
94 if active:
94 if active:
95 assertr.one_element_exists('#recaptcha_field')
95 assertr.one_element_exists('#recaptcha_field')
96 else:
96 else:
97 assertr.no_element_exists('#recaptcha_field')
97 assertr.no_element_exists('#recaptcha_field')
98
98
99 @pytest.mark.parametrize('valid', [False, True])
99 @pytest.mark.parametrize('valid', [False, True])
100 @mock.patch('rhodecode.apps.login.views.submit')
100 @mock.patch.object(LoginView, 'validate_captcha')
101 @mock.patch.object(LoginView, '_get_captcha_data')
101 @mock.patch.object(LoginView, '_get_captcha_data')
102 def test_register_with_active_captcha(
102 def test_register_with_active_captcha(
103 self, m_get_captcha_data, m_submit, valid, app, csrf_token):
103 self, m_get_captcha_data, m_validate_captcha, valid, app, csrf_token):
104 captcha = CaptchaData(
104 captcha = CaptchaData(
105 active=True, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
105 active=True, private_key='PRIVATE_KEY', public_key='PUBLIC_KEY')
106 m_get_captcha_data.return_value = captcha
106 m_get_captcha_data.return_value = captcha
107 m_response = mock.Mock()
107 m_response = mock.Mock()
108 m_response.is_valid = valid
108 m_response.is_valid = valid
109 m_submit.return_value = m_response
109 m_validate_captcha.return_value = valid, 'ok'
110
110
111 params = {
111 params = {
112 'csrf_token': csrf_token,
112 'csrf_token': csrf_token,
113 'email': 'pytest@example.com',
113 'email': 'pytest@example.com',
114 'firstname': 'pytest-firstname',
114 'firstname': 'pytest-firstname',
115 'lastname': 'pytest-lastname',
115 'lastname': 'pytest-lastname',
116 'password': 'secret',
116 'password': 'secret',
117 'password_confirmation': 'secret',
117 'password_confirmation': 'secret',
118 'username': 'pytest',
118 'username': 'pytest',
119 }
119 }
120 response = app.post(ADMIN_PREFIX + '/register', params=params)
120 response = app.post(ADMIN_PREFIX + '/register', params=params)
121
121
122 if valid:
122 if valid:
123 # If we provided a valid captcha input we expect a successful
123 # If we provided a valid captcha input we expect a successful
124 # registration and redirect to the login page.
124 # registration and redirect to the login page.
125 assert response.status_int == 302
125 assert response.status_int == 302
126 assert 'location' in response.headers
126 assert 'location' in response.headers
127 assert ADMIN_PREFIX + '/login' in response.headers['location']
127 assert ADMIN_PREFIX + '/login' in response.headers['location']
128 else:
128 else:
129 # If captche input is invalid we expect to stay on the registration
129 # If captche input is invalid we expect to stay on the registration
130 # page with an error message displayed.
130 # page with an error message displayed.
131 assertr = AssertResponse(response)
131 assertr = AssertResponse(response)
132 assert response.status_int == 200
132 assert response.status_int == 200
133 assertr.one_element_exists('#recaptcha_field ~ span.error-message')
133 assertr.one_element_exists('#recaptcha_field ~ span.error-message')
@@ -1,435 +1,454 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2016-2018 RhodeCode GmbH
3 # Copyright (C) 2016-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 time
21 import time
22 import collections
22 import collections
23 import datetime
23 import datetime
24 import formencode
24 import formencode
25 import formencode.htmlfill
25 import formencode.htmlfill
26 import logging
26 import logging
27 import urlparse
27 import urlparse
28 import requests
28
29
29 from pyramid.httpexceptions import HTTPFound
30 from pyramid.httpexceptions import HTTPFound
30 from pyramid.view import view_config
31 from pyramid.view import view_config
31 from recaptcha.client.captcha import submit
32
32
33 from rhodecode.apps._base import BaseAppView
33 from rhodecode.apps._base import BaseAppView
34 from rhodecode.authentication.base import authenticate, HTTP_TYPE
34 from rhodecode.authentication.base import authenticate, HTTP_TYPE
35 from rhodecode.events import UserRegistered, trigger
35 from rhodecode.events import UserRegistered, trigger
36 from rhodecode.lib import helpers as h
36 from rhodecode.lib import helpers as h
37 from rhodecode.lib import audit_logger
37 from rhodecode.lib import audit_logger
38 from rhodecode.lib.auth import (
38 from rhodecode.lib.auth import (
39 AuthUser, HasPermissionAnyDecorator, CSRFRequired)
39 AuthUser, HasPermissionAnyDecorator, CSRFRequired)
40 from rhodecode.lib.base import get_ip_addr
40 from rhodecode.lib.base import get_ip_addr
41 from rhodecode.lib.exceptions import UserCreationError
41 from rhodecode.lib.exceptions import UserCreationError
42 from rhodecode.lib.utils2 import safe_str
42 from rhodecode.lib.utils2 import safe_str
43 from rhodecode.model.db import User, UserApiKeys
43 from rhodecode.model.db import User, UserApiKeys
44 from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm
44 from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm
45 from rhodecode.model.meta import Session
45 from rhodecode.model.meta import Session
46 from rhodecode.model.auth_token import AuthTokenModel
46 from rhodecode.model.auth_token import AuthTokenModel
47 from rhodecode.model.settings import SettingsModel
47 from rhodecode.model.settings import SettingsModel
48 from rhodecode.model.user import UserModel
48 from rhodecode.model.user import UserModel
49 from rhodecode.translation import _
49 from rhodecode.translation import _
50
50
51
51
52 log = logging.getLogger(__name__)
52 log = logging.getLogger(__name__)
53
53
54 CaptchaData = collections.namedtuple(
54 CaptchaData = collections.namedtuple(
55 'CaptchaData', 'active, private_key, public_key')
55 'CaptchaData', 'active, private_key, public_key')
56
56
57
57
58 def _store_user_in_session(session, username, remember=False):
58 def _store_user_in_session(session, username, remember=False):
59 user = User.get_by_username(username, case_insensitive=True)
59 user = User.get_by_username(username, case_insensitive=True)
60 auth_user = AuthUser(user.user_id)
60 auth_user = AuthUser(user.user_id)
61 auth_user.set_authenticated()
61 auth_user.set_authenticated()
62 cs = auth_user.get_cookie_store()
62 cs = auth_user.get_cookie_store()
63 session['rhodecode_user'] = cs
63 session['rhodecode_user'] = cs
64 user.update_lastlogin()
64 user.update_lastlogin()
65 Session().commit()
65 Session().commit()
66
66
67 # If they want to be remembered, update the cookie
67 # If they want to be remembered, update the cookie
68 if remember:
68 if remember:
69 _year = (datetime.datetime.now() +
69 _year = (datetime.datetime.now() +
70 datetime.timedelta(seconds=60 * 60 * 24 * 365))
70 datetime.timedelta(seconds=60 * 60 * 24 * 365))
71 session._set_cookie_expires(_year)
71 session._set_cookie_expires(_year)
72
72
73 session.save()
73 session.save()
74
74
75 safe_cs = cs.copy()
75 safe_cs = cs.copy()
76 safe_cs['password'] = '****'
76 safe_cs['password'] = '****'
77 log.info('user %s is now authenticated and stored in '
77 log.info('user %s is now authenticated and stored in '
78 'session, session attrs %s', username, safe_cs)
78 'session, session attrs %s', username, safe_cs)
79
79
80 # dumps session attrs back to cookie
80 # dumps session attrs back to cookie
81 session._update_cookie_out()
81 session._update_cookie_out()
82 # we set new cookie
82 # we set new cookie
83 headers = None
83 headers = None
84 if session.request['set_cookie']:
84 if session.request['set_cookie']:
85 # send set-cookie headers back to response to update cookie
85 # send set-cookie headers back to response to update cookie
86 headers = [('Set-Cookie', session.request['cookie_out'])]
86 headers = [('Set-Cookie', session.request['cookie_out'])]
87 return headers
87 return headers
88
88
89
89
90 def get_came_from(request):
90 def get_came_from(request):
91 came_from = safe_str(request.GET.get('came_from', ''))
91 came_from = safe_str(request.GET.get('came_from', ''))
92 parsed = urlparse.urlparse(came_from)
92 parsed = urlparse.urlparse(came_from)
93 allowed_schemes = ['http', 'https']
93 allowed_schemes = ['http', 'https']
94 default_came_from = h.route_path('home')
94 default_came_from = h.route_path('home')
95 if parsed.scheme and parsed.scheme not in allowed_schemes:
95 if parsed.scheme and parsed.scheme not in allowed_schemes:
96 log.error('Suspicious URL scheme detected %s for url %s' %
96 log.error('Suspicious URL scheme detected %s for url %s' %
97 (parsed.scheme, parsed))
97 (parsed.scheme, parsed))
98 came_from = default_came_from
98 came_from = default_came_from
99 elif parsed.netloc and request.host != parsed.netloc:
99 elif parsed.netloc and request.host != parsed.netloc:
100 log.error('Suspicious NETLOC detected %s for url %s server url '
100 log.error('Suspicious NETLOC detected %s for url %s server url '
101 'is: %s' % (parsed.netloc, parsed, request.host))
101 'is: %s' % (parsed.netloc, parsed, request.host))
102 came_from = default_came_from
102 came_from = default_came_from
103 elif any(bad_str in parsed.path for bad_str in ('\r', '\n')):
103 elif any(bad_str in parsed.path for bad_str in ('\r', '\n')):
104 log.error('Header injection detected `%s` for url %s server url ' %
104 log.error('Header injection detected `%s` for url %s server url ' %
105 (parsed.path, parsed))
105 (parsed.path, parsed))
106 came_from = default_came_from
106 came_from = default_came_from
107
107
108 return came_from or default_came_from
108 return came_from or default_came_from
109
109
110
110
111 class LoginView(BaseAppView):
111 class LoginView(BaseAppView):
112
112
113 def load_default_context(self):
113 def load_default_context(self):
114 c = self._get_local_tmpl_context()
114 c = self._get_local_tmpl_context()
115 c.came_from = get_came_from(self.request)
115 c.came_from = get_came_from(self.request)
116
116
117 return c
117 return c
118
118
119 def _get_captcha_data(self):
119 def _get_captcha_data(self):
120 settings = SettingsModel().get_all_settings()
120 settings = SettingsModel().get_all_settings()
121 private_key = settings.get('rhodecode_captcha_private_key')
121 private_key = settings.get('rhodecode_captcha_private_key')
122 public_key = settings.get('rhodecode_captcha_public_key')
122 public_key = settings.get('rhodecode_captcha_public_key')
123 active = bool(private_key)
123 active = bool(private_key)
124 return CaptchaData(
124 return CaptchaData(
125 active=active, private_key=private_key, public_key=public_key)
125 active=active, private_key=private_key, public_key=public_key)
126
126
127 def validate_captcha(self, private_key):
128
129 captcha_rs = self.request.POST.get('g-recaptcha-response')
130 url = "https://www.google.com/recaptcha/api/siteverify"
131 params = {
132 'secret': private_key,
133 'response': captcha_rs,
134 'remoteip': get_ip_addr(self.request.environ)
135 }
136 verify_rs = requests.get(url, params=params, verify=True)
137 verify_rs = verify_rs.json()
138 captcha_status = verify_rs.get('success', False)
139 captcha_errors = verify_rs.get('error-codes', [])
140 if not isinstance(captcha_errors, list):
141 captcha_errors = [captcha_errors]
142 captcha_errors = ', '.join(captcha_errors)
143 captcha_message = ''
144 if captcha_status is False:
145 captcha_message = "Bad captcha. Errors: {}".format(
146 captcha_errors)
147
148 return captcha_status, captcha_message
149
127 @view_config(
150 @view_config(
128 route_name='login', request_method='GET',
151 route_name='login', request_method='GET',
129 renderer='rhodecode:templates/login.mako')
152 renderer='rhodecode:templates/login.mako')
130 def login(self):
153 def login(self):
131 c = self.load_default_context()
154 c = self.load_default_context()
132 auth_user = self._rhodecode_user
155 auth_user = self._rhodecode_user
133
156
134 # redirect if already logged in
157 # redirect if already logged in
135 if (auth_user.is_authenticated and
158 if (auth_user.is_authenticated and
136 not auth_user.is_default and auth_user.ip_allowed):
159 not auth_user.is_default and auth_user.ip_allowed):
137 raise HTTPFound(c.came_from)
160 raise HTTPFound(c.came_from)
138
161
139 # check if we use headers plugin, and try to login using it.
162 # check if we use headers plugin, and try to login using it.
140 try:
163 try:
141 log.debug('Running PRE-AUTH for headers based authentication')
164 log.debug('Running PRE-AUTH for headers based authentication')
142 auth_info = authenticate(
165 auth_info = authenticate(
143 '', '', self.request.environ, HTTP_TYPE, skip_missing=True)
166 '', '', self.request.environ, HTTP_TYPE, skip_missing=True)
144 if auth_info:
167 if auth_info:
145 headers = _store_user_in_session(
168 headers = _store_user_in_session(
146 self.session, auth_info.get('username'))
169 self.session, auth_info.get('username'))
147 raise HTTPFound(c.came_from, headers=headers)
170 raise HTTPFound(c.came_from, headers=headers)
148 except UserCreationError as e:
171 except UserCreationError as e:
149 log.error(e)
172 log.error(e)
150 h.flash(e, category='error')
173 h.flash(e, category='error')
151
174
152 return self._get_template_context(c)
175 return self._get_template_context(c)
153
176
154 @view_config(
177 @view_config(
155 route_name='login', request_method='POST',
178 route_name='login', request_method='POST',
156 renderer='rhodecode:templates/login.mako')
179 renderer='rhodecode:templates/login.mako')
157 def login_post(self):
180 def login_post(self):
158 c = self.load_default_context()
181 c = self.load_default_context()
159
182
160 login_form = LoginForm(self.request.translate)()
183 login_form = LoginForm(self.request.translate)()
161
184
162 try:
185 try:
163 self.session.invalidate()
186 self.session.invalidate()
164 form_result = login_form.to_python(self.request.POST)
187 form_result = login_form.to_python(self.request.POST)
165 # form checks for username/password, now we're authenticated
188 # form checks for username/password, now we're authenticated
166 headers = _store_user_in_session(
189 headers = _store_user_in_session(
167 self.session,
190 self.session,
168 username=form_result['username'],
191 username=form_result['username'],
169 remember=form_result['remember'])
192 remember=form_result['remember'])
170 log.debug('Redirecting to "%s" after login.', c.came_from)
193 log.debug('Redirecting to "%s" after login.', c.came_from)
171
194
172 audit_user = audit_logger.UserWrap(
195 audit_user = audit_logger.UserWrap(
173 username=self.request.POST.get('username'),
196 username=self.request.POST.get('username'),
174 ip_addr=self.request.remote_addr)
197 ip_addr=self.request.remote_addr)
175 action_data = {'user_agent': self.request.user_agent}
198 action_data = {'user_agent': self.request.user_agent}
176 audit_logger.store_web(
199 audit_logger.store_web(
177 'user.login.success', action_data=action_data,
200 'user.login.success', action_data=action_data,
178 user=audit_user, commit=True)
201 user=audit_user, commit=True)
179
202
180 raise HTTPFound(c.came_from, headers=headers)
203 raise HTTPFound(c.came_from, headers=headers)
181 except formencode.Invalid as errors:
204 except formencode.Invalid as errors:
182 defaults = errors.value
205 defaults = errors.value
183 # remove password from filling in form again
206 # remove password from filling in form again
184 defaults.pop('password', None)
207 defaults.pop('password', None)
185 render_ctx = {
208 render_ctx = {
186 'errors': errors.error_dict,
209 'errors': errors.error_dict,
187 'defaults': defaults,
210 'defaults': defaults,
188 }
211 }
189
212
190 audit_user = audit_logger.UserWrap(
213 audit_user = audit_logger.UserWrap(
191 username=self.request.POST.get('username'),
214 username=self.request.POST.get('username'),
192 ip_addr=self.request.remote_addr)
215 ip_addr=self.request.remote_addr)
193 action_data = {'user_agent': self.request.user_agent}
216 action_data = {'user_agent': self.request.user_agent}
194 audit_logger.store_web(
217 audit_logger.store_web(
195 'user.login.failure', action_data=action_data,
218 'user.login.failure', action_data=action_data,
196 user=audit_user, commit=True)
219 user=audit_user, commit=True)
197 return self._get_template_context(c, **render_ctx)
220 return self._get_template_context(c, **render_ctx)
198
221
199 except UserCreationError as e:
222 except UserCreationError as e:
200 # headers auth or other auth functions that create users on
223 # headers auth or other auth functions that create users on
201 # the fly can throw this exception signaling that there's issue
224 # the fly can throw this exception signaling that there's issue
202 # with user creation, explanation should be provided in
225 # with user creation, explanation should be provided in
203 # Exception itself
226 # Exception itself
204 h.flash(e, category='error')
227 h.flash(e, category='error')
205 return self._get_template_context(c)
228 return self._get_template_context(c)
206
229
207 @CSRFRequired()
230 @CSRFRequired()
208 @view_config(route_name='logout', request_method='POST')
231 @view_config(route_name='logout', request_method='POST')
209 def logout(self):
232 def logout(self):
210 auth_user = self._rhodecode_user
233 auth_user = self._rhodecode_user
211 log.info('Deleting session for user: `%s`', auth_user)
234 log.info('Deleting session for user: `%s`', auth_user)
212
235
213 action_data = {'user_agent': self.request.user_agent}
236 action_data = {'user_agent': self.request.user_agent}
214 audit_logger.store_web(
237 audit_logger.store_web(
215 'user.logout', action_data=action_data,
238 'user.logout', action_data=action_data,
216 user=auth_user, commit=True)
239 user=auth_user, commit=True)
217 self.session.delete()
240 self.session.delete()
218 return HTTPFound(h.route_path('home'))
241 return HTTPFound(h.route_path('home'))
219
242
220 @HasPermissionAnyDecorator(
243 @HasPermissionAnyDecorator(
221 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
244 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
222 @view_config(
245 @view_config(
223 route_name='register', request_method='GET',
246 route_name='register', request_method='GET',
224 renderer='rhodecode:templates/register.mako',)
247 renderer='rhodecode:templates/register.mako',)
225 def register(self, defaults=None, errors=None):
248 def register(self, defaults=None, errors=None):
226 c = self.load_default_context()
249 c = self.load_default_context()
227 defaults = defaults or {}
250 defaults = defaults or {}
228 errors = errors or {}
251 errors = errors or {}
229
252
230 settings = SettingsModel().get_all_settings()
253 settings = SettingsModel().get_all_settings()
231 register_message = settings.get('rhodecode_register_message') or ''
254 register_message = settings.get('rhodecode_register_message') or ''
232 captcha = self._get_captcha_data()
255 captcha = self._get_captcha_data()
233 auto_active = 'hg.register.auto_activate' in User.get_default_user()\
256 auto_active = 'hg.register.auto_activate' in User.get_default_user()\
234 .AuthUser().permissions['global']
257 .AuthUser().permissions['global']
235
258
236 render_ctx = self._get_template_context(c)
259 render_ctx = self._get_template_context(c)
237 render_ctx.update({
260 render_ctx.update({
238 'defaults': defaults,
261 'defaults': defaults,
239 'errors': errors,
262 'errors': errors,
240 'auto_active': auto_active,
263 'auto_active': auto_active,
241 'captcha_active': captcha.active,
264 'captcha_active': captcha.active,
242 'captcha_public_key': captcha.public_key,
265 'captcha_public_key': captcha.public_key,
243 'register_message': register_message,
266 'register_message': register_message,
244 })
267 })
245 return render_ctx
268 return render_ctx
246
269
247 @HasPermissionAnyDecorator(
270 @HasPermissionAnyDecorator(
248 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
271 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
249 @view_config(
272 @view_config(
250 route_name='register', request_method='POST',
273 route_name='register', request_method='POST',
251 renderer='rhodecode:templates/register.mako')
274 renderer='rhodecode:templates/register.mako')
252 def register_post(self):
275 def register_post(self):
253 self.load_default_context()
276 self.load_default_context()
254 captcha = self._get_captcha_data()
277 captcha = self._get_captcha_data()
255 auto_active = 'hg.register.auto_activate' in User.get_default_user()\
278 auto_active = 'hg.register.auto_activate' in User.get_default_user()\
256 .AuthUser().permissions['global']
279 .AuthUser().permissions['global']
257
280
258 register_form = RegisterForm(self.request.translate)()
281 register_form = RegisterForm(self.request.translate)()
259 try:
282 try:
260
283
261 form_result = register_form.to_python(self.request.POST)
284 form_result = register_form.to_python(self.request.POST)
262 form_result['active'] = auto_active
285 form_result['active'] = auto_active
263
286
264 if captcha.active:
287 if captcha.active:
265 response = submit(
288 captcha_status, captcha_message = self.validate_captcha(
266 self.request.POST.get('recaptcha_challenge_field'),
289 captcha.private_key)
267 self.request.POST.get('recaptcha_response_field'),
290
268 private_key=captcha.private_key,
291 if not captcha_status:
269 remoteip=get_ip_addr(self.request.environ))
270 if not response.is_valid:
271 _value = form_result
292 _value = form_result
272 _msg = _('Bad captcha')
293 _msg = _('Bad captcha')
273 error_dict = {'recaptcha_field': _msg}
294 error_dict = {'recaptcha_field': captcha_message}
274 raise formencode.Invalid(_msg, _value, None,
295 raise formencode.Invalid(
275 error_dict=error_dict)
296 _msg, _value, None, error_dict=error_dict)
276
297
277 new_user = UserModel().create_registration(form_result)
298 new_user = UserModel().create_registration(form_result)
278
299
279 action_data = {'data': new_user.get_api_data(),
300 action_data = {'data': new_user.get_api_data(),
280 'user_agent': self.request.user_agent}
301 'user_agent': self.request.user_agent}
281 audit_logger.store_web(
302 audit_logger.store_web(
282 'user.register', action_data=action_data,
303 'user.register', action_data=action_data,
283 user=new_user)
304 user=new_user)
284
305
285 event = UserRegistered(user=new_user, session=self.session)
306 event = UserRegistered(user=new_user, session=self.session)
286 trigger(event)
307 trigger(event)
287 h.flash(
308 h.flash(
288 _('You have successfully registered with RhodeCode'),
309 _('You have successfully registered with RhodeCode'),
289 category='success')
310 category='success')
290 Session().commit()
311 Session().commit()
291
312
292 redirect_ro = self.request.route_path('login')
313 redirect_ro = self.request.route_path('login')
293 raise HTTPFound(redirect_ro)
314 raise HTTPFound(redirect_ro)
294
315
295 except formencode.Invalid as errors:
316 except formencode.Invalid as errors:
296 errors.value.pop('password', None)
317 errors.value.pop('password', None)
297 errors.value.pop('password_confirmation', None)
318 errors.value.pop('password_confirmation', None)
298 return self.register(
319 return self.register(
299 defaults=errors.value, errors=errors.error_dict)
320 defaults=errors.value, errors=errors.error_dict)
300
321
301 except UserCreationError as e:
322 except UserCreationError as e:
302 # container auth or other auth functions that create users on
323 # container auth or other auth functions that create users on
303 # the fly can throw this exception signaling that there's issue
324 # the fly can throw this exception signaling that there's issue
304 # with user creation, explanation should be provided in
325 # with user creation, explanation should be provided in
305 # Exception itself
326 # Exception itself
306 h.flash(e, category='error')
327 h.flash(e, category='error')
307 return self.register()
328 return self.register()
308
329
309 @view_config(
330 @view_config(
310 route_name='reset_password', request_method=('GET', 'POST'),
331 route_name='reset_password', request_method=('GET', 'POST'),
311 renderer='rhodecode:templates/password_reset.mako')
332 renderer='rhodecode:templates/password_reset.mako')
312 def password_reset(self):
333 def password_reset(self):
313 c = self.load_default_context()
334 c = self.load_default_context()
314 captcha = self._get_captcha_data()
335 captcha = self._get_captcha_data()
315
336
316 template_context = {
337 template_context = {
317 'captcha_active': captcha.active,
338 'captcha_active': captcha.active,
318 'captcha_public_key': captcha.public_key,
339 'captcha_public_key': captcha.public_key,
319 'defaults': {},
340 'defaults': {},
320 'errors': {},
341 'errors': {},
321 }
342 }
322
343
323 # always send implicit message to prevent from discovery of
344 # always send implicit message to prevent from discovery of
324 # matching emails
345 # matching emails
325 msg = _('If such email exists, a password reset link was sent to it.')
346 msg = _('If such email exists, a password reset link was sent to it.')
326
347
327 if self.request.POST:
348 if self.request.POST:
328 if h.HasPermissionAny('hg.password_reset.disabled')():
349 if h.HasPermissionAny('hg.password_reset.disabled')():
329 _email = self.request.POST.get('email', '')
350 _email = self.request.POST.get('email', '')
330 log.error('Failed attempt to reset password for `%s`.', _email)
351 log.error('Failed attempt to reset password for `%s`.', _email)
331 h.flash(_('Password reset has been disabled.'),
352 h.flash(_('Password reset has been disabled.'),
332 category='error')
353 category='error')
333 return HTTPFound(self.request.route_path('reset_password'))
354 return HTTPFound(self.request.route_path('reset_password'))
334
355
335 password_reset_form = PasswordResetForm(self.request.translate)()
356 password_reset_form = PasswordResetForm(self.request.translate)()
336 try:
357 try:
337 form_result = password_reset_form.to_python(
358 form_result = password_reset_form.to_python(
338 self.request.POST)
359 self.request.POST)
339 user_email = form_result['email']
360 user_email = form_result['email']
340
361
341 if captcha.active:
362 if captcha.active:
342 response = submit(
363 captcha_status, captcha_message = self.validate_captcha(
343 self.request.POST.get('recaptcha_challenge_field'),
364 captcha.private_key)
344 self.request.POST.get('recaptcha_response_field'),
365
345 private_key=captcha.private_key,
366 if not captcha_status:
346 remoteip=get_ip_addr(self.request.environ))
347 if not response.is_valid:
348 _value = form_result
367 _value = form_result
349 _msg = _('Bad captcha')
368 _msg = _('Bad captcha')
350 error_dict = {'recaptcha_field': _msg}
369 error_dict = {'recaptcha_field': captcha_message}
351 raise formencode.Invalid(
370 raise formencode.Invalid(
352 _msg, _value, None, error_dict=error_dict)
371 _msg, _value, None, error_dict=error_dict)
353
372
354 # Generate reset URL and send mail.
373 # Generate reset URL and send mail.
355 user = User.get_by_email(user_email)
374 user = User.get_by_email(user_email)
356
375
357 # generate password reset token that expires in 10minutes
376 # generate password reset token that expires in 10minutes
358 desc = 'Generated token for password reset from {}'.format(
377 desc = 'Generated token for password reset from {}'.format(
359 datetime.datetime.now().isoformat())
378 datetime.datetime.now().isoformat())
360 reset_token = AuthTokenModel().create(
379 reset_token = AuthTokenModel().create(
361 user, lifetime=10,
380 user, lifetime=10,
362 description=desc,
381 description=desc,
363 role=UserApiKeys.ROLE_PASSWORD_RESET)
382 role=UserApiKeys.ROLE_PASSWORD_RESET)
364 Session().commit()
383 Session().commit()
365
384
366 log.debug('Successfully created password recovery token')
385 log.debug('Successfully created password recovery token')
367 password_reset_url = self.request.route_url(
386 password_reset_url = self.request.route_url(
368 'reset_password_confirmation',
387 'reset_password_confirmation',
369 _query={'key': reset_token.api_key})
388 _query={'key': reset_token.api_key})
370 UserModel().reset_password_link(
389 UserModel().reset_password_link(
371 form_result, password_reset_url)
390 form_result, password_reset_url)
372 # Display success message and redirect.
391 # Display success message and redirect.
373 h.flash(msg, category='success')
392 h.flash(msg, category='success')
374
393
375 action_data = {'email': user_email,
394 action_data = {'email': user_email,
376 'user_agent': self.request.user_agent}
395 'user_agent': self.request.user_agent}
377 audit_logger.store_web(
396 audit_logger.store_web(
378 'user.password.reset_request', action_data=action_data,
397 'user.password.reset_request', action_data=action_data,
379 user=self._rhodecode_user, commit=True)
398 user=self._rhodecode_user, commit=True)
380 return HTTPFound(self.request.route_path('reset_password'))
399 return HTTPFound(self.request.route_path('reset_password'))
381
400
382 except formencode.Invalid as errors:
401 except formencode.Invalid as errors:
383 template_context.update({
402 template_context.update({
384 'defaults': errors.value,
403 'defaults': errors.value,
385 'errors': errors.error_dict,
404 'errors': errors.error_dict,
386 })
405 })
387 if not self.request.POST.get('email'):
406 if not self.request.POST.get('email'):
388 # case of empty email, we want to report that
407 # case of empty email, we want to report that
389 return self._get_template_context(c, **template_context)
408 return self._get_template_context(c, **template_context)
390
409
391 if 'recaptcha_field' in errors.error_dict:
410 if 'recaptcha_field' in errors.error_dict:
392 # case of failed captcha
411 # case of failed captcha
393 return self._get_template_context(c, **template_context)
412 return self._get_template_context(c, **template_context)
394
413
395 log.debug('faking response on invalid password reset')
414 log.debug('faking response on invalid password reset')
396 # make this take 2s, to prevent brute forcing.
415 # make this take 2s, to prevent brute forcing.
397 time.sleep(2)
416 time.sleep(2)
398 h.flash(msg, category='success')
417 h.flash(msg, category='success')
399 return HTTPFound(self.request.route_path('reset_password'))
418 return HTTPFound(self.request.route_path('reset_password'))
400
419
401 return self._get_template_context(c, **template_context)
420 return self._get_template_context(c, **template_context)
402
421
403 @view_config(route_name='reset_password_confirmation',
422 @view_config(route_name='reset_password_confirmation',
404 request_method='GET')
423 request_method='GET')
405 def password_reset_confirmation(self):
424 def password_reset_confirmation(self):
406 self.load_default_context()
425 self.load_default_context()
407 if self.request.GET and self.request.GET.get('key'):
426 if self.request.GET and self.request.GET.get('key'):
408 # make this take 2s, to prevent brute forcing.
427 # make this take 2s, to prevent brute forcing.
409 time.sleep(2)
428 time.sleep(2)
410
429
411 token = AuthTokenModel().get_auth_token(
430 token = AuthTokenModel().get_auth_token(
412 self.request.GET.get('key'))
431 self.request.GET.get('key'))
413
432
414 # verify token is the correct role
433 # verify token is the correct role
415 if token is None or token.role != UserApiKeys.ROLE_PASSWORD_RESET:
434 if token is None or token.role != UserApiKeys.ROLE_PASSWORD_RESET:
416 log.debug('Got token with role:%s expected is %s',
435 log.debug('Got token with role:%s expected is %s',
417 getattr(token, 'role', 'EMPTY_TOKEN'),
436 getattr(token, 'role', 'EMPTY_TOKEN'),
418 UserApiKeys.ROLE_PASSWORD_RESET)
437 UserApiKeys.ROLE_PASSWORD_RESET)
419 h.flash(
438 h.flash(
420 _('Given reset token is invalid'), category='error')
439 _('Given reset token is invalid'), category='error')
421 return HTTPFound(self.request.route_path('reset_password'))
440 return HTTPFound(self.request.route_path('reset_password'))
422
441
423 try:
442 try:
424 owner = token.user
443 owner = token.user
425 data = {'email': owner.email, 'token': token.api_key}
444 data = {'email': owner.email, 'token': token.api_key}
426 UserModel().reset_password(data)
445 UserModel().reset_password(data)
427 h.flash(
446 h.flash(
428 _('Your password reset was successful, '
447 _('Your password reset was successful, '
429 'a new password has been sent to your email'),
448 'a new password has been sent to your email'),
430 category='success')
449 category='success')
431 except Exception as e:
450 except Exception as e:
432 log.error(e)
451 log.error(e)
433 return HTTPFound(self.request.route_path('reset_password'))
452 return HTTPFound(self.request.route_path('reset_password'))
434
453
435 return HTTPFound(self.request.route_path('login'))
454 return HTTPFound(self.request.route_path('login'))
@@ -1,376 +1,373 b''
1 {
1 {
2 "libnghttp2-1.7.1": {
2 "libnghttp2-1.7.1": {
3 "MIT License": "http://spdx.org/licenses/MIT"
3 "MIT License": "http://spdx.org/licenses/MIT"
4 },
4 },
5 "nodejs-4.3.1": {
5 "nodejs-4.3.1": {
6 "MIT License": "http://spdx.org/licenses/MIT"
6 "MIT License": "http://spdx.org/licenses/MIT"
7 },
7 },
8 "python-2.7.12": {
8 "python-2.7.12": {
9 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
9 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
10 },
10 },
11 "python2.7-Babel-1.3": {
11 "python2.7-Babel-1.3": {
12 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
12 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
13 },
13 },
14 "python2.7-Beaker-1.7.0": {
14 "python2.7-Beaker-1.7.0": {
15 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
15 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
16 },
16 },
17 "python2.7-Chameleon-2.24": {
17 "python2.7-Chameleon-2.24": {
18 "BSD-like": "http://repoze.org/license.html"
18 "BSD-like": "http://repoze.org/license.html"
19 },
19 },
20 "python2.7-FormEncode-1.2.4": {
20 "python2.7-FormEncode-1.2.4": {
21 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
21 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
22 },
22 },
23 "python2.7-Jinja2-2.7.3": {
23 "python2.7-Jinja2-2.7.3": {
24 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
24 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
25 },
25 },
26 "python2.7-Mako-1.0.6": {
26 "python2.7-Mako-1.0.6": {
27 "MIT License": "http://spdx.org/licenses/MIT"
27 "MIT License": "http://spdx.org/licenses/MIT"
28 },
28 },
29 "python2.7-Markdown-2.6.7": {
29 "python2.7-Markdown-2.6.7": {
30 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
30 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
31 },
31 },
32 "python2.7-MarkupSafe-0.23": {
32 "python2.7-MarkupSafe-0.23": {
33 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
33 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
34 },
34 },
35 "python2.7-Paste-2.0.3": {
35 "python2.7-Paste-2.0.3": {
36 "MIT License": "http://spdx.org/licenses/MIT"
36 "MIT License": "http://spdx.org/licenses/MIT"
37 },
37 },
38 "python2.7-PasteDeploy-1.5.2": {
38 "python2.7-PasteDeploy-1.5.2": {
39 "MIT License": "http://spdx.org/licenses/MIT"
39 "MIT License": "http://spdx.org/licenses/MIT"
40 },
40 },
41 "python2.7-PasteScript-1.7.5": {
41 "python2.7-PasteScript-1.7.5": {
42 "MIT License": "http://spdx.org/licenses/MIT"
42 "MIT License": "http://spdx.org/licenses/MIT"
43 },
43 },
44 "python2.7-Pygments-2.2.0": {
44 "python2.7-Pygments-2.2.0": {
45 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
45 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
46 },
46 },
47 "python2.7-Routes-1.13": {
47 "python2.7-Routes-1.13": {
48 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
48 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
49 },
49 },
50 "python2.7-SQLAlchemy-0.9.9": {
50 "python2.7-SQLAlchemy-0.9.9": {
51 "MIT License": "http://spdx.org/licenses/MIT"
51 "MIT License": "http://spdx.org/licenses/MIT"
52 },
52 },
53 "python2.7-Tempita-0.5.2": {
53 "python2.7-Tempita-0.5.2": {
54 "MIT License": "http://spdx.org/licenses/MIT"
54 "MIT License": "http://spdx.org/licenses/MIT"
55 },
55 },
56 "python2.7-URLObject-2.4.0": {
56 "python2.7-URLObject-2.4.0": {
57 "The Unlicense": "http://unlicense.org/"
57 "The Unlicense": "http://unlicense.org/"
58 },
58 },
59 "python2.7-WebError-0.10.3": {
59 "python2.7-WebError-0.10.3": {
60 "MIT License": "http://spdx.org/licenses/MIT"
60 "MIT License": "http://spdx.org/licenses/MIT"
61 },
61 },
62 "python2.7-WebHelpers-1.3": {
62 "python2.7-WebHelpers-1.3": {
63 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
63 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
64 },
64 },
65 "python2.7-WebHelpers2-2.0": {
65 "python2.7-WebHelpers2-2.0": {
66 "MIT License": "http://spdx.org/licenses/MIT"
66 "MIT License": "http://spdx.org/licenses/MIT"
67 },
67 },
68 "python2.7-WebOb-1.3.1": {
68 "python2.7-WebOb-1.3.1": {
69 "MIT License": "http://spdx.org/licenses/MIT"
69 "MIT License": "http://spdx.org/licenses/MIT"
70 },
70 },
71 "python2.7-Whoosh-2.7.4": {
71 "python2.7-Whoosh-2.7.4": {
72 "BSD 2-clause \"Simplified\" License": "http://spdx.org/licenses/BSD-2-Clause",
72 "BSD 2-clause \"Simplified\" License": "http://spdx.org/licenses/BSD-2-Clause",
73 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
73 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
74 },
74 },
75 "python2.7-alembic-0.8.4": {
75 "python2.7-alembic-0.8.4": {
76 "MIT License": "http://spdx.org/licenses/MIT"
76 "MIT License": "http://spdx.org/licenses/MIT"
77 },
77 },
78 "python2.7-appenlight-client-0.6.14": {
78 "python2.7-appenlight-client-0.6.14": {
79 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
79 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
80 },
80 },
81 "python2.7-authomatic-0.1.0.post1": {
81 "python2.7-authomatic-0.1.0.post1": {
82 "MIT License": "http://spdx.org/licenses/MIT"
82 "MIT License": "http://spdx.org/licenses/MIT"
83 },
83 },
84 "python2.7-backports.shutil-get-terminal-size-1.0.0": {
84 "python2.7-backports.shutil-get-terminal-size-1.0.0": {
85 "MIT License": "http://spdx.org/licenses/MIT"
85 "MIT License": "http://spdx.org/licenses/MIT"
86 },
86 },
87 "python2.7-bleach-1.5.0": {
87 "python2.7-bleach-1.5.0": {
88 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
88 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
89 },
89 },
90 "python2.7-celery-2.2.10": {
90 "python2.7-celery-2.2.10": {
91 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
91 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
92 },
92 },
93 "python2.7-channelstream-0.5.2": {
93 "python2.7-channelstream-0.5.2": {
94 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
94 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
95 },
95 },
96 "python2.7-click-5.1": {
96 "python2.7-click-5.1": {
97 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
97 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
98 },
98 },
99 "python2.7-colander-1.2": {
99 "python2.7-colander-1.2": {
100 "Repoze License": "http://www.repoze.org/LICENSE.txt"
100 "Repoze License": "http://www.repoze.org/LICENSE.txt"
101 },
101 },
102 "python2.7-configobj-5.0.6": {
102 "python2.7-configobj-5.0.6": {
103 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
103 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
104 },
104 },
105 "python2.7-configparser-3.5.0": {
105 "python2.7-configparser-3.5.0": {
106 "MIT License": "http://spdx.org/licenses/MIT"
106 "MIT License": "http://spdx.org/licenses/MIT"
107 },
107 },
108 "python2.7-cssselect-1.0.1": {
108 "python2.7-cssselect-1.0.1": {
109 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
109 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
110 },
110 },
111 "python2.7-decorator-4.0.11": {
111 "python2.7-decorator-4.0.11": {
112 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
112 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
113 },
113 },
114 "python2.7-deform-2.0a2": {
114 "python2.7-deform-2.0a2": {
115 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
115 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
116 },
116 },
117 "python2.7-docutils-0.12": {
117 "python2.7-docutils-0.12": {
118 "BSD 2-clause \"Simplified\" License": "http://spdx.org/licenses/BSD-2-Clause"
118 "BSD 2-clause \"Simplified\" License": "http://spdx.org/licenses/BSD-2-Clause"
119 },
119 },
120 "python2.7-dogpile.cache-0.6.1": {
120 "python2.7-dogpile.cache-0.6.1": {
121 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
121 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
122 },
122 },
123 "python2.7-dogpile.core-0.4.1": {
123 "python2.7-dogpile.core-0.4.1": {
124 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
124 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
125 },
125 },
126 "python2.7-elasticsearch-2.3.0": {
126 "python2.7-elasticsearch-2.3.0": {
127 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
127 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
128 },
128 },
129 "python2.7-elasticsearch-dsl-2.2.0": {
129 "python2.7-elasticsearch-dsl-2.2.0": {
130 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
130 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
131 },
131 },
132 "python2.7-entrypoints-0.2.2": {
132 "python2.7-entrypoints-0.2.2": {
133 "MIT License": "http://spdx.org/licenses/MIT"
133 "MIT License": "http://spdx.org/licenses/MIT"
134 },
134 },
135 "python2.7-enum34-1.1.6": {
135 "python2.7-enum34-1.1.6": {
136 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
136 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
137 },
137 },
138 "python2.7-functools32-3.2.3.post2": {
138 "python2.7-functools32-3.2.3.post2": {
139 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
139 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
140 },
140 },
141 "python2.7-future-0.14.3": {
141 "python2.7-future-0.14.3": {
142 "MIT License": "http://spdx.org/licenses/MIT"
142 "MIT License": "http://spdx.org/licenses/MIT"
143 },
143 },
144 "python2.7-futures-3.0.2": {
144 "python2.7-futures-3.0.2": {
145 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
145 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
146 },
146 },
147 "python2.7-gevent-1.1.2": {
147 "python2.7-gevent-1.1.2": {
148 "MIT License": "http://spdx.org/licenses/MIT"
148 "MIT License": "http://spdx.org/licenses/MIT"
149 },
149 },
150 "python2.7-gnureadline-6.3.3": {
150 "python2.7-gnureadline-6.3.3": {
151 "GNU General Public License v1.0 only": "http://spdx.org/licenses/GPL-1.0"
151 "GNU General Public License v1.0 only": "http://spdx.org/licenses/GPL-1.0"
152 },
152 },
153 "python2.7-gprof2dot-2016.10.13": {
153 "python2.7-gprof2dot-2016.10.13": {
154 "GNU Lesser General Public License v3.0 or later": "http://spdx.org/licenses/LGPL-3.0+"
154 "GNU Lesser General Public License v3.0 or later": "http://spdx.org/licenses/LGPL-3.0+"
155 },
155 },
156 "python2.7-greenlet-0.4.10": {
156 "python2.7-greenlet-0.4.10": {
157 "MIT License": "http://spdx.org/licenses/MIT"
157 "MIT License": "http://spdx.org/licenses/MIT"
158 },
158 },
159 "python2.7-gunicorn-19.6.0": {
159 "python2.7-gunicorn-19.6.0": {
160 "MIT License": "http://spdx.org/licenses/MIT"
160 "MIT License": "http://spdx.org/licenses/MIT"
161 },
161 },
162 "python2.7-html5lib-0.9999999": {
162 "python2.7-html5lib-0.9999999": {
163 "MIT License": "http://spdx.org/licenses/MIT"
163 "MIT License": "http://spdx.org/licenses/MIT"
164 },
164 },
165 "python2.7-infrae.cache-1.0.1": {
165 "python2.7-infrae.cache-1.0.1": {
166 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
166 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
167 },
167 },
168 "python2.7-ipython-5.1.0": {
168 "python2.7-ipython-5.1.0": {
169 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
169 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
170 },
170 },
171 "python2.7-ipython-genutils-0.2.0": {
171 "python2.7-ipython-genutils-0.2.0": {
172 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
172 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
173 },
173 },
174 "python2.7-iso8601-0.1.11": {
174 "python2.7-iso8601-0.1.11": {
175 "MIT License": "http://spdx.org/licenses/MIT"
175 "MIT License": "http://spdx.org/licenses/MIT"
176 },
176 },
177 "python2.7-itsdangerous-0.24": {
177 "python2.7-itsdangerous-0.24": {
178 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
178 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
179 },
179 },
180 "python2.7-jsonschema-2.6.0": {
180 "python2.7-jsonschema-2.6.0": {
181 "MIT License": "http://spdx.org/licenses/MIT"
181 "MIT License": "http://spdx.org/licenses/MIT"
182 },
182 },
183 "python2.7-jupyter-client-5.0.0": {
183 "python2.7-jupyter-client-5.0.0": {
184 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
184 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
185 },
185 },
186 "python2.7-jupyter-core-4.3.0": {
186 "python2.7-jupyter-core-4.3.0": {
187 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
187 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
188 },
188 },
189 "python2.7-kombu-4.1.0": {
189 "python2.7-kombu-4.1.0": {
190 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
190 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
191 },
191 },
192 "python2.7-mistune-0.7.4": {
192 "python2.7-mistune-0.7.4": {
193 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
193 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
194 },
194 },
195 "python2.7-msgpack-python-0.4.8": {
195 "python2.7-msgpack-python-0.4.8": {
196 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
196 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
197 },
197 },
198 "python2.7-nbconvert-5.1.1": {
198 "python2.7-nbconvert-5.1.1": {
199 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
199 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
200 },
200 },
201 "python2.7-nbformat-4.3.0": {
201 "python2.7-nbformat-4.3.0": {
202 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
202 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
203 },
203 },
204 "python2.7-packaging-15.2": {
204 "python2.7-packaging-15.2": {
205 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
205 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
206 },
206 },
207 "python2.7-pandocfilters-1.4.1": {
207 "python2.7-pandocfilters-1.4.1": {
208 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
208 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
209 },
209 },
210 "python2.7-pathlib2-2.1.0": {
210 "python2.7-pathlib2-2.1.0": {
211 "MIT License": "http://spdx.org/licenses/MIT"
211 "MIT License": "http://spdx.org/licenses/MIT"
212 },
212 },
213 "python2.7-peppercorn-0.5": {
213 "python2.7-peppercorn-0.5": {
214 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
214 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
215 },
215 },
216 "python2.7-pexpect-4.2.1": {
216 "python2.7-pexpect-4.2.1": {
217 "ISC License": "http://spdx.org/licenses/ISC"
217 "ISC License": "http://spdx.org/licenses/ISC"
218 },
218 },
219 "python2.7-pickleshare-0.7.4": {
219 "python2.7-pickleshare-0.7.4": {
220 "MIT License": "http://spdx.org/licenses/MIT"
220 "MIT License": "http://spdx.org/licenses/MIT"
221 },
221 },
222 "python2.7-prompt-toolkit-1.0.14": {
222 "python2.7-prompt-toolkit-1.0.14": {
223 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
223 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
224 },
224 },
225 "python2.7-psutil-4.3.1": {
225 "python2.7-psutil-4.3.1": {
226 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
226 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
227 },
227 },
228 "python2.7-psycopg2-2.6.1": {
228 "python2.7-psycopg2-2.6.1": {
229 "GNU Lesser General Public License v3.0 or later": "http://spdx.org/licenses/LGPL-3.0+"
229 "GNU Lesser General Public License v3.0 or later": "http://spdx.org/licenses/LGPL-3.0+"
230 },
230 },
231 "python2.7-ptyprocess-0.5.1": {
231 "python2.7-ptyprocess-0.5.1": {
232 "ISC License": "http://opensource.org/licenses/ISC"
232 "ISC License": "http://opensource.org/licenses/ISC"
233 },
233 },
234 "python2.7-py-1.4.31": {
234 "python2.7-py-1.4.31": {
235 "MIT License": "http://spdx.org/licenses/MIT"
235 "MIT License": "http://spdx.org/licenses/MIT"
236 },
236 },
237 "python2.7-py-bcrypt-0.4": {
237 "python2.7-py-bcrypt-0.4": {
238 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
238 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
239 },
239 },
240 "python2.7-py-gfm-0.1.3.rhodecode-upstream1": {
240 "python2.7-py-gfm-0.1.3.rhodecode-upstream1": {
241 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
241 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
242 },
242 },
243 "python2.7-pycrypto-2.6.1": {
243 "python2.7-pycrypto-2.6.1": {
244 "Public Domain": null
244 "Public Domain": null
245 },
245 },
246 "python2.7-pycurl-7.19.5": {
246 "python2.7-pycurl-7.19.5": {
247 "MIT License": "http://spdx.org/licenses/MIT"
247 "MIT License": "http://spdx.org/licenses/MIT"
248 },
248 },
249 "python2.7-pygments-markdown-lexer-0.1.0.dev39": {
249 "python2.7-pygments-markdown-lexer-0.1.0.dev39": {
250 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
250 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
251 },
251 },
252 "python2.7-pyparsing-1.5.7": {
252 "python2.7-pyparsing-1.5.7": {
253 "MIT License": "http://spdx.org/licenses/MIT"
253 "MIT License": "http://spdx.org/licenses/MIT"
254 },
254 },
255 "python2.7-pyramid-1.7.4": {
255 "python2.7-pyramid-1.7.4": {
256 "Repoze License": "http://www.repoze.org/LICENSE.txt"
256 "Repoze License": "http://www.repoze.org/LICENSE.txt"
257 },
257 },
258 "python2.7-pyramid-beaker-0.8": {
258 "python2.7-pyramid-beaker-0.8": {
259 "Repoze License": "http://www.repoze.org/LICENSE.txt"
259 "Repoze License": "http://www.repoze.org/LICENSE.txt"
260 },
260 },
261 "python2.7-pyramid-debugtoolbar-3.0.5": {
261 "python2.7-pyramid-debugtoolbar-3.0.5": {
262 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause",
262 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause",
263 "Repoze License": "http://www.repoze.org/LICENSE.txt"
263 "Repoze License": "http://www.repoze.org/LICENSE.txt"
264 },
264 },
265 "python2.7-pyramid-jinja2-2.5": {
265 "python2.7-pyramid-jinja2-2.5": {
266 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
266 "BSD-derived": "http://www.repoze.org/LICENSE.txt"
267 },
267 },
268 "python2.7-pyramid-mako-1.0.2": {
268 "python2.7-pyramid-mako-1.0.2": {
269 "Repoze License": "http://www.repoze.org/LICENSE.txt"
269 "Repoze License": "http://www.repoze.org/LICENSE.txt"
270 },
270 },
271 "python2.7-pysqlite-2.6.3": {
271 "python2.7-pysqlite-2.6.3": {
272 "libpng License": "http://spdx.org/licenses/Libpng",
272 "libpng License": "http://spdx.org/licenses/Libpng",
273 "zlib License": "http://spdx.org/licenses/Zlib"
273 "zlib License": "http://spdx.org/licenses/Zlib"
274 },
274 },
275 "python2.7-pytest-3.0.5": {
275 "python2.7-pytest-3.0.5": {
276 "MIT License": "http://spdx.org/licenses/MIT"
276 "MIT License": "http://spdx.org/licenses/MIT"
277 },
277 },
278 "python2.7-pytest-profiling-1.2.2": {
278 "python2.7-pytest-profiling-1.2.2": {
279 "MIT License": "http://spdx.org/licenses/MIT"
279 "MIT License": "http://spdx.org/licenses/MIT"
280 },
280 },
281 "python2.7-pytest-runner-2.9": {
281 "python2.7-pytest-runner-2.9": {
282 "MIT License": "http://spdx.org/licenses/MIT"
282 "MIT License": "http://spdx.org/licenses/MIT"
283 },
283 },
284 "python2.7-pytest-sugar-0.7.1": {
284 "python2.7-pytest-sugar-0.7.1": {
285 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
285 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
286 },
286 },
287 "python2.7-pytest-timeout-1.2.0": {
287 "python2.7-pytest-timeout-1.2.0": {
288 "MIT License": "http://spdx.org/licenses/MIT"
288 "MIT License": "http://spdx.org/licenses/MIT"
289 },
289 },
290 "python2.7-python-dateutil-2.1": {
290 "python2.7-python-dateutil-2.1": {
291 "Simplified BSD": null
291 "Simplified BSD": null
292 },
292 },
293 "python2.7-python-editor-1.0.3": {
293 "python2.7-python-editor-1.0.3": {
294 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
294 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
295 },
295 },
296 "python2.7-python-ldap-2.4.19": {
296 "python2.7-python-ldap-2.4.19": {
297 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
297 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
298 },
298 },
299 "python2.7-python-memcached-1.57": {
299 "python2.7-python-memcached-1.57": {
300 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
300 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
301 },
301 },
302 "python2.7-pytz-2015.4": {
302 "python2.7-pytz-2015.4": {
303 "MIT License": "http://spdx.org/licenses/MIT"
303 "MIT License": "http://spdx.org/licenses/MIT"
304 },
304 },
305 "python2.7-pyzmq-14.6.0": {
305 "python2.7-pyzmq-14.6.0": {
306 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
306 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
307 },
307 },
308 "python2.7-recaptcha-client-1.0.6": {
309 "MIT License": "http://spdx.org/licenses/MIT"
310 },
311 "python2.7-repoze.lru-0.6": {
308 "python2.7-repoze.lru-0.6": {
312 "Repoze License": "http://www.repoze.org/LICENSE.txt"
309 "Repoze License": "http://www.repoze.org/LICENSE.txt"
313 },
310 },
314 "python2.7-requests-2.9.1": {
311 "python2.7-requests-2.9.1": {
315 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
312 "Apache License 2.0": "http://spdx.org/licenses/Apache-2.0"
316 },
313 },
317 "python2.7-setuptools-19.4": {
314 "python2.7-setuptools-19.4": {
318 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0",
315 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0",
319 "Zope Public License 2.0": "http://spdx.org/licenses/ZPL-2.0"
316 "Zope Public License 2.0": "http://spdx.org/licenses/ZPL-2.0"
320 },
317 },
321 "python2.7-setuptools-scm-1.15.6": {
318 "python2.7-setuptools-scm-1.15.6": {
322 "MIT License": "http://spdx.org/licenses/MIT"
319 "MIT License": "http://spdx.org/licenses/MIT"
323 },
320 },
324 "python2.7-simplegeneric-0.8.1": {
321 "python2.7-simplegeneric-0.8.1": {
325 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
322 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
326 },
323 },
327 "python2.7-simplejson-3.7.2": {
324 "python2.7-simplejson-3.7.2": {
328 "MIT License": "http://spdx.org/licenses/MIT"
325 "MIT License": "http://spdx.org/licenses/MIT"
329 },
326 },
330 "python2.7-six-1.9.0": {
327 "python2.7-six-1.9.0": {
331 "MIT License": "http://spdx.org/licenses/MIT"
328 "MIT License": "http://spdx.org/licenses/MIT"
332 },
329 },
333 "python2.7-subprocess32-3.2.6": {
330 "python2.7-subprocess32-3.2.6": {
334 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
331 "Python Software Foundation License version 2": "http://spdx.org/licenses/Python-2.0"
335 },
332 },
336 "python2.7-termcolor-1.1.0": {
333 "python2.7-termcolor-1.1.0": {
337 "MIT License": "http://spdx.org/licenses/MIT"
334 "MIT License": "http://spdx.org/licenses/MIT"
338 },
335 },
339 "python2.7-testpath-0.1": {
336 "python2.7-testpath-0.1": {
340 "MIT License": "http://spdx.org/licenses/MIT"
337 "MIT License": "http://spdx.org/licenses/MIT"
341 },
338 },
342 "python2.7-traitlets-4.3.2": {
339 "python2.7-traitlets-4.3.2": {
343 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
340 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
344 },
341 },
345 "python2.7-translationstring-1.3": {
342 "python2.7-translationstring-1.3": {
346 "Repoze License": "http://www.repoze.org/LICENSE.txt"
343 "Repoze License": "http://www.repoze.org/LICENSE.txt"
347 },
344 },
348 "python2.7-urllib3-1.16": {
345 "python2.7-urllib3-1.16": {
349 "MIT License": "http://spdx.org/licenses/MIT"
346 "MIT License": "http://spdx.org/licenses/MIT"
350 },
347 },
351 "python2.7-venusian-1.0": {
348 "python2.7-venusian-1.0": {
352 "Repoze License": "http://www.repoze.org/LICENSE.txt"
349 "Repoze License": "http://www.repoze.org/LICENSE.txt"
353 },
350 },
354 "python2.7-waitress-1.0.1": {
351 "python2.7-waitress-1.0.1": {
355 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
352 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
356 },
353 },
357 "python2.7-wcwidth-0.1.7": {
354 "python2.7-wcwidth-0.1.7": {
358 "MIT License": "http://spdx.org/licenses/MIT"
355 "MIT License": "http://spdx.org/licenses/MIT"
359 },
356 },
360 "python2.7-ws4py-0.3.5": {
357 "python2.7-ws4py-0.3.5": {
361 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
358 "BSD 4-clause \"Original\" or \"Old\" License": "http://spdx.org/licenses/BSD-4-Clause"
362 },
359 },
363 "python2.7-zope.cachedescriptors-4.0.0": {
360 "python2.7-zope.cachedescriptors-4.0.0": {
364 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
361 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
365 },
362 },
366 "python2.7-zope.deprecation-4.1.2": {
363 "python2.7-zope.deprecation-4.1.2": {
367 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
364 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
368 },
365 },
369 "python2.7-zope.interface-4.1.3": {
366 "python2.7-zope.interface-4.1.3": {
370 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
367 "Zope Public License 2.1": "http://spdx.org/licenses/ZPL-2.1"
371 },
368 },
372 "xz-5.2.2": {
369 "xz-5.2.2": {
373 "GNU General Public License v2.0 or later": "http://spdx.org/licenses/GPL-2.0+",
370 "GNU General Public License v2.0 or later": "http://spdx.org/licenses/GPL-2.0+",
374 "GNU Library General Public License v2.1 or later": "http://spdx.org/licenses/LGPL-2.1+"
371 "GNU Library General Public License v2.1 or later": "http://spdx.org/licenses/LGPL-2.1+"
375 }
372 }
376 } No newline at end of file
373 }
@@ -1,295 +1,295 b''
1 ${h.secure_form(h.route_path('admin_settings_global_update'), request=request)}
1 ${h.secure_form(h.route_path('admin_settings_global_update'), request=request)}
2
2
3 <div class="panel panel-default">
3 <div class="panel panel-default">
4 <div class="panel-heading" id="branding-options">
4 <div class="panel-heading" id="branding-options">
5 <h3 class="panel-title">${_('Branding')} <a class="permalink" href="#branding-options"> ΒΆ</a></h3>
5 <h3 class="panel-title">${_('Branding')} <a class="permalink" href="#branding-options"> ΒΆ</a></h3>
6 </div>
6 </div>
7 <div class="panel-body">
7 <div class="panel-body">
8 <div class="label">
8 <div class="label">
9 <label for="rhodecode_title">${_('Title')}</label>
9 <label for="rhodecode_title">${_('Title')}</label>
10 </div>
10 </div>
11 <div class="field input">
11 <div class="field input">
12 ${h.text('rhodecode_title',size=60)}
12 ${h.text('rhodecode_title',size=60)}
13 </div>
13 </div>
14 <div class="field">
14 <div class="field">
15 <span class="help-block">
15 <span class="help-block">
16 ${_('Set a custom title for your RhodeCode instance (limited to 40 characters).')}
16 ${_('Set a custom title for your RhodeCode instance (limited to 40 characters).')}
17 </span>
17 </span>
18 </div>
18 </div>
19 <div class="label">
19 <div class="label">
20 <label for="rhodecode_realm">${_('HTTP[S] authentication realm')}</label>
20 <label for="rhodecode_realm">${_('HTTP[S] authentication realm')}</label>
21 </div>
21 </div>
22 <div class="field input">
22 <div class="field input">
23 ${h.text('rhodecode_realm',size=60)}
23 ${h.text('rhodecode_realm',size=60)}
24 </div>
24 </div>
25 <div class="field">
25 <div class="field">
26 <span class="help-block">
26 <span class="help-block">
27 ${_('Set a custom text that is shown as authentication message to clients trying to connect.')}
27 ${_('Set a custom text that is shown as authentication message to clients trying to connect.')}
28 </span>
28 </span>
29 </div>
29 </div>
30 </div>
30 </div>
31 </div>
31 </div>
32
32
33
33
34 <div class="panel panel-default">
34 <div class="panel panel-default">
35 <div class="panel-heading" id="personal-group-options">
35 <div class="panel-heading" id="personal-group-options">
36 <h3 class="panel-title">${_('Personal Repository Group')} <a class="permalink" href="#personal-group-options"> ΒΆ</a></h3>
36 <h3 class="panel-title">${_('Personal Repository Group')} <a class="permalink" href="#personal-group-options"> ΒΆ</a></h3>
37 </div>
37 </div>
38 <div class="panel-body">
38 <div class="panel-body">
39 <div class="checkbox">
39 <div class="checkbox">
40 ${h.checkbox('rhodecode_create_personal_repo_group','True')}
40 ${h.checkbox('rhodecode_create_personal_repo_group','True')}
41 <label for="rhodecode_create_personal_repo_group">${_('Create Personal Repository Group')}</label>
41 <label for="rhodecode_create_personal_repo_group">${_('Create Personal Repository Group')}</label>
42 </div>
42 </div>
43 <span class="help-block">
43 <span class="help-block">
44 ${_('Always create Personal Repository Groups for new users.')} <br/>
44 ${_('Always create Personal Repository Groups for new users.')} <br/>
45 ${_('When creating new users from add user form or API you can still turn this off via a checkbox or flag')}
45 ${_('When creating new users from add user form or API you can still turn this off via a checkbox or flag')}
46 </span>
46 </span>
47
47
48 <div class="label">
48 <div class="label">
49 <label for="rhodecode_personal_repo_group_pattern">${_('Personal Repo Group Pattern')}</label>
49 <label for="rhodecode_personal_repo_group_pattern">${_('Personal Repo Group Pattern')}</label>
50 </div>
50 </div>
51 <div class="field input">
51 <div class="field input">
52 ${h.text('rhodecode_personal_repo_group_pattern',size=60, placeholder=c.personal_repo_group_default_pattern)}
52 ${h.text('rhodecode_personal_repo_group_pattern',size=60, placeholder=c.personal_repo_group_default_pattern)}
53 </div>
53 </div>
54 <span class="help-block">
54 <span class="help-block">
55 ${_('Pattern used to create Personal Repository Groups. Prefix can be other existing repository group path[s], eg. /u/${username}')} <br/>
55 ${_('Pattern used to create Personal Repository Groups. Prefix can be other existing repository group path[s], eg. /u/${username}')} <br/>
56 ${_('Available variables are currently ${username} and ${user_id}')}
56 ${_('Available variables are currently ${username} and ${user_id}')}
57 </span>
57 </span>
58 </div>
58 </div>
59 </div>
59 </div>
60
60
61
61
62 <div class="panel panel-default">
62 <div class="panel panel-default">
63 <div class="panel-heading" id="captcha-options">
63 <div class="panel-heading" id="captcha-options">
64 <h3 class="panel-title">${_('Registration Captcha')} <a class="permalink" href="#captcha-options"> ΒΆ</a></h3>
64 <h3 class="panel-title">${_('Registration Captcha')} <a class="permalink" href="#captcha-options"> ΒΆ</a></h3>
65 </div>
65 </div>
66 <div class="panel-body">
66 <div class="panel-body">
67 <div class="label">
67 <div class="label">
68 <label for="rhodecode_captcha_public_key">${_('Google ReCaptcha public key')}</label>
68 <label for="rhodecode_captcha_public_key">${_('Google reCaptcha v2 site key.')}</label>
69 </div>
69 </div>
70 <div class="field input">
70 <div class="field input">
71 ${h.text('rhodecode_captcha_public_key',size=60)}
71 ${h.text('rhodecode_captcha_public_key',size=60)}
72 </div>
72 </div>
73 <div class="field">
73 <div class="field">
74 <span class="help-block">
74 <span class="help-block">
75 ${_('Public key for reCaptcha system.')}
75 ${_('Site key for reCaptcha v2 system.')}
76 </span>
76 </span>
77 </div>
77 </div>
78
78
79 <div class="label">
79 <div class="label">
80 <label for="rhodecode_captcha_private_key">${_('Google ReCaptcha private key')}</label>
80 <label for="rhodecode_captcha_private_key">${_('Google reCaptcha v2 secret key.')}</label>
81 </div>
81 </div>
82 <div class="field input">
82 <div class="field input">
83 ${h.text('rhodecode_captcha_private_key',size=60)}
83 ${h.text('rhodecode_captcha_private_key',size=60)}
84 </div>
84 </div>
85 <div class="field">
85 <div class="field">
86 <span class="help-block">
86 <span class="help-block">
87 ${_('Private key for reCaptcha system. Setting this value will enable captcha on registration')}
87 ${_('Secret key for reCaptcha v2 system. Setting this value will enable captcha on registration and password reset forms.')}
88 </span>
88 </span>
89 </div>
89 </div>
90 </div>
90 </div>
91 </div>
91 </div>
92
92
93 <div class="panel panel-default">
93 <div class="panel panel-default">
94 <div class="panel-heading" id="header-code-options">
94 <div class="panel-heading" id="header-code-options">
95 <h3 class="panel-title">${_('Custom Header Code')} <a class="permalink" href="#header-code-options"> ΒΆ</a></h3>
95 <h3 class="panel-title">${_('Custom Header Code')} <a class="permalink" href="#header-code-options"> ΒΆ</a></h3>
96 </div>
96 </div>
97 <div class="panel-body">
97 <div class="panel-body">
98 <div class="select">
98 <div class="select">
99 <select id="pre_template" >
99 <select id="pre_template" >
100 <option value="#">${_('Templates...')}</option>
100 <option value="#">${_('Templates...')}</option>
101 <option value="ga">Google Analytics</option>
101 <option value="ga">Google Analytics</option>
102 <option value="clicky">Clicky</option>
102 <option value="clicky">Clicky</option>
103 <option value="server_announce">${_('Server Announcement')}</option>
103 <option value="server_announce">${_('Server Announcement')}</option>
104 <option value="flash_filtering">${_('Flash message filtering')}</option>
104 <option value="flash_filtering">${_('Flash message filtering')}</option>
105 </select>
105 </select>
106 </div>
106 </div>
107 <div style="padding: 10px 0px"></div>
107 <div style="padding: 10px 0px"></div>
108 <div class="textarea text-area">
108 <div class="textarea text-area">
109 ${h.textarea('rhodecode_pre_code',cols=23,rows=5,class_="medium")}
109 ${h.textarea('rhodecode_pre_code',cols=23,rows=5,class_="medium")}
110 <span class="help-block">${_('Custom js/css code added at the end of the <header/> tag.')}
110 <span class="help-block">${_('Custom js/css code added at the end of the <header/> tag.')}
111 ${_('Use <script/> or <css/> tags to define custom styling or scripting')}</span>
111 ${_('Use <script/> or <css/> tags to define custom styling or scripting')}</span>
112 </div>
112 </div>
113 </div>
113 </div>
114 </div>
114 </div>
115
115
116 <div class="panel panel-default">
116 <div class="panel panel-default">
117 <div class="panel-heading" id="footer-code-options">
117 <div class="panel-heading" id="footer-code-options">
118 <h3 class="panel-title">${_('Custom Footer Code')} <a class="permalink" href="#footer-code-options"> ΒΆ</a></h3>
118 <h3 class="panel-title">${_('Custom Footer Code')} <a class="permalink" href="#footer-code-options"> ΒΆ</a></h3>
119 </div>
119 </div>
120 <div class="panel-body">
120 <div class="panel-body">
121 <div class="select">
121 <div class="select">
122 <select id="post_template" >
122 <select id="post_template" >
123 <option value="#">${_('Templates...')}</option>
123 <option value="#">${_('Templates...')}</option>
124 <option value="ga">Google Analytics</option>
124 <option value="ga">Google Analytics</option>
125 <option value="clicky">Clicky</option>
125 <option value="clicky">Clicky</option>
126 <option value="server_announce">${_('Server Announcement')}</option>
126 <option value="server_announce">${_('Server Announcement')}</option>
127 </select>
127 </select>
128 </div>
128 </div>
129 <div style="padding: 10px 0px"></div>
129 <div style="padding: 10px 0px"></div>
130 <div class="textarea text-area">
130 <div class="textarea text-area">
131 ${h.textarea('rhodecode_post_code',cols=23,rows=5, class_="medium")}
131 ${h.textarea('rhodecode_post_code',cols=23,rows=5, class_="medium")}
132 <span class="help-block">${_('Custom js/css code added at the end of the <body> tag.')}
132 <span class="help-block">${_('Custom js/css code added at the end of the <body> tag.')}
133 ${_('Use <script> or <css> tags to define custom styling or scripting')}</span>
133 ${_('Use <script> or <css> tags to define custom styling or scripting')}</span>
134 </div>
134 </div>
135 </div>
135 </div>
136 </div>
136 </div>
137
137
138 <div class="buttons">
138 <div class="buttons">
139 ${h.submit('save',_('Save settings'),class_="btn")}
139 ${h.submit('save',_('Save settings'),class_="btn")}
140 ${h.reset('reset',_('Reset'),class_="btn")}
140 ${h.reset('reset',_('Reset'),class_="btn")}
141 </div>
141 </div>
142 ${h.end_form()}
142 ${h.end_form()}
143
143
144
144
145
145
146 ## TEMPLATES ##
146 ## TEMPLATES ##
147 ###############
147 ###############
148
148
149 <script id="ga_tmpl" type="text/x-template">
149 <script id="ga_tmpl" type="text/x-template">
150 <%text filter="h">
150 <%text filter="h">
151 <script>
151 <script>
152 // Google Analytics
152 // Google Analytics
153 // Put your Google Analytics code instead of _GACODE_
153 // Put your Google Analytics code instead of _GACODE_
154 var _gaq_code = '_GACODE_';
154 var _gaq_code = '_GACODE_';
155 var _gaq = _gaq || [];
155 var _gaq = _gaq || [];
156 _gaq.push(['_setAccount', _gaq_code]);
156 _gaq.push(['_setAccount', _gaq_code]);
157 _gaq.push(['_trackPageview']);
157 _gaq.push(['_trackPageview']);
158
158
159 (function() {
159 (function() {
160 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
160 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
161 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
161 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
162 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
162 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
163 })();
163 })();
164
164
165 rhodecode_statechange_callback = function(url, data){
165 rhodecode_statechange_callback = function(url, data){
166 // ANALYTICS callback on html5 history state changed
166 // ANALYTICS callback on html5 history state changed
167 // triggered by file browser, url is the new url,
167 // triggered by file browser, url is the new url,
168 // data is extra info passed from the State object
168 // data is extra info passed from the State object
169 if (typeof window._gaq !== 'undefined') {
169 if (typeof window._gaq !== 'undefined') {
170 _gaq.push(['_trackPageview', url]);
170 _gaq.push(['_trackPageview', url]);
171 }
171 }
172 };
172 };
173 </script>
173 </script>
174 </%text>
174 </%text>
175 </script>
175 </script>
176
176
177
177
178
178
179 <script id="clicky_tmpl" type="text/x-template">
179 <script id="clicky_tmpl" type="text/x-template">
180 <%text filter="h">
180 <%text filter="h">
181 <script src="//static.getclicky.com/js" type="text/javascript"></script>
181 <script src="//static.getclicky.com/js" type="text/javascript"></script>
182 <script type="text/javascript">
182 <script type="text/javascript">
183 // Clicky Analytics - should be used in the footer code section.
183 // Clicky Analytics - should be used in the footer code section.
184 // Put your Clicky code instead of _CLICKYCODE_ here,
184 // Put your Clicky code instead of _CLICKYCODE_ here,
185 // and below in the <img> tag.
185 // and below in the <img> tag.
186 var _cl_code = _CLICKYCODE_;
186 var _cl_code = _CLICKYCODE_;
187 try{clicky.init(_cl_code);}catch(e){}
187 try{clicky.init(_cl_code);}catch(e){}
188
188
189 rhodecode_statechange_callback = function(url, data){
189 rhodecode_statechange_callback = function(url, data){
190 // ANALYTICS callback on html5 history state changed
190 // ANALYTICS callback on html5 history state changed
191 // triggered by file browser, url is the new url,
191 // triggered by file browser, url is the new url,
192 // data is extra info passed from the State object
192 // data is extra info passed from the State object
193 if (typeof window.clicky !== 'undefined') {
193 if (typeof window.clicky !== 'undefined') {
194 clicky.log(url);
194 clicky.log(url);
195 }
195 }
196 }
196 }
197 </script>
197 </script>
198 <noscript>
198 <noscript>
199 // Put your clicky code in the src file.
199 // Put your clicky code in the src file.
200 <p><img alt="Clicky" width="1" height="1"
200 <p><img alt="Clicky" width="1" height="1"
201 src="//in.getclicky.com/_CLICKYCODE_ns.gif" /></p>
201 src="//in.getclicky.com/_CLICKYCODE_ns.gif" /></p>
202 </noscript>
202 </noscript>
203 </%text>
203 </%text>
204 </script>
204 </script>
205
205
206
206
207
207
208 <script id="server_announce_tmpl" type='text/x-template'>
208 <script id="server_announce_tmpl" type='text/x-template'>
209 <%text filter="h">
209 <%text filter="h">
210 <script>
210 <script>
211 // Server announcement displayed on the top of the page.
211 // Server announcement displayed on the top of the page.
212 // This can be used to send a global maintenance messages or other
212 // This can be used to send a global maintenance messages or other
213 // important messages to all users of the RhodeCode Enterprise system.
213 // important messages to all users of the RhodeCode Enterprise system.
214
214
215 $(document).ready(function(e){
215 $(document).ready(function(e){
216
216
217 // EDIT - put your message below
217 // EDIT - put your message below
218 var message = "TYPE YOUR MESSAGE HERE";
218 var message = "TYPE YOUR MESSAGE HERE";
219
219
220 // EDIT - choose "info"/"warning"/"error"/"success"/"neutral" as appropriate
220 // EDIT - choose "info"/"warning"/"error"/"success"/"neutral" as appropriate
221 var alert_level = "info";
221 var alert_level = "info";
222
222
223 $("#body").prepend(
223 $("#body").prepend(
224 ("<div id='server-announcement' class='"+alert_level+"'>_MSG_"+"</div>").replace("_MSG_", message)
224 ("<div id='server-announcement' class='"+alert_level+"'>_MSG_"+"</div>").replace("_MSG_", message)
225 )
225 )
226 })
226 })
227 </script>
227 </script>
228 </%text>
228 </%text>
229 </script>
229 </script>
230
230
231 <script id="flash_filtering_tmpl" type='text/x-template'>
231 <script id="flash_filtering_tmpl" type='text/x-template'>
232 <%text filter="h">
232 <%text filter="h">
233 <script>
233 <script>
234 // This filters out some flash messages before they are presented to user
234 // This filters out some flash messages before they are presented to user
235 // based on their contents. Could be used to filter out warnings/errors
235 // based on their contents. Could be used to filter out warnings/errors
236 // of license messages
236 // of license messages
237
237
238 var filteredMessages = [];
238 var filteredMessages = [];
239 for(var i =0; i< alertMessagePayloads.length; i++){
239 for(var i =0; i< alertMessagePayloads.length; i++){
240 if (typeof alertMessagePayloads[i].message.subdata.subtype !== 'undefined' &&
240 if (typeof alertMessagePayloads[i].message.subdata.subtype !== 'undefined' &&
241 alertMessagePayloads[i].message.subdata.subtype.indexOf('rc_license') !== -1){
241 alertMessagePayloads[i].message.subdata.subtype.indexOf('rc_license') !== -1){
242 continue
242 continue
243 }
243 }
244 filteredMessages.push(alertMessagePayloads[i]);
244 filteredMessages.push(alertMessagePayloads[i]);
245 }
245 }
246 alertMessagePayloads = filteredMessages;
246 alertMessagePayloads = filteredMessages;
247 </script>
247 </script>
248 </%text>
248 </%text>
249 </script>
249 </script>
250
250
251 <script>
251 <script>
252 var pre_cm = initCodeMirror('rhodecode_pre_code', '', false);
252 var pre_cm = initCodeMirror('rhodecode_pre_code', '', false);
253 var pre_old = pre_cm.getValue();
253 var pre_old = pre_cm.getValue();
254
254
255 var post_cm = initCodeMirror('rhodecode_post_code', '', false);
255 var post_cm = initCodeMirror('rhodecode_post_code', '', false);
256 var post_old = post_cm.getValue();
256 var post_old = post_cm.getValue();
257
257
258 var get_data = function(type, old){
258 var get_data = function(type, old){
259 var get_tmpl = function(tmpl_name){
259 var get_tmpl = function(tmpl_name){
260 // unescape some stuff
260 // unescape some stuff
261 return htmlEnDeCode.htmlDecode($('#'+tmpl_name+'_tmpl').html());
261 return htmlEnDeCode.htmlDecode($('#'+tmpl_name+'_tmpl').html());
262 };
262 };
263 return {
263 return {
264 '#': old,
264 '#': old,
265 'ga': get_tmpl('ga'),
265 'ga': get_tmpl('ga'),
266 'clicky': get_tmpl('clicky'),
266 'clicky': get_tmpl('clicky'),
267 'server_announce': get_tmpl('server_announce'),
267 'server_announce': get_tmpl('server_announce'),
268 'flash_filtering': get_tmpl('flash_filtering')
268 'flash_filtering': get_tmpl('flash_filtering')
269 }[type]
269 }[type]
270 };
270 };
271
271
272 $('#pre_template').select2({
272 $('#pre_template').select2({
273 containerCssClass: 'drop-menu',
273 containerCssClass: 'drop-menu',
274 dropdownCssClass: 'drop-menu-dropdown',
274 dropdownCssClass: 'drop-menu-dropdown',
275 dropdownAutoWidth: true,
275 dropdownAutoWidth: true,
276 minimumResultsForSearch: -1
276 minimumResultsForSearch: -1
277 });
277 });
278
278
279 $('#post_template').select2({
279 $('#post_template').select2({
280 containerCssClass: 'drop-menu',
280 containerCssClass: 'drop-menu',
281 dropdownCssClass: 'drop-menu-dropdown',
281 dropdownCssClass: 'drop-menu-dropdown',
282 dropdownAutoWidth: true,
282 dropdownAutoWidth: true,
283 minimumResultsForSearch: -1
283 minimumResultsForSearch: -1
284 });
284 });
285
285
286 $('#post_template').on('change', function(e){
286 $('#post_template').on('change', function(e){
287 var sel = this.value;
287 var sel = this.value;
288 post_cm.setValue(get_data(sel, post_old))
288 post_cm.setValue(get_data(sel, post_old))
289 });
289 });
290
290
291 $('#pre_template').on('change', function(e){
291 $('#pre_template').on('change', function(e){
292 var sel = this.value;
292 var sel = this.value;
293 pre_cm.setValue(get_data(sel, pre_old))
293 pre_cm.setValue(get_data(sel, pre_old))
294 })
294 })
295 </script>
295 </script>
@@ -1,91 +1,98 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.mako"/>
2 <%inherit file="base/root.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Reset Password')}
5 ${_('Reset Password')}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10 <style>body{background-color:#eeeeee;}</style>
10 <style>body{background-color:#eeeeee;}</style>
11
11
12 <div class="loginbox">
12 <div class="loginbox">
13 <div class="header">
13 <div class="header">
14 <div id="header-inner" class="title">
14 <div id="header-inner" class="title">
15 <div id="logo">
15 <div id="logo">
16 <div class="logo-wrapper">
16 <div class="logo-wrapper">
17 <a href="${h.route_path('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
17 <a href="${h.route_path('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
18 </div>
18 </div>
19 %if c.rhodecode_name:
19 %if c.rhodecode_name:
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
21 %endif
21 %endif
22 </div>
22 </div>
23 </div>
23 </div>
24 </div>
24 </div>
25
25
26 <div class="loginwrapper">
26 <div class="loginwrapper">
27 <rhodecode-toast id="notifications"></rhodecode-toast>
27 <rhodecode-toast id="notifications"></rhodecode-toast>
28 <div class="left-column">
28 <div class="left-column">
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
30 </div>
30 </div>
31
31
32 %if h.HasPermissionAny('hg.password_reset.disabled')():
32 %if h.HasPermissionAny('hg.password_reset.disabled')():
33 <div class="right-column">
33 <div class="right-column">
34 <p>
34 <p>
35 ${_('Password reset is disabled. Please contact ')}
35 ${_('Password reset is disabled. Please contact ')}
36 % if c.visual.rhodecode_support_url:
36 % if c.visual.rhodecode_support_url:
37 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
37 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
38 ${_('or')}
38 ${_('or')}
39 % endif
39 % endif
40 ${_('an administrator if you need help.')}
40 ${_('an administrator if you need help.')}
41 </p>
41 </p>
42 </div>
42 </div>
43 %else:
43 %else:
44 <div id="register" class="right-column">
44 <div id="register" class="right-column">
45 <!-- login -->
45 <!-- login -->
46 <div class="sign-in-title">
46 <div class="sign-in-title">
47 <h1>${_('Reset your Password')}</h1>
47 <h1>${_('Reset your Password')}</h1>
48 <h4>${h.link_to(_("Go to the login page to sign in."), request.route_path('login'))}</h4>
48 <h4>${h.link_to(_("Go to the login page to sign in."), request.route_path('login'))}</h4>
49 </div>
49 </div>
50 <div class="inner form">
50 <div class="inner form">
51 ${h.form(request.route_path('reset_password'), needs_csrf_token=False)}
51 ${h.form(request.route_path('reset_password'), needs_csrf_token=False)}
52 <label for="email">${_('Email Address')}:</label>
52 <label for="email">${_('Email Address')}:</label>
53 ${h.text('email', defaults.get('email'))}
53 ${h.text('email', defaults.get('email'))}
54 %if 'email' in errors:
54 %if 'email' in errors:
55 <span class="error-message">${errors.get('email')}</span>
55 <span class="error-message">${errors.get('email')}</span>
56 <br />
56 <br />
57 %endif
57 %endif
58
58
59 %if captcha_active:
59 %if captcha_active:
60 <div class="login-captcha">
60 <div class="login-captcha">
61 <label for="email">${_('Captcha')}:</label>
61 <label for="email">${_('Captcha')}:</label>
62 ${h.hidden('recaptcha_field')}
62 ${h.hidden('recaptcha_field')}
63 <div id="recaptcha"></div>
63 <div id="recaptcha"></div>
64
64 %if 'recaptcha_field' in errors:
65 %if 'recaptcha_field' in errors:
65 <span class="error-message">${errors.get('recaptcha_field')}</span>
66 <span class="error-message">${errors.get('recaptcha_field')}</span>
66 <br />
67 <br />
67 %endif
68 %endif
68 </div>
69 </div>
69 %endif
70 %endif
70
71
71 ${h.submit('send', _('Send password reset email'), class_="btn sign-in")}
72 ${h.submit('send', _('Send password reset email'), class_="btn sign-in")}
72 <div class="activation_msg">${_('Password reset link will be sent to matching email address')}</div>
73 <div class="activation_msg">${_('Password reset link will be sent to matching email address')}</div>
73
74
74 ${h.end_form()}
75 ${h.end_form()}
75 </div>
76 </div>
76 </div>
77 </div>
77 %endif
78 %endif
78 </div>
79 </div>
79 </div>
80 </div>
80
81
81 %if captcha_active:
82 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
83 %endif
84 <script type="text/javascript">
82 <script type="text/javascript">
85 $(document).ready(function(){
83 $(document).ready(function(){
86 $('#email').focus();
84 $('#email').focus();
87 %if captcha_active:
88 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
89 %endif
90 });
85 });
91 </script>
86 </script>
87
88 % if captcha_active:
89 <script type="text/javascript">
90 var onloadCallback = function() {
91 grecaptcha.render('recaptcha', {
92 'sitekey' : "${captcha_public_key}"
93 });
94 };
95 </script>
96 <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
97 % endif
98
@@ -1,123 +1,130 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.mako"/>
2 <%inherit file="base/root.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Create an Account')}
5 ${_('Create an Account')}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10 <style>body{background-color:#eeeeee;}</style>
10 <style>body{background-color:#eeeeee;}</style>
11
11
12 <div class="loginbox">
12 <div class="loginbox">
13 <div class="header">
13 <div class="header">
14 <div id="header-inner" class="title">
14 <div id="header-inner" class="title">
15 <div id="logo">
15 <div id="logo">
16 <div class="logo-wrapper">
16 <div class="logo-wrapper">
17 <a href="${h.route_path('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
17 <a href="${h.route_path('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
18 </div>
18 </div>
19 %if c.rhodecode_name:
19 %if c.rhodecode_name:
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
21 %endif
21 %endif
22 </div>
22 </div>
23 </div>
23 </div>
24 </div>
24 </div>
25
25
26 <div class="loginwrapper">
26 <div class="loginwrapper">
27 <rhodecode-toast id="notifications"></rhodecode-toast>
27 <rhodecode-toast id="notifications"></rhodecode-toast>
28 <div class="left-column">
28 <div class="left-column">
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
30 </div>
30 </div>
31 <%block name="above_register_button" />
31 <%block name="above_register_button" />
32 <div id="register" class="right-column">
32 <div id="register" class="right-column">
33 <!-- login -->
33 <!-- login -->
34 <div class="sign-in-title">
34 <div class="sign-in-title">
35 <h1>${_('Create an account')}</h1>
35 <h1>${_('Create an account')}</h1>
36 <h4>${h.link_to(_("Go to the login page to sign in with an existing account."), request.route_path('login'))}</h4>
36 <h4>${h.link_to(_("Go to the login page to sign in with an existing account."), request.route_path('login'))}</h4>
37 </div>
37 </div>
38 <div class="inner form">
38 <div class="inner form">
39 ${h.form(request.route_path('register'), needs_csrf_token=False)}
39 ${h.form(request.route_path('register'), needs_csrf_token=False)}
40
40
41 <label for="username">${_('Username')}:</label>
41 <label for="username">${_('Username')}:</label>
42 ${h.text('username', defaults.get('username'))}
42 ${h.text('username', defaults.get('username'))}
43 %if 'username' in errors:
43 %if 'username' in errors:
44 <span class="error-message">${errors.get('username')}</span>
44 <span class="error-message">${errors.get('username')}</span>
45 <br />
45 <br />
46 %endif
46 %endif
47
47
48 <label for="password">${_('Password')}:</label>
48 <label for="password">${_('Password')}:</label>
49 ${h.password('password', defaults.get('password'))}
49 ${h.password('password', defaults.get('password'))}
50 %if 'password' in errors:
50 %if 'password' in errors:
51 <span class="error-message">${errors.get('password')}</span>
51 <span class="error-message">${errors.get('password')}</span>
52 <br />
52 <br />
53 %endif
53 %endif
54
54
55 <label for="password_confirmation">${_('Re-enter password')}:</label>
55 <label for="password_confirmation">${_('Re-enter password')}:</label>
56 ${h.password('password_confirmation', defaults.get('password_confirmation'))}
56 ${h.password('password_confirmation', defaults.get('password_confirmation'))}
57 %if 'password_confirmation' in errors:
57 %if 'password_confirmation' in errors:
58 <span class="error-message">${errors.get('password_confirmation')}</span>
58 <span class="error-message">${errors.get('password_confirmation')}</span>
59 <br />
59 <br />
60 %endif
60 %endif
61
61
62 <label for="firstname">${_('First Name')}:</label>
62 <label for="firstname">${_('First Name')}:</label>
63 ${h.text('firstname', defaults.get('firstname'))}
63 ${h.text('firstname', defaults.get('firstname'))}
64 %if 'firstname' in errors:
64 %if 'firstname' in errors:
65 <span class="error-message">${errors.get('firstname')}</span>
65 <span class="error-message">${errors.get('firstname')}</span>
66 <br />
66 <br />
67 %endif
67 %endif
68
68
69 <label for="lastname">${_('Last Name')}:</label>
69 <label for="lastname">${_('Last Name')}:</label>
70 ${h.text('lastname', defaults.get('lastname'))}
70 ${h.text('lastname', defaults.get('lastname'))}
71 %if 'lastname' in errors:
71 %if 'lastname' in errors:
72 <span class="error-message">${errors.get('lastname')}</span>
72 <span class="error-message">${errors.get('lastname')}</span>
73 <br />
73 <br />
74 %endif
74 %endif
75
75
76 <label for="email">${_('Email')}:</label>
76 <label for="email">${_('Email')}:</label>
77 ${h.text('email', defaults.get('email'))}
77 ${h.text('email', defaults.get('email'))}
78 %if 'email' in errors:
78 %if 'email' in errors:
79 <span class="error-message">${errors.get('email')}</span>
79 <span class="error-message">${errors.get('email')}</span>
80 <br />
80 <br />
81 %endif
81 %endif
82
82
83 %if captcha_active:
83 %if captcha_active:
84 <div>
84 <div>
85 <label for="recaptcha">${_('Captcha')}:</label>
85 <label for="recaptcha">${_('Captcha')}:</label>
86 ${h.hidden('recaptcha_field')}
86 ${h.hidden('recaptcha_field')}
87 <div id="recaptcha"></div>
87 <div id="recaptcha"></div>
88 %if 'recaptcha_field' in errors:
88 %if 'recaptcha_field' in errors:
89 <span class="error-message">${errors.get('recaptcha_field')}</span>
89 <span class="error-message">${errors.get('recaptcha_field')}</span>
90 <br />
90 <br />
91 %endif
91 %endif
92 </div>
92 </div>
93 %endif
93 %endif
94
94
95 %if not auto_active:
95 %if not auto_active:
96 <p class="activation_msg">
96 <p class="activation_msg">
97 ${_('Account activation requires admin approval.')}
97 ${_('Account activation requires admin approval.')}
98 </p>
98 </p>
99 %endif
99 %endif
100 <p class="register_message">
100 <p class="register_message">
101 ${register_message|n}
101 ${register_message|n}
102 </p>
102 </p>
103
103
104 ${h.submit('sign_up',_('Create Account'),class_="btn sign-in")}
104 ${h.submit('sign_up',_('Create Account'),class_="btn sign-in")}
105
105
106 ${h.end_form()}
106 ${h.end_form()}
107 </div>
107 </div>
108 <%block name="below_register_button" />
108 <%block name="below_register_button" />
109 </div>
109 </div>
110 </div>
110 </div>
111 </div>
111 </div>
112
112
113 %if captcha_active:
113
114 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
115 %endif
116 <script type="text/javascript">
114 <script type="text/javascript">
117 $(document).ready(function(){
115 $(document).ready(function(){
118 $('#username').focus();
116 $('#username').focus();
119 %if captcha_active:
120 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
121 %endif
122 });
117 });
123 </script>
118 </script>
119
120 % if captcha_active:
121 <script type="text/javascript">
122 var onloadCallback = function() {
123 grecaptcha.render('recaptcha', {
124 'sitekey' : "${captcha_public_key}"
125 });
126 };
127 </script>
128 <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
129 % endif
130
General Comments 0
You need to be logged in to leave comments. Login now