##// END OF EJS Templates
release: merge back stable branch into default
marcink -
r3843:957c2342 merge default
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -0,0 +1,41 b''
1 |RCE| 4.17.1 |RNS|
2 ------------------
3
4 Release Date
5 ^^^^^^^^^^^^
6
7 - 2019-07-04
8
9
10 New Features
11 ^^^^^^^^^^^^
12
13
14
15 General
16 ^^^^^^^
17
18
19
20 Security
21 ^^^^^^^^
22
23
24
25 Performance
26 ^^^^^^^^^^^
27
28
29
30 Fixes
31 ^^^^^
32
33 - Database: fixed mysql migration issues.
34 - Artifacts: fixed problem with non-ascii file uploads.
35 - Artifacts: increase timeout, and allow setting custom time via ?timeout=N GET flag
36
37
38 Upgrade notes
39 ^^^^^^^^^^^^^
40
41 - Un-scheduled release addressing problems in 4.17.X releases.
@@ -0,0 +1,40 b''
1 |RCE| 4.17.2 |RNS|
2 ------------------
3
4 Release Date
5 ^^^^^^^^^^^^
6
7 - 2019-07-05
8
9
10 New Features
11 ^^^^^^^^^^^^
12
13
14
15 General
16 ^^^^^^^
17
18
19
20 Security
21 ^^^^^^^^
22
23
24
25 Performance
26 ^^^^^^^^^^^
27
28
29
30 Fixes
31 ^^^^^
32
33 - UI: fixed missing icons on some cases.
34 - Commits: hide links icon of message that don't expand.
35
36
37 Upgrade notes
38 ^^^^^^^^^^^^^
39
40 - Un-scheduled release addressing problems in 4.17.X releases.
1 NO CONTENT: new file 100644
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,66 +1,67 b''
1 1 syntax: glob
2 2 *.egg
3 3 *.egg-info
4 4 *.idea
5 5 *.orig
6 6 *.pyc
7 7 *.sqlite-journal
8 8 *.swp
9 9 *.tox
10 10 *.DS_Store*
11 11 rhodecode/public/js/src/components/**/*.css
12 12
13 13 syntax: regexp
14 14
15 15 #.filename
16 16 ^\.settings$
17 17 ^\.project$
18 18 ^\.pydevproject$
19 19 ^\.coverage$
20 20 ^\.cache.*$
21 21 ^\.rhodecode$
22 22
23 23 ^rcextensions
24 24 ^.dev
25 25 ^._dev
26 26 ^build/
27 27 ^coverage\.xml$
28 28 ^data$
29 29 ^\.eggs/
30 30 ^configs/data$
31 31 ^dev.ini$
32 32 ^acceptance_tests/dev.*\.ini$
33 33 ^dist/
34 34 ^fabfile.py
35 35 ^htmlcov
36 36 ^junit\.xml$
37 37 ^node_modules/
38 38 ^node_binaries/
39 39 ^pylint.log$
40 40 ^rcextensions/
41 41 ^result$
42 42 ^rhodecode/public/css/style.css$
43 43 ^rhodecode/public/css/style-polymer.css$
44 ^rhodecode/public/css/style-ipython.css$
44 45 ^rhodecode/public/js/rhodecode-components.html$
45 46 ^rhodecode/public/js/rhodecode-components.js$
46 47 ^rhodecode/public/js/scripts.js$
47 48 ^rhodecode/public/js/src/components/root-styles.gen.html$
48 49 ^rhodecode/public/js/vendors/webcomponentsjs/
49 50 ^rhodecode\.db$
50 51 ^rhodecode\.log$
51 52 ^rhodecode_dev\.log$
52 53 ^test\.db$
53 54
54 55 # ac-tests
55 56 ^acceptance_tests/\.cache.*$
56 57 ^acceptance_tests/externals
57 58 ^acceptance_tests/ghostdriver.log$
58 59 ^acceptance_tests/local(_.+)?\.ini$
59 60
60 61 # docs
61 62 ^docs/_build$
62 63 ^docs/result$
63 64 ^docs-internal/_build$
64 65
65 66 # Cythonized things
66 67 ^rhodecode/.*\.(c|so)$
@@ -1,54 +1,57 b''
1 1 1bd3e92b7e2e2d2024152b34bb88dff1db544a71 v4.0.0
2 2 170c5398320ea6cddd50955e88d408794c21d43a v4.0.1
3 3 c3fe200198f5aa34cf2e4066df2881a9cefe3704 v4.1.0
4 4 7fd5c850745e2ea821fb4406af5f4bff9b0a7526 v4.1.1
5 5 41c87da28a179953df86061d817bc35533c66dd2 v4.1.2
6 6 baaf9f5bcea3bae0ef12ae20c8b270482e62abb6 v4.2.0
7 7 32a70c7e56844a825f61df496ee5eaf8c3c4e189 v4.2.1
8 8 fa695cdb411d294679ac081d595ac654e5613b03 v4.3.0
9 9 0e4dc11b58cad833c513fe17bac39e6850edf959 v4.3.1
10 10 8a876f48f5cb1d018b837db28ff928500cb32cfb v4.4.0
11 11 8dd86b410b1aac086ffdfc524ef300f896af5047 v4.4.1
12 12 d2514226abc8d3b4f6fb57765f47d1b6fb360a05 v4.4.2
13 13 27d783325930af6dad2741476c0d0b1b7c8415c2 v4.5.0
14 14 7f2016f352abcbdba4a19d4039c386e9629449da v4.5.1
15 15 416fec799314c70a5c780fb28b3357b08869333a v4.5.2
16 16 27c3b85fafc83143e6678fbc3da69e1615bcac55 v4.6.0
17 17 5ad13deb9118c2a5243d4032d4d9cc174e5872db v4.6.1
18 18 2be921e01fa24bb102696ada596f87464c3666f6 v4.7.0
19 19 7198bdec29c2872c974431d55200d0398354cdb1 v4.7.1
20 20 bd1c8d230fe741c2dfd7100a0ef39fd0774fd581 v4.7.2
21 21 9731914f89765d9628dc4dddc84bc9402aa124c8 v4.8.0
22 22 c5a2b7d0e4bbdebc4a62d7b624befe375207b659 v4.9.0
23 23 d9aa3b27ac9f7e78359775c75fedf7bfece232f1 v4.9.1
24 24 4ba4d74981cec5d6b28b158f875a2540952c2f74 v4.10.0
25 25 0a6821cbd6b0b3c21503002f88800679fa35ab63 v4.10.1
26 26 434ad90ec8d621f4416074b84f6e9ce03964defb v4.10.2
27 27 68baee10e698da2724c6e0f698c03a6abb993bf2 v4.10.3
28 28 00821d3afd1dce3f4767cc353f84a17f7d5218a1 v4.10.4
29 29 22f6744ad8cc274311825f63f953e4dee2ea5cb9 v4.10.5
30 30 96eb24bea2f5f9258775245e3f09f6fa0a4dda01 v4.10.6
31 31 3121217a812c956d7dd5a5875821bd73e8002a32 v4.11.0
32 32 fa98b454715ac5b912f39e84af54345909a2a805 v4.11.1
33 33 3982abcfdcc229a723cebe52d3a9bcff10bba08e v4.11.2
34 34 33195f145db9172f0a8f1487e09207178a6ab065 v4.11.3
35 35 194c74f33e32bbae6fc4d71ec5a999cff3c13605 v4.11.4
36 36 8fbd8b0c3ddc2fa4ac9e4ca16942a03eb593df2d v4.11.5
37 37 f0609aa5d5d05a1ca2f97c3995542236131c9d8a v4.11.6
38 38 b5b30547d90d2e088472a70c84878f429ffbf40d v4.12.0
39 39 9072253aa8894d20c00b4a43dc61c2168c1eff94 v4.12.1
40 40 6a517543ea9ef9987d74371bd2a315eb0b232dc9 v4.12.2
41 41 7fc0731b024c3114be87865eda7ab621cc957e32 v4.12.3
42 42 6d531c0b068c6eda62dddceedc9f845ecb6feb6f v4.12.4
43 43 3d6bf2d81b1564830eb5e83396110d2a9a93eb1e v4.13.0
44 44 5468fc89e708bd90e413cd0d54350017abbdbc0e v4.13.1
45 45 610d621550521c314ee97b3d43473ac0bcf06fb8 v4.13.2
46 46 7dc62c090881fb5d03268141e71e0940d7c3295d v4.13.3
47 47 9151328c1c46b72ba6f00d7640d9141e75aa1ca2 v4.14.0
48 48 a47eeac5dfa41fa6779d90452affba4091c3ade8 v4.14.1
49 49 4b34ce0d2c3c10510626b3b65044939bb7a2cddf v4.15.0
50 50 14502561d22e6b70613674cd675ae9a604b7989f v4.15.1
51 51 4aaa40b605b01af78a9f6882eca561c54b525ef0 v4.15.2
52 52 797744642eca86640ed20bef2cd77445780abaec v4.16.0
53 53 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1
54 54 5d8057df561c4b6b81b6401aed7d2f911e6e77f7 v4.16.2
55 13acfc008896ef4c62546bab5074e8f6f89b4fa7 v4.17.0
56 45b9b610976f483877142fe75321808ce9ebac59 v4.17.1
57 ad5bd0c4bd322fdbd04bb825a3d027e08f7a3901 v4.17.2
@@ -1,132 +1,134 b''
1 1 .. _rhodecode-release-notes-ref:
2 2
3 3 Release Notes
4 4 =============
5 5
6 6 |RCE| 4.x Versions
7 7 ------------------
8 8
9 9 .. toctree::
10 10 :maxdepth: 1
11 11
12 release-notes-4.17.2.rst
13 release-notes-4.17.1.rst
12 14 release-notes-4.17.0.rst
13 15 release-notes-4.16.2.rst
14 16 release-notes-4.16.1.rst
15 17 release-notes-4.16.0.rst
16 18 release-notes-4.15.2.rst
17 19 release-notes-4.15.1.rst
18 20 release-notes-4.15.0.rst
19 21 release-notes-4.14.1.rst
20 22 release-notes-4.14.0.rst
21 23 release-notes-4.13.3.rst
22 24 release-notes-4.13.2.rst
23 25 release-notes-4.13.1.rst
24 26 release-notes-4.13.0.rst
25 27 release-notes-4.12.4.rst
26 28 release-notes-4.12.3.rst
27 29 release-notes-4.12.2.rst
28 30 release-notes-4.12.1.rst
29 31 release-notes-4.12.0.rst
30 32 release-notes-4.11.6.rst
31 33 release-notes-4.11.5.rst
32 34 release-notes-4.11.4.rst
33 35 release-notes-4.11.3.rst
34 36 release-notes-4.11.2.rst
35 37 release-notes-4.11.1.rst
36 38 release-notes-4.11.0.rst
37 39 release-notes-4.10.6.rst
38 40 release-notes-4.10.5.rst
39 41 release-notes-4.10.4.rst
40 42 release-notes-4.10.3.rst
41 43 release-notes-4.10.2.rst
42 44 release-notes-4.10.1.rst
43 45 release-notes-4.10.0.rst
44 46 release-notes-4.9.1.rst
45 47 release-notes-4.9.0.rst
46 48 release-notes-4.8.0.rst
47 49 release-notes-4.7.2.rst
48 50 release-notes-4.7.1.rst
49 51 release-notes-4.7.0.rst
50 52 release-notes-4.6.1.rst
51 53 release-notes-4.6.0.rst
52 54 release-notes-4.5.2.rst
53 55 release-notes-4.5.1.rst
54 56 release-notes-4.5.0.rst
55 57 release-notes-4.4.2.rst
56 58 release-notes-4.4.1.rst
57 59 release-notes-4.4.0.rst
58 60 release-notes-4.3.1.rst
59 61 release-notes-4.3.0.rst
60 62 release-notes-4.2.1.rst
61 63 release-notes-4.2.0.rst
62 64 release-notes-4.1.2.rst
63 65 release-notes-4.1.1.rst
64 66 release-notes-4.1.0.rst
65 67 release-notes-4.0.1.rst
66 68 release-notes-4.0.0.rst
67 69
68 70 |RCE| 3.x Versions
69 71 ------------------
70 72
71 73 .. toctree::
72 74 :maxdepth: 1
73 75
74 76 release-notes-3.8.4.rst
75 77 release-notes-3.8.3.rst
76 78 release-notes-3.8.2.rst
77 79 release-notes-3.8.1.rst
78 80 release-notes-3.8.0.rst
79 81 release-notes-3.7.1.rst
80 82 release-notes-3.7.0.rst
81 83 release-notes-3.6.1.rst
82 84 release-notes-3.6.0.rst
83 85 release-notes-3.5.2.rst
84 86 release-notes-3.5.1.rst
85 87 release-notes-3.5.0.rst
86 88 release-notes-3.4.1.rst
87 89 release-notes-3.4.0.rst
88 90 release-notes-3.3.4.rst
89 91 release-notes-3.3.3.rst
90 92 release-notes-3.3.2.rst
91 93 release-notes-3.3.1.rst
92 94 release-notes-3.3.0.rst
93 95 release-notes-3.2.3.rst
94 96 release-notes-3.2.2.rst
95 97 release-notes-3.2.1.rst
96 98 release-notes-3.2.0.rst
97 99 release-notes-3.1.1.rst
98 100 release-notes-3.1.0.rst
99 101 release-notes-3.0.2.rst
100 102 release-notes-3.0.1.rst
101 103 release-notes-3.0.0.rst
102 104
103 105 |RCE| 2.x Versions
104 106 ------------------
105 107
106 108 .. toctree::
107 109 :maxdepth: 1
108 110
109 111 release-notes-2.2.8.rst
110 112 release-notes-2.2.7.rst
111 113 release-notes-2.2.6.rst
112 114 release-notes-2.2.5.rst
113 115 release-notes-2.2.4.rst
114 116 release-notes-2.2.3.rst
115 117 release-notes-2.2.2.rst
116 118 release-notes-2.2.1.rst
117 119 release-notes-2.2.0.rst
118 120 release-notes-2.1.0.rst
119 121 release-notes-2.0.2.rst
120 122 release-notes-2.0.1.rst
121 123 release-notes-2.0.0.rst
122 124
123 125 |RCE| 1.x Versions
124 126 ------------------
125 127
126 128 .. toctree::
127 129 :maxdepth: 1
128 130
129 131 release-notes-1.7.2.rst
130 132 release-notes-1.7.1.rst
131 133 release-notes-1.7.0.rst
132 134 release-notes-1.6.0.rst
@@ -1,2346 +1,2346 b''
1 1 # Generated by pip2nix 0.8.0.dev1
2 2 # See https://github.com/johbo/pip2nix
3 3
4 4 { pkgs, fetchurl, fetchgit, fetchhg }:
5 5
6 6 self: super: {
7 7 "alembic" = super.buildPythonPackage {
8 8 name = "alembic-1.0.10";
9 9 doCheck = false;
10 10 propagatedBuildInputs = [
11 11 self."sqlalchemy"
12 12 self."mako"
13 13 self."python-editor"
14 14 self."python-dateutil"
15 15 ];
16 16 src = fetchurl {
17 17 url = "https://files.pythonhosted.org/packages/6e/8b/fa3bd058cccd5e9177fea4efa26bfb769228fdd3178436ad5e05830ef6ef/alembic-1.0.10.tar.gz";
18 18 sha256 = "1dwl0264r6ri2jyrjr68am04x538ab26xwy4crqjnnhm4alwm3c2";
19 19 };
20 20 meta = {
21 21 license = [ pkgs.lib.licenses.mit ];
22 22 };
23 23 };
24 24 "amqp" = super.buildPythonPackage {
25 25 name = "amqp-2.3.1";
26 26 doCheck = false;
27 27 propagatedBuildInputs = [
28 28 self."vine"
29 29 ];
30 30 src = fetchurl {
31 31 url = "https://files.pythonhosted.org/packages/1b/32/242ff76cd802766f11c89c72f3389b5c8de4bdfbab406137b90c5fae8b05/amqp-2.3.1.tar.gz";
32 32 sha256 = "0wlfnvhmfrn7c8qif2jyvsm63ibdxp02ss564qwrvqfhz0di72s0";
33 33 };
34 34 meta = {
35 35 license = [ pkgs.lib.licenses.bsdOriginal ];
36 36 };
37 37 };
38 38 "appenlight-client" = super.buildPythonPackage {
39 39 name = "appenlight-client-0.6.26";
40 40 doCheck = false;
41 41 propagatedBuildInputs = [
42 42 self."webob"
43 43 self."requests"
44 44 self."six"
45 45 ];
46 46 src = fetchurl {
47 47 url = "https://files.pythonhosted.org/packages/2e/56/418fc10379b96e795ee39a15e69a730c222818af04c3821fa354eaa859ec/appenlight_client-0.6.26.tar.gz";
48 48 sha256 = "0s9xw3sb8s3pk73k78nnq4jil3q4mk6bczfa1fmgfx61kdxl2712";
49 49 };
50 50 meta = {
51 51 license = [ pkgs.lib.licenses.bsdOriginal ];
52 52 };
53 53 };
54 54 "asn1crypto" = super.buildPythonPackage {
55 55 name = "asn1crypto-0.24.0";
56 56 doCheck = false;
57 57 src = fetchurl {
58 58 url = "https://files.pythonhosted.org/packages/fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4/asn1crypto-0.24.0.tar.gz";
59 59 sha256 = "0jaf8rf9dx1lf23xfv2cdd5h52f1qr3w8k63985bc35g3d220p4x";
60 60 };
61 61 meta = {
62 62 license = [ pkgs.lib.licenses.mit ];
63 63 };
64 64 };
65 65 "atomicwrites" = super.buildPythonPackage {
66 66 name = "atomicwrites-1.2.1";
67 67 doCheck = false;
68 68 src = fetchurl {
69 69 url = "https://files.pythonhosted.org/packages/ac/ed/a311712ef6b4355035489f665e63e1a73f9eb371929e3c98e5efd451069e/atomicwrites-1.2.1.tar.gz";
70 70 sha256 = "1vmkbw9j0qammwxbxycrs39gvdg4lc2d4lk98kwf8ag2manyi6pc";
71 71 };
72 72 meta = {
73 73 license = [ pkgs.lib.licenses.mit ];
74 74 };
75 75 };
76 76 "attrs" = super.buildPythonPackage {
77 77 name = "attrs-18.2.0";
78 78 doCheck = false;
79 79 src = fetchurl {
80 80 url = "https://files.pythonhosted.org/packages/0f/9e/26b1d194aab960063b266170e53c39f73ea0d0d3f5ce23313e0ec8ee9bdf/attrs-18.2.0.tar.gz";
81 81 sha256 = "0s9ydh058wmmf5v391pym877x4ahxg45dw6a0w4c7s5wgpigdjqh";
82 82 };
83 83 meta = {
84 84 license = [ pkgs.lib.licenses.mit ];
85 85 };
86 86 };
87 87 "authomatic" = super.buildPythonPackage {
88 88 name = "authomatic-0.1.0.post1";
89 89 doCheck = false;
90 90 src = fetchurl {
91 91 url = "https://code.rhodecode.com/upstream/authomatic/artifacts/download/0-4fe9c041-a567-4f84-be4c-7efa2a606d3c.tar.gz?md5=f6bdc3c769688212db68233e8d2b0383";
92 92 sha256 = "0pc716mva0ym6xd8jwzjbjp8dqxy9069wwwv2aqwb8lyhl4757ab";
93 93 };
94 94 meta = {
95 95 license = [ pkgs.lib.licenses.mit ];
96 96 };
97 97 };
98 98 "babel" = super.buildPythonPackage {
99 99 name = "babel-1.3";
100 100 doCheck = false;
101 101 propagatedBuildInputs = [
102 102 self."pytz"
103 103 ];
104 104 src = fetchurl {
105 105 url = "https://files.pythonhosted.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
106 106 sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
107 107 };
108 108 meta = {
109 109 license = [ pkgs.lib.licenses.bsdOriginal ];
110 110 };
111 111 };
112 112 "backports.shutil-get-terminal-size" = super.buildPythonPackage {
113 113 name = "backports.shutil-get-terminal-size-1.0.0";
114 114 doCheck = false;
115 115 src = fetchurl {
116 116 url = "https://files.pythonhosted.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
117 117 sha256 = "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki";
118 118 };
119 119 meta = {
120 120 license = [ pkgs.lib.licenses.mit ];
121 121 };
122 122 };
123 123 "beaker" = super.buildPythonPackage {
124 124 name = "beaker-1.9.1";
125 125 doCheck = false;
126 126 propagatedBuildInputs = [
127 127 self."funcsigs"
128 128 ];
129 129 src = fetchurl {
130 130 url = "https://files.pythonhosted.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
131 131 sha256 = "08arsn61r255lhz6hcpn2lsiqpg30clla805ysx06wmbhvb6w9rj";
132 132 };
133 133 meta = {
134 134 license = [ pkgs.lib.licenses.bsdOriginal ];
135 135 };
136 136 };
137 137 "beautifulsoup4" = super.buildPythonPackage {
138 138 name = "beautifulsoup4-4.6.3";
139 139 doCheck = false;
140 140 src = fetchurl {
141 141 url = "https://files.pythonhosted.org/packages/88/df/86bffad6309f74f3ff85ea69344a078fc30003270c8df6894fca7a3c72ff/beautifulsoup4-4.6.3.tar.gz";
142 142 sha256 = "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h";
143 143 };
144 144 meta = {
145 145 license = [ pkgs.lib.licenses.mit ];
146 146 };
147 147 };
148 148 "billiard" = super.buildPythonPackage {
149 149 name = "billiard-3.5.0.3";
150 150 doCheck = false;
151 151 src = fetchurl {
152 152 url = "https://files.pythonhosted.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
153 153 sha256 = "1riwiiwgb141151md4ykx49qrz749akj5k8g290ji9bsqjyj4yqx";
154 154 };
155 155 meta = {
156 156 license = [ pkgs.lib.licenses.bsdOriginal ];
157 157 };
158 158 };
159 159 "bleach" = super.buildPythonPackage {
160 160 name = "bleach-3.1.0";
161 161 doCheck = false;
162 162 propagatedBuildInputs = [
163 163 self."six"
164 164 self."webencodings"
165 165 ];
166 166 src = fetchurl {
167 167 url = "https://files.pythonhosted.org/packages/78/5a/0df03e8735cd9c75167528299c738702437589b9c71a849489d00ffa82e8/bleach-3.1.0.tar.gz";
168 168 sha256 = "1yhrgrhkln8bd6gn3imj69g1h4xqah9gaz9q26crqr6gmmvpzprz";
169 169 };
170 170 meta = {
171 171 license = [ pkgs.lib.licenses.asl20 ];
172 172 };
173 173 };
174 174 "bumpversion" = super.buildPythonPackage {
175 175 name = "bumpversion-0.5.3";
176 176 doCheck = false;
177 177 src = fetchurl {
178 178 url = "https://files.pythonhosted.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
179 179 sha256 = "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37";
180 180 };
181 181 meta = {
182 182 license = [ pkgs.lib.licenses.mit ];
183 183 };
184 184 };
185 185 "celery" = super.buildPythonPackage {
186 186 name = "celery-4.1.1";
187 187 doCheck = false;
188 188 propagatedBuildInputs = [
189 189 self."pytz"
190 190 self."billiard"
191 191 self."kombu"
192 192 ];
193 193 src = fetchurl {
194 194 url = "https://files.pythonhosted.org/packages/e9/cf/a4c0597effca20c57eb586324e41d1180bc8f13a933da41e0646cff69f02/celery-4.1.1.tar.gz";
195 195 sha256 = "1xbir4vw42n2ir9lanhwl7w69zpmj7lbi66fxm2b7pyvkcss7wni";
196 196 };
197 197 meta = {
198 198 license = [ pkgs.lib.licenses.bsdOriginal ];
199 199 };
200 200 };
201 201 "cffi" = super.buildPythonPackage {
202 202 name = "cffi-1.12.2";
203 203 doCheck = false;
204 204 propagatedBuildInputs = [
205 205 self."pycparser"
206 206 ];
207 207 src = fetchurl {
208 208 url = "https://files.pythonhosted.org/packages/64/7c/27367b38e6cc3e1f49f193deb761fe75cda9f95da37b67b422e62281fcac/cffi-1.12.2.tar.gz";
209 209 sha256 = "19qfks2djya8vix95bmg3xzipjb8w9b8mbj4j5k2hqkc8j58f4z1";
210 210 };
211 211 meta = {
212 212 license = [ pkgs.lib.licenses.mit ];
213 213 };
214 214 };
215 215 "chameleon" = super.buildPythonPackage {
216 216 name = "chameleon-2.24";
217 217 doCheck = false;
218 218 src = fetchurl {
219 219 url = "https://files.pythonhosted.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
220 220 sha256 = "0ykqr7syxfa6h9adjfnsv1gdsca2xzm22vmic8859n0f0j09abj5";
221 221 };
222 222 meta = {
223 223 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
224 224 };
225 225 };
226 226 "channelstream" = super.buildPythonPackage {
227 227 name = "channelstream-0.5.2";
228 228 doCheck = false;
229 229 propagatedBuildInputs = [
230 230 self."gevent"
231 231 self."ws4py"
232 232 self."pyramid"
233 233 self."pyramid-jinja2"
234 234 self."itsdangerous"
235 235 self."requests"
236 236 self."six"
237 237 ];
238 238 src = fetchurl {
239 239 url = "https://files.pythonhosted.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
240 240 sha256 = "1qbm4xdl5hfkja683x546bncg3rqq8qv79w1m1a1wd48cqqzb6rm";
241 241 };
242 242 meta = {
243 243 license = [ pkgs.lib.licenses.bsdOriginal ];
244 244 };
245 245 };
246 246 "click" = super.buildPythonPackage {
247 247 name = "click-7.0";
248 248 doCheck = false;
249 249 src = fetchurl {
250 250 url = "https://files.pythonhosted.org/packages/f8/5c/f60e9d8a1e77005f664b76ff8aeaee5bc05d0a91798afd7f53fc998dbc47/Click-7.0.tar.gz";
251 251 sha256 = "1mzjixd4vjbjvzb6vylki9w1556a9qmdh35kzmq6cign46av952v";
252 252 };
253 253 meta = {
254 254 license = [ pkgs.lib.licenses.bsdOriginal ];
255 255 };
256 256 };
257 257 "colander" = super.buildPythonPackage {
258 258 name = "colander-1.7.0";
259 259 doCheck = false;
260 260 propagatedBuildInputs = [
261 261 self."translationstring"
262 262 self."iso8601"
263 263 self."enum34"
264 264 ];
265 265 src = fetchurl {
266 266 url = "https://files.pythonhosted.org/packages/db/e4/74ab06f54211917b41865cafc987ce511e35503de48da9bfe9358a1bdc3e/colander-1.7.0.tar.gz";
267 267 sha256 = "1wl1bqab307lbbcjx81i28s3yl6dlm4rf15fxawkjb6j48x1cn6p";
268 268 };
269 269 meta = {
270 270 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
271 271 };
272 272 };
273 273 "configobj" = super.buildPythonPackage {
274 274 name = "configobj-5.0.6";
275 275 doCheck = false;
276 276 propagatedBuildInputs = [
277 277 self."six"
278 278 ];
279 279 src = fetchurl {
280 280 url = "https://code.rhodecode.com/upstream/configobj/artifacts/download/0-012de99a-b1e1-4f64-a5c0-07a98a41b324.tar.gz?md5=6a513f51fe04b2c18cf84c1395a7c626";
281 281 sha256 = "0kqfrdfr14mw8yd8qwq14dv2xghpkjmd3yjsy8dfcbvpcc17xnxp";
282 282 };
283 283 meta = {
284 284 license = [ pkgs.lib.licenses.bsdOriginal ];
285 285 };
286 286 };
287 287 "configparser" = super.buildPythonPackage {
288 288 name = "configparser-3.7.4";
289 289 doCheck = false;
290 290 src = fetchurl {
291 291 url = "https://files.pythonhosted.org/packages/e2/1c/83fd53748d8245cb9a3399f705c251d3fc0ce7df04450aac1cfc49dd6a0f/configparser-3.7.4.tar.gz";
292 292 sha256 = "0xac32886ihs2xg7w1gppcq2sgin5qsm8lqwijs5xifq9w0x0q6s";
293 293 };
294 294 meta = {
295 295 license = [ pkgs.lib.licenses.mit ];
296 296 };
297 297 };
298 298 "cov-core" = super.buildPythonPackage {
299 299 name = "cov-core-1.15.0";
300 300 doCheck = false;
301 301 propagatedBuildInputs = [
302 302 self."coverage"
303 303 ];
304 304 src = fetchurl {
305 305 url = "https://files.pythonhosted.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
306 306 sha256 = "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a";
307 307 };
308 308 meta = {
309 309 license = [ pkgs.lib.licenses.mit ];
310 310 };
311 311 };
312 312 "coverage" = super.buildPythonPackage {
313 313 name = "coverage-4.5.3";
314 314 doCheck = false;
315 315 src = fetchurl {
316 316 url = "https://files.pythonhosted.org/packages/82/70/2280b5b29a0352519bb95ab0ef1ea942d40466ca71c53a2085bdeff7b0eb/coverage-4.5.3.tar.gz";
317 317 sha256 = "02f6m073qdispn96rc616hg0rnmw1pgqzw3bgxwiwza4zf9hirlx";
318 318 };
319 319 meta = {
320 320 license = [ pkgs.lib.licenses.asl20 ];
321 321 };
322 322 };
323 323 "cryptography" = super.buildPythonPackage {
324 324 name = "cryptography-2.6.1";
325 325 doCheck = false;
326 326 propagatedBuildInputs = [
327 327 self."asn1crypto"
328 328 self."six"
329 329 self."cffi"
330 330 self."enum34"
331 331 self."ipaddress"
332 332 ];
333 333 src = fetchurl {
334 334 url = "https://files.pythonhosted.org/packages/07/ca/bc827c5e55918ad223d59d299fff92f3563476c3b00d0a9157d9c0217449/cryptography-2.6.1.tar.gz";
335 335 sha256 = "19iwz5avym5zl6jrrrkym1rdaa9h61j20ph4cswsqgv8xg5j3j16";
336 336 };
337 337 meta = {
338 338 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "BSD or Apache License, Version 2.0"; } pkgs.lib.licenses.asl20 ];
339 339 };
340 340 };
341 341 "cssselect" = super.buildPythonPackage {
342 342 name = "cssselect-1.0.3";
343 343 doCheck = false;
344 344 src = fetchurl {
345 345 url = "https://files.pythonhosted.org/packages/52/ea/f31e1d2e9eb130fda2a631e22eac369dc644e8807345fbed5113f2d6f92b/cssselect-1.0.3.tar.gz";
346 346 sha256 = "011jqa2jhmydhi0iz4v1w3cr540z5zas8g2bw8brdw4s4b2qnv86";
347 347 };
348 348 meta = {
349 349 license = [ pkgs.lib.licenses.bsdOriginal ];
350 350 };
351 351 };
352 352 "decorator" = super.buildPythonPackage {
353 353 name = "decorator-4.1.2";
354 354 doCheck = false;
355 355 src = fetchurl {
356 356 url = "https://files.pythonhosted.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
357 357 sha256 = "1d8npb11kxyi36mrvjdpcjij76l5zfyrz2f820brf0l0rcw4vdkw";
358 358 };
359 359 meta = {
360 360 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
361 361 };
362 362 };
363 363 "deform" = super.buildPythonPackage {
364 364 name = "deform-2.0.7";
365 365 doCheck = false;
366 366 propagatedBuildInputs = [
367 367 self."chameleon"
368 368 self."colander"
369 369 self."iso8601"
370 370 self."peppercorn"
371 371 self."translationstring"
372 372 self."zope.deprecation"
373 373 ];
374 374 src = fetchurl {
375 375 url = "https://files.pythonhosted.org/packages/cf/a1/bc234527b8f181de9acd80e796483c00007658d1e32b7de78f1c2e004d9a/deform-2.0.7.tar.gz";
376 376 sha256 = "0jnpi0zr2hjvbmiz6nm33yqv976dn9lf51vhlzqc0i75xcr9rwig";
377 377 };
378 378 meta = {
379 379 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
380 380 };
381 381 };
382 382 "defusedxml" = super.buildPythonPackage {
383 383 name = "defusedxml-0.6.0";
384 384 doCheck = false;
385 385 src = fetchurl {
386 386 url = "https://files.pythonhosted.org/packages/a4/5f/f8aa58ca0cf01cbcee728abc9d88bfeb74e95e6cb4334cfd5bed5673ea77/defusedxml-0.6.0.tar.gz";
387 387 sha256 = "1xbp8fivl3wlbyg2jrvs4lalaqv1xp9a9f29p75wdx2s2d6h717n";
388 388 };
389 389 meta = {
390 390 license = [ pkgs.lib.licenses.psfl ];
391 391 };
392 392 };
393 393 "dm.xmlsec.binding" = super.buildPythonPackage {
394 394 name = "dm.xmlsec.binding-1.3.7";
395 395 doCheck = false;
396 396 propagatedBuildInputs = [
397 397 self."setuptools"
398 398 self."lxml"
399 399 ];
400 400 src = fetchurl {
401 401 url = "https://files.pythonhosted.org/packages/2c/9e/7651982d50252692991acdae614af821fd6c79bc8dcd598ad71d55be8fc7/dm.xmlsec.binding-1.3.7.tar.gz";
402 402 sha256 = "03jjjscx1pz2nc0dwiw9nia02qbz1c6f0f9zkyr8fmvys2n5jkb3";
403 403 };
404 404 meta = {
405 405 license = [ pkgs.lib.licenses.bsdOriginal ];
406 406 };
407 407 };
408 408 "docutils" = super.buildPythonPackage {
409 409 name = "docutils-0.14";
410 410 doCheck = false;
411 411 src = fetchurl {
412 412 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
413 413 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
414 414 };
415 415 meta = {
416 416 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 ];
417 417 };
418 418 };
419 419 "dogpile.cache" = super.buildPythonPackage {
420 420 name = "dogpile.cache-0.7.1";
421 421 doCheck = false;
422 422 propagatedBuildInputs = [
423 423 self."decorator"
424 424 ];
425 425 src = fetchurl {
426 426 url = "https://files.pythonhosted.org/packages/84/3e/dbf1cfc5228f1d3dca80ef714db2c5aaec5cd9efaf54d7e3daef6bc48b19/dogpile.cache-0.7.1.tar.gz";
427 427 sha256 = "0caazmrzhnfqb5yrp8myhw61ny637jj69wcngrpbvi31jlcpy6v9";
428 428 };
429 429 meta = {
430 430 license = [ pkgs.lib.licenses.bsdOriginal ];
431 431 };
432 432 };
433 433 "dogpile.core" = super.buildPythonPackage {
434 434 name = "dogpile.core-0.4.1";
435 435 doCheck = false;
436 436 src = fetchurl {
437 437 url = "https://files.pythonhosted.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
438 438 sha256 = "0xpdvg4kr1isfkrh1rfsh7za4q5a5s6l2kf9wpvndbwf3aqjyrdy";
439 439 };
440 440 meta = {
441 441 license = [ pkgs.lib.licenses.bsdOriginal ];
442 442 };
443 443 };
444 444 "ecdsa" = super.buildPythonPackage {
445 445 name = "ecdsa-0.13.2";
446 446 doCheck = false;
447 447 src = fetchurl {
448 448 url = "https://files.pythonhosted.org/packages/51/76/139bf6e9b7b6684d5891212cdbd9e0739f2bfc03f380a1a6ffa700f392ac/ecdsa-0.13.2.tar.gz";
449 449 sha256 = "116qaq7bh4lcynzi613960jhsnn19v0kmsqwahiwjfj14gx4y0sw";
450 450 };
451 451 meta = {
452 452 license = [ pkgs.lib.licenses.mit ];
453 453 };
454 454 };
455 455 "elasticsearch" = super.buildPythonPackage {
456 456 name = "elasticsearch-6.3.1";
457 457 doCheck = false;
458 458 propagatedBuildInputs = [
459 459 self."urllib3"
460 460 ];
461 461 src = fetchurl {
462 462 url = "https://files.pythonhosted.org/packages/9d/ce/c4664e8380e379a9402ecfbaf158e56396da90d520daba21cfa840e0eb71/elasticsearch-6.3.1.tar.gz";
463 463 sha256 = "12y93v0yn7a4xmf969239g8gb3l4cdkclfpbk1qc8hx5qkymrnma";
464 464 };
465 465 meta = {
466 466 license = [ pkgs.lib.licenses.asl20 ];
467 467 };
468 468 };
469 469 "elasticsearch-dsl" = super.buildPythonPackage {
470 470 name = "elasticsearch-dsl-6.3.1";
471 471 doCheck = false;
472 472 propagatedBuildInputs = [
473 473 self."six"
474 474 self."python-dateutil"
475 475 self."elasticsearch"
476 476 self."ipaddress"
477 477 ];
478 478 src = fetchurl {
479 479 url = "https://files.pythonhosted.org/packages/4c/0d/1549f50c591db6bb4e66cbcc8d34a6e537c3d89aa426b167c244fd46420a/elasticsearch-dsl-6.3.1.tar.gz";
480 480 sha256 = "1gh8a0shqi105k325hgwb9avrpdjh0mc6mxwfg9ba7g6lssb702z";
481 481 };
482 482 meta = {
483 483 license = [ pkgs.lib.licenses.asl20 ];
484 484 };
485 485 };
486 486 "elasticsearch1" = super.buildPythonPackage {
487 487 name = "elasticsearch1-1.10.0";
488 488 doCheck = false;
489 489 propagatedBuildInputs = [
490 490 self."urllib3"
491 491 ];
492 492 src = fetchurl {
493 493 url = "https://files.pythonhosted.org/packages/a6/eb/73e75f9681fa71e3157b8ee878534235d57f24ee64f0e77f8d995fb57076/elasticsearch1-1.10.0.tar.gz";
494 494 sha256 = "0g89444kd5zwql4vbvyrmi2m6l6dcj6ga98j4hqxyyyz6z20aki2";
495 495 };
496 496 meta = {
497 497 license = [ pkgs.lib.licenses.asl20 ];
498 498 };
499 499 };
500 500 "elasticsearch1-dsl" = super.buildPythonPackage {
501 501 name = "elasticsearch1-dsl-0.0.12";
502 502 doCheck = false;
503 503 propagatedBuildInputs = [
504 504 self."six"
505 505 self."python-dateutil"
506 506 self."elasticsearch1"
507 507 ];
508 508 src = fetchurl {
509 509 url = "https://files.pythonhosted.org/packages/eb/9d/785342775cb10eddc9b8d7457d618a423b4f0b89d8b2b2d1bc27190d71db/elasticsearch1-dsl-0.0.12.tar.gz";
510 510 sha256 = "0ig1ly39v93hba0z975wnhbmzwj28w6w1sqlr2g7cn5spp732bhk";
511 511 };
512 512 meta = {
513 513 license = [ pkgs.lib.licenses.asl20 ];
514 514 };
515 515 };
516 516 "elasticsearch2" = super.buildPythonPackage {
517 517 name = "elasticsearch2-2.5.0";
518 518 doCheck = false;
519 519 propagatedBuildInputs = [
520 520 self."urllib3"
521 521 ];
522 522 src = fetchurl {
523 523 url = "https://files.pythonhosted.org/packages/84/77/63cf63d4ba11d913b5278406f2a37b0712bec6fc85edfb6151a33eaeba25/elasticsearch2-2.5.0.tar.gz";
524 524 sha256 = "0ky0q16lbvz022yv6q3pix7aamf026p1y994537ccjf0p0dxnbxr";
525 525 };
526 526 meta = {
527 527 license = [ pkgs.lib.licenses.asl20 ];
528 528 };
529 529 };
530 530 "entrypoints" = super.buildPythonPackage {
531 531 name = "entrypoints-0.2.2";
532 532 doCheck = false;
533 533 propagatedBuildInputs = [
534 534 self."configparser"
535 535 ];
536 536 src = fetchurl {
537 537 url = "https://code.rhodecode.com/upstream/entrypoints/artifacts/download/0-8e9ee9e4-c4db-409c-b07e-81568fd1832d.tar.gz?md5=3a027b8ff1d257b91fe257de6c43357d";
538 538 sha256 = "0qih72n2myclanplqipqxpgpj9d2yhff1pz5d02zq1cfqyd173w5";
539 539 };
540 540 meta = {
541 541 license = [ pkgs.lib.licenses.mit ];
542 542 };
543 543 };
544 544 "enum34" = super.buildPythonPackage {
545 545 name = "enum34-1.1.6";
546 546 doCheck = false;
547 547 src = fetchurl {
548 548 url = "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
549 549 sha256 = "1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a";
550 550 };
551 551 meta = {
552 552 license = [ pkgs.lib.licenses.bsdOriginal ];
553 553 };
554 554 };
555 555 "formencode" = super.buildPythonPackage {
556 556 name = "formencode-1.2.4";
557 557 doCheck = false;
558 558 src = fetchurl {
559 559 url = "https://files.pythonhosted.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
560 560 sha256 = "1fgy04sdy4yry5xcjls3x3xy30dqwj58ycnkndim819jx0788w42";
561 561 };
562 562 meta = {
563 563 license = [ pkgs.lib.licenses.psfl ];
564 564 };
565 565 };
566 566 "funcsigs" = super.buildPythonPackage {
567 567 name = "funcsigs-1.0.2";
568 568 doCheck = false;
569 569 src = fetchurl {
570 570 url = "https://files.pythonhosted.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
571 571 sha256 = "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7";
572 572 };
573 573 meta = {
574 574 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
575 575 };
576 576 };
577 577 "functools32" = super.buildPythonPackage {
578 578 name = "functools32-3.2.3.post2";
579 579 doCheck = false;
580 580 src = fetchurl {
581 581 url = "https://files.pythonhosted.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
582 582 sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
583 583 };
584 584 meta = {
585 585 license = [ pkgs.lib.licenses.psfl ];
586 586 };
587 587 };
588 588 "future" = super.buildPythonPackage {
589 589 name = "future-0.14.3";
590 590 doCheck = false;
591 591 src = fetchurl {
592 592 url = "https://files.pythonhosted.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
593 593 sha256 = "1savk7jx7hal032f522c5ajhh8fra6gmnadrj9adv5qxi18pv1b2";
594 594 };
595 595 meta = {
596 596 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
597 597 };
598 598 };
599 599 "futures" = super.buildPythonPackage {
600 600 name = "futures-3.0.2";
601 601 doCheck = false;
602 602 src = fetchurl {
603 603 url = "https://files.pythonhosted.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
604 604 sha256 = "0mz2pbgxbc2nbib1szifi07whjbfs4r02pv2z390z7p410awjgyw";
605 605 };
606 606 meta = {
607 607 license = [ pkgs.lib.licenses.bsdOriginal ];
608 608 };
609 609 };
610 610 "gevent" = super.buildPythonPackage {
611 611 name = "gevent-1.4.0";
612 612 doCheck = false;
613 613 propagatedBuildInputs = [
614 614 self."greenlet"
615 615 ];
616 616 src = fetchurl {
617 617 url = "https://files.pythonhosted.org/packages/ed/27/6c49b70808f569b66ec7fac2e78f076e9b204db9cf5768740cff3d5a07ae/gevent-1.4.0.tar.gz";
618 618 sha256 = "1lchr4akw2jkm5v4kz7bdm4wv3knkfhbfn9vkkz4s5yrkcxzmdqy";
619 619 };
620 620 meta = {
621 621 license = [ pkgs.lib.licenses.mit ];
622 622 };
623 623 };
624 624 "gnureadline" = super.buildPythonPackage {
625 625 name = "gnureadline-6.3.8";
626 626 doCheck = false;
627 627 src = fetchurl {
628 628 url = "https://files.pythonhosted.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
629 629 sha256 = "0ddhj98x2nv45iz4aadk4b9m0b1kpsn1xhcbypn5cd556knhiqjq";
630 630 };
631 631 meta = {
632 632 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
633 633 };
634 634 };
635 635 "gprof2dot" = super.buildPythonPackage {
636 636 name = "gprof2dot-2017.9.19";
637 637 doCheck = false;
638 638 src = fetchurl {
639 639 url = "https://files.pythonhosted.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
640 640 sha256 = "17ih23ld2nzgc3xwgbay911l6lh96jp1zshmskm17n1gg2i7mg6f";
641 641 };
642 642 meta = {
643 643 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
644 644 };
645 645 };
646 646 "greenlet" = super.buildPythonPackage {
647 647 name = "greenlet-0.4.15";
648 648 doCheck = false;
649 649 src = fetchurl {
650 650 url = "https://files.pythonhosted.org/packages/f8/e8/b30ae23b45f69aa3f024b46064c0ac8e5fcb4f22ace0dca8d6f9c8bbe5e7/greenlet-0.4.15.tar.gz";
651 651 sha256 = "1g4g1wwc472ds89zmqlpyan3fbnzpa8qm48z3z1y6mlk44z485ll";
652 652 };
653 653 meta = {
654 654 license = [ pkgs.lib.licenses.mit ];
655 655 };
656 656 };
657 657 "gunicorn" = super.buildPythonPackage {
658 658 name = "gunicorn-19.9.0";
659 659 doCheck = false;
660 660 src = fetchurl {
661 661 url = "https://files.pythonhosted.org/packages/47/52/68ba8e5e8ba251e54006a49441f7ccabca83b6bef5aedacb4890596c7911/gunicorn-19.9.0.tar.gz";
662 662 sha256 = "1wzlf4xmn6qjirh5w81l6i6kqjnab1n1qqkh7zsj1yb6gh4n49ps";
663 663 };
664 664 meta = {
665 665 license = [ pkgs.lib.licenses.mit ];
666 666 };
667 667 };
668 668 "hupper" = super.buildPythonPackage {
669 669 name = "hupper-1.6.1";
670 670 doCheck = false;
671 671 src = fetchurl {
672 672 url = "https://files.pythonhosted.org/packages/85/d9/e005d357b11249c5d70ddf5b7adab2e4c0da4e8b0531ff146917a04fe6c0/hupper-1.6.1.tar.gz";
673 673 sha256 = "0d3cvkc8ssgwk54wvhbifj56ry97qi10pfzwfk8vwzzcikbfp3zy";
674 674 };
675 675 meta = {
676 676 license = [ pkgs.lib.licenses.mit ];
677 677 };
678 678 };
679 679 "infrae.cache" = super.buildPythonPackage {
680 680 name = "infrae.cache-1.0.1";
681 681 doCheck = false;
682 682 propagatedBuildInputs = [
683 683 self."beaker"
684 684 self."repoze.lru"
685 685 ];
686 686 src = fetchurl {
687 687 url = "https://files.pythonhosted.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
688 688 sha256 = "1dvqsjn8vw253wz9d1pz17j79mf4bs53dvp2qxck2qdp1am1njw4";
689 689 };
690 690 meta = {
691 691 license = [ pkgs.lib.licenses.zpl21 ];
692 692 };
693 693 };
694 694 "invoke" = super.buildPythonPackage {
695 695 name = "invoke-0.13.0";
696 696 doCheck = false;
697 697 src = fetchurl {
698 698 url = "https://files.pythonhosted.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
699 699 sha256 = "0794vhgxfmkh0vzkkg5cfv1w82g3jc3xr18wim29far9qpx9468s";
700 700 };
701 701 meta = {
702 702 license = [ pkgs.lib.licenses.bsdOriginal ];
703 703 };
704 704 };
705 705 "ipaddress" = super.buildPythonPackage {
706 706 name = "ipaddress-1.0.22";
707 707 doCheck = false;
708 708 src = fetchurl {
709 709 url = "https://files.pythonhosted.org/packages/97/8d/77b8cedcfbf93676148518036c6b1ce7f8e14bf07e95d7fd4ddcb8cc052f/ipaddress-1.0.22.tar.gz";
710 710 sha256 = "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi";
711 711 };
712 712 meta = {
713 713 license = [ pkgs.lib.licenses.psfl ];
714 714 };
715 715 };
716 716 "ipdb" = super.buildPythonPackage {
717 717 name = "ipdb-0.12";
718 718 doCheck = false;
719 719 propagatedBuildInputs = [
720 720 self."setuptools"
721 721 self."ipython"
722 722 ];
723 723 src = fetchurl {
724 724 url = "https://files.pythonhosted.org/packages/6d/43/c3c2e866a8803e196d6209595020a4a6db1a3c5d07c01455669497ae23d0/ipdb-0.12.tar.gz";
725 725 sha256 = "1khr2n7xfy8hg65kj1bsrjq9g7656pp0ybfa8abpbzpdawji3qnw";
726 726 };
727 727 meta = {
728 728 license = [ pkgs.lib.licenses.bsdOriginal ];
729 729 };
730 730 };
731 731 "ipython" = super.buildPythonPackage {
732 732 name = "ipython-5.1.0";
733 733 doCheck = false;
734 734 propagatedBuildInputs = [
735 735 self."setuptools"
736 736 self."decorator"
737 737 self."pickleshare"
738 738 self."simplegeneric"
739 739 self."traitlets"
740 740 self."prompt-toolkit"
741 741 self."pygments"
742 742 self."pexpect"
743 743 self."backports.shutil-get-terminal-size"
744 744 self."pathlib2"
745 745 self."pexpect"
746 746 ];
747 747 src = fetchurl {
748 748 url = "https://files.pythonhosted.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
749 749 sha256 = "0qdrf6aj9kvjczd5chj1my8y2iq09am9l8bb2a1334a52d76kx3y";
750 750 };
751 751 meta = {
752 752 license = [ pkgs.lib.licenses.bsdOriginal ];
753 753 };
754 754 };
755 755 "ipython-genutils" = super.buildPythonPackage {
756 756 name = "ipython-genutils-0.2.0";
757 757 doCheck = false;
758 758 src = fetchurl {
759 759 url = "https://files.pythonhosted.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
760 760 sha256 = "1a4bc9y8hnvq6cp08qs4mckgm6i6ajpndp4g496rvvzcfmp12bpb";
761 761 };
762 762 meta = {
763 763 license = [ pkgs.lib.licenses.bsdOriginal ];
764 764 };
765 765 };
766 766 "iso8601" = super.buildPythonPackage {
767 767 name = "iso8601-0.1.12";
768 768 doCheck = false;
769 769 src = fetchurl {
770 770 url = "https://files.pythonhosted.org/packages/45/13/3db24895497345fb44c4248c08b16da34a9eb02643cea2754b21b5ed08b0/iso8601-0.1.12.tar.gz";
771 771 sha256 = "10nyvvnrhw2w3p09v1ica4lgj6f4g9j3kkfx17qmraiq3w7b5i29";
772 772 };
773 773 meta = {
774 774 license = [ pkgs.lib.licenses.mit ];
775 775 };
776 776 };
777 777 "isodate" = super.buildPythonPackage {
778 778 name = "isodate-0.6.0";
779 779 doCheck = false;
780 780 propagatedBuildInputs = [
781 781 self."six"
782 782 ];
783 783 src = fetchurl {
784 784 url = "https://files.pythonhosted.org/packages/b1/80/fb8c13a4cd38eb5021dc3741a9e588e4d1de88d895c1910c6fc8a08b7a70/isodate-0.6.0.tar.gz";
785 785 sha256 = "1n7jkz68kk5pwni540pr5zdh99bf6ywydk1p5pdrqisrawylldif";
786 786 };
787 787 meta = {
788 788 license = [ pkgs.lib.licenses.bsdOriginal ];
789 789 };
790 790 };
791 791 "itsdangerous" = super.buildPythonPackage {
792 792 name = "itsdangerous-0.24";
793 793 doCheck = false;
794 794 src = fetchurl {
795 795 url = "https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
796 796 sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
797 797 };
798 798 meta = {
799 799 license = [ pkgs.lib.licenses.bsdOriginal ];
800 800 };
801 801 };
802 802 "jinja2" = super.buildPythonPackage {
803 803 name = "jinja2-2.9.6";
804 804 doCheck = false;
805 805 propagatedBuildInputs = [
806 806 self."markupsafe"
807 807 ];
808 808 src = fetchurl {
809 809 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
810 810 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
811 811 };
812 812 meta = {
813 813 license = [ pkgs.lib.licenses.bsdOriginal ];
814 814 };
815 815 };
816 816 "jsonschema" = super.buildPythonPackage {
817 817 name = "jsonschema-2.6.0";
818 818 doCheck = false;
819 819 propagatedBuildInputs = [
820 820 self."functools32"
821 821 ];
822 822 src = fetchurl {
823 823 url = "https://files.pythonhosted.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
824 824 sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
825 825 };
826 826 meta = {
827 827 license = [ pkgs.lib.licenses.mit ];
828 828 };
829 829 };
830 830 "jupyter-client" = super.buildPythonPackage {
831 831 name = "jupyter-client-5.0.0";
832 832 doCheck = false;
833 833 propagatedBuildInputs = [
834 834 self."traitlets"
835 835 self."jupyter-core"
836 836 self."pyzmq"
837 837 self."python-dateutil"
838 838 ];
839 839 src = fetchurl {
840 840 url = "https://files.pythonhosted.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
841 841 sha256 = "0nxw4rqk4wsjhc87gjqd7pv89cb9dnimcfnmcmp85bmrvv1gjri7";
842 842 };
843 843 meta = {
844 844 license = [ pkgs.lib.licenses.bsdOriginal ];
845 845 };
846 846 };
847 847 "jupyter-core" = super.buildPythonPackage {
848 848 name = "jupyter-core-4.5.0";
849 849 doCheck = false;
850 850 propagatedBuildInputs = [
851 851 self."traitlets"
852 852 ];
853 853 src = fetchurl {
854 854 url = "https://files.pythonhosted.org/packages/4a/de/ff4ca734656d17ebe0450807b59d728f45277e2e7f4b82bc9aae6cb82961/jupyter_core-4.5.0.tar.gz";
855 855 sha256 = "1xr4pbghwk5hayn5wwnhb7z95380r45p79gf5if5pi1akwg7qvic";
856 856 };
857 857 meta = {
858 858 license = [ pkgs.lib.licenses.bsdOriginal ];
859 859 };
860 860 };
861 861 "kombu" = super.buildPythonPackage {
862 862 name = "kombu-4.2.1";
863 863 doCheck = false;
864 864 propagatedBuildInputs = [
865 865 self."amqp"
866 866 ];
867 867 src = fetchurl {
868 868 url = "https://files.pythonhosted.org/packages/39/9f/556b988833abede4a80dbd18b2bdf4e8ff4486dd482ed45da961347e8ed2/kombu-4.2.1.tar.gz";
869 869 sha256 = "10lh3hncvw67fz0k5vgbx3yh9gjfpqdlia1f13i28cgnc1nfrbc6";
870 870 };
871 871 meta = {
872 872 license = [ pkgs.lib.licenses.bsdOriginal ];
873 873 };
874 874 };
875 875 "lxml" = super.buildPythonPackage {
876 876 name = "lxml-4.2.5";
877 877 doCheck = false;
878 878 src = fetchurl {
879 879 url = "https://files.pythonhosted.org/packages/4b/20/ddf5eb3bd5c57582d2b4652b4bbcf8da301bdfe5d805cb94e805f4d7464d/lxml-4.2.5.tar.gz";
880 880 sha256 = "0zw0y9hs0nflxhl9cs6ipwwh53szi3w2x06wl0k9cylyqac0cwin";
881 881 };
882 882 meta = {
883 883 license = [ pkgs.lib.licenses.bsdOriginal ];
884 884 };
885 885 };
886 886 "mako" = super.buildPythonPackage {
887 887 name = "mako-1.0.7";
888 888 doCheck = false;
889 889 propagatedBuildInputs = [
890 890 self."markupsafe"
891 891 ];
892 892 src = fetchurl {
893 893 url = "https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
894 894 sha256 = "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf";
895 895 };
896 896 meta = {
897 897 license = [ pkgs.lib.licenses.mit ];
898 898 };
899 899 };
900 900 "markdown" = super.buildPythonPackage {
901 901 name = "markdown-2.6.11";
902 902 doCheck = false;
903 903 src = fetchurl {
904 904 url = "https://files.pythonhosted.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
905 905 sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
906 906 };
907 907 meta = {
908 908 license = [ pkgs.lib.licenses.bsdOriginal ];
909 909 };
910 910 };
911 911 "markupsafe" = super.buildPythonPackage {
912 912 name = "markupsafe-1.1.0";
913 913 doCheck = false;
914 914 src = fetchurl {
915 915 url = "https://files.pythonhosted.org/packages/ac/7e/1b4c2e05809a4414ebce0892fe1e32c14ace86ca7d50c70f00979ca9b3a3/MarkupSafe-1.1.0.tar.gz";
916 916 sha256 = "1lxirjypbdd3l9jl4vliilhfnhy7c7f2vlldqg1b0i74khn375sf";
917 917 };
918 918 meta = {
919 919 license = [ pkgs.lib.licenses.bsdOriginal ];
920 920 };
921 921 };
922 922 "meld3" = super.buildPythonPackage {
923 923 name = "meld3-1.0.2";
924 924 doCheck = false;
925 925 src = fetchurl {
926 926 url = "https://files.pythonhosted.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
927 927 sha256 = "0n4mkwlpsqnmn0dm0wm5hn9nkda0nafl0jdy5sdl5977znh59dzp";
928 928 };
929 929 meta = {
930 930 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
931 931 };
932 932 };
933 933 "mistune" = super.buildPythonPackage {
934 934 name = "mistune-0.8.4";
935 935 doCheck = false;
936 936 src = fetchurl {
937 937 url = "https://files.pythonhosted.org/packages/2d/a4/509f6e7783ddd35482feda27bc7f72e65b5e7dc910eca4ab2164daf9c577/mistune-0.8.4.tar.gz";
938 938 sha256 = "0vkmsh0x480rni51lhyvigfdf06b9247z868pk3bal1wnnfl58sr";
939 939 };
940 940 meta = {
941 941 license = [ pkgs.lib.licenses.bsdOriginal ];
942 942 };
943 943 };
944 944 "mock" = super.buildPythonPackage {
945 945 name = "mock-1.0.1";
946 946 doCheck = false;
947 947 src = fetchurl {
948 948 url = "https://files.pythonhosted.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
949 949 sha256 = "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq";
950 950 };
951 951 meta = {
952 952 license = [ pkgs.lib.licenses.bsdOriginal ];
953 953 };
954 954 };
955 955 "more-itertools" = super.buildPythonPackage {
956 956 name = "more-itertools-5.0.0";
957 957 doCheck = false;
958 958 propagatedBuildInputs = [
959 959 self."six"
960 960 ];
961 961 src = fetchurl {
962 962 url = "https://files.pythonhosted.org/packages/dd/26/30fc0d541d9fdf55faf5ba4b0fd68f81d5bd2447579224820ad525934178/more-itertools-5.0.0.tar.gz";
963 963 sha256 = "1r12cm6mcdwdzz7d47a6g4l437xsvapdlgyhqay3i2nrlv03da9q";
964 964 };
965 965 meta = {
966 966 license = [ pkgs.lib.licenses.mit ];
967 967 };
968 968 };
969 969 "msgpack-python" = super.buildPythonPackage {
970 970 name = "msgpack-python-0.5.6";
971 971 doCheck = false;
972 972 src = fetchurl {
973 973 url = "https://files.pythonhosted.org/packages/8a/20/6eca772d1a5830336f84aca1d8198e5a3f4715cd1c7fc36d3cc7f7185091/msgpack-python-0.5.6.tar.gz";
974 974 sha256 = "16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p";
975 975 };
976 976 meta = {
977 977 license = [ pkgs.lib.licenses.asl20 ];
978 978 };
979 979 };
980 980 "mysql-python" = super.buildPythonPackage {
981 981 name = "mysql-python-1.2.5";
982 982 doCheck = false;
983 983 src = fetchurl {
984 984 url = "https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
985 985 sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
986 986 };
987 987 meta = {
988 988 license = [ pkgs.lib.licenses.gpl1 ];
989 989 };
990 990 };
991 991 "nbconvert" = super.buildPythonPackage {
992 992 name = "nbconvert-5.3.1";
993 993 doCheck = false;
994 994 propagatedBuildInputs = [
995 995 self."mistune"
996 996 self."jinja2"
997 997 self."pygments"
998 998 self."traitlets"
999 999 self."jupyter-core"
1000 1000 self."nbformat"
1001 1001 self."entrypoints"
1002 1002 self."bleach"
1003 1003 self."pandocfilters"
1004 1004 self."testpath"
1005 1005 ];
1006 1006 src = fetchurl {
1007 1007 url = "https://files.pythonhosted.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
1008 1008 sha256 = "1f9dkvpx186xjm4xab0qbph588mncp4vqk3fmxrsnqs43mks9c8j";
1009 1009 };
1010 1010 meta = {
1011 1011 license = [ pkgs.lib.licenses.bsdOriginal ];
1012 1012 };
1013 1013 };
1014 1014 "nbformat" = super.buildPythonPackage {
1015 1015 name = "nbformat-4.4.0";
1016 1016 doCheck = false;
1017 1017 propagatedBuildInputs = [
1018 1018 self."ipython-genutils"
1019 1019 self."traitlets"
1020 1020 self."jsonschema"
1021 1021 self."jupyter-core"
1022 1022 ];
1023 1023 src = fetchurl {
1024 1024 url = "https://files.pythonhosted.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
1025 1025 sha256 = "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp";
1026 1026 };
1027 1027 meta = {
1028 1028 license = [ pkgs.lib.licenses.bsdOriginal ];
1029 1029 };
1030 1030 };
1031 1031 "packaging" = super.buildPythonPackage {
1032 1032 name = "packaging-15.2";
1033 1033 doCheck = false;
1034 1034 src = fetchurl {
1035 1035 url = "https://files.pythonhosted.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
1036 1036 sha256 = "1zn60w84bxvw6wypffka18ca66pa1k2cfrq3cq8fnsfja5m3k4ng";
1037 1037 };
1038 1038 meta = {
1039 1039 license = [ pkgs.lib.licenses.asl20 ];
1040 1040 };
1041 1041 };
1042 1042 "pandocfilters" = super.buildPythonPackage {
1043 1043 name = "pandocfilters-1.4.2";
1044 1044 doCheck = false;
1045 1045 src = fetchurl {
1046 1046 url = "https://files.pythonhosted.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
1047 1047 sha256 = "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk";
1048 1048 };
1049 1049 meta = {
1050 1050 license = [ pkgs.lib.licenses.bsdOriginal ];
1051 1051 };
1052 1052 };
1053 1053 "paste" = super.buildPythonPackage {
1054 1054 name = "paste-3.0.8";
1055 1055 doCheck = false;
1056 1056 propagatedBuildInputs = [
1057 1057 self."six"
1058 1058 ];
1059 1059 src = fetchurl {
1060 1060 url = "https://files.pythonhosted.org/packages/66/65/e3acf1663438483c1f6ced0b6c6f3b90da9f0faacb0a6e2aa0f3f9f4b235/Paste-3.0.8.tar.gz";
1061 1061 sha256 = "05w1sh6ky4d7pmdb8nv82n13w22jcn3qsagg5ih3hjmbws9kkwf4";
1062 1062 };
1063 1063 meta = {
1064 1064 license = [ pkgs.lib.licenses.mit ];
1065 1065 };
1066 1066 };
1067 1067 "pastedeploy" = super.buildPythonPackage {
1068 1068 name = "pastedeploy-2.0.1";
1069 1069 doCheck = false;
1070 1070 src = fetchurl {
1071 1071 url = "https://files.pythonhosted.org/packages/19/a0/5623701df7e2478a68a1b685d1a84518024eef994cde7e4da8449a31616f/PasteDeploy-2.0.1.tar.gz";
1072 1072 sha256 = "02imfbbx1mi2h546f3sr37m47dk9qizaqhzzlhx8bkzxa6fzn8yl";
1073 1073 };
1074 1074 meta = {
1075 1075 license = [ pkgs.lib.licenses.mit ];
1076 1076 };
1077 1077 };
1078 1078 "pastescript" = super.buildPythonPackage {
1079 1079 name = "pastescript-3.1.0";
1080 1080 doCheck = false;
1081 1081 propagatedBuildInputs = [
1082 1082 self."paste"
1083 1083 self."pastedeploy"
1084 1084 self."six"
1085 1085 ];
1086 1086 src = fetchurl {
1087 1087 url = "https://files.pythonhosted.org/packages/9e/1d/14db1c283eb21a5d36b6ba1114c13b709629711e64acab653d9994fe346f/PasteScript-3.1.0.tar.gz";
1088 1088 sha256 = "02qcxjjr32ks7a6d4f533wl34ysc7yhwlrfcyqwqbzr52250v4fs";
1089 1089 };
1090 1090 meta = {
1091 1091 license = [ pkgs.lib.licenses.mit ];
1092 1092 };
1093 1093 };
1094 1094 "pathlib2" = super.buildPythonPackage {
1095 1095 name = "pathlib2-2.3.4";
1096 1096 doCheck = false;
1097 1097 propagatedBuildInputs = [
1098 1098 self."six"
1099 1099 self."scandir"
1100 1100 ];
1101 1101 src = fetchurl {
1102 1102 url = "https://files.pythonhosted.org/packages/b5/f4/9c7cc726ece2498b6c8b62d3262aa43f59039b953fe23c9964ac5e18d40b/pathlib2-2.3.4.tar.gz";
1103 1103 sha256 = "1y0f9rkm1924zrc5dn4bwxlhgdkbml82lkcc28l5rgmr7d918q24";
1104 1104 };
1105 1105 meta = {
1106 1106 license = [ pkgs.lib.licenses.mit ];
1107 1107 };
1108 1108 };
1109 1109 "peppercorn" = super.buildPythonPackage {
1110 1110 name = "peppercorn-0.6";
1111 1111 doCheck = false;
1112 1112 src = fetchurl {
1113 1113 url = "https://files.pythonhosted.org/packages/e4/77/93085de7108cdf1a0b092ff443872a8f9442c736d7ddebdf2f27627935f4/peppercorn-0.6.tar.gz";
1114 1114 sha256 = "1ip4bfwcpwkq9hz2dai14k2cyabvwrnvcvrcmzxmqm04g8fnimwn";
1115 1115 };
1116 1116 meta = {
1117 1117 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1118 1118 };
1119 1119 };
1120 1120 "pexpect" = super.buildPythonPackage {
1121 1121 name = "pexpect-4.7.0";
1122 1122 doCheck = false;
1123 1123 propagatedBuildInputs = [
1124 1124 self."ptyprocess"
1125 1125 ];
1126 1126 src = fetchurl {
1127 1127 url = "https://files.pythonhosted.org/packages/1c/b1/362a0d4235496cb42c33d1d8732b5e2c607b0129ad5fdd76f5a583b9fcb3/pexpect-4.7.0.tar.gz";
1128 1128 sha256 = "1sv2rri15zwhds85a4kamwh9pj49qcxv7m4miyr4jfpfwv81yb4y";
1129 1129 };
1130 1130 meta = {
1131 1131 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1132 1132 };
1133 1133 };
1134 1134 "pickleshare" = super.buildPythonPackage {
1135 1135 name = "pickleshare-0.7.5";
1136 1136 doCheck = false;
1137 1137 propagatedBuildInputs = [
1138 1138 self."pathlib2"
1139 1139 ];
1140 1140 src = fetchurl {
1141 1141 url = "https://files.pythonhosted.org/packages/d8/b6/df3c1c9b616e9c0edbc4fbab6ddd09df9535849c64ba51fcb6531c32d4d8/pickleshare-0.7.5.tar.gz";
1142 1142 sha256 = "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47";
1143 1143 };
1144 1144 meta = {
1145 1145 license = [ pkgs.lib.licenses.mit ];
1146 1146 };
1147 1147 };
1148 1148 "plaster" = super.buildPythonPackage {
1149 1149 name = "plaster-1.0";
1150 1150 doCheck = false;
1151 1151 propagatedBuildInputs = [
1152 1152 self."setuptools"
1153 1153 ];
1154 1154 src = fetchurl {
1155 1155 url = "https://files.pythonhosted.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1156 1156 sha256 = "1hy8k0nv2mxq94y5aysk6hjk9ryb4bsd13g83m60hcyzxz3wflc3";
1157 1157 };
1158 1158 meta = {
1159 1159 license = [ pkgs.lib.licenses.mit ];
1160 1160 };
1161 1161 };
1162 1162 "plaster-pastedeploy" = super.buildPythonPackage {
1163 1163 name = "plaster-pastedeploy-0.7";
1164 1164 doCheck = false;
1165 1165 propagatedBuildInputs = [
1166 1166 self."pastedeploy"
1167 1167 self."plaster"
1168 1168 ];
1169 1169 src = fetchurl {
1170 1170 url = "https://files.pythonhosted.org/packages/99/69/2d3bc33091249266a1bd3cf24499e40ab31d54dffb4a7d76fe647950b98c/plaster_pastedeploy-0.7.tar.gz";
1171 1171 sha256 = "1zg7gcsvc1kzay1ry5p699rg2qavfsxqwl17mqxzr0gzw6j9679r";
1172 1172 };
1173 1173 meta = {
1174 1174 license = [ pkgs.lib.licenses.mit ];
1175 1175 };
1176 1176 };
1177 1177 "pluggy" = super.buildPythonPackage {
1178 1178 name = "pluggy-0.11.0";
1179 1179 doCheck = false;
1180 1180 src = fetchurl {
1181 1181 url = "https://files.pythonhosted.org/packages/0d/a1/862ab336e8128fde20981d2c1aa8506693412daf5083b1911d539412676b/pluggy-0.11.0.tar.gz";
1182 1182 sha256 = "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895";
1183 1183 };
1184 1184 meta = {
1185 1185 license = [ pkgs.lib.licenses.mit ];
1186 1186 };
1187 1187 };
1188 1188 "prompt-toolkit" = super.buildPythonPackage {
1189 1189 name = "prompt-toolkit-1.0.16";
1190 1190 doCheck = false;
1191 1191 propagatedBuildInputs = [
1192 1192 self."six"
1193 1193 self."wcwidth"
1194 1194 ];
1195 1195 src = fetchurl {
1196 1196 url = "https://files.pythonhosted.org/packages/f1/03/bb36771dc9fa7553ac4bdc639a9ecdf6fda0ff4176faf940d97e3c16e41d/prompt_toolkit-1.0.16.tar.gz";
1197 1197 sha256 = "1d65hm6nf0cbq0q0121m60zzy4s1fpg9fn761s1yxf08dridvkn1";
1198 1198 };
1199 1199 meta = {
1200 1200 license = [ pkgs.lib.licenses.bsdOriginal ];
1201 1201 };
1202 1202 };
1203 1203 "psutil" = super.buildPythonPackage {
1204 1204 name = "psutil-5.5.1";
1205 1205 doCheck = false;
1206 1206 src = fetchurl {
1207 1207 url = "https://files.pythonhosted.org/packages/c7/01/7c30b247cdc5ba29623faa5c8cf1f1bbf7e041783c340414b0ed7e067c64/psutil-5.5.1.tar.gz";
1208 1208 sha256 = "045qaqvn6k90bj5bcy259yrwcd2afgznaav3sfhphy9b8ambzkkj";
1209 1209 };
1210 1210 meta = {
1211 1211 license = [ pkgs.lib.licenses.bsdOriginal ];
1212 1212 };
1213 1213 };
1214 1214 "psycopg2" = super.buildPythonPackage {
1215 1215 name = "psycopg2-2.8.3";
1216 1216 doCheck = false;
1217 1217 src = fetchurl {
1218 1218 url = "https://files.pythonhosted.org/packages/5c/1c/6997288da181277a0c29bc39a5f9143ff20b8c99f2a7d059cfb55163e165/psycopg2-2.8.3.tar.gz";
1219 1219 sha256 = "0ms4kx0p5n281l89awccix4d05ybmdngnjjpi9jbzd0rhf1nwyl9";
1220 1220 };
1221 1221 meta = {
1222 1222 license = [ pkgs.lib.licenses.zpl21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1223 1223 };
1224 1224 };
1225 1225 "ptyprocess" = super.buildPythonPackage {
1226 1226 name = "ptyprocess-0.6.0";
1227 1227 doCheck = false;
1228 1228 src = fetchurl {
1229 1229 url = "https://files.pythonhosted.org/packages/7d/2d/e4b8733cf79b7309d84c9081a4ab558c89d8c89da5961bf4ddb050ca1ce0/ptyprocess-0.6.0.tar.gz";
1230 1230 sha256 = "1h4lcd3w5nrxnsk436ar7fwkiy5rfn5wj2xwy9l0r4mdqnf2jgwj";
1231 1231 };
1232 1232 meta = {
1233 1233 license = [ ];
1234 1234 };
1235 1235 };
1236 1236 "py" = super.buildPythonPackage {
1237 1237 name = "py-1.6.0";
1238 1238 doCheck = false;
1239 1239 src = fetchurl {
1240 1240 url = "https://files.pythonhosted.org/packages/4f/38/5f427d1eedae73063ce4da680d2bae72014995f9fdeaa57809df61c968cd/py-1.6.0.tar.gz";
1241 1241 sha256 = "1wcs3zv9wl5m5x7p16avqj2gsrviyb23yvc3pr330isqs0sh98q6";
1242 1242 };
1243 1243 meta = {
1244 1244 license = [ pkgs.lib.licenses.mit ];
1245 1245 };
1246 1246 };
1247 1247 "py-bcrypt" = super.buildPythonPackage {
1248 1248 name = "py-bcrypt-0.4";
1249 1249 doCheck = false;
1250 1250 src = fetchurl {
1251 1251 url = "https://files.pythonhosted.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1252 1252 sha256 = "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az";
1253 1253 };
1254 1254 meta = {
1255 1255 license = [ pkgs.lib.licenses.bsdOriginal ];
1256 1256 };
1257 1257 };
1258 1258 "py-gfm" = super.buildPythonPackage {
1259 1259 name = "py-gfm-0.1.4";
1260 1260 doCheck = false;
1261 1261 propagatedBuildInputs = [
1262 1262 self."setuptools"
1263 1263 self."markdown"
1264 1264 ];
1265 1265 src = fetchurl {
1266 1266 url = "https://files.pythonhosted.org/packages/06/ee/004a03a1d92bb386dae44f6dd087db541bc5093374f1637d4d4ae5596cc2/py-gfm-0.1.4.tar.gz";
1267 1267 sha256 = "0zip06g2isivx8fzgqd4n9qzsa22c25jas1rsb7m2rnjg72m0rzg";
1268 1268 };
1269 1269 meta = {
1270 1270 license = [ pkgs.lib.licenses.bsdOriginal ];
1271 1271 };
1272 1272 };
1273 1273 "pyasn1" = super.buildPythonPackage {
1274 1274 name = "pyasn1-0.4.5";
1275 1275 doCheck = false;
1276 1276 src = fetchurl {
1277 1277 url = "https://files.pythonhosted.org/packages/46/60/b7e32f6ff481b8a1f6c8f02b0fd9b693d1c92ddd2efb038ec050d99a7245/pyasn1-0.4.5.tar.gz";
1278 1278 sha256 = "1xqh3jh2nfi2bflk5a0vn59y3pp1vn54f3ksx652sid92gz2096s";
1279 1279 };
1280 1280 meta = {
1281 1281 license = [ pkgs.lib.licenses.bsdOriginal ];
1282 1282 };
1283 1283 };
1284 1284 "pyasn1-modules" = super.buildPythonPackage {
1285 1285 name = "pyasn1-modules-0.2.5";
1286 1286 doCheck = false;
1287 1287 propagatedBuildInputs = [
1288 1288 self."pyasn1"
1289 1289 ];
1290 1290 src = fetchurl {
1291 1291 url = "https://files.pythonhosted.org/packages/ec/0b/69620cb04a016e4a1e8e352e8a42717862129b574b3479adb2358a1f12f7/pyasn1-modules-0.2.5.tar.gz";
1292 1292 sha256 = "15nvfx0vnl8akdlv3k6s0n80vqvryj82bm040jdsn7wmyxl1ywpg";
1293 1293 };
1294 1294 meta = {
1295 1295 license = [ pkgs.lib.licenses.bsdOriginal ];
1296 1296 };
1297 1297 };
1298 1298 "pycparser" = super.buildPythonPackage {
1299 1299 name = "pycparser-2.19";
1300 1300 doCheck = false;
1301 1301 src = fetchurl {
1302 1302 url = "https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz";
1303 1303 sha256 = "1cr5dcj9628lkz1qlwq3fv97c25363qppkmcayqvd05dpy573259";
1304 1304 };
1305 1305 meta = {
1306 1306 license = [ pkgs.lib.licenses.bsdOriginal ];
1307 1307 };
1308 1308 };
1309 1309 "pycrypto" = super.buildPythonPackage {
1310 1310 name = "pycrypto-2.6.1";
1311 1311 doCheck = false;
1312 1312 src = fetchurl {
1313 1313 url = "https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1314 1314 sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj";
1315 1315 };
1316 1316 meta = {
1317 1317 license = [ pkgs.lib.licenses.publicDomain ];
1318 1318 };
1319 1319 };
1320 1320 "pycurl" = super.buildPythonPackage {
1321 1321 name = "pycurl-7.43.0.2";
1322 1322 doCheck = false;
1323 1323 src = fetchurl {
1324 1324 url = "https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz";
1325 1325 sha256 = "1915kb04k1j4y6k1dx1sgnbddxrl9r1n4q928if2lkrdm73xy30g";
1326 1326 };
1327 1327 meta = {
1328 1328 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1329 1329 };
1330 1330 };
1331 1331 "pygments" = super.buildPythonPackage {
1332 1332 name = "pygments-2.4.2";
1333 1333 doCheck = false;
1334 1334 src = fetchurl {
1335 1335 url = "https://files.pythonhosted.org/packages/7e/ae/26808275fc76bf2832deb10d3a3ed3107bc4de01b85dcccbe525f2cd6d1e/Pygments-2.4.2.tar.gz";
1336 1336 sha256 = "15v2sqm5g12bqa0c7wikfh9ck2nl97ayizy1hpqhmws5gqalq748";
1337 1337 };
1338 1338 meta = {
1339 1339 license = [ pkgs.lib.licenses.bsdOriginal ];
1340 1340 };
1341 1341 };
1342 1342 "pymysql" = super.buildPythonPackage {
1343 1343 name = "pymysql-0.8.1";
1344 1344 doCheck = false;
1345 1345 src = fetchurl {
1346 1346 url = "https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fdf2009d3e29903a55a0494d3a9a2fac0/PyMySQL-0.8.1.tar.gz";
1347 1347 sha256 = "0a96crz55bw4h6myh833skrli7b0ck89m3x673y2z2ryy7zrpq9l";
1348 1348 };
1349 1349 meta = {
1350 1350 license = [ pkgs.lib.licenses.mit ];
1351 1351 };
1352 1352 };
1353 1353 "pyotp" = super.buildPythonPackage {
1354 1354 name = "pyotp-2.2.7";
1355 1355 doCheck = false;
1356 1356 src = fetchurl {
1357 1357 url = "https://files.pythonhosted.org/packages/b1/ab/477cda97b6ca7baced5106471cb1ac1fe698d1b035983b9f8ee3422989eb/pyotp-2.2.7.tar.gz";
1358 1358 sha256 = "00p69nw431f0s2ilg0hnd77p1l22m06p9rq4f8zfapmavnmzw3xy";
1359 1359 };
1360 1360 meta = {
1361 1361 license = [ pkgs.lib.licenses.mit ];
1362 1362 };
1363 1363 };
1364 1364 "pyparsing" = super.buildPythonPackage {
1365 1365 name = "pyparsing-2.3.0";
1366 1366 doCheck = false;
1367 1367 src = fetchurl {
1368 1368 url = "https://files.pythonhosted.org/packages/d0/09/3e6a5eeb6e04467b737d55f8bba15247ac0876f98fae659e58cd744430c6/pyparsing-2.3.0.tar.gz";
1369 1369 sha256 = "14k5v7n3xqw8kzf42x06bzp184spnlkya2dpjyflax6l3yrallzk";
1370 1370 };
1371 1371 meta = {
1372 1372 license = [ pkgs.lib.licenses.mit ];
1373 1373 };
1374 1374 };
1375 1375 "pyramid" = super.buildPythonPackage {
1376 1376 name = "pyramid-1.10.4";
1377 1377 doCheck = false;
1378 1378 propagatedBuildInputs = [
1379 1379 self."hupper"
1380 1380 self."plaster"
1381 1381 self."plaster-pastedeploy"
1382 1382 self."setuptools"
1383 1383 self."translationstring"
1384 1384 self."venusian"
1385 1385 self."webob"
1386 1386 self."zope.deprecation"
1387 1387 self."zope.interface"
1388 1388 self."repoze.lru"
1389 1389 ];
1390 1390 src = fetchurl {
1391 1391 url = "https://files.pythonhosted.org/packages/c2/43/1ae701c9c6bb3a434358e678a5e72c96e8aa55cf4cb1d2fa2041b5dd38b7/pyramid-1.10.4.tar.gz";
1392 1392 sha256 = "0rkxs1ajycg2zh1c94xlmls56mx5m161sn8112skj0amza6cn36q";
1393 1393 };
1394 1394 meta = {
1395 1395 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1396 1396 };
1397 1397 };
1398 1398 "pyramid-debugtoolbar" = super.buildPythonPackage {
1399 1399 name = "pyramid-debugtoolbar-4.5";
1400 1400 doCheck = false;
1401 1401 propagatedBuildInputs = [
1402 1402 self."pyramid"
1403 1403 self."pyramid-mako"
1404 1404 self."repoze.lru"
1405 1405 self."pygments"
1406 1406 self."ipaddress"
1407 1407 ];
1408 1408 src = fetchurl {
1409 1409 url = "https://files.pythonhosted.org/packages/14/28/1f240239af340d19ee271ac62958158c79edb01a44ad8c9885508dd003d2/pyramid_debugtoolbar-4.5.tar.gz";
1410 1410 sha256 = "0x2p3409pnx66n6dx5vc0mk2r1cp1ydr8mp120w44r9pwcngbibl";
1411 1411 };
1412 1412 meta = {
1413 1413 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1414 1414 };
1415 1415 };
1416 1416 "pyramid-jinja2" = super.buildPythonPackage {
1417 1417 name = "pyramid-jinja2-2.7";
1418 1418 doCheck = false;
1419 1419 propagatedBuildInputs = [
1420 1420 self."pyramid"
1421 1421 self."zope.deprecation"
1422 1422 self."jinja2"
1423 1423 self."markupsafe"
1424 1424 ];
1425 1425 src = fetchurl {
1426 1426 url = "https://files.pythonhosted.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1427 1427 sha256 = "1sz5s0pp5jqhf4w22w9527yz8hgdi4mhr6apd6vw1gm5clghh8aw";
1428 1428 };
1429 1429 meta = {
1430 1430 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1431 1431 };
1432 1432 };
1433 1433 "pyramid-mailer" = super.buildPythonPackage {
1434 1434 name = "pyramid-mailer-0.15.1";
1435 1435 doCheck = false;
1436 1436 propagatedBuildInputs = [
1437 1437 self."pyramid"
1438 1438 self."repoze.sendmail"
1439 1439 self."transaction"
1440 1440 ];
1441 1441 src = fetchurl {
1442 1442 url = "https://files.pythonhosted.org/packages/a0/f2/6febf5459dff4d7e653314d575469ad2e11b9d2af2c3606360e1c67202f2/pyramid_mailer-0.15.1.tar.gz";
1443 1443 sha256 = "16vg8jb203jgb7b0hd6wllfqvp542qh2ry1gjai2m6qpv5agy2pc";
1444 1444 };
1445 1445 meta = {
1446 1446 license = [ pkgs.lib.licenses.bsdOriginal ];
1447 1447 };
1448 1448 };
1449 1449 "pyramid-mako" = super.buildPythonPackage {
1450 1450 name = "pyramid-mako-1.0.2";
1451 1451 doCheck = false;
1452 1452 propagatedBuildInputs = [
1453 1453 self."pyramid"
1454 1454 self."mako"
1455 1455 ];
1456 1456 src = fetchurl {
1457 1457 url = "https://files.pythonhosted.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1458 1458 sha256 = "18gk2vliq8z4acblsl6yzgbvnr9rlxjlcqir47km7kvlk1xri83d";
1459 1459 };
1460 1460 meta = {
1461 1461 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1462 1462 };
1463 1463 };
1464 1464 "pysqlite" = super.buildPythonPackage {
1465 1465 name = "pysqlite-2.8.3";
1466 1466 doCheck = false;
1467 1467 src = fetchurl {
1468 1468 url = "https://files.pythonhosted.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1469 1469 sha256 = "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp";
1470 1470 };
1471 1471 meta = {
1472 1472 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1473 1473 };
1474 1474 };
1475 1475 "pytest" = super.buildPythonPackage {
1476 1476 name = "pytest-3.8.2";
1477 1477 doCheck = false;
1478 1478 propagatedBuildInputs = [
1479 1479 self."py"
1480 1480 self."six"
1481 1481 self."setuptools"
1482 1482 self."attrs"
1483 1483 self."more-itertools"
1484 1484 self."atomicwrites"
1485 1485 self."pluggy"
1486 1486 self."funcsigs"
1487 1487 self."pathlib2"
1488 1488 ];
1489 1489 src = fetchurl {
1490 1490 url = "https://files.pythonhosted.org/packages/5f/d2/7f77f406ac505abda02ab4afb50d06ebf304f6ea42fca34f8f37529106b2/pytest-3.8.2.tar.gz";
1491 1491 sha256 = "18nrwzn61kph2y6gxwfz9ms68rfvr9d4vcffsxng9p7jk9z18clk";
1492 1492 };
1493 1493 meta = {
1494 1494 license = [ pkgs.lib.licenses.mit ];
1495 1495 };
1496 1496 };
1497 1497 "pytest-cov" = super.buildPythonPackage {
1498 1498 name = "pytest-cov-2.6.0";
1499 1499 doCheck = false;
1500 1500 propagatedBuildInputs = [
1501 1501 self."pytest"
1502 1502 self."coverage"
1503 1503 ];
1504 1504 src = fetchurl {
1505 1505 url = "https://files.pythonhosted.org/packages/d9/e2/58f90a316fbd94dd50bf5c826a23f3f5d079fb3cc448c1e9f0e3c33a3d2a/pytest-cov-2.6.0.tar.gz";
1506 1506 sha256 = "0qnpp9y3ygx4jk4pf5ad71fh2skbvnr6gl54m7rg5qysnx4g0q73";
1507 1507 };
1508 1508 meta = {
1509 1509 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1510 1510 };
1511 1511 };
1512 1512 "pytest-profiling" = super.buildPythonPackage {
1513 1513 name = "pytest-profiling-1.3.0";
1514 1514 doCheck = false;
1515 1515 propagatedBuildInputs = [
1516 1516 self."six"
1517 1517 self."pytest"
1518 1518 self."gprof2dot"
1519 1519 ];
1520 1520 src = fetchurl {
1521 1521 url = "https://files.pythonhosted.org/packages/f5/34/4626126e041a51ef50a80d0619519b18d20aef249aac25b0d0fdd47e57ee/pytest-profiling-1.3.0.tar.gz";
1522 1522 sha256 = "08r5afx5z22yvpmsnl91l4amsy1yxn8qsmm61mhp06mz8zjs51kb";
1523 1523 };
1524 1524 meta = {
1525 1525 license = [ pkgs.lib.licenses.mit ];
1526 1526 };
1527 1527 };
1528 1528 "pytest-runner" = super.buildPythonPackage {
1529 1529 name = "pytest-runner-4.2";
1530 1530 doCheck = false;
1531 1531 src = fetchurl {
1532 1532 url = "https://files.pythonhosted.org/packages/9e/b7/fe6e8f87f9a756fd06722216f1b6698ccba4d269eac6329d9f0c441d0f93/pytest-runner-4.2.tar.gz";
1533 1533 sha256 = "1gkpyphawxz38ni1gdq1fmwyqcg02m7ypzqvv46z06crwdxi2gyj";
1534 1534 };
1535 1535 meta = {
1536 1536 license = [ pkgs.lib.licenses.mit ];
1537 1537 };
1538 1538 };
1539 1539 "pytest-sugar" = super.buildPythonPackage {
1540 1540 name = "pytest-sugar-0.9.1";
1541 1541 doCheck = false;
1542 1542 propagatedBuildInputs = [
1543 1543 self."pytest"
1544 1544 self."termcolor"
1545 1545 ];
1546 1546 src = fetchurl {
1547 1547 url = "https://files.pythonhosted.org/packages/3e/6a/a3f909083079d03bde11d06ab23088886bbe25f2c97fbe4bb865e2bf05bc/pytest-sugar-0.9.1.tar.gz";
1548 1548 sha256 = "0b4av40dv30727m54v211r0nzwjp2ajkjgxix6j484qjmwpw935b";
1549 1549 };
1550 1550 meta = {
1551 1551 license = [ pkgs.lib.licenses.bsdOriginal ];
1552 1552 };
1553 1553 };
1554 1554 "pytest-timeout" = super.buildPythonPackage {
1555 1555 name = "pytest-timeout-1.3.2";
1556 1556 doCheck = false;
1557 1557 propagatedBuildInputs = [
1558 1558 self."pytest"
1559 1559 ];
1560 1560 src = fetchurl {
1561 1561 url = "https://files.pythonhosted.org/packages/8c/3e/1b6a319d12ae7baa3acb7c18ff2c8630a09471a0319d43535c683b4d03eb/pytest-timeout-1.3.2.tar.gz";
1562 1562 sha256 = "09wnmzvnls2mnsdz7x3c3sk2zdp6jl4dryvyj5i8hqz16q2zq5qi";
1563 1563 };
1564 1564 meta = {
1565 1565 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1566 1566 };
1567 1567 };
1568 1568 "python-dateutil" = super.buildPythonPackage {
1569 1569 name = "python-dateutil-2.8.0";
1570 1570 doCheck = false;
1571 1571 propagatedBuildInputs = [
1572 1572 self."six"
1573 1573 ];
1574 1574 src = fetchurl {
1575 1575 url = "https://files.pythonhosted.org/packages/ad/99/5b2e99737edeb28c71bcbec5b5dda19d0d9ef3ca3e92e3e925e7c0bb364c/python-dateutil-2.8.0.tar.gz";
1576 1576 sha256 = "17nsfhy4xdz1khrfxa61vd7pmvd5z0wa3zb6v4gb4kfnykv0b668";
1577 1577 };
1578 1578 meta = {
1579 1579 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.asl20 { fullName = "Dual License"; } ];
1580 1580 };
1581 1581 };
1582 1582 "python-editor" = super.buildPythonPackage {
1583 1583 name = "python-editor-1.0.4";
1584 1584 doCheck = false;
1585 1585 src = fetchurl {
1586 1586 url = "https://files.pythonhosted.org/packages/0a/85/78f4a216d28343a67b7397c99825cff336330893f00601443f7c7b2f2234/python-editor-1.0.4.tar.gz";
1587 1587 sha256 = "0yrjh8w72ivqxi4i7xsg5b1vz15x8fg51xra7c3bgfyxqnyadzai";
1588 1588 };
1589 1589 meta = {
1590 1590 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1591 1591 };
1592 1592 };
1593 1593 "python-ldap" = super.buildPythonPackage {
1594 1594 name = "python-ldap-3.1.0";
1595 1595 doCheck = false;
1596 1596 propagatedBuildInputs = [
1597 1597 self."pyasn1"
1598 1598 self."pyasn1-modules"
1599 1599 ];
1600 1600 src = fetchurl {
1601 1601 url = "https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz";
1602 1602 sha256 = "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1";
1603 1603 };
1604 1604 meta = {
1605 1605 license = [ pkgs.lib.licenses.psfl ];
1606 1606 };
1607 1607 };
1608 1608 "python-memcached" = super.buildPythonPackage {
1609 1609 name = "python-memcached-1.59";
1610 1610 doCheck = false;
1611 1611 propagatedBuildInputs = [
1612 1612 self."six"
1613 1613 ];
1614 1614 src = fetchurl {
1615 1615 url = "https://files.pythonhosted.org/packages/90/59/5faf6e3cd8a568dd4f737ddae4f2e54204fd8c51f90bf8df99aca6c22318/python-memcached-1.59.tar.gz";
1616 1616 sha256 = "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2";
1617 1617 };
1618 1618 meta = {
1619 1619 license = [ pkgs.lib.licenses.psfl ];
1620 1620 };
1621 1621 };
1622 1622 "python-pam" = super.buildPythonPackage {
1623 1623 name = "python-pam-1.8.4";
1624 1624 doCheck = false;
1625 1625 src = fetchurl {
1626 1626 url = "https://files.pythonhosted.org/packages/01/16/544d01cae9f28e0292dbd092b6b8b0bf222b528f362ee768a5bed2140111/python-pam-1.8.4.tar.gz";
1627 1627 sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
1628 1628 };
1629 1629 meta = {
1630 1630 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1631 1631 };
1632 1632 };
1633 1633 "python-saml" = super.buildPythonPackage {
1634 1634 name = "python-saml-2.4.2";
1635 1635 doCheck = false;
1636 1636 propagatedBuildInputs = [
1637 1637 self."dm.xmlsec.binding"
1638 1638 self."isodate"
1639 1639 self."defusedxml"
1640 1640 ];
1641 1641 src = fetchurl {
1642 1642 url = "https://files.pythonhosted.org/packages/79/a8/a6611017e0883102fd5e2b73c9d90691b8134e38247c04ee1531d3dc647c/python-saml-2.4.2.tar.gz";
1643 1643 sha256 = "0dls4hwvf13yg7x5yfjrghbywg8g38vn5vr0rsf70hli3ydbfm43";
1644 1644 };
1645 1645 meta = {
1646 1646 license = [ pkgs.lib.licenses.mit ];
1647 1647 };
1648 1648 };
1649 1649 "pytz" = super.buildPythonPackage {
1650 1650 name = "pytz-2018.4";
1651 1651 doCheck = false;
1652 1652 src = fetchurl {
1653 1653 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
1654 1654 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
1655 1655 };
1656 1656 meta = {
1657 1657 license = [ pkgs.lib.licenses.mit ];
1658 1658 };
1659 1659 };
1660 1660 "pyzmq" = super.buildPythonPackage {
1661 1661 name = "pyzmq-14.6.0";
1662 1662 doCheck = false;
1663 1663 src = fetchurl {
1664 1664 url = "https://files.pythonhosted.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1665 1665 sha256 = "1frmbjykvhmdg64g7sn20c9fpamrsfxwci1nhhg8q7jgz5pq0ikp";
1666 1666 };
1667 1667 meta = {
1668 1668 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1669 1669 };
1670 1670 };
1671 1671 "redis" = super.buildPythonPackage {
1672 1672 name = "redis-2.10.6";
1673 1673 doCheck = false;
1674 1674 src = fetchurl {
1675 1675 url = "https://files.pythonhosted.org/packages/09/8d/6d34b75326bf96d4139a2ddd8e74b80840f800a0a79f9294399e212cb9a7/redis-2.10.6.tar.gz";
1676 1676 sha256 = "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52";
1677 1677 };
1678 1678 meta = {
1679 1679 license = [ pkgs.lib.licenses.mit ];
1680 1680 };
1681 1681 };
1682 1682 "repoze.lru" = super.buildPythonPackage {
1683 1683 name = "repoze.lru-0.7";
1684 1684 doCheck = false;
1685 1685 src = fetchurl {
1686 1686 url = "https://files.pythonhosted.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1687 1687 sha256 = "0xzz1aw2smy8hdszrq8yhnklx6w1r1mf55061kalw3iq35gafa84";
1688 1688 };
1689 1689 meta = {
1690 1690 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1691 1691 };
1692 1692 };
1693 1693 "repoze.sendmail" = super.buildPythonPackage {
1694 1694 name = "repoze.sendmail-4.4.1";
1695 1695 doCheck = false;
1696 1696 propagatedBuildInputs = [
1697 1697 self."setuptools"
1698 1698 self."zope.interface"
1699 1699 self."transaction"
1700 1700 ];
1701 1701 src = fetchurl {
1702 1702 url = "https://files.pythonhosted.org/packages/12/4e/8ef1fd5c42765d712427b9c391419a77bd48877886d2cbc5e9f23c8cad9b/repoze.sendmail-4.4.1.tar.gz";
1703 1703 sha256 = "096ln02jr2afk7ab9j2czxqv2ryqq7m86ah572nqplx52iws73ks";
1704 1704 };
1705 1705 meta = {
1706 1706 license = [ pkgs.lib.licenses.zpl21 ];
1707 1707 };
1708 1708 };
1709 1709 "requests" = super.buildPythonPackage {
1710 1710 name = "requests-2.9.1";
1711 1711 doCheck = false;
1712 1712 src = fetchurl {
1713 1713 url = "https://files.pythonhosted.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1714 1714 sha256 = "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5";
1715 1715 };
1716 1716 meta = {
1717 1717 license = [ pkgs.lib.licenses.asl20 ];
1718 1718 };
1719 1719 };
1720 1720 "rhodecode-enterprise-ce" = super.buildPythonPackage {
1721 name = "rhodecode-enterprise-ce-4.17.0";
1721 name = "rhodecode-enterprise-ce-4.17.2";
1722 1722 buildInputs = [
1723 1723 self."pytest"
1724 1724 self."py"
1725 1725 self."pytest-cov"
1726 1726 self."pytest-sugar"
1727 1727 self."pytest-runner"
1728 1728 self."pytest-profiling"
1729 1729 self."pytest-timeout"
1730 1730 self."gprof2dot"
1731 1731 self."mock"
1732 1732 self."cov-core"
1733 1733 self."coverage"
1734 1734 self."webtest"
1735 1735 self."beautifulsoup4"
1736 1736 self."configobj"
1737 1737 ];
1738 1738 doCheck = true;
1739 1739 propagatedBuildInputs = [
1740 1740 self."amqp"
1741 1741 self."authomatic"
1742 1742 self."babel"
1743 1743 self."beaker"
1744 1744 self."bleach"
1745 1745 self."celery"
1746 1746 self."channelstream"
1747 1747 self."click"
1748 1748 self."colander"
1749 1749 self."configobj"
1750 1750 self."cssselect"
1751 1751 self."cryptography"
1752 1752 self."decorator"
1753 1753 self."deform"
1754 1754 self."docutils"
1755 1755 self."dogpile.cache"
1756 1756 self."dogpile.core"
1757 1757 self."formencode"
1758 1758 self."future"
1759 1759 self."futures"
1760 1760 self."infrae.cache"
1761 1761 self."iso8601"
1762 1762 self."itsdangerous"
1763 1763 self."kombu"
1764 1764 self."lxml"
1765 1765 self."mako"
1766 1766 self."markdown"
1767 1767 self."markupsafe"
1768 1768 self."msgpack-python"
1769 1769 self."pyotp"
1770 1770 self."packaging"
1771 1771 self."pathlib2"
1772 1772 self."paste"
1773 1773 self."pastedeploy"
1774 1774 self."pastescript"
1775 1775 self."peppercorn"
1776 1776 self."psutil"
1777 1777 self."py-bcrypt"
1778 1778 self."pycurl"
1779 1779 self."pycrypto"
1780 1780 self."pygments"
1781 1781 self."pyparsing"
1782 1782 self."pyramid-debugtoolbar"
1783 1783 self."pyramid-mako"
1784 1784 self."pyramid"
1785 1785 self."pyramid-mailer"
1786 1786 self."python-dateutil"
1787 1787 self."python-ldap"
1788 1788 self."python-memcached"
1789 1789 self."python-pam"
1790 1790 self."python-saml"
1791 1791 self."pytz"
1792 1792 self."tzlocal"
1793 1793 self."pyzmq"
1794 1794 self."py-gfm"
1795 1795 self."redis"
1796 1796 self."repoze.lru"
1797 1797 self."requests"
1798 1798 self."routes"
1799 1799 self."simplejson"
1800 1800 self."six"
1801 1801 self."sqlalchemy"
1802 1802 self."sshpubkeys"
1803 1803 self."subprocess32"
1804 1804 self."supervisor"
1805 1805 self."translationstring"
1806 1806 self."urllib3"
1807 1807 self."urlobject"
1808 1808 self."venusian"
1809 1809 self."weberror"
1810 1810 self."webhelpers2"
1811 1811 self."webhelpers"
1812 1812 self."webob"
1813 1813 self."whoosh"
1814 1814 self."wsgiref"
1815 1815 self."zope.cachedescriptors"
1816 1816 self."zope.deprecation"
1817 1817 self."zope.event"
1818 1818 self."zope.interface"
1819 1819 self."mysql-python"
1820 1820 self."pymysql"
1821 1821 self."pysqlite"
1822 1822 self."psycopg2"
1823 1823 self."nbconvert"
1824 1824 self."nbformat"
1825 1825 self."jupyter-client"
1826 1826 self."alembic"
1827 1827 self."invoke"
1828 1828 self."bumpversion"
1829 1829 self."gevent"
1830 1830 self."greenlet"
1831 1831 self."gunicorn"
1832 1832 self."waitress"
1833 1833 self."ipdb"
1834 1834 self."ipython"
1835 1835 self."rhodecode-tools"
1836 1836 self."appenlight-client"
1837 1837 self."pytest"
1838 1838 self."py"
1839 1839 self."pytest-cov"
1840 1840 self."pytest-sugar"
1841 1841 self."pytest-runner"
1842 1842 self."pytest-profiling"
1843 1843 self."pytest-timeout"
1844 1844 self."gprof2dot"
1845 1845 self."mock"
1846 1846 self."cov-core"
1847 1847 self."coverage"
1848 1848 self."webtest"
1849 1849 self."beautifulsoup4"
1850 1850 ];
1851 1851 src = ./.;
1852 1852 meta = {
1853 1853 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1854 1854 };
1855 1855 };
1856 1856 "rhodecode-tools" = super.buildPythonPackage {
1857 1857 name = "rhodecode-tools-1.2.1";
1858 1858 doCheck = false;
1859 1859 propagatedBuildInputs = [
1860 1860 self."click"
1861 1861 self."future"
1862 1862 self."six"
1863 1863 self."mako"
1864 1864 self."markupsafe"
1865 1865 self."requests"
1866 1866 self."urllib3"
1867 1867 self."whoosh"
1868 1868 self."elasticsearch"
1869 1869 self."elasticsearch-dsl"
1870 1870 self."elasticsearch2"
1871 1871 self."elasticsearch1-dsl"
1872 1872 ];
1873 1873 src = fetchurl {
1874 1874 url = "https://code.rhodecode.com/rhodecode-tools-ce/artifacts/download/0-10ac93f4-bb7d-4b97-baea-68110743dd5a.tar.gz?md5=962dc77c06aceee62282b98d33149661";
1875 1875 sha256 = "1vfhgf46inbx7jvlfx4fdzh3vz7lh37r291gzb5hx447pfm3qllg";
1876 1876 };
1877 1877 meta = {
1878 1878 license = [ { fullName = "Apache 2.0 and Proprietary"; } ];
1879 1879 };
1880 1880 };
1881 1881 "routes" = super.buildPythonPackage {
1882 1882 name = "routes-2.4.1";
1883 1883 doCheck = false;
1884 1884 propagatedBuildInputs = [
1885 1885 self."six"
1886 1886 self."repoze.lru"
1887 1887 ];
1888 1888 src = fetchurl {
1889 1889 url = "https://files.pythonhosted.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
1890 1890 sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
1891 1891 };
1892 1892 meta = {
1893 1893 license = [ pkgs.lib.licenses.mit ];
1894 1894 };
1895 1895 };
1896 1896 "scandir" = super.buildPythonPackage {
1897 1897 name = "scandir-1.10.0";
1898 1898 doCheck = false;
1899 1899 src = fetchurl {
1900 1900 url = "https://files.pythonhosted.org/packages/df/f5/9c052db7bd54d0cbf1bc0bb6554362bba1012d03e5888950a4f5c5dadc4e/scandir-1.10.0.tar.gz";
1901 1901 sha256 = "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
1902 1902 };
1903 1903 meta = {
1904 1904 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1905 1905 };
1906 1906 };
1907 1907 "setproctitle" = super.buildPythonPackage {
1908 1908 name = "setproctitle-1.1.10";
1909 1909 doCheck = false;
1910 1910 src = fetchurl {
1911 1911 url = "https://files.pythonhosted.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1912 1912 sha256 = "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2";
1913 1913 };
1914 1914 meta = {
1915 1915 license = [ pkgs.lib.licenses.bsdOriginal ];
1916 1916 };
1917 1917 };
1918 1918 "setuptools" = super.buildPythonPackage {
1919 1919 name = "setuptools-41.0.1";
1920 1920 doCheck = false;
1921 1921 src = fetchurl {
1922 1922 url = "https://files.pythonhosted.org/packages/1d/64/a18a487b4391a05b9c7f938b94a16d80305bf0369c6b0b9509e86165e1d3/setuptools-41.0.1.zip";
1923 1923 sha256 = "04sns22y2hhsrwfy1mha2lgslvpjsjsz8xws7h2rh5a7ylkd28m2";
1924 1924 };
1925 1925 meta = {
1926 1926 license = [ pkgs.lib.licenses.mit ];
1927 1927 };
1928 1928 };
1929 1929 "simplegeneric" = super.buildPythonPackage {
1930 1930 name = "simplegeneric-0.8.1";
1931 1931 doCheck = false;
1932 1932 src = fetchurl {
1933 1933 url = "https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1934 1934 sha256 = "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw";
1935 1935 };
1936 1936 meta = {
1937 1937 license = [ pkgs.lib.licenses.zpl21 ];
1938 1938 };
1939 1939 };
1940 1940 "simplejson" = super.buildPythonPackage {
1941 1941 name = "simplejson-3.16.0";
1942 1942 doCheck = false;
1943 1943 src = fetchurl {
1944 1944 url = "https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz";
1945 1945 sha256 = "19cws1syk8jzq2pw43878dv6fjkb0ifvjpx0i9aajix6kc9jkwxi";
1946 1946 };
1947 1947 meta = {
1948 1948 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1949 1949 };
1950 1950 };
1951 1951 "six" = super.buildPythonPackage {
1952 1952 name = "six-1.11.0";
1953 1953 doCheck = false;
1954 1954 src = fetchurl {
1955 1955 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1956 1956 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
1957 1957 };
1958 1958 meta = {
1959 1959 license = [ pkgs.lib.licenses.mit ];
1960 1960 };
1961 1961 };
1962 1962 "sqlalchemy" = super.buildPythonPackage {
1963 1963 name = "sqlalchemy-1.1.18";
1964 1964 doCheck = false;
1965 1965 src = fetchurl {
1966 1966 url = "https://files.pythonhosted.org/packages/cc/4d/96d93ff77cd67aca7618e402191eee3490d8f5f245d6ab7622d35fe504f4/SQLAlchemy-1.1.18.tar.gz";
1967 1967 sha256 = "1ab4ysip6irajfbxl9wy27kv76miaz8h6759hfx92499z4dcf3lb";
1968 1968 };
1969 1969 meta = {
1970 1970 license = [ pkgs.lib.licenses.mit ];
1971 1971 };
1972 1972 };
1973 1973 "sshpubkeys" = super.buildPythonPackage {
1974 1974 name = "sshpubkeys-3.1.0";
1975 1975 doCheck = false;
1976 1976 propagatedBuildInputs = [
1977 1977 self."cryptography"
1978 1978 self."ecdsa"
1979 1979 ];
1980 1980 src = fetchurl {
1981 1981 url = "https://files.pythonhosted.org/packages/00/23/f7508a12007c96861c3da811992f14283d79c819d71a217b3e12d5196649/sshpubkeys-3.1.0.tar.gz";
1982 1982 sha256 = "105g2li04nm1hb15a2y6hm9m9k7fbrkd5l3gy12w3kgcmsf3k25k";
1983 1983 };
1984 1984 meta = {
1985 1985 license = [ pkgs.lib.licenses.bsdOriginal ];
1986 1986 };
1987 1987 };
1988 1988 "subprocess32" = super.buildPythonPackage {
1989 1989 name = "subprocess32-3.5.4";
1990 1990 doCheck = false;
1991 1991 src = fetchurl {
1992 1992 url = "https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007/subprocess32-3.5.4.tar.gz";
1993 1993 sha256 = "17f7mvwx2271s1wrl0qac3wjqqnrqag866zs3qc8v5wp0k43fagb";
1994 1994 };
1995 1995 meta = {
1996 1996 license = [ pkgs.lib.licenses.psfl ];
1997 1997 };
1998 1998 };
1999 1999 "supervisor" = super.buildPythonPackage {
2000 2000 name = "supervisor-4.0.3";
2001 2001 doCheck = false;
2002 2002 propagatedBuildInputs = [
2003 2003 self."meld3"
2004 2004 ];
2005 2005 src = fetchurl {
2006 2006 url = "https://files.pythonhosted.org/packages/97/48/f38bf70bd9282d1a18d591616557cc1a77a1c627d57dff66ead65c891dc8/supervisor-4.0.3.tar.gz";
2007 2007 sha256 = "17hla7mx6w5m5jzkkjxgqa8wpswqmfhbhf49f692hw78fg0ans7p";
2008 2008 };
2009 2009 meta = {
2010 2010 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
2011 2011 };
2012 2012 };
2013 2013 "tempita" = super.buildPythonPackage {
2014 2014 name = "tempita-0.5.2";
2015 2015 doCheck = false;
2016 2016 src = fetchurl {
2017 2017 url = "https://files.pythonhosted.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
2018 2018 sha256 = "177wwq45slfyajd8csy477bmdmzipyw0dm7i85k3akb7m85wzkna";
2019 2019 };
2020 2020 meta = {
2021 2021 license = [ pkgs.lib.licenses.mit ];
2022 2022 };
2023 2023 };
2024 2024 "termcolor" = super.buildPythonPackage {
2025 2025 name = "termcolor-1.1.0";
2026 2026 doCheck = false;
2027 2027 src = fetchurl {
2028 2028 url = "https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
2029 2029 sha256 = "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x";
2030 2030 };
2031 2031 meta = {
2032 2032 license = [ pkgs.lib.licenses.mit ];
2033 2033 };
2034 2034 };
2035 2035 "testpath" = super.buildPythonPackage {
2036 2036 name = "testpath-0.4.2";
2037 2037 doCheck = false;
2038 2038 src = fetchurl {
2039 2039 url = "https://files.pythonhosted.org/packages/06/30/9a7e917066d851d8b4117e85794b5f14516419ea714a8a2681ec6aa8a981/testpath-0.4.2.tar.gz";
2040 2040 sha256 = "1y40hywscnnyb734pnzm55nd8r8kp1072bjxbil83gcd53cv755n";
2041 2041 };
2042 2042 meta = {
2043 2043 license = [ ];
2044 2044 };
2045 2045 };
2046 2046 "traitlets" = super.buildPythonPackage {
2047 2047 name = "traitlets-4.3.2";
2048 2048 doCheck = false;
2049 2049 propagatedBuildInputs = [
2050 2050 self."ipython-genutils"
2051 2051 self."six"
2052 2052 self."decorator"
2053 2053 self."enum34"
2054 2054 ];
2055 2055 src = fetchurl {
2056 2056 url = "https://files.pythonhosted.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
2057 2057 sha256 = "0dbq7sx26xqz5ixs711k5nc88p8a0nqyz6162pwks5dpcz9d4jww";
2058 2058 };
2059 2059 meta = {
2060 2060 license = [ pkgs.lib.licenses.bsdOriginal ];
2061 2061 };
2062 2062 };
2063 2063 "transaction" = super.buildPythonPackage {
2064 2064 name = "transaction-2.4.0";
2065 2065 doCheck = false;
2066 2066 propagatedBuildInputs = [
2067 2067 self."zope.interface"
2068 2068 ];
2069 2069 src = fetchurl {
2070 2070 url = "https://files.pythonhosted.org/packages/9d/7d/0e8af0d059e052b9dcf2bb5a08aad20ae3e238746bdd3f8701a60969b363/transaction-2.4.0.tar.gz";
2071 2071 sha256 = "17wz1y524ca07vr03yddy8dv0gbscs06dbdywmllxv5rc725jq3j";
2072 2072 };
2073 2073 meta = {
2074 2074 license = [ pkgs.lib.licenses.zpl21 ];
2075 2075 };
2076 2076 };
2077 2077 "translationstring" = super.buildPythonPackage {
2078 2078 name = "translationstring-1.3";
2079 2079 doCheck = false;
2080 2080 src = fetchurl {
2081 2081 url = "https://files.pythonhosted.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
2082 2082 sha256 = "0bdpcnd9pv0131dl08h4zbcwmgc45lyvq3pa224xwan5b3x4rr2f";
2083 2083 };
2084 2084 meta = {
2085 2085 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
2086 2086 };
2087 2087 };
2088 2088 "tzlocal" = super.buildPythonPackage {
2089 2089 name = "tzlocal-1.5.1";
2090 2090 doCheck = false;
2091 2091 propagatedBuildInputs = [
2092 2092 self."pytz"
2093 2093 ];
2094 2094 src = fetchurl {
2095 2095 url = "https://files.pythonhosted.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
2096 2096 sha256 = "0kiciwiqx0bv0fbc913idxibc4ygg4cb7f8rcpd9ij2shi4bigjf";
2097 2097 };
2098 2098 meta = {
2099 2099 license = [ pkgs.lib.licenses.mit ];
2100 2100 };
2101 2101 };
2102 2102 "urllib3" = super.buildPythonPackage {
2103 2103 name = "urllib3-1.24.1";
2104 2104 doCheck = false;
2105 2105 src = fetchurl {
2106 2106 url = "https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz";
2107 2107 sha256 = "08lwd9f3hqznyf32vnzwvp87pchx062nkbgyrf67rwlkgj0jk5fy";
2108 2108 };
2109 2109 meta = {
2110 2110 license = [ pkgs.lib.licenses.mit ];
2111 2111 };
2112 2112 };
2113 2113 "urlobject" = super.buildPythonPackage {
2114 2114 name = "urlobject-2.4.3";
2115 2115 doCheck = false;
2116 2116 src = fetchurl {
2117 2117 url = "https://files.pythonhosted.org/packages/e2/b8/1d0a916f4b34c4618846e6da0e4eeaa8fcb4a2f39e006434fe38acb74b34/URLObject-2.4.3.tar.gz";
2118 2118 sha256 = "1ahc8ficzfvr2avln71immfh4ls0zyv6cdaa5xmkdj5rd87f5cj7";
2119 2119 };
2120 2120 meta = {
2121 2121 license = [ pkgs.lib.licenses.publicDomain ];
2122 2122 };
2123 2123 };
2124 2124 "venusian" = super.buildPythonPackage {
2125 2125 name = "venusian-1.2.0";
2126 2126 doCheck = false;
2127 2127 src = fetchurl {
2128 2128 url = "https://files.pythonhosted.org/packages/7e/6f/40a9d43ac77cb51cb62be5b5662d170f43f8037bdc4eab56336c4ca92bb7/venusian-1.2.0.tar.gz";
2129 2129 sha256 = "0ghyx66g8ikx9nx1mnwqvdcqm11i1vlq0hnvwl50s48bp22q5v34";
2130 2130 };
2131 2131 meta = {
2132 2132 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
2133 2133 };
2134 2134 };
2135 2135 "vine" = super.buildPythonPackage {
2136 2136 name = "vine-1.3.0";
2137 2137 doCheck = false;
2138 2138 src = fetchurl {
2139 2139 url = "https://files.pythonhosted.org/packages/1c/e1/79fb8046e607dd6c2ad05c9b8ebac9d0bd31d086a08f02699e96fc5b3046/vine-1.3.0.tar.gz";
2140 2140 sha256 = "11ydsbhl1vabndc2r979dv61s6j2b0giq6dgvryifvq1m7bycghk";
2141 2141 };
2142 2142 meta = {
2143 2143 license = [ pkgs.lib.licenses.bsdOriginal ];
2144 2144 };
2145 2145 };
2146 2146 "waitress" = super.buildPythonPackage {
2147 2147 name = "waitress-1.3.0";
2148 2148 doCheck = false;
2149 2149 src = fetchurl {
2150 2150 url = "https://files.pythonhosted.org/packages/43/50/9890471320d5ad22761ae46661cf745f487b1c8c4ec49352b99e1078b970/waitress-1.3.0.tar.gz";
2151 2151 sha256 = "09j5dzbbcxib7vdskhx39s1qsydlr4n2p2png71d7mjnr9pnwajf";
2152 2152 };
2153 2153 meta = {
2154 2154 license = [ pkgs.lib.licenses.zpl21 ];
2155 2155 };
2156 2156 };
2157 2157 "wcwidth" = super.buildPythonPackage {
2158 2158 name = "wcwidth-0.1.7";
2159 2159 doCheck = false;
2160 2160 src = fetchurl {
2161 2161 url = "https://files.pythonhosted.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
2162 2162 sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
2163 2163 };
2164 2164 meta = {
2165 2165 license = [ pkgs.lib.licenses.mit ];
2166 2166 };
2167 2167 };
2168 2168 "webencodings" = super.buildPythonPackage {
2169 2169 name = "webencodings-0.5.1";
2170 2170 doCheck = false;
2171 2171 src = fetchurl {
2172 2172 url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
2173 2173 sha256 = "08qrgrc4hrximb2gqnl69g01s93rhf2842jfxdjljc1dbwj1qsmk";
2174 2174 };
2175 2175 meta = {
2176 2176 license = [ pkgs.lib.licenses.bsdOriginal ];
2177 2177 };
2178 2178 };
2179 2179 "weberror" = super.buildPythonPackage {
2180 2180 name = "weberror-0.10.3";
2181 2181 doCheck = false;
2182 2182 propagatedBuildInputs = [
2183 2183 self."webob"
2184 2184 self."tempita"
2185 2185 self."pygments"
2186 2186 self."paste"
2187 2187 ];
2188 2188 src = fetchurl {
2189 2189 url = "https://files.pythonhosted.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
2190 2190 sha256 = "0frg4kvycqpj5bi8asfqfs6bxsr2cvjvb6b56c4d1ai1z57kbjx6";
2191 2191 };
2192 2192 meta = {
2193 2193 license = [ pkgs.lib.licenses.mit ];
2194 2194 };
2195 2195 };
2196 2196 "webhelpers" = super.buildPythonPackage {
2197 2197 name = "webhelpers-1.3";
2198 2198 doCheck = false;
2199 2199 propagatedBuildInputs = [
2200 2200 self."markupsafe"
2201 2201 ];
2202 2202 src = fetchurl {
2203 2203 url = "https://files.pythonhosted.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
2204 2204 sha256 = "10x5i82qdkrvyw18gsybwggfhfpl869siaab89vnndi9x62g51pa";
2205 2205 };
2206 2206 meta = {
2207 2207 license = [ pkgs.lib.licenses.bsdOriginal ];
2208 2208 };
2209 2209 };
2210 2210 "webhelpers2" = super.buildPythonPackage {
2211 2211 name = "webhelpers2-2.0";
2212 2212 doCheck = false;
2213 2213 propagatedBuildInputs = [
2214 2214 self."markupsafe"
2215 2215 self."six"
2216 2216 ];
2217 2217 src = fetchurl {
2218 2218 url = "https://files.pythonhosted.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
2219 2219 sha256 = "0aphva1qmxh83n01p53f5fd43m4srzbnfbz5ajvbx9aj2aipwmcs";
2220 2220 };
2221 2221 meta = {
2222 2222 license = [ pkgs.lib.licenses.mit ];
2223 2223 };
2224 2224 };
2225 2225 "webob" = super.buildPythonPackage {
2226 2226 name = "webob-1.8.5";
2227 2227 doCheck = false;
2228 2228 src = fetchurl {
2229 2229 url = "https://files.pythonhosted.org/packages/9d/1a/0c89c070ee2829c934cb6c7082287c822e28236a4fcf90063e6be7c35532/WebOb-1.8.5.tar.gz";
2230 2230 sha256 = "11khpzaxc88q31v25ic330gsf56fwmbdc9b30br8mvp0fmwspah5";
2231 2231 };
2232 2232 meta = {
2233 2233 license = [ pkgs.lib.licenses.mit ];
2234 2234 };
2235 2235 };
2236 2236 "webtest" = super.buildPythonPackage {
2237 2237 name = "webtest-2.0.33";
2238 2238 doCheck = false;
2239 2239 propagatedBuildInputs = [
2240 2240 self."six"
2241 2241 self."webob"
2242 2242 self."waitress"
2243 2243 self."beautifulsoup4"
2244 2244 ];
2245 2245 src = fetchurl {
2246 2246 url = "https://files.pythonhosted.org/packages/a8/b0/ffc9413b637dbe26e291429bb0f6ed731e518d0cd03da28524a8fe2e8a8f/WebTest-2.0.33.tar.gz";
2247 2247 sha256 = "1l3z0cwqslsf4rcrhi2gr8kdfh74wn2dw76376i4g9i38gz8wd21";
2248 2248 };
2249 2249 meta = {
2250 2250 license = [ pkgs.lib.licenses.mit ];
2251 2251 };
2252 2252 };
2253 2253 "whoosh" = super.buildPythonPackage {
2254 2254 name = "whoosh-2.7.4";
2255 2255 doCheck = false;
2256 2256 src = fetchurl {
2257 2257 url = "https://files.pythonhosted.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
2258 2258 sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
2259 2259 };
2260 2260 meta = {
2261 2261 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
2262 2262 };
2263 2263 };
2264 2264 "ws4py" = super.buildPythonPackage {
2265 2265 name = "ws4py-0.5.1";
2266 2266 doCheck = false;
2267 2267 src = fetchurl {
2268 2268 url = "https://files.pythonhosted.org/packages/53/20/4019a739b2eefe9282d3822ef6a225250af964b117356971bd55e274193c/ws4py-0.5.1.tar.gz";
2269 2269 sha256 = "10slbbf2jm4hpr92jx7kh7mhf48sjl01v2w4d8z3f1p0ybbp7l19";
2270 2270 };
2271 2271 meta = {
2272 2272 license = [ pkgs.lib.licenses.bsdOriginal ];
2273 2273 };
2274 2274 };
2275 2275 "wsgiref" = super.buildPythonPackage {
2276 2276 name = "wsgiref-0.1.2";
2277 2277 doCheck = false;
2278 2278 src = fetchurl {
2279 2279 url = "https://files.pythonhosted.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2280 2280 sha256 = "0y8fyjmpq7vwwm4x732w97qbkw78rjwal5409k04cw4m03411rn7";
2281 2281 };
2282 2282 meta = {
2283 2283 license = [ { fullName = "PSF or ZPL"; } ];
2284 2284 };
2285 2285 };
2286 2286 "zope.cachedescriptors" = super.buildPythonPackage {
2287 2287 name = "zope.cachedescriptors-4.3.1";
2288 2288 doCheck = false;
2289 2289 propagatedBuildInputs = [
2290 2290 self."setuptools"
2291 2291 ];
2292 2292 src = fetchurl {
2293 2293 url = "https://files.pythonhosted.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2294 2294 sha256 = "0jhr3m5p74c6r7k8iv0005b8bfsialih9d7zl5vx38rf5xq1lk8z";
2295 2295 };
2296 2296 meta = {
2297 2297 license = [ pkgs.lib.licenses.zpl21 ];
2298 2298 };
2299 2299 };
2300 2300 "zope.deprecation" = super.buildPythonPackage {
2301 2301 name = "zope.deprecation-4.4.0";
2302 2302 doCheck = false;
2303 2303 propagatedBuildInputs = [
2304 2304 self."setuptools"
2305 2305 ];
2306 2306 src = fetchurl {
2307 2307 url = "https://files.pythonhosted.org/packages/34/da/46e92d32d545dd067b9436279d84c339e8b16de2ca393d7b892bc1e1e9fd/zope.deprecation-4.4.0.tar.gz";
2308 2308 sha256 = "1pz2cv7gv9y1r3m0bdv7ks1alagmrn5msm5spwdzkb2by0w36i8d";
2309 2309 };
2310 2310 meta = {
2311 2311 license = [ pkgs.lib.licenses.zpl21 ];
2312 2312 };
2313 2313 };
2314 2314 "zope.event" = super.buildPythonPackage {
2315 2315 name = "zope.event-4.4";
2316 2316 doCheck = false;
2317 2317 propagatedBuildInputs = [
2318 2318 self."setuptools"
2319 2319 ];
2320 2320 src = fetchurl {
2321 2321 url = "https://files.pythonhosted.org/packages/4c/b2/51c0369adcf5be2334280eed230192ab3b03f81f8efda9ddea6f65cc7b32/zope.event-4.4.tar.gz";
2322 2322 sha256 = "1ksbc726av9xacml6jhcfyn828hlhb9xlddpx6fcvnlvmpmpvhk9";
2323 2323 };
2324 2324 meta = {
2325 2325 license = [ pkgs.lib.licenses.zpl21 ];
2326 2326 };
2327 2327 };
2328 2328 "zope.interface" = super.buildPythonPackage {
2329 2329 name = "zope.interface-4.6.0";
2330 2330 doCheck = false;
2331 2331 propagatedBuildInputs = [
2332 2332 self."setuptools"
2333 2333 ];
2334 2334 src = fetchurl {
2335 2335 url = "https://files.pythonhosted.org/packages/4e/d0/c9d16bd5b38de44a20c6dc5d5ed80a49626fafcb3db9f9efdc2a19026db6/zope.interface-4.6.0.tar.gz";
2336 2336 sha256 = "1rgh2x3rcl9r0v0499kf78xy86rnmanajf4ywmqb943wpk50sg8v";
2337 2337 };
2338 2338 meta = {
2339 2339 license = [ pkgs.lib.licenses.zpl21 ];
2340 2340 };
2341 2341 };
2342 2342
2343 2343 ### Test requirements
2344 2344
2345 2345
2346 2346 }
@@ -1,500 +1,512 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2016-2019 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20 from rhodecode.apps._base import add_route_with_slash
21 21
22 22
23 23 def includeme(config):
24 24
25 25 # repo creating checks, special cases that aren't repo routes
26 26 config.add_route(
27 27 name='repo_creating',
28 28 pattern='/{repo_name:.*?[^/]}/repo_creating')
29 29
30 30 config.add_route(
31 31 name='repo_creating_check',
32 32 pattern='/{repo_name:.*?[^/]}/repo_creating_check')
33 33
34 34 # Summary
35 35 # NOTE(marcink): one additional route is defined in very bottom, catch
36 36 # all pattern
37 37 config.add_route(
38 38 name='repo_summary_explicit',
39 39 pattern='/{repo_name:.*?[^/]}/summary', repo_route=True)
40 40 config.add_route(
41 41 name='repo_summary_commits',
42 42 pattern='/{repo_name:.*?[^/]}/summary-commits', repo_route=True)
43 43
44 44 # Commits
45 45 config.add_route(
46 46 name='repo_commit',
47 47 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}', repo_route=True)
48 48
49 49 config.add_route(
50 50 name='repo_commit_children',
51 51 pattern='/{repo_name:.*?[^/]}/changeset_children/{commit_id}', repo_route=True)
52 52
53 53 config.add_route(
54 54 name='repo_commit_parents',
55 55 pattern='/{repo_name:.*?[^/]}/changeset_parents/{commit_id}', repo_route=True)
56 56
57 57 config.add_route(
58 58 name='repo_commit_raw',
59 59 pattern='/{repo_name:.*?[^/]}/changeset-diff/{commit_id}', repo_route=True)
60 60
61 61 config.add_route(
62 62 name='repo_commit_patch',
63 63 pattern='/{repo_name:.*?[^/]}/changeset-patch/{commit_id}', repo_route=True)
64 64
65 65 config.add_route(
66 66 name='repo_commit_download',
67 67 pattern='/{repo_name:.*?[^/]}/changeset-download/{commit_id}', repo_route=True)
68 68
69 69 config.add_route(
70 70 name='repo_commit_data',
71 71 pattern='/{repo_name:.*?[^/]}/changeset-data/{commit_id}', repo_route=True)
72 72
73 73 config.add_route(
74 74 name='repo_commit_comment_create',
75 75 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/create', repo_route=True)
76 76
77 77 config.add_route(
78 78 name='repo_commit_comment_preview',
79 79 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/preview', repo_route=True)
80 80
81 81 config.add_route(
82 82 name='repo_commit_comment_delete',
83 83 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/{comment_id}/delete', repo_route=True)
84 84
85 85 # still working url for backward compat.
86 86 config.add_route(
87 87 name='repo_commit_raw_deprecated',
88 88 pattern='/{repo_name:.*?[^/]}/raw-changeset/{commit_id}', repo_route=True)
89 89
90 90 # Files
91 91 config.add_route(
92 92 name='repo_archivefile',
93 93 pattern='/{repo_name:.*?[^/]}/archive/{fname:.*}', repo_route=True)
94 94
95 95 config.add_route(
96 96 name='repo_files_diff',
97 97 pattern='/{repo_name:.*?[^/]}/diff/{f_path:.*}', repo_route=True)
98 98 config.add_route( # legacy route to make old links work
99 99 name='repo_files_diff_2way_redirect',
100 100 pattern='/{repo_name:.*?[^/]}/diff-2way/{f_path:.*}', repo_route=True)
101 101
102 102 config.add_route(
103 103 name='repo_files',
104 104 pattern='/{repo_name:.*?[^/]}/files/{commit_id}/{f_path:.*}', repo_route=True)
105 105 config.add_route(
106 106 name='repo_files:default_path',
107 107 pattern='/{repo_name:.*?[^/]}/files/{commit_id}/', repo_route=True)
108 108 config.add_route(
109 109 name='repo_files:default_commit',
110 110 pattern='/{repo_name:.*?[^/]}/files', repo_route=True)
111 111
112 112 config.add_route(
113 113 name='repo_files:rendered',
114 114 pattern='/{repo_name:.*?[^/]}/render/{commit_id}/{f_path:.*}', repo_route=True)
115 115
116 116 config.add_route(
117 117 name='repo_files:annotated',
118 118 pattern='/{repo_name:.*?[^/]}/annotate/{commit_id}/{f_path:.*}', repo_route=True)
119 119 config.add_route(
120 120 name='repo_files:annotated_previous',
121 121 pattern='/{repo_name:.*?[^/]}/annotate-previous/{commit_id}/{f_path:.*}', repo_route=True)
122 122
123 123 config.add_route(
124 124 name='repo_nodetree_full',
125 125 pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/{f_path:.*}', repo_route=True)
126 126 config.add_route(
127 127 name='repo_nodetree_full:default_path',
128 128 pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/', repo_route=True)
129 129
130 130 config.add_route(
131 131 name='repo_files_nodelist',
132 132 pattern='/{repo_name:.*?[^/]}/nodelist/{commit_id}/{f_path:.*}', repo_route=True)
133 133
134 134 config.add_route(
135 135 name='repo_file_raw',
136 136 pattern='/{repo_name:.*?[^/]}/raw/{commit_id}/{f_path:.*}', repo_route=True)
137 137
138 138 config.add_route(
139 139 name='repo_file_download',
140 140 pattern='/{repo_name:.*?[^/]}/download/{commit_id}/{f_path:.*}', repo_route=True)
141 141 config.add_route( # backward compat to keep old links working
142 142 name='repo_file_download:legacy',
143 143 pattern='/{repo_name:.*?[^/]}/rawfile/{commit_id}/{f_path:.*}',
144 144 repo_route=True)
145 145
146 146 config.add_route(
147 147 name='repo_file_history',
148 148 pattern='/{repo_name:.*?[^/]}/history/{commit_id}/{f_path:.*}', repo_route=True)
149 149
150 150 config.add_route(
151 151 name='repo_file_authors',
152 152 pattern='/{repo_name:.*?[^/]}/authors/{commit_id}/{f_path:.*}', repo_route=True)
153 153
154 154 config.add_route(
155 155 name='repo_files_remove_file',
156 156 pattern='/{repo_name:.*?[^/]}/remove_file/{commit_id}/{f_path:.*}',
157 157 repo_route=True)
158 158 config.add_route(
159 159 name='repo_files_delete_file',
160 160 pattern='/{repo_name:.*?[^/]}/delete_file/{commit_id}/{f_path:.*}',
161 161 repo_route=True)
162 162 config.add_route(
163 163 name='repo_files_edit_file',
164 164 pattern='/{repo_name:.*?[^/]}/edit_file/{commit_id}/{f_path:.*}',
165 165 repo_route=True)
166 166 config.add_route(
167 167 name='repo_files_update_file',
168 168 pattern='/{repo_name:.*?[^/]}/update_file/{commit_id}/{f_path:.*}',
169 169 repo_route=True)
170 170 config.add_route(
171 171 name='repo_files_add_file',
172 172 pattern='/{repo_name:.*?[^/]}/add_file/{commit_id}/{f_path:.*}',
173 173 repo_route=True)
174 174 config.add_route(
175 175 name='repo_files_upload_file',
176 176 pattern='/{repo_name:.*?[^/]}/upload_file/{commit_id}/{f_path:.*}',
177 177 repo_route=True)
178 178 config.add_route(
179 179 name='repo_files_create_file',
180 180 pattern='/{repo_name:.*?[^/]}/create_file/{commit_id}/{f_path:.*}',
181 181 repo_route=True)
182 182
183 183 # Refs data
184 184 config.add_route(
185 185 name='repo_refs_data',
186 186 pattern='/{repo_name:.*?[^/]}/refs-data', repo_route=True)
187 187
188 188 config.add_route(
189 189 name='repo_refs_changelog_data',
190 190 pattern='/{repo_name:.*?[^/]}/refs-data-changelog', repo_route=True)
191 191
192 192 config.add_route(
193 193 name='repo_stats',
194 194 pattern='/{repo_name:.*?[^/]}/repo_stats/{commit_id}', repo_route=True)
195 195
196 196 # Commits
197 197 config.add_route(
198 198 name='repo_commits',
199 199 pattern='/{repo_name:.*?[^/]}/commits', repo_route=True)
200 200 config.add_route(
201 201 name='repo_commits_file',
202 202 pattern='/{repo_name:.*?[^/]}/commits/{commit_id}/{f_path:.*}', repo_route=True)
203 203 config.add_route(
204 204 name='repo_commits_elements',
205 205 pattern='/{repo_name:.*?[^/]}/commits_elements', repo_route=True)
206 206 config.add_route(
207 207 name='repo_commits_elements_file',
208 208 pattern='/{repo_name:.*?[^/]}/commits_elements/{commit_id}/{f_path:.*}', repo_route=True)
209 209
210 210 # Changelog (old deprecated name for commits page)
211 211 config.add_route(
212 212 name='repo_changelog',
213 213 pattern='/{repo_name:.*?[^/]}/changelog', repo_route=True)
214 214 config.add_route(
215 215 name='repo_changelog_file',
216 216 pattern='/{repo_name:.*?[^/]}/changelog/{commit_id}/{f_path:.*}', repo_route=True)
217 217
218 218 # Compare
219 219 config.add_route(
220 220 name='repo_compare_select',
221 221 pattern='/{repo_name:.*?[^/]}/compare', repo_route=True)
222 222
223 223 config.add_route(
224 224 name='repo_compare',
225 225 pattern='/{repo_name:.*?[^/]}/compare/{source_ref_type}@{source_ref:.*?}...{target_ref_type}@{target_ref:.*?}', repo_route=True)
226 226
227 227 # Tags
228 228 config.add_route(
229 229 name='tags_home',
230 230 pattern='/{repo_name:.*?[^/]}/tags', repo_route=True)
231 231
232 232 # Branches
233 233 config.add_route(
234 234 name='branches_home',
235 235 pattern='/{repo_name:.*?[^/]}/branches', repo_route=True)
236 236
237 237 # Bookmarks
238 238 config.add_route(
239 239 name='bookmarks_home',
240 240 pattern='/{repo_name:.*?[^/]}/bookmarks', repo_route=True)
241 241
242 242 # Forks
243 243 config.add_route(
244 244 name='repo_fork_new',
245 245 pattern='/{repo_name:.*?[^/]}/fork', repo_route=True,
246 246 repo_forbid_when_archived=True,
247 247 repo_accepted_types=['hg', 'git'])
248 248
249 249 config.add_route(
250 250 name='repo_fork_create',
251 251 pattern='/{repo_name:.*?[^/]}/fork/create', repo_route=True,
252 252 repo_forbid_when_archived=True,
253 253 repo_accepted_types=['hg', 'git'])
254 254
255 255 config.add_route(
256 256 name='repo_forks_show_all',
257 257 pattern='/{repo_name:.*?[^/]}/forks', repo_route=True,
258 258 repo_accepted_types=['hg', 'git'])
259 259 config.add_route(
260 260 name='repo_forks_data',
261 261 pattern='/{repo_name:.*?[^/]}/forks/data', repo_route=True,
262 262 repo_accepted_types=['hg', 'git'])
263 263
264 264 # Pull Requests
265 265 config.add_route(
266 266 name='pullrequest_show',
267 267 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}',
268 268 repo_route=True)
269 269
270 270 config.add_route(
271 271 name='pullrequest_show_all',
272 272 pattern='/{repo_name:.*?[^/]}/pull-request',
273 273 repo_route=True, repo_accepted_types=['hg', 'git'])
274 274
275 275 config.add_route(
276 276 name='pullrequest_show_all_data',
277 277 pattern='/{repo_name:.*?[^/]}/pull-request-data',
278 278 repo_route=True, repo_accepted_types=['hg', 'git'])
279 279
280 280 config.add_route(
281 281 name='pullrequest_repo_refs',
282 282 pattern='/{repo_name:.*?[^/]}/pull-request/refs/{target_repo_name:.*?[^/]}',
283 283 repo_route=True)
284 284
285 285 config.add_route(
286 286 name='pullrequest_repo_targets',
287 287 pattern='/{repo_name:.*?[^/]}/pull-request/repo-targets',
288 288 repo_route=True)
289 289
290 290 config.add_route(
291 291 name='pullrequest_new',
292 292 pattern='/{repo_name:.*?[^/]}/pull-request/new',
293 293 repo_route=True, repo_accepted_types=['hg', 'git'],
294 294 repo_forbid_when_archived=True)
295 295
296 296 config.add_route(
297 297 name='pullrequest_create',
298 298 pattern='/{repo_name:.*?[^/]}/pull-request/create',
299 299 repo_route=True, repo_accepted_types=['hg', 'git'],
300 300 repo_forbid_when_archived=True)
301 301
302 302 config.add_route(
303 303 name='pullrequest_update',
304 304 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/update',
305 305 repo_route=True, repo_forbid_when_archived=True)
306 306
307 307 config.add_route(
308 308 name='pullrequest_merge',
309 309 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/merge',
310 310 repo_route=True, repo_forbid_when_archived=True)
311 311
312 312 config.add_route(
313 313 name='pullrequest_delete',
314 314 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/delete',
315 315 repo_route=True, repo_forbid_when_archived=True)
316 316
317 317 config.add_route(
318 318 name='pullrequest_comment_create',
319 319 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment',
320 320 repo_route=True)
321 321
322 322 config.add_route(
323 323 name='pullrequest_comment_delete',
324 324 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment/{comment_id}/delete',
325 325 repo_route=True, repo_accepted_types=['hg', 'git'])
326 326
327 327 # Artifacts, (EE feature)
328 328 config.add_route(
329 329 name='repo_artifacts_list',
330 330 pattern='/{repo_name:.*?[^/]}/artifacts', repo_route=True)
331 331
332 332 # Settings
333 333 config.add_route(
334 334 name='edit_repo',
335 335 pattern='/{repo_name:.*?[^/]}/settings', repo_route=True)
336 336 # update is POST on edit_repo
337 337
338 338 # Settings advanced
339 339 config.add_route(
340 340 name='edit_repo_advanced',
341 341 pattern='/{repo_name:.*?[^/]}/settings/advanced', repo_route=True)
342 342 config.add_route(
343 343 name='edit_repo_advanced_archive',
344 344 pattern='/{repo_name:.*?[^/]}/settings/advanced/archive', repo_route=True)
345 345 config.add_route(
346 346 name='edit_repo_advanced_delete',
347 347 pattern='/{repo_name:.*?[^/]}/settings/advanced/delete', repo_route=True)
348 348 config.add_route(
349 349 name='edit_repo_advanced_locking',
350 350 pattern='/{repo_name:.*?[^/]}/settings/advanced/locking', repo_route=True)
351 351 config.add_route(
352 352 name='edit_repo_advanced_journal',
353 353 pattern='/{repo_name:.*?[^/]}/settings/advanced/journal', repo_route=True)
354 354 config.add_route(
355 355 name='edit_repo_advanced_fork',
356 356 pattern='/{repo_name:.*?[^/]}/settings/advanced/fork', repo_route=True)
357 357
358 358 config.add_route(
359 359 name='edit_repo_advanced_hooks',
360 360 pattern='/{repo_name:.*?[^/]}/settings/advanced/hooks', repo_route=True)
361 361
362 362 # Caches
363 363 config.add_route(
364 364 name='edit_repo_caches',
365 365 pattern='/{repo_name:.*?[^/]}/settings/caches', repo_route=True)
366 366
367 367 # Permissions
368 368 config.add_route(
369 369 name='edit_repo_perms',
370 370 pattern='/{repo_name:.*?[^/]}/settings/permissions', repo_route=True)
371 371
372 config.add_route(
373 name='edit_repo_perms_set_private',
374 pattern='/{repo_name:.*?[^/]}/settings/permissions/set_private', repo_route=True)
375
372 376 # Permissions Branch (EE feature)
373 377 config.add_route(
374 378 name='edit_repo_perms_branch',
375 379 pattern='/{repo_name:.*?[^/]}/settings/branch_permissions', repo_route=True)
376 380 config.add_route(
377 381 name='edit_repo_perms_branch_delete',
378 382 pattern='/{repo_name:.*?[^/]}/settings/branch_permissions/{rule_id}/delete',
379 383 repo_route=True)
380 384
381 385 # Maintenance
382 386 config.add_route(
383 387 name='edit_repo_maintenance',
384 388 pattern='/{repo_name:.*?[^/]}/settings/maintenance', repo_route=True)
385 389
386 390 config.add_route(
387 391 name='edit_repo_maintenance_execute',
388 392 pattern='/{repo_name:.*?[^/]}/settings/maintenance/execute', repo_route=True)
389 393
390 394 # Fields
391 395 config.add_route(
392 396 name='edit_repo_fields',
393 397 pattern='/{repo_name:.*?[^/]}/settings/fields', repo_route=True)
394 398 config.add_route(
395 399 name='edit_repo_fields_create',
396 400 pattern='/{repo_name:.*?[^/]}/settings/fields/create', repo_route=True)
397 401 config.add_route(
398 402 name='edit_repo_fields_delete',
399 403 pattern='/{repo_name:.*?[^/]}/settings/fields/{field_id}/delete', repo_route=True)
400 404
401 405 # Locking
402 406 config.add_route(
403 407 name='repo_edit_toggle_locking',
404 408 pattern='/{repo_name:.*?[^/]}/settings/toggle_locking', repo_route=True)
405 409
406 410 # Remote
407 411 config.add_route(
408 412 name='edit_repo_remote',
409 413 pattern='/{repo_name:.*?[^/]}/settings/remote', repo_route=True)
410 414 config.add_route(
411 415 name='edit_repo_remote_pull',
412 416 pattern='/{repo_name:.*?[^/]}/settings/remote/pull', repo_route=True)
413 417 config.add_route(
414 418 name='edit_repo_remote_push',
415 419 pattern='/{repo_name:.*?[^/]}/settings/remote/push', repo_route=True)
416 420
417 421 # Statistics
418 422 config.add_route(
419 423 name='edit_repo_statistics',
420 424 pattern='/{repo_name:.*?[^/]}/settings/statistics', repo_route=True)
421 425 config.add_route(
422 426 name='edit_repo_statistics_reset',
423 427 pattern='/{repo_name:.*?[^/]}/settings/statistics/update', repo_route=True)
424 428
425 429 # Issue trackers
426 430 config.add_route(
427 431 name='edit_repo_issuetracker',
428 432 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers', repo_route=True)
429 433 config.add_route(
430 434 name='edit_repo_issuetracker_test',
431 435 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/test', repo_route=True)
432 436 config.add_route(
433 437 name='edit_repo_issuetracker_delete',
434 438 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/delete', repo_route=True)
435 439 config.add_route(
436 440 name='edit_repo_issuetracker_update',
437 441 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/update', repo_route=True)
438 442
439 443 # VCS Settings
440 444 config.add_route(
441 445 name='edit_repo_vcs',
442 446 pattern='/{repo_name:.*?[^/]}/settings/vcs', repo_route=True)
443 447 config.add_route(
444 448 name='edit_repo_vcs_update',
445 449 pattern='/{repo_name:.*?[^/]}/settings/vcs/update', repo_route=True)
446 450
447 451 # svn pattern
448 452 config.add_route(
449 453 name='edit_repo_vcs_svn_pattern_delete',
450 454 pattern='/{repo_name:.*?[^/]}/settings/vcs/svn_pattern/delete', repo_route=True)
451 455
452 456 # Repo Review Rules (EE feature)
453 457 config.add_route(
454 458 name='repo_reviewers',
455 459 pattern='/{repo_name:.*?[^/]}/settings/review/rules', repo_route=True)
456 460
457 461 config.add_route(
458 462 name='repo_default_reviewers_data',
459 463 pattern='/{repo_name:.*?[^/]}/settings/review/default-reviewers', repo_route=True)
460 464
461 465 # Repo Automation (EE feature)
462 466 config.add_route(
463 467 name='repo_automation',
464 468 pattern='/{repo_name:.*?[^/]}/settings/automation', repo_route=True)
465 469
466 470 # Strip
467 471 config.add_route(
468 472 name='edit_repo_strip',
469 473 pattern='/{repo_name:.*?[^/]}/settings/strip', repo_route=True)
470 474
471 475 config.add_route(
472 476 name='strip_check',
473 477 pattern='/{repo_name:.*?[^/]}/settings/strip_check', repo_route=True)
474 478
475 479 config.add_route(
476 480 name='strip_execute',
477 481 pattern='/{repo_name:.*?[^/]}/settings/strip_execute', repo_route=True)
478 482
479 483 # Audit logs
480 484 config.add_route(
481 485 name='edit_repo_audit_logs',
482 486 pattern='/{repo_name:.*?[^/]}/settings/audit_logs', repo_route=True)
483 487
484 # ATOM/RSS Feed
488 # ATOM/RSS Feed, shouldn't contain slashes for outlook compatibility
485 489 config.add_route(
486 490 name='rss_feed_home',
491 pattern='/{repo_name:.*?[^/]}/feed-rss', repo_route=True)
492
493 config.add_route(
494 name='atom_feed_home',
495 pattern='/{repo_name:.*?[^/]}/feed-atom', repo_route=True)
496
497 config.add_route(
498 name='rss_feed_home_old',
487 499 pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True)
488 500
489 501 config.add_route(
490 name='atom_feed_home',
502 name='atom_feed_home_old',
491 503 pattern='/{repo_name:.*?[^/]}/feed/atom', repo_route=True)
492 504
493 505 # NOTE(marcink): needs to be at the end for catch-all
494 506 add_route_with_slash(
495 507 config,
496 508 name='repo_summary',
497 509 pattern='/{repo_name:.*?[^/]}', repo_route=True)
498 510
499 511 # Scan module for configuration decorators.
500 512 config.scan('.views', ignore='.tests')
@@ -1,99 +1,137 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2010-2019 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import pytest
22 22 from rhodecode.model.auth_token import AuthTokenModel
23 23 from rhodecode.tests import TestController
24 24
25 25
26 26 def route_path(name, params=None, **kwargs):
27 27 import urllib
28 28
29 29 base_url = {
30 'rss_feed_home': '/{repo_name}/feed/rss',
31 'atom_feed_home': '/{repo_name}/feed/atom',
30 'rss_feed_home': '/{repo_name}/feed-rss',
31 'atom_feed_home': '/{repo_name}/feed-atom',
32 'rss_feed_home_old': '/{repo_name}/feed/rss',
33 'atom_feed_home_old': '/{repo_name}/feed/atom',
32 34 }[name].format(**kwargs)
33 35
34 36 if params:
35 37 base_url = '{}?{}'.format(base_url, urllib.urlencode(params))
36 38 return base_url
37 39
38 40
39 41 class TestFeedView(TestController):
40 42
41 43 @pytest.mark.parametrize("feed_type,response_types,content_type",[
42 44 ('rss', ['<rss version="2.0">'],
43 45 "application/rss+xml"),
44 46 ('atom', ['xmlns="http://www.w3.org/2005/Atom"', 'xml:lang="en-us"'],
45 47 "application/atom+xml"),
46 48 ])
47 49 def test_feed(self, backend, feed_type, response_types, content_type):
48 50 self.log_user()
49 51 response = self.app.get(
50 52 route_path('{}_feed_home'.format(feed_type),
51 53 repo_name=backend.repo_name))
52 54
53 55 for content in response_types:
54 56 response.mustcontain(content)
55 57
56 58 assert response.content_type == content_type
57 59
58 60 @pytest.mark.parametrize("feed_type, content_type", [
59 61 ('rss', "application/rss+xml"),
60 62 ('atom', "application/atom+xml")
61 63 ])
62 64 def test_feed_with_auth_token(
63 65 self, backend, user_admin, feed_type, content_type):
64 66 auth_token = user_admin.feed_token
65 67 assert auth_token != ''
66 68
67 69 response = self.app.get(
68 70 route_path(
69 71 '{}_feed_home'.format(feed_type),
70 72 repo_name=backend.repo_name,
71 73 params=dict(auth_token=auth_token)),
72 74 status=200)
73 75
74 76 assert response.content_type == content_type
75 77
78 @pytest.mark.parametrize("feed_type, content_type", [
79 ('rss', "application/rss+xml"),
80 ('atom', "application/atom+xml")
81 ])
82 def test_feed_with_auth_token_by_uid(
83 self, backend, user_admin, feed_type, content_type):
84 auth_token = user_admin.feed_token
85 assert auth_token != ''
86
87 response = self.app.get(
88 route_path(
89 '{}_feed_home'.format(feed_type),
90 repo_name='_{}'.format(backend.repo.repo_id),
91 params=dict(auth_token=auth_token)),
92 status=200)
93
94 assert response.content_type == content_type
95
96 @pytest.mark.parametrize("feed_type, content_type", [
97 ('rss', "application/rss+xml"),
98 ('atom', "application/atom+xml")
99 ])
100 def test_feed_old_urls_with_auth_token(
101 self, backend, user_admin, feed_type, content_type):
102 auth_token = user_admin.feed_token
103 assert auth_token != ''
104
105 response = self.app.get(
106 route_path(
107 '{}_feed_home_old'.format(feed_type),
108 repo_name=backend.repo_name,
109 params=dict(auth_token=auth_token)),
110 status=200)
111
112 assert response.content_type == content_type
113
76 114 @pytest.mark.parametrize("feed_type", ['rss', 'atom'])
77 115 def test_feed_with_auth_token_of_wrong_type(
78 116 self, backend, user_util, feed_type):
79 117 user = user_util.create_user()
80 118 auth_token = AuthTokenModel().create(
81 119 user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_API)
82 120 auth_token = auth_token.api_key
83 121
84 122 self.app.get(
85 123 route_path(
86 124 '{}_feed_home'.format(feed_type),
87 125 repo_name=backend.repo_name,
88 126 params=dict(auth_token=auth_token)),
89 127 status=302)
90 128
91 129 auth_token = AuthTokenModel().create(
92 130 user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_FEED)
93 131 auth_token = auth_token.api_key
94 132 self.app.get(
95 133 route_path(
96 134 '{}_feed_home'.format(feed_type),
97 135 repo_name=backend.repo_name,
98 136 params=dict(auth_token=auth_token)),
99 137 status=200)
@@ -1,238 +1,242 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2017-2019 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20 import pytz
21 21 import logging
22 22
23 23 from pyramid.view import view_config
24 24 from pyramid.response import Response
25 25 from webhelpers.feedgenerator import Rss201rev2Feed, Atom1Feed
26 26
27 27 from rhodecode.apps._base import RepoAppView
28 28 from rhodecode.lib import audit_logger
29 29 from rhodecode.lib import rc_cache
30 30 from rhodecode.lib import helpers as h
31 31 from rhodecode.lib.auth import (
32 32 LoginRequired, HasRepoPermissionAnyDecorator)
33 33 from rhodecode.lib.diffs import DiffProcessor, LimitedDiffContainer
34 34 from rhodecode.lib.utils2 import str2bool, safe_int, md5_safe
35 35 from rhodecode.model.db import UserApiKeys, CacheKey
36 36
37 37 log = logging.getLogger(__name__)
38 38
39 39
40 40 class RepoFeedView(RepoAppView):
41 41 def load_default_context(self):
42 42 c = self._get_local_tmpl_context()
43
44
45 43 self._load_defaults()
46 44 return c
47 45
48 46 def _get_config(self):
49 47 import rhodecode
50 48 config = rhodecode.CONFIG
51 49
52 50 return {
53 51 'language': 'en-us',
54 52 'feed_ttl': '5', # TTL of feed,
55 53 'feed_include_diff':
56 54 str2bool(config.get('rss_include_diff', False)),
57 55 'feed_items_per_page':
58 56 safe_int(config.get('rss_items_per_page', 20)),
59 57 'feed_diff_limit':
60 58 # we need to protect from parsing huge diffs here other way
61 59 # we can kill the server
62 60 safe_int(config.get('rss_cut_off_limit', 32 * 1024)),
63 61 }
64 62
65 63 def _load_defaults(self):
66 64 _ = self.request.translate
67 65 config = self._get_config()
68 66 # common values for feeds
69 67 self.description = _('Changes on %s repository')
70 68 self.title = self.title = _('%s %s feed') % (self.db_repo_name, '%s')
71 69 self.language = config["language"]
72 70 self.ttl = config["feed_ttl"]
73 71 self.feed_include_diff = config['feed_include_diff']
74 72 self.feed_diff_limit = config['feed_diff_limit']
75 73 self.feed_items_per_page = config['feed_items_per_page']
76 74
77 75 def _changes(self, commit):
78 76 diff_processor = DiffProcessor(
79 77 commit.diff(), diff_limit=self.feed_diff_limit)
80 78 _parsed = diff_processor.prepare(inline_diff=False)
81 79 limited_diff = isinstance(_parsed, LimitedDiffContainer)
82 80
83 81 return diff_processor, _parsed, limited_diff
84 82
85 83 def _get_title(self, commit):
86 84 return h.shorter(commit.message, 160)
87 85
88 86 def _get_description(self, commit):
89 87 _renderer = self.request.get_partial_renderer(
90 88 'rhodecode:templates/feed/atom_feed_entry.mako')
91 89 diff_processor, parsed_diff, limited_diff = self._changes(commit)
92 90 filtered_parsed_diff, has_hidden_changes = self.path_filter.filter_patchset(parsed_diff)
93 91 return _renderer(
94 92 'body',
95 93 commit=commit,
96 94 parsed_diff=filtered_parsed_diff,
97 95 limited_diff=limited_diff,
98 96 feed_include_diff=self.feed_include_diff,
99 97 diff_processor=diff_processor,
100 98 has_hidden_changes=has_hidden_changes
101 99 )
102 100
103 101 def _set_timezone(self, date, tzinfo=pytz.utc):
104 102 if not getattr(date, "tzinfo", None):
105 103 date.replace(tzinfo=tzinfo)
106 104 return date
107 105
108 106 def _get_commits(self):
109 107 return list(self.rhodecode_vcs_repo[-self.feed_items_per_page:])
110 108
111 109 def uid(self, repo_id, commit_id):
112 110 return '{}:{}'.format(md5_safe(repo_id), md5_safe(commit_id))
113 111
114 112 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
115 113 @HasRepoPermissionAnyDecorator(
116 114 'repository.read', 'repository.write', 'repository.admin')
117 115 @view_config(
118 116 route_name='atom_feed_home', request_method='GET',
119 117 renderer=None)
118 @view_config(
119 route_name='atom_feed_home_old', request_method='GET',
120 renderer=None)
120 121 def atom(self):
121 122 """
122 123 Produce an atom-1.0 feed via feedgenerator module
123 124 """
124 125 self.load_default_context()
125 126
126 127 cache_namespace_uid = 'cache_repo_instance.{}_{}'.format(
127 128 self.db_repo.repo_id, CacheKey.CACHE_TYPE_FEED)
128 129 invalidation_namespace = CacheKey.REPO_INVALIDATION_NAMESPACE.format(
129 130 repo_id=self.db_repo.repo_id)
130 131
131 132 region = rc_cache.get_or_create_region('cache_repo_longterm',
132 133 cache_namespace_uid)
133 134
134 135 condition = not self.path_filter.is_enabled
135 136
136 137 @region.conditional_cache_on_arguments(namespace=cache_namespace_uid,
137 138 condition=condition)
138 139 def generate_atom_feed(repo_id, _repo_name, _feed_type):
139 140 feed = Atom1Feed(
140 141 title=self.title % _repo_name,
141 142 link=h.route_url('repo_summary', repo_name=_repo_name),
142 143 description=self.description % _repo_name,
143 144 language=self.language,
144 145 ttl=self.ttl
145 146 )
146 147
147 148 for commit in reversed(self._get_commits()):
148 149 date = self._set_timezone(commit.date)
149 150 feed.add_item(
150 151 unique_id=self.uid(repo_id, commit.raw_id),
151 152 title=self._get_title(commit),
152 153 author_name=commit.author,
153 154 description=self._get_description(commit),
154 155 link=h.route_url(
155 156 'repo_commit', repo_name=_repo_name,
156 157 commit_id=commit.raw_id),
157 158 pubdate=date,)
158 159
159 160 return feed.mime_type, feed.writeString('utf-8')
160 161
161 162 inv_context_manager = rc_cache.InvalidationContext(
162 163 uid=cache_namespace_uid, invalidation_namespace=invalidation_namespace)
163 164 with inv_context_manager as invalidation_context:
164 165 args = (self.db_repo.repo_id, self.db_repo.repo_name, 'atom',)
165 166 # re-compute and store cache if we get invalidate signal
166 167 if invalidation_context.should_invalidate():
167 168 mime_type, feed = generate_atom_feed.refresh(*args)
168 169 else:
169 170 mime_type, feed = generate_atom_feed(*args)
170 171
171 172 log.debug('Repo ATOM feed computed in %.3fs',
172 173 inv_context_manager.compute_time)
173 174
174 175 response = Response(feed)
175 176 response.content_type = mime_type
176 177 return response
177 178
178 179 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
179 180 @HasRepoPermissionAnyDecorator(
180 181 'repository.read', 'repository.write', 'repository.admin')
181 182 @view_config(
182 183 route_name='rss_feed_home', request_method='GET',
183 184 renderer=None)
185 @view_config(
186 route_name='rss_feed_home_old', request_method='GET',
187 renderer=None)
184 188 def rss(self):
185 189 """
186 190 Produce an rss2 feed via feedgenerator module
187 191 """
188 192 self.load_default_context()
189 193
190 194 cache_namespace_uid = 'cache_repo_instance.{}_{}'.format(
191 195 self.db_repo.repo_id, CacheKey.CACHE_TYPE_FEED)
192 196 invalidation_namespace = CacheKey.REPO_INVALIDATION_NAMESPACE.format(
193 197 repo_id=self.db_repo.repo_id)
194 198 region = rc_cache.get_or_create_region('cache_repo_longterm',
195 199 cache_namespace_uid)
196 200
197 201 condition = not self.path_filter.is_enabled
198 202
199 203 @region.conditional_cache_on_arguments(namespace=cache_namespace_uid,
200 204 condition=condition)
201 205 def generate_rss_feed(repo_id, _repo_name, _feed_type):
202 206 feed = Rss201rev2Feed(
203 207 title=self.title % _repo_name,
204 208 link=h.route_url('repo_summary', repo_name=_repo_name),
205 209 description=self.description % _repo_name,
206 210 language=self.language,
207 211 ttl=self.ttl
208 212 )
209 213
210 214 for commit in reversed(self._get_commits()):
211 215 date = self._set_timezone(commit.date)
212 216 feed.add_item(
213 217 unique_id=self.uid(repo_id, commit.raw_id),
214 218 title=self._get_title(commit),
215 219 author_name=commit.author,
216 220 description=self._get_description(commit),
217 221 link=h.route_url(
218 222 'repo_commit', repo_name=_repo_name,
219 223 commit_id=commit.raw_id),
220 224 pubdate=date,)
221 225
222 226 return feed.mime_type, feed.writeString('utf-8')
223 227
224 228 inv_context_manager = rc_cache.InvalidationContext(
225 229 uid=cache_namespace_uid, invalidation_namespace=invalidation_namespace)
226 230 with inv_context_manager as invalidation_context:
227 231 args = (self.db_repo.repo_id, self.db_repo.repo_name, 'rss',)
228 232 # re-compute and store cache if we get invalidate signal
229 233 if invalidation_context.should_invalidate():
230 234 mime_type, feed = generate_rss_feed.refresh(*args)
231 235 else:
232 236 mime_type, feed = generate_rss_feed(*args)
233 237 log.debug(
234 238 'Repo RSS feed computed in %.3fs', inv_context_manager.compute_time)
235 239
236 240 response = Response(feed)
237 241 response.content_type = mime_type
238 242 return response
@@ -1,107 +1,134 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2011-2019 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound
24 24 from pyramid.view import view_config
25 25
26 26 from rhodecode import events
27 27 from rhodecode.apps._base import RepoAppView
28 28 from rhodecode.lib import helpers as h
29 29 from rhodecode.lib import audit_logger
30 30 from rhodecode.lib.auth import (
31 31 LoginRequired, HasRepoPermissionAnyDecorator, CSRFRequired)
32 32 from rhodecode.lib.utils2 import safe_int
33 33 from rhodecode.model.db import UserGroup
34 34 from rhodecode.model.forms import RepoPermsForm
35 35 from rhodecode.model.meta import Session
36 36 from rhodecode.model.repo import RepoModel
37 37
38 38 log = logging.getLogger(__name__)
39 39
40 40
41 41 class RepoSettingsPermissionsView(RepoAppView):
42 42
43 43 def load_default_context(self):
44 44 c = self._get_local_tmpl_context()
45 45 return c
46 46
47 47 @LoginRequired()
48 48 @HasRepoPermissionAnyDecorator('repository.admin')
49 49 @view_config(
50 50 route_name='edit_repo_perms', request_method='GET',
51 51 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
52 52 def edit_permissions(self):
53 53 _ = self.request.translate
54 54 c = self.load_default_context()
55 55 c.active = 'permissions'
56 56 if self.request.GET.get('branch_permissions'):
57 57 h.flash(_('Explicitly add user or user group with write+ '
58 58 'permission to modify their branch permissions.'),
59 59 category='notice')
60 60 return self._get_template_context(c)
61 61
62 62 @LoginRequired()
63 63 @HasRepoPermissionAnyDecorator('repository.admin')
64 64 @CSRFRequired()
65 65 @view_config(
66 66 route_name='edit_repo_perms', request_method='POST',
67 67 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
68 68 def edit_permissions_update(self):
69 69 _ = self.request.translate
70 70 c = self.load_default_context()
71 71 c.active = 'permissions'
72 72 data = self.request.POST
73 73 # store private flag outside of HTML to verify if we can modify
74 74 # default user permissions, prevents submission of FAKE post data
75 75 # into the form for private repos
76 76 data['repo_private'] = self.db_repo.private
77 77 form = RepoPermsForm(self.request.translate)().to_python(data)
78 78 changes = RepoModel().update_permissions(
79 79 self.db_repo_name, form['perm_additions'], form['perm_updates'],
80 80 form['perm_deletions'])
81 81
82 82 action_data = {
83 83 'added': changes['added'],
84 84 'updated': changes['updated'],
85 85 'deleted': changes['deleted'],
86 86 }
87 87 audit_logger.store_web(
88 88 'repo.edit.permissions', action_data=action_data,
89 89 user=self._rhodecode_user, repo=self.db_repo)
90 90
91 91 Session().commit()
92 92 h.flash(_('Repository permissions updated'), category='success')
93 93
94 94 affected_user_ids = []
95 95 for change in changes['added'] + changes['updated'] + changes['deleted']:
96 96 if change['type'] == 'user':
97 97 affected_user_ids.append(change['id'])
98 98 if change['type'] == 'user_group':
99 99 user_group = UserGroup.get(safe_int(change['id']))
100 100 if user_group:
101 101 group_members_ids = [x.user_id for x in user_group.members]
102 102 affected_user_ids.extend(group_members_ids)
103 103
104 104 events.trigger(events.UserPermissionsChange(affected_user_ids))
105 105
106 106 raise HTTPFound(
107 107 h.route_path('edit_repo_perms', repo_name=self.db_repo_name))
108
109 @LoginRequired()
110 @HasRepoPermissionAnyDecorator('repository.admin')
111 @CSRFRequired()
112 @view_config(
113 route_name='edit_repo_perms_set_private', request_method='POST',
114 renderer='json_ext')
115 def edit_permissions_set_private_repo(self):
116 _ = self.request.translate
117 self.load_default_context()
118
119 try:
120 RepoModel().update(
121 self.db_repo, **{'repo_private': True, 'repo_name': self.db_repo_name})
122 Session().commit()
123
124 h.flash(_('Repository `{}` private mode set successfully').format(self.db_repo_name),
125 category='success')
126 except Exception:
127 log.exception("Exception during update of repository")
128 h.flash(_('Error occurred during update of repository {}').format(
129 self.db_repo_name), category='error')
130
131 return {
132 'redirect_url': h.route_path('edit_repo_perms', repo_name=self.db_repo_name),
133 'private': True
134 }
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now