-
Notifications
You must be signed in to change notification settings - Fork 6
/
index_db.html
205 lines (177 loc) · 8.92 KB
/
index_db.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<!doctype html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{title}}</title>
<meta name="description" content="Nearly all popular Python packages support Python 3.">
<meta name="author" content="Yuv">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="/static/favicon.ico">
<link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
<link rel="stylesheet" href="/static/css/style.css?v=2">
<script src="/static/js/libs/modernizr-1.6.min.js"></script>
</head>
<body>
<div id="container">
<b class="border-a"></b>
<b class="border-b"></b>
<b class="border-c"></b>
<b class="border-d"></b>
<header>
<h1>{{title}}</h1>
</header>
<div id="main">
<h2 style="color: crimson; font-size: 2em">DEPRECATED STALE DATA</h2>
<p>
2018-04-22 PyPI deprecated `top_packages` which caused this site to fail.
At 95% compatibility this mission is long over so I don't see a reason to maintain Python3wos any further.
If you're curious about the current download numbers, see <a href="https://github.com/ubershmekel/python3wos/issues/53">more info on the github issue</a>.
See what I'm up to on <a href="http://ubershmekel.github.io/">github</a>.
</p>
<p>
2012-12 the site was renamed to <a href="https://news.ycombinator.com/item?id=4907755">"Python 3 Wall of Superpowers"</a> after surpassing 50% compatibility.
</p>
<p>
2011-02 Python 3 Wall of Shame launched. Over 2 years after Python 3's release 9% of the 200 most popular packages were marked compatible.
</p>
<p>
2008-12-03 Python 3.0 was released.
</p>
<p>
As listed on PyPI - packages in <span class="red">red</span> don't support Python 3, packages in <span class="green">green</span> do. Hopefully one day everything will be greener.
</p>
<p>
Status: {{count}} Updated: {{min_time}}
</p>
<table><tr><th>Package</th><th>Downloads</th></tr>
{% for package in packages %}
{% if package.equivalent_url or package.force_green %}
<tr class="py3True" id="{{package.name}}">
<td>
<a href="{{package.url}}" timestamp="{{package.timestamp}}">{{package.name}}</a>
{% if package.force_green %}
<img src="static/redtri.png" alt="Wrong trove classifier" title="This package isn't classified as Python 3 compatible on PyPI, please contact its maintainers to fix this."/>
{% else %}
(<a href="{{package.equivalent_url}}">py3k</a>)
{% endif %}
</td>
{% else %}
<tr class="py3{{package.py3}}" id="{{package.name}}">
<td>
<a href="{{package.url}}" timestamp="{{package.timestamp}}">{{package.name}}</a>
{% if package.py2only %}
<img src="static/lock.png" alt="Forever Python 2" title="The maintainers of this package have declared it will work only on Python 2 for the foreseeable future using the "Programming Language :: Python :: 2 :: Only" classifier."/>
{% endif %}
</td>
{% endif %}
<td>{{package.downloads}}</td>
</tr>
{% endfor %}
</table>
</div>
<footer>
<ul>
<li>
Written by <a href="http://uberpython.wordpress.com/">Yuv</a> aka ubershmekel.
</li>
<li>
Don't wait, start <a href="http://wiki.python.org/moin/PortingToPy3k/">porting code to Python 3</a>.
</li>
<li>
Get the source for this <a href="https://cloud.google.com/appengine/">GAE</a> app at <a href="https://github.com/ubershmekel/python3wos/">GitHub</a>.
</li>
<li>
The wall updates almost once a day, see the timestamps in the html.
</li>
<li>
<a href="http://pypi.python.org/pypi/wxPython/">wxPython</a> and <a href="http://pypi.python.org/pypi/PIL">PIL</a> aren't on this chart because they don't host their downloads on PyPI. Check out the Python 3 compatible PIL fork <a href="https://pypi.python.org/pypi/Pillow/">Pillow</a>.
</li>
<li>
Design <a href="http://www.reddit.com/r/Python/comments/fk4gs/the_python_3_wall_of_shame/c1giwbi">stolen</a> from <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a>.
</li>
<li>
If a module is red though it supports Python 3 it's because they don't have the "Programming Language :: Python :: 3" tag. Consider contacting the maintainer to fix this.
</li>
<li>
Note that this subdomain's called "python3wos" - when the status was below 50%, the title of the site was "Python 3 Wall of Shame". I kid you not.
</li>
<!--li>
You may also enjoy a python.org sponsored <a href="http://py3ksupport.appspot.com">wall</a> that suggests this one is "FUD".
To quote the FAQ:
> Why make this site (e.g. Python 3 Wall of Shame already existed)?
> I care about seeing Python 3 succeed and pushing against the FUD that some spread about the lack of Python 3 uptake since I am on the Python development team. That means I am willing to put in more time and > > effort into manually updating information than others. I am also willing to put up a little bit of my own money to make sure this web site updates on a daily basis so as to always have the freshest data possible.
</li-->
</ul>
<div class="summary_box" style="margin:2em auto;width:20px;">
{% for package in packages %}
{% if package.equivalent_url or package.force_green %}
<div class="py3True" style="height:1px;"></div>
{% else %}
<div class="py3{{package.py3}}" style="height:1px;"></div>
{% endif %}
{% endfor %}
</div>
</footer>
</div> <!-- end of #container -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
<!-- scripts concatenated and minified via ant build script-->
<!--
<script src="/static/js/plugins.js"></script>
<script src="/static/js/script.js"></script>-->
<!-- end concatenated and minified scripts-->
<!--[if lt IE 7 ]>
<script src="js/libs/dd_belatedpng.js"></script>
<script> DD_belatedPNG.fix('img, .png_bg'); </script>
<![endif]-->
<!-- yui profiler and profileviewer - remove for production -->
<!--<script src="js/profiling/yahoo-profiling.min.js"></script>
<script src="js/profiling/config.js"></script>-->
<!-- end profiling code -->
<!-- change the UA-XXXXX-X to be your site's ID -->
<script>
var _gaq = [['_setAccount', 'UA-4533496-11'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
</script>
<script>
function getParameterByName(name)
{
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if(results == null) {
return "";
} else {
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
}
if ("1" == getParameterByName("pygmalion")) {
var cssId = 'myCssId'; // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = '/static/css/happy.css';
link.media = 'all';
head.appendChild(link);
}
}
</script>
<!--HRD-->
</body>
</html>