Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Merged recent changes from trunk.

  • Loading branch information...
commit 8e3fd703d02c31a4c3ac9f51f5011d03c0bd47f6 2 parents 507bb50 + 26e0ba0
Russell Keith-Magee authored

Showing 301 changed files with 4,840 additions and 4,079 deletions. Show diff stats Hide diff stats

  1. 19  AUTHORS
  2. 10  django/bin/django-2to3.py
  3. 10  django/conf/__init__.py
  4. 12  django/conf/global_settings.py
  5. 146  django/conf/locale/__init__.py
  6. 1  django/conf/locale/ar/formats.py
  7. 3  django/conf/locale/bg/formats.py
  8. 3  django/conf/locale/cs/formats.py
  9. 4  django/conf/locale/en/formats.py
  10. 3  django/conf/locale/es_MX/formats.py
  11. 3  django/conf/locale/et/formats.py
  12. 1  django/conf/locale/fa/formats.py
  13. 5  django/conf/locale/fi/formats.py
  14. 3  django/conf/locale/fr/formats.py
  15. 15  django/conf/locale/gl/formats.py
  16. 1  django/conf/locale/he/formats.py
  17. 3  django/conf/locale/hu/formats.py
  18. 1  django/conf/locale/ja/formats.py
  19. 1  django/conf/locale/km/formats.py
  20. 1  django/conf/locale/ko/formats.py
  21. 3  django/conf/locale/lv/formats.py
  22. 3  django/conf/locale/nb/formats.py
  23. 3  django/conf/locale/nn/formats.py
  24. 3  django/conf/locale/pl/formats.py
  25. 1  django/conf/locale/pt_BR/formats.py
  26. 3  django/conf/locale/ru/formats.py
  27. 3  django/conf/locale/sk/formats.py
  28. 3  django/conf/locale/sv/formats.py
  29. 4  django/conf/locale/uk/formats.py
  30. 1  django/conf/locale/vi/formats.py
  31. 8  django/conf/project_template/project_name/settings.py
  32. 5  django/conf/urls/__init__.py
  33. 4  django/conf/urls/i18n.py
  34. 8  django/contrib/admin/actions.py
  35. 8  django/contrib/admin/filters.py
  36. 5  django/contrib/admin/forms.py
  37. 43  django/contrib/admin/helpers.py
  38. 15  django/contrib/admin/models.py
  39. 75  django/contrib/admin/options.py
  40. 10  django/contrib/admin/sites.py
  41. 4  django/contrib/admin/static/admin/css/forms.css
  42. 3  django/contrib/admin/static/admin/css/widgets.css
  43. 12  django/contrib/admin/static/admin/js/actions.min.js
  44. 4  django/contrib/admin/static/admin/js/collapse.min.js
  45. 2  django/contrib/admin/static/admin/js/inlines.js
  46. 10  django/contrib/admin/static/admin/js/inlines.min.js
  47. 2  django/contrib/admin/static/admin/js/prepopulate.min.js
  48. 3  django/contrib/admin/templates/admin/auth/user/change_password.html
  49. 7  django/contrib/admin/templates/admin/change_form.html
  50. 3  django/contrib/admin/templates/admin/change_list.html
  51. 2  django/contrib/admin/templates/admin/delete_confirmation.html
  52. 2  django/contrib/admin/templates/admin/edit_inline/stacked.html
  53. 2  django/contrib/admin/templates/admin/edit_inline/tabular.html
  54. 2  django/contrib/admin/templates/admin/object_history.html
  55. 61  django/contrib/admin/templatetags/admin_list.py
  56. 2  django/contrib/admin/templatetags/admin_modify.py
  57. 8  django/contrib/admin/templatetags/admin_urls.py
  58. 2  django/contrib/admin/templatetags/log.py
  59. 42  django/contrib/admin/util.py
  60. 8  django/contrib/admin/views/main.py
  61. 61  django/contrib/admin/widgets.py
  62. 2  django/contrib/admindocs/templates/admin_doc/bookmarklets.html
  63. 8  django/contrib/admindocs/tests/__init__.py
  64. 4  django/contrib/admindocs/utils.py
  65. 7  django/contrib/admindocs/views.py
  66. 5  django/contrib/auth/admin.py
  67. 3  django/contrib/auth/backends.py
  68. 3  django/contrib/auth/context_processors.py
  69. 13  django/contrib/auth/decorators.py
  70. 42  django/contrib/auth/forms.py
  71. 42  django/contrib/auth/hashers.py
  72. 32  django/contrib/auth/management/__init__.py
  73. 7  django/contrib/auth/management/commands/createsuperuser.py
  74. 34  django/contrib/auth/models.py
  75. 10  django/contrib/auth/tests/auth_backends.py
  76. 91  django/contrib/auth/tests/basic.py
  77. 38  django/contrib/auth/tests/forms.py
  78. 28  django/contrib/auth/tests/hashers.py
  79. 9  django/contrib/auth/tests/management.py
  80. 36  django/contrib/auth/tests/models.py
  81. 3  django/contrib/auth/tests/tokens.py
  82. 14  django/contrib/auth/tests/views.py
  83. 5  django/contrib/auth/tokens.py
  84. 20  django/contrib/auth/views.py
  85. 6  django/contrib/comments/admin.py
  86. 4  django/contrib/comments/forms.py
  87. 4  django/contrib/comments/managers.py
  88. 7  django/contrib/comments/models.py
  89. 4  django/contrib/comments/templatetags/comments.py
  90. 6  django/contrib/comments/views/moderation.py
  91. 10  django/contrib/comments/views/utils.py
  92. 7  django/contrib/contenttypes/generic.py
  93. 12  django/contrib/contenttypes/management.py
  94. 31  django/contrib/contenttypes/models.py
  95. 101  django/contrib/contenttypes/tests.py
  96. 6  django/contrib/contenttypes/views.py
  97. 49  django/contrib/databrowse/datastructures.py
  98. 19  django/contrib/databrowse/plugins/calendars.py
  99. 23  django/contrib/databrowse/plugins/fieldchoices.py
  100. 8  django/contrib/databrowse/plugins/objects.py
  101. 4  django/contrib/databrowse/sites.py
  102. 10  django/contrib/databrowse/tests.py
  103. 8  django/contrib/flatpages/models.py
  104. 6  django/contrib/flatpages/tests/forms.py
  105. 2  django/contrib/flatpages/views.py
  106. 105  django/contrib/formtools/tests/__init__.py
  107. 1  django/contrib/formtools/tests/forms.py
  108. 10  django/contrib/formtools/tests/wizard/forms.py
  109. 41  django/contrib/formtools/tests/wizard/namedwizardtests/tests.py
  110. 41  django/contrib/formtools/tests/wizard/wizardtests/tests.py
  111. 5  django/contrib/formtools/utils.py
  112. 9  django/contrib/formtools/wizard/storage/base.py
  113. 18  django/contrib/formtools/wizard/views.py
  114. 27  django/contrib/gis/admin/widgets.py
  115. 11  django/contrib/gis/db/backends/base.py
  116. 4  django/contrib/gis/db/backends/mysql/operations.py
  117. 4  django/contrib/gis/db/backends/oracle/models.py
  118. 7  django/contrib/gis/db/backends/oracle/operations.py
  119. 4  django/contrib/gis/db/backends/postgis/models.py
  120. 46  django/contrib/gis/db/backends/postgis/operations.py
  121. 10  django/contrib/gis/db/backends/spatialite/creation.py
  122. 3  django/contrib/gis/db/backends/spatialite/introspection.py
  123. 4  django/contrib/gis/db/backends/spatialite/models.py
  124. 16  django/contrib/gis/db/backends/spatialite/operations.py
  125. 6  django/contrib/gis/db/backends/util.py
  126. 3  django/contrib/gis/db/models/fields.py
  127. 3  django/contrib/gis/db/models/proxy.py
  128. 20  django/contrib/gis/db/models/query.py
  129. 7  django/contrib/gis/db/models/sql/compiler.py
  130. 22  django/contrib/gis/feeds.py
  131. 28  django/contrib/gis/forms/fields.py
  132. 16  django/contrib/gis/gdal/__init__.py
  133. 3  django/contrib/gis/gdal/base.py
  134. 11  django/contrib/gis/gdal/datasource.py
  135. 10  django/contrib/gis/gdal/driver.py
  136. 17  django/contrib/gis/gdal/feature.py
  137. 40  django/contrib/gis/gdal/geometries.py
  138. 8  django/contrib/gis/gdal/geomtype.py
  139. 19  django/contrib/gis/gdal/layer.py
  140. 28  django/contrib/gis/gdal/libgdal.py
  141. 19  django/contrib/gis/gdal/prototypes/errcheck.py
  142. 15  django/contrib/gis/gdal/prototypes/geom.py
  143. 32  django/contrib/gis/gdal/srs.py
  144. 3  django/contrib/gis/gdal/tests/__init__.py
  145. 2  django/contrib/gis/gdal/tests/test_envelope.py
  146. 8  django/contrib/gis/gdal/tests/test_geom.py
  147. 6  django/contrib/gis/geoip/base.py
  148. 12  django/contrib/gis/geoip/tests.py
  149. 3  django/contrib/gis/geometry/test_data.py
  150. 1  django/contrib/gis/geos/base.py
  151. 9  django/contrib/gis/geos/collections.py
  152. 1  django/contrib/gis/geos/coordseq.py
  153. 4  django/contrib/gis/geos/factory.py
  154. 19  django/contrib/gis/geos/geometry.py
  155. 3  django/contrib/gis/geos/linestring.py
  156. 8  django/contrib/gis/geos/mutable_list.py
  157. 6  django/contrib/gis/geos/point.py
  158. 9  django/contrib/gis/geos/polygon.py
  159. 8  django/contrib/gis/geos/prototypes/io.py
  160. 1  django/contrib/gis/geos/prototypes/misc.py
  161. 30  django/contrib/gis/geos/tests/test_geos.py
  162. 11  django/contrib/gis/geos/tests/test_io.py
  163. 3  django/contrib/gis/geos/tests/test_mutable_list.py
  164. 19  django/contrib/gis/maps/google/gmap.py
  165. 18  django/contrib/gis/maps/google/overlays.py
  166. 21  django/contrib/gis/maps/google/zoom.py
  167. 322  django/contrib/gis/measure.py
  168. 15  django/contrib/gis/sitemaps/views.py
  169. 12  django/contrib/gis/tests/__init__.py
  170. 22  django/contrib/gis/tests/distapp/models.py
  171. 26  django/contrib/gis/tests/geo3d/models.py
  172. 4  django/contrib/gis/tests/geoadmin/models.py
  173. 22  django/contrib/gis/tests/geoadmin/tests.py
  174. 16  django/contrib/gis/tests/geoapp/models.py
  175. 6  django/contrib/gis/tests/geoapp/test_feeds.py
  176. 14  django/contrib/gis/tests/geoapp/test_regress.py
  177. 10  django/contrib/gis/tests/geoapp/test_sitemaps.py
  178. 804  django/contrib/gis/tests/geoapp/tests.py
  179. 10  django/contrib/gis/tests/geogapp/models.py
  180. 14  django/contrib/gis/tests/relatedapp/models.py
  181. 26  django/contrib/gis/tests/test_geoforms.py
  182. 6  django/contrib/gis/tests/test_measure.py
  183. 15  django/contrib/gis/tests/test_spatialrefsys.py
  184. 11  django/contrib/gis/tests/utils.py
  185. 11  django/contrib/gis/utils/layermapping.py
  186. 7  django/contrib/gis/utils/ogrinspect.py
  187. 8  django/contrib/gis/utils/wkt.py
  188. 6  django/contrib/gis/views.py
  189. 43  django/contrib/humanize/templatetags/humanize.py
  190. 89  django/contrib/humanize/tests.py
  191. 49  django/contrib/localflavor/ar/ar_provinces.py
  192. 24  django/contrib/localflavor/ar/forms.py
  193. 8  django/contrib/localflavor/at/forms.py
  194. 12  django/contrib/localflavor/au/forms.py
  195. 23  django/contrib/localflavor/br/br_states.py
  196. 28  django/contrib/localflavor/br/forms.py
  197. 32  django/contrib/localflavor/ca/forms.py
  198. 14  django/contrib/localflavor/ch/forms.py
  199. 31  django/contrib/localflavor/cl/cl_regions.py
  200. 14  django/contrib/localflavor/cl/forms.py
  201. 70  django/contrib/localflavor/cn/cn_provinces.py
  202. 20  django/contrib/localflavor/cn/forms.py
  203. 67  django/contrib/localflavor/co/co_departments.py
  204. 20  django/contrib/localflavor/cz/forms.py
  205. 8  django/contrib/localflavor/de/forms.py
  206. 4  django/contrib/localflavor/de_CH/formats.py
  207. 49  django/contrib/localflavor/ec/ec_provinces.py
  208. 6  django/contrib/localflavor/es/forms.py
  209. 688  django/contrib/localflavor/fi/fi_municipalities.py
  210. 6  django/contrib/localflavor/fi/forms.py
  211. 21  django/contrib/localflavor/fr/forms.py
  212. 219  django/contrib/localflavor/fr/fr_department.py
  213. 6  django/contrib/localflavor/gb/forms.py
  214. 10  django/contrib/localflavor/hk/forms.py
  215. 28  django/contrib/localflavor/hr/forms.py
  216. 54  django/contrib/localflavor/hr/hr_choices.py
  217. 22  django/contrib/localflavor/id/forms.py
  218. 7  django/contrib/localflavor/il/forms.py
  219. 20  django/contrib/localflavor/in_/forms.py
  220. 12  django/contrib/localflavor/is_/forms.py
  221. 295  django/contrib/localflavor/is_/is_postalcodes.py
  222. 16  django/contrib/localflavor/it/forms.py
  223. 3  django/contrib/localflavor/it/it_province.py
  224. 3  django/contrib/localflavor/it/it_region.py
  225. 6  django/contrib/localflavor/it/util.py
  226. 4  django/contrib/localflavor/kw/forms.py
  227. 14  django/contrib/localflavor/mk/forms.py
  228. 170  django/contrib/localflavor/mk/mk_choices.py
  229. 70  django/contrib/localflavor/mx/forms.py
  230. 65  django/contrib/localflavor/mx/mx_states.py
  231. 14  django/contrib/localflavor/nl/forms.py
  232. 6  django/contrib/localflavor/no/forms.py
  233. 43  django/contrib/localflavor/no/no_municipalities.py
  234. 6  django/contrib/localflavor/pe/forms.py
  235. 51  django/contrib/localflavor/pe/pe_region.py
  236. 36  django/contrib/localflavor/pl/forms.py
  237. 753  django/contrib/localflavor/pl/pl_administrativeunits.py
  238. 14  django/contrib/localflavor/pt/forms.py
  239. 73  django/contrib/localflavor/py/py_department.py
  240. 14  django/contrib/localflavor/ro/forms.py
  241. 85  django/contrib/localflavor/ro/ro_counties.py
  242. 8  django/contrib/localflavor/ru/forms.py
  243. 6  django/contrib/localflavor/se/forms.py
  244. 43  django/contrib/localflavor/se/se_counties.py
  245. 5  django/contrib/localflavor/se/utils.py
  246. 20  django/contrib/localflavor/si/forms.py
  247. 927  django/contrib/localflavor/si/si_postalcodes.py
  248. 4  django/contrib/localflavor/sk/forms.py
  249. 28  django/contrib/localflavor/tr/forms.py
  250. 1  django/contrib/localflavor/tr/tr_provinces.py
  251. 24  django/contrib/localflavor/us/forms.py
  252. 4  django/contrib/localflavor/uy/forms.py
  253. 39  django/contrib/localflavor/uy/uy_departaments.py
  254. 7  django/contrib/localflavor/za/forms.py
  255. 20  django/contrib/markup/templatetags/markup.py
  256. 23  django/contrib/messages/storage/base.py
  257. 3  django/contrib/messages/storage/cookie.py
  258. 10  django/contrib/messages/tests/base.py
  259. 8  django/contrib/messages/tests/cookie.py
  260. 6  django/contrib/redirects/models.py
  261. 13  django/contrib/sessions/backends/base.py
  262. 1  django/contrib/sessions/backends/cache.py
  263. 3  django/contrib/sessions/backends/db.py
  264. 2  django/contrib/sessions/backends/file.py
  265. 2  django/contrib/sessions/backends/signed_cookies.py
  266. 16  django/contrib/sessions/middleware.py
  267. 35  django/contrib/sessions/tests.py
  268. 10  django/contrib/sitemaps/__init__.py
  269. 10  django/contrib/sitemaps/tests/flatpages.py
  270. 9  django/contrib/sitemaps/tests/generic.py
  271. 40  django/contrib/sitemaps/tests/http.py
  272. 22  django/contrib/sitemaps/tests/https.py
  273. 3  django/contrib/sitemaps/views.py
  274. 7  django/contrib/sites/models.py
  275. 8  django/contrib/sites/tests.py
  276. 3  django/contrib/staticfiles/finders.py
  277. 10  django/contrib/staticfiles/handlers.py
  278. 35  django/contrib/staticfiles/management/commands/collectstatic.py
  279. 12  django/contrib/staticfiles/management/commands/findstatic.py
  280. 57  django/contrib/staticfiles/storage.py
  281. 30  django/contrib/staticfiles/templatetags/staticfiles.py
  282. 7  django/contrib/staticfiles/views.py
  283. 29  django/contrib/syndication/views.py
  284. 12  django/contrib/webdesign/lorem_ipsum.py
  285. 4  django/contrib/webdesign/templatetags/webdesign.py
  286. 5  django/contrib/webdesign/tests.py
  287. 5  django/core/cache/__init__.py
  288. 6  django/core/cache/backends/base.py
  289. 23  django/core/cache/backends/db.py
  290. 5  django/core/cache/backends/filebased.py
  291. 2  django/core/cache/backends/locmem.py
  292. 9  django/core/cache/backends/memcached.py
  293. 10  django/core/context_processors.py
  294. 6  django/core/exceptions.py
  295. 24  django/core/files/base.py
  296. 7  django/core/files/images.py
  297. 2  django/core/files/move.py
  298. 11  django/core/files/storage.py
  299. 10  django/core/files/uploadhandler.py
  300. 40  django/core/handlers/base.py
19  AUTHORS
@@ -29,6 +29,8 @@ The PRIMARY AUTHORS are (and/or have been):
29 29
     * Julien Phalip
30 30
     * Aymeric Augustin
31 31
     * Claude Paroz
  32
+    * Anssi Kääriäinen
  33
+    * Florian Apolloner
32 34
 
33 35
 More information on the main contributors to Django can be found in
34 36
 docs/internals/committers.txt.
@@ -50,6 +52,7 @@ answer newbie questions, and generally made Django that much better:
50 52
     Antoni Aloy
51 53
     Daniel Alves Barbosa de Oliveira Vaz <danielvaz@gmail.com>
52 54
     AgarFu <heaven@croasanaso.sytes.net>
  55
+    James Aylett
53 56
     Dagur Páll Ammendrup <dagurp@gmail.com>
54 57
     Collin Anderson <cmawebsite@gmail.com>
55 58
     Jeff Anderson <jefferya@programmerq.net>
@@ -59,7 +62,6 @@ answer newbie questions, and generally made Django that much better:
59 62
     andy@jadedplanet.net
60 63
     Fabrice Aneche <akh@nobugware.com>
61 64
     ant9000@netwise.it
62  
-    Florian Apolloner <florian@apolloner.eu>
63 65
     arien <regexbot@gmail.com>
64 66
     David Ascher <http://ascher.ca/>
65 67
     atlithorn <atlithorn@gmail.com>
@@ -84,6 +86,7 @@ answer newbie questions, and generally made Django that much better:
84 86
     Esdras Beleza <linux@esdrasbeleza.com>
85 87
     Chris Bennett <chrisrbennett@yahoo.com>
86 88
     James Bennett
  89
+    Danilo Bargen
87 90
     Shai Berger <shai@platonix.com>
88 91
     Julian Bez
89 92
     Arvis Bickovskis <viestards.lists@gmail.com>
@@ -136,9 +139,10 @@ answer newbie questions, and generally made Django that much better:
136 139
     Robert Coup
137 140
     Pete Crosier <pete.crosier@gmail.com>
138 141
     Matt Croydon <http://www.postneo.com/>
  142
+    Jure Cuhalev <gandalf@owca.info>
139 143
     Leah Culver <leah.culver@gmail.com>
  144
+    Raúl Cumplido <raulcumplido@gmail.com>
140 145
     flavio.curella@gmail.com
141  
-    Jure Cuhalev <gandalf@owca.info>
142 146
     John D'Agostino <john.dagostino@gmail.com>
143 147
     dackze+django@gmail.com
144 148
     Jim Dalton <jim.dalton@gmail.com>
@@ -157,6 +161,7 @@ answer newbie questions, and generally made Django that much better:
157 161
     Rajesh Dhawan <rajesh.dhawan@gmail.com>
158 162
     Sander Dijkhuis <sander.dijkhuis@gmail.com>
159 163
     Jordan Dimov <s3x3y1@gmail.com>
  164
+    Riccardo Di Virgilio
160 165
     Nebojša Dorđević
161 166
     dne@mayonnaise.net
162 167
     dready <wil@mojipage.com>
@@ -171,6 +176,7 @@ answer newbie questions, and generally made Django that much better:
171 176
     Clint Ecker
172 177
     Nick Efford <nick@efford.org>
173 178
     eibaan@gmail.com
  179
+    David Eklund
174 180
     Julia Elman
175 181
     enlight
176 182
     Enrico <rico.bl@gmail.com>
@@ -219,6 +225,7 @@ answer newbie questions, and generally made Django that much better:
219 225
     pradeep.gowda@gmail.com
220 226
     Collin Grady <collin@collingrady.com>
221 227
     Gabriel Grant <g@briel.ca>
  228
+    Daniel Greenfeld
222 229
     Simon Greenhill <dev@simon.net.nz>
223 230
     Owen Griffiths
224 231
     Espen Grindhaug <http://grindhaug.org/>
@@ -229,6 +236,7 @@ answer newbie questions, and generally made Django that much better:
229 236
     Scot Hacker <shacker@birdhouse.org>
230 237
     dAniel hAhler
231 238
     hambaloney
  239
+    Will Hardy <django@willhardy.com.au>
232 240
     Brian Harring <ferringb@gmail.com>
233 241
     Brant Harris
234 242
     Ronny Haryanto <http://ronny.haryan.to/>
@@ -273,7 +281,6 @@ answer newbie questions, and generally made Django that much better:
273 281
     jpellerin@gmail.com
274 282
     junzhang.jn@gmail.com
275 283
     Xia Kai <http://blog.xiaket.org/>
276  
-    Anssi Kääriäinen
277 284
     Antti Kaihola <http://djangopeople.net/akaihola/>
278 285
     Peter van Kampen
279 286
     Bahadır Kandemir <bahadir@pardus.org.tr>
@@ -366,6 +373,7 @@ answer newbie questions, and generally made Django that much better:
366 373
     michael.mcewan@gmail.com
367 374
     Paul McLanahan <paul@mclanahan.net>
368 375
     Tobias McNulty <http://www.caktusgroup.com/blog>
  376
+    Andrews Medina <andrewsmedina@gmail.com>
369 377
     Zain Memon
370 378
     Christian Metts
371 379
     michal@plovarna.cz
@@ -422,6 +430,7 @@ answer newbie questions, and generally made Django that much better:
422 430
     polpak@yahoo.com
423 431
     Ross Poulton <ross@rossp.org>
424 432
     Mihai Preda <mihai_preda@yahoo.com>
  433
+    Daniele Procida <daniele@vurt.org>
425 434
     Matthias Pronk <django@masida.nl>
426 435
     Jyrki Pulliainen <jyrki.pulliainen@gmail.com>
427 436
     Thejaswi Puthraya <thejaswi.puthraya@gmail.com>
@@ -450,6 +459,7 @@ answer newbie questions, and generally made Django that much better:
450 459
     Armin Ronacher
451 460
     Daniel Roseman <http://roseman.org.uk/>
452 461
     Rozza <ross.lawley@gmail.com>
  462
+    Audrey Roy <http://audreymroy.com/>
453 463
     Oliver Rutherfurd <http://rutherfurd.net/>
454 464
     ryankanno
455 465
     Gonzalo Saavedra <gonzalosaavedra@gmail.com>
@@ -458,6 +468,7 @@ answer newbie questions, and generally made Django that much better:
458 468
     Vinay Sajip <vinay_sajip@yahoo.co.uk>
459 469
     Bartolome Sanchez Salado <i42sasab@uco.es>
460 470
     Kadesarin Sanjek
  471
+    Tim Saylor <tim.saylor@gmail.com>
461 472
     Massimo Scamarcia <massimo.scamarcia@gmail.com>
462 473
     Paulo Scardine <paulo@scardine.com.br>
463 474
     David Schein
@@ -502,6 +513,7 @@ answer newbie questions, and generally made Django that much better:
502 513
     Aaron Swartz <http://www.aaronsw.com/>
503 514
     Ville Säävuori <http://www.unessa.net/>
504 515
     Mart Sõmermaa <http://mrts.pri.ee/>
  516
+    Marc Tamlyn
505 517
     Christian Tanzer <tanzer@swing.co.at>
506 518
     Tyler Tarabula <tyler.tarabula@gmail.com>
507 519
     Tyson Tate <tyson@fallingbullets.com>
@@ -550,6 +562,7 @@ answer newbie questions, and generally made Django that much better:
550 562
     Mike Wiacek <mjwiacek@google.com>
551 563
     Frank Wierzbicki
552 564
     charly.wilhelm@gmail.com
  565
+    Simon Williams
553 566
     Derek Willis <http://blog.thescoop.org/>
554 567
     Rachel Willmer <http://www.willmer.com/kb/>
555 568
     Jakub Wilk <ubanus@users.sf.net>
10  django/bin/django-2to3.py
... ...
@@ -0,0 +1,10 @@
  1
+#!/usr/bin/env python
  2
+
  3
+# This works exactly like 2to3, except that it uses Django's fixers rather
  4
+# than 2to3's built-in fixers.
  5
+
  6
+import sys
  7
+from lib2to3.main import main
  8
+
  9
+sys.exit(main("django.utils.2to3_fixes"))
  10
+
10  django/conf/__init__.py
@@ -15,6 +15,7 @@
15 15
 from django.core.exceptions import ImproperlyConfigured
16 16
 from django.utils.functional import LazyObject, empty
17 17
 from django.utils import importlib
  18
+from django.utils import six
18 19
 
19 20
 ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
20 21
 
@@ -73,7 +74,7 @@ def __setattr__(self, name, value):
73 74
         elif name == "ADMIN_MEDIA_PREFIX":
74 75
             warnings.warn("The ADMIN_MEDIA_PREFIX setting has been removed; "
75 76
                           "use STATIC_URL instead.", DeprecationWarning)
76  
-        elif name == "ALLOWED_INCLUDE_ROOTS" and isinstance(value, basestring):
  77
+        elif name == "ALLOWED_INCLUDE_ROOTS" and isinstance(value, six.string_types):
77 78
             raise ValueError("The ALLOWED_INCLUDE_ROOTS setting must be set "
78 79
                 "to a tuple, not a string.")
79 80
         object.__setattr__(self, name, value)
@@ -102,7 +103,10 @@ def __init__(self, settings_module):
102 103
             if setting == setting.upper():
103 104
                 setting_value = getattr(mod, setting)
104 105
                 if setting in tuple_settings and \
105  
-                        isinstance(setting_value, basestring):
  106
+                        isinstance(setting_value, six.string_types):
  107
+                    warnings.warn("The %s setting must be a tuple. Please fix your "
  108
+                                  "settings, as auto-correction is now deprecated." % setting,
  109
+                        PendingDeprecationWarning)
106 110
                     setting_value = (setting_value,) # In case the user forgot the comma.
107 111
                 setattr(self, setting, setting_value)
108 112
 
@@ -154,7 +158,7 @@ def __getattr__(self, name):
154 158
         return getattr(self.default_settings, name)
155 159
 
156 160
     def __dir__(self):
157  
-        return self.__dict__.keys() + dir(self.default_settings)
  161
+        return list(self.__dict__) + dir(self.default_settings)
158 162
 
159 163
     # For Python < 2.6:
160 164
     __members__ = property(lambda self: self.__dir__())
12  django/conf/global_settings.py
@@ -270,19 +270,19 @@
270 270
 DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
271 271
 
272 272
 # Absolute filesystem path to the directory that will hold user-uploaded files.
273  
-# Example: "/home/media/media.lawrence.com/media/"
  273
+# Example: "/var/www/example.com/media/"
274 274
 MEDIA_ROOT = ''
275 275
 
276 276
 # URL that handles the media served from MEDIA_ROOT.
277  
-# Example: "http://media.lawrence.com/media/"
  277
+# Examples: "http://example.com/media/", "http://media.example.com/"
278 278
 MEDIA_URL = ''
279 279
 
280  
-# Absolute path to the directory that holds static files.
281  
-# Example: "/home/media/media.lawrence.com/static/"
  280
+# Absolute path to the directory static files should be collected to.
  281
+# Example: "/var/www/example.com/static/"
282 282
 STATIC_ROOT = ''
283 283
 
284 284
 # URL that handles the static files served from STATIC_ROOT.
285  
-# Example: "http://media.lawrence.com/static/"
  285
+# Example: "http://example.com/static/", "http://static.example.com/"
286 286
 STATIC_URL = None
287 287
 
288 288
 # List of upload handler classes to be applied in order.
@@ -451,7 +451,7 @@
451 451
 
452 452
 SESSION_COOKIE_NAME = 'sessionid'                       # Cookie name. This can be whatever you want.
453 453
 SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2               # Age of cookie, in seconds (default: 2 weeks).
454  
-SESSION_COOKIE_DOMAIN = None                            # A string like ".lawrence.com", or None for standard domain cookie.
  454
+SESSION_COOKIE_DOMAIN = None                            # A string like ".example.com", or None for standard domain cookie.
455 455
 SESSION_COOKIE_SECURE = False                           # Whether the session cookie should be secure (https:// only).
456 456
 SESSION_COOKIE_PATH = '/'                               # The path of the session cookie.
457 457
 SESSION_COOKIE_HTTPONLY = True                          # Whether to use the non-RFC standard httpOnly flag (IE, FF3+, others)
146  django/conf/locale/__init__.py
... ...
@@ -1,434 +1,436 @@
  1
+from __future__ import unicode_literals
  2
+
1 3
 LANG_INFO = {
2 4
     'ar': {
3 5
         'bidi': True,
4 6
         'code': 'ar',
5 7
         'name': 'Arabic',
6  
-        'name_local': u'\u0627\u0644\u0639\u0631\u0628\u064a\u0651\u0629',
  8
+        'name_local': '\u0627\u0644\u0639\u0631\u0628\u064a\u0651\u0629',
7 9
     },
8 10
     'az': {
9 11
         'bidi': True,
10 12
         'code': 'az',
11 13
         'name': 'Azerbaijani',
12  
-        'name_local': u'az\u0259rbaycan dili',
  14
+        'name_local': 'az\u0259rbaycan dili',
13 15
     },
14 16
     'bg': {
15 17
         'bidi': False,
16 18
         'code': 'bg',
17 19
         'name': 'Bulgarian',
18  
-        'name_local': u'\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438',
  20
+        'name_local': '\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438',
19 21
     },
20 22
     'bn': {
21 23
         'bidi': False,
22 24
         'code': 'bn',
23 25
         'name': 'Bengali',
24  
-        'name_local': u'\u09ac\u09be\u0982\u09b2\u09be',
  26
+        'name_local': '\u09ac\u09be\u0982\u09b2\u09be',
25 27
     },
26 28
     'bs': {
27 29
         'bidi': False,
28 30
         'code': 'bs',
29 31
         'name': 'Bosnian',
30  
-        'name_local': u'bosanski',
  32
+        'name_local': 'bosanski',
31 33
     },
32 34
     'ca': {
33 35
         'bidi': False,
34 36
         'code': 'ca',
35 37
         'name': 'Catalan',
36  
-        'name_local': u'catal\xe0',
  38
+        'name_local': 'catal\xe0',
37 39
     },
38 40
     'cs': {
39 41
         'bidi': False,
40 42
         'code': 'cs',
41 43
         'name': 'Czech',
42  
-        'name_local': u'\u010desky',
  44
+        'name_local': '\u010desky',
43 45
     },
44 46
     'cy': {
45 47
         'bidi': False,
46 48
         'code': 'cy',
47 49
         'name': 'Welsh',
48  
-        'name_local': u'Cymraeg',
  50
+        'name_local': 'Cymraeg',
49 51
     },
50 52
     'da': {
51 53
         'bidi': False,
52 54
         'code': 'da',
53 55
         'name': 'Danish',
54  
-        'name_local': u'Dansk',
  56
+        'name_local': 'Dansk',
55 57
     },
56 58
     'de': {
57 59
         'bidi': False,
58 60
         'code': 'de',
59 61
         'name': 'German',
60  
-        'name_local': u'Deutsch',
  62
+        'name_local': 'Deutsch',
61 63
     },
62 64
     'el': {
63 65
         'bidi': False,
64 66
         'code': 'el',
65 67
         'name': 'Greek',
66  
-        'name_local': u'\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac',
  68
+        'name_local': '\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac',
67 69
     },
68 70
     'en': {
69 71
         'bidi': False,
70 72
         'code': 'en',
71 73
         'name': 'English',
72  
-        'name_local': u'English',
  74
+        'name_local': 'English',
73 75
     },
74 76
     'en-gb': {
75 77
         'bidi': False,
76 78
         'code': 'en-gb',
77 79
         'name': 'British English',
78  
-        'name_local': u'British English',
  80
+        'name_local': 'British English',
79 81
     },
80 82
     'eo': {
81 83
         'bidi': False,
82 84
         'code': 'eo',
83 85
         'name': 'Esperanto',
84  
-        'name_local': u'Esperanto',
  86
+        'name_local': 'Esperanto',
85 87
     },
86 88
     'es': {
87 89
         'bidi': False,
88 90
         'code': 'es',
89 91
         'name': 'Spanish',
90  
-        'name_local': u'espa\xf1ol',
  92
+        'name_local': 'espa\xf1ol',
91 93
     },
92 94
     'es-ar': {
93 95
         'bidi': False,
94 96
         'code': 'es-ar',
95 97
         'name': 'Argentinian Spanish',
96  
-        'name_local': u'espa\xf1ol de Argentina',
  98
+        'name_local': 'espa\xf1ol de Argentina',
97 99
     },
98 100
     'es-mx': {
99 101
         'bidi': False,
100 102
         'code': 'es-mx',
101 103
         'name': 'Mexican Spanish',
102  
-        'name_local': u'espa\xf1ol de Mexico',
  104
+        'name_local': 'espa\xf1ol de Mexico',
103 105
     },
104 106
     'es-ni': {
105 107
         'bidi': False,
106 108
         'code': 'es-ni',
107 109
         'name': 'Nicaraguan Spanish',
108  
-        'name_local': u'espa\xf1ol de Nicaragua',
  110
+        'name_local': 'espa\xf1ol de Nicaragua',
109 111
     },
110 112
     'et': {
111 113
         'bidi': False,
112 114
         'code': 'et',
113 115
         'name': 'Estonian',
114  
-        'name_local': u'eesti',
  116
+        'name_local': 'eesti',
115 117
     },
116 118
     'eu': {
117 119
         'bidi': False,
118 120
         'code': 'eu',
119 121
         'name': 'Basque',
120  
-        'name_local': u'Basque',
  122
+        'name_local': 'Basque',
121 123
     },
122 124
     'fa': {
123 125
         'bidi': True,
124 126
         'code': 'fa',
125 127
         'name': 'Persian',
126  
-        'name_local': u'\u0641\u0627\u0631\u0633\u06cc',
  128
+        'name_local': '\u0641\u0627\u0631\u0633\u06cc',
127 129
     },
128 130
     'fi': {
129 131
         'bidi': False,
130 132
         'code': 'fi',
131 133
         'name': 'Finnish',
132  
-        'name_local': u'suomi',
  134
+        'name_local': 'suomi',
133 135
     },
134 136
     'fr': {
135 137
         'bidi': False,
136 138
         'code': 'fr',
137 139
         'name': 'French',
138  
-        'name_local': u'Fran\xe7ais',
  140
+        'name_local': 'Fran\xe7ais',
139 141
     },
140 142
     'fy-nl': {
141 143
         'bidi': False,
142 144
         'code': 'fy-nl',
143 145
         'name': 'Frisian',
144  
-        'name_local': u'Frisian',
  146
+        'name_local': 'Frisian',
145 147
     },
146 148
     'ga': {
147 149
         'bidi': False,
148 150
         'code': 'ga',
149 151
         'name': 'Irish',
150  
-        'name_local': u'Gaeilge',
  152
+        'name_local': 'Gaeilge',
151 153
     },
152 154
     'gl': {
153 155
         'bidi': False,
154 156
         'code': 'gl',
155 157
         'name': 'Galician',
156  
-        'name_local': u'galego',
  158
+        'name_local': 'galego',
157 159
     },
158 160
     'he': {
159 161
         'bidi': True,
160 162
         'code': 'he',
161 163
         'name': 'Hebrew',
162  
-        'name_local': u'\u05e2\u05d1\u05e8\u05d9\u05ea',
  164
+        'name_local': '\u05e2\u05d1\u05e8\u05d9\u05ea',
163 165
     },
164 166
     'hi': {
165 167
         'bidi': False,
166 168
         'code': 'hi',
167 169
         'name': 'Hindi',
168  
-        'name_local': u'Hindi',
  170
+        'name_local': 'Hindi',
169 171
     },
170 172
     'hr': {
171 173
         'bidi': False,
172 174
         'code': 'hr',
173 175
         'name': 'Croatian',
174  
-        'name_local': u'Hrvatski',
  176
+        'name_local': 'Hrvatski',
175 177
     },
176 178
     'hu': {
177 179
         'bidi': False,
178 180
         'code': 'hu',
179 181
         'name': 'Hungarian',
180  
-        'name_local': u'Magyar',
  182
+        'name_local': 'Magyar',
181 183
     },
182 184
     'id': {
183 185
         'bidi': False,
184 186
         'code': 'id',
185 187
         'name': 'Indonesian',
186  
-        'name_local': u'Bahasa Indonesia',
  188
+        'name_local': 'Bahasa Indonesia',
187 189
     },
188 190
     'is': {
189 191
         'bidi': False,
190 192
         'code': 'is',
191 193
         'name': 'Icelandic',
192  
-        'name_local': u'\xcdslenska',
  194
+        'name_local': '\xcdslenska',
193 195
     },
194 196
     'it': {
195 197
         'bidi': False,
196 198
         'code': 'it',
197 199
         'name': 'Italian',
198  
-        'name_local': u'italiano',
  200
+        'name_local': 'italiano',
199 201
     },
200 202
     'ja': {
201 203
         'bidi': False,
202 204
         'code': 'ja',
203 205
         'name': 'Japanese',
204  
-        'name_local': u'\u65e5\u672c\u8a9e',
  206
+        'name_local': '\u65e5\u672c\u8a9e',
205 207
     },
206 208
     'ka': {
207 209
         'bidi': False,
208 210
         'code': 'ka',
209 211
         'name': 'Georgian',
210  
-        'name_local': u'\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8',
  212
+        'name_local': '\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8',
211 213
     },
212 214
     'kk': {
213 215
         'bidi': False,
214 216
         'code': 'kk',
215 217
         'name': 'Kazakh',
216  
-        'name_local': u'\u049a\u0430\u0437\u0430\u049b',
  218
+        'name_local': '\u049a\u0430\u0437\u0430\u049b',
217 219
     },
218 220
     'km': {
219 221
         'bidi': False,
220 222
         'code': 'km',
221 223
         'name': 'Khmer',
222  
-        'name_local': u'Khmer',
  224
+        'name_local': 'Khmer',
223 225
     },
224 226
     'kn': {
225 227
         'bidi': False,
226 228
         'code': 'kn',
227 229
         'name': 'Kannada',
228  
-        'name_local': u'Kannada',
  230
+        'name_local': 'Kannada',
229 231
     },
230 232
     'ko': {
231 233
         'bidi': False,
232 234
         'code': 'ko',
233 235
         'name': 'Korean',
234  
-        'name_local': u'\ud55c\uad6d\uc5b4',
  236
+        'name_local': '\ud55c\uad6d\uc5b4',
235 237
     },
236 238
     'lt': {
237 239
         'bidi': False,
238 240
         'code': 'lt',
239 241
         'name': 'Lithuanian',
240  
-        'name_local': u'Lithuanian',
  242
+        'name_local': 'Lithuanian',
241 243
     },
242 244
     'lv': {
243 245
         'bidi': False,
244 246
         'code': 'lv',
245 247
         'name': 'Latvian',
246  
-        'name_local': u'latvie\u0161u',
  248
+        'name_local': 'latvie\u0161u',
247 249
     },
248 250
     'mk': {
249 251
         'bidi': False,
250 252
         'code': 'mk',
251 253
         'name': 'Macedonian',
252  
-        'name_local': u'\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438',
  254
+        'name_local': '\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438',
253 255
     },
254 256
     'ml': {
255 257
         'bidi': False,
256 258
         'code': 'ml',
257 259
         'name': 'Malayalam',
258  
-        'name_local': u'Malayalam',
  260
+        'name_local': 'Malayalam',
259 261
     },
260 262
     'mn': {
261 263
         'bidi': False,
262 264
         'code': 'mn',
263 265
         'name': 'Mongolian',
264  
-        'name_local': u'Mongolian',
  266
+        'name_local': 'Mongolian',
265 267
     },
266 268
     'nb': {
267 269
         'bidi': False,
268 270
         'code': 'nb',
269 271
         'name': 'Norwegian Bokmal',
270  
-        'name_local': u'Norsk (bokm\xe5l)',
  272
+        'name_local': 'Norsk (bokm\xe5l)',
271 273
     },
272 274
     'ne': {
273 275
         'bidi': False,
274 276
         'code': 'ne',
275 277
         'name': 'Nepali',
276  
-        'name_local': u'\u0928\u0947\u092a\u093e\u0932\u0940',
  278
+        'name_local': '\u0928\u0947\u092a\u093e\u0932\u0940',
277 279
     },
278 280
     'nl': {
279 281
         'bidi': False,
280 282
         'code': 'nl',
281 283
         'name': 'Dutch',
282  
-        'name_local': u'Nederlands',
  284
+        'name_local': 'Nederlands',
283 285
     },
284 286
     'nn': {
285 287
         'bidi': False,
286 288
         'code': 'nn',
287 289
         'name': 'Norwegian Nynorsk',
288  
-        'name_local': u'Norsk (nynorsk)',
  290
+        'name_local': 'Norsk (nynorsk)',
289 291
     },
290 292
     'no': {
291 293
         'bidi': False,
292 294
         'code': 'no',
293 295
         'name': 'Norwegian',
294  
-        'name_local': u'Norsk',
  296
+        'name_local': 'Norsk',
295 297
     },
296 298
     'pa': {
297 299
         'bidi': False,
298 300
         'code': 'pa',
299 301
         'name': 'Punjabi',
300  
-        'name_local': u'Punjabi',
  302
+        'name_local': 'Punjabi',
301 303
     },
302 304
     'pl': {
303 305
         'bidi': False,
304 306
         'code': 'pl',
305 307
         'name': 'Polish',
306  
-        'name_local': u'polski',
  308
+        'name_local': 'polski',
307 309
     },
308 310
     'pt': {
309 311
         'bidi': False,
310 312
         'code': 'pt',
311 313
         'name': 'Portuguese',
312  
-        'name_local': u'Portugu\xeas',
  314
+        'name_local': 'Portugu\xeas',
313 315
     },
314 316
     'pt-br': {
315 317
         'bidi': False,
316 318
         'code': 'pt-br',
317 319
         'name': 'Brazilian Portuguese',
318  
-        'name_local': u'Portugu\xeas Brasileiro',
  320
+        'name_local': 'Portugu\xeas Brasileiro',
319 321
     },
320 322
     'ro': {
321 323
         'bidi': False,
322 324
         'code': 'ro',
323 325
         'name': 'Romanian',
324  
-        'name_local': u'Rom\xe2n\u0103',
  326
+        'name_local': 'Rom\xe2n\u0103',
325 327
     },
326 328
     'ru': {
327 329
         'bidi': False,
328 330
         'code': 'ru',
329 331
         'name': 'Russian',
330  
-        'name_local': u'\u0420\u0443\u0441\u0441\u043a\u0438\u0439',
  332
+        'name_local': '\u0420\u0443\u0441\u0441\u043a\u0438\u0439',
331 333
     },
332 334
     'sk': {
333 335
         'bidi': False,
334 336
         'code': 'sk',
335 337
         'name': 'Slovak',
336  
-        'name_local': u'slovensk\xfd',
  338
+        'name_local': 'slovensk\xfd',
337 339
     },
338 340
     'sl': {
339 341
         'bidi': False,
340 342
         'code': 'sl',
341 343
         'name': 'Slovenian',
342  
-        'name_local': u'Sloven\u0161\u010dina',
  344
+        'name_local': 'Sloven\u0161\u010dina',
343 345
     },
344 346
     'sq': {
345 347
         'bidi': False,
346 348
         'code': 'sq',
347 349
         'name': 'Albanian',
348  
-        'name_local': u'Albanian',
  350
+        'name_local': 'Albanian',
349 351
     },
350 352
     'sr': {
351 353
         'bidi': False,
352 354
         'code': 'sr',
353 355
         'name': 'Serbian',
354  
-        'name_local': u'\u0441\u0440\u043f\u0441\u043a\u0438',
  356
+        'name_local': '\u0441\u0440\u043f\u0441\u043a\u0438',
355 357
     },
356 358
     'sr-latn': {
357 359
         'bidi': False,
358 360
         'code': 'sr-latn',
359 361
         'name': 'Serbian Latin',
360  
-        'name_local': u'srpski (latinica)',
  362
+        'name_local': 'srpski (latinica)',
361 363
     },
362 364
     'sv': {
363 365
         'bidi': False,
364 366
         'code': 'sv',
365 367
         'name': 'Swedish',
366  
-        'name_local': u'Svenska',
  368
+        'name_local': 'Svenska',
367 369
     },
368 370
     'sw': {
369 371
         'bidi': False,
370 372
         'code': 'sw',
371 373
         'name': 'Swahili',
372  
-        'name_local': u'Kiswahili',
  374
+        'name_local': 'Kiswahili',
373 375
     },
374 376
     'ta': {
375 377
         'bidi': False,
376 378
         'code': 'ta',
377 379
         'name': 'Tamil',
378  
-        'name_local': u'\u0ba4\u0bae\u0bbf\u0bb4\u0bcd',
  380
+        'name_local': '\u0ba4\u0bae\u0bbf\u0bb4\u0bcd',
379 381
     },
380 382
     'te': {
381 383
         'bidi': False,
382 384
         'code': 'te',
383 385
         'name': 'Telugu',
384  
-        'name_local': u'\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41',
  386
+        'name_local': '\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41',
385 387
     },
386 388
     'th': {
387 389
         'bidi': False,
388 390
         'code': 'th',
389 391
         'name': 'Thai',
390  
-        'name_local': u'Thai',
  392
+        'name_local': 'Thai',
391 393
     },
392 394
     'tr': {
393 395
         'bidi': False,
394 396
         'code': 'tr',
395 397
         'name': 'Turkish',
396  
-        'name_local': u'T\xfcrk\xe7e',
  398
+        'name_local': 'T\xfcrk\xe7e',
397 399
     },
398 400
     'tt': {
399 401
         'bidi': False,
400 402
         'code': 'tt',
401 403
         'name': 'Tatar',
402  
-        'name_local': u'\u0422\u0430\u0442\u0430\u0440\u0447\u0430',
  404
+        'name_local': '\u0422\u0430\u0442\u0430\u0440\u0447\u0430',
403 405
     },
404 406
     'uk': {
405 407
         'bidi': False,
406 408
         'code': 'uk',
407 409
         'name': 'Ukrainian',
408  
-        'name_local': u'\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430',
  410
+        'name_local': '\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430',
409 411
     },
410 412
     'ur': {
411 413
         'bidi': False,
412 414
         'code': 'ur',
413 415
         'name': 'Urdu',
414  
-        'name_local': u'\u0627\u0631\u062f\u0648',
  416
+        'name_local': '\u0627\u0631\u062f\u0648',
415 417
     },
416 418
     'vi': {
417 419
         'bidi': False,
418 420
         'code': 'vi',
419 421
         'name': 'Vietnamese',
420  
-        'name_local': u'Vietnamese',
  422
+        'name_local': 'Vietnamese',
421 423
     },
422 424
     'zh-cn': {
423 425
         'bidi': False,
424 426
         'code': 'zh-cn',
425 427
         'name': 'Simplified Chinese',
426  
-        'name_local': u'\u7b80\u4f53\u4e2d\u6587',
  428
+        'name_local': '\u7b80\u4f53\u4e2d\u6587',
427 429
     },
428 430
     'zh-tw': {
429 431
         'bidi': False,
430 432
         'code': 'zh-tw',
431 433
         'name': 'Traditional Chinese',
432  
-        'name_local': u'\u7e41\u9ad4\u4e2d\u6587',
  434
+        'name_local': '\u7e41\u9ad4\u4e2d\u6587',
433 435
     }
434 436
 }
1  django/conf/locale/ar/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
3  django/conf/locale/bg/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -19,5 +20,5 @@
19 20
 # TIME_INPUT_FORMATS = 
20 21
 # DATETIME_INPUT_FORMATS = 
21 22
 DECIMAL_SEPARATOR = ','
22  
-THOUSAND_SEPARATOR = u' ' # Non-breaking space
  23
+THOUSAND_SEPARATOR = ' ' # Non-breaking space
23 24
 # NUMBER_GROUPING = 
3  django/conf/locale/cs/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -33,5 +34,5 @@
33 34
     '%Y-%m-%d',             # '2006-10-25'
34 35
 )
35 36
 DECIMAL_SEPARATOR = ','
36  
-THOUSAND_SEPARATOR = u'\xa0' # non-breaking space
  37
+THOUSAND_SEPARATOR = '\xa0' # non-breaking space
37 38
 NUMBER_GROUPING = 3
4  django/conf/locale/en/formats.py
@@ -37,7 +37,7 @@
37 37
     '%m/%d/%y %H:%M',        # '10/25/06 14:30'
38 38
     '%m/%d/%y',              # '10/25/06'
39 39
 )
40  
-DECIMAL_SEPARATOR = u'.'
41  
-THOUSAND_SEPARATOR = u','
  40
+DECIMAL_SEPARATOR = '.'
  41
+THOUSAND_SEPARATOR = ','
42 42
 NUMBER_GROUPING = 3
43 43
 
3  django/conf/locale/es_MX/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 DATE_FORMAT = r'j \d\e F \d\e Y'
6 7
 TIME_FORMAT = 'H:i:s'
@@ -24,5 +25,5 @@
24 25
     '%d/%m/%y %H:%M',
25 26
 )
26 27
 DECIMAL_SEPARATOR = '.'   # ',' is also official (less common): NOM-008-SCFI-2002
27  
-THOUSAND_SEPARATOR = u'\xa0' # non-breaking space
  28
+THOUSAND_SEPARATOR = '\xa0' # non-breaking space
28 29
 NUMBER_GROUPING = 3
3  django/conf/locale/et/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -19,5 +20,5 @@
19 20
 # TIME_INPUT_FORMATS = 
20 21
 # DATETIME_INPUT_FORMATS = 
21 22
 DECIMAL_SEPARATOR = ','
22  
-THOUSAND_SEPARATOR = u' ' # Non-breaking space
  23
+THOUSAND_SEPARATOR = ' ' # Non-breaking space
23 24
 # NUMBER_GROUPING = 
1  django/conf/locale/fa/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
5  django/conf/locale/fi/formats.py
... ...
@@ -1,12 +1,13 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
7 8
 DATE_FORMAT = 'j. E Y'
8 9
 TIME_FORMAT = 'G.i.s'
9  
-# DATETIME_FORMAT = 
  10
+DATETIME_FORMAT = r'j. E Y \k\e\l\l\o G.i.s'
10 11
 YEAR_MONTH_FORMAT = 'F Y'
11 12
 MONTH_DAY_FORMAT = 'j. F'
12 13
 SHORT_DATE_FORMAT = 'j.n.Y'
@@ -19,5 +20,5 @@
19 20
 # TIME_INPUT_FORMATS = 
20 21
 # DATETIME_INPUT_FORMATS = 
21 22
 DECIMAL_SEPARATOR = ','
22  
-THOUSAND_SEPARATOR = u' ' # Non-breaking space
  23
+THOUSAND_SEPARATOR = ' ' # Non-breaking space
23 24
 # NUMBER_GROUPING = 
3  django/conf/locale/fr/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -37,5 +38,5 @@
37 38
     '%Y-%m-%d',             # '2006-10-25'
38 39
 )
39 40
 DECIMAL_SEPARATOR = ','
40  
-THOUSAND_SEPARATOR = u'\xa0' # non-breaking space
  41
+THOUSAND_SEPARATOR = '\xa0' # non-breaking space
41 42
 NUMBER_GROUPING = 3
15  django/conf/locale/gl/formats.py
... ...
@@ -1,17 +1,18 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
7  
-DATE_FORMAT = 'd F Y'
  8
+DATE_FORMAT = r'j \d\e F \d\e Y'
8 9
 TIME_FORMAT = 'H:i:s'
9  
-# DATETIME_FORMAT = 
10  
-YEAR_MONTH_FORMAT = 'F Y'
11  
-MONTH_DAY_FORMAT = 'j F'
12  
-SHORT_DATE_FORMAT = 'j M, Y'
13  
-# SHORT_DATETIME_FORMAT = 
14  
-# FIRST_DAY_OF_WEEK = 
  10
+DATETIME_FORMAT = r'j \d\e F \d\e Y \á\s H:i'
  11
+YEAR_MONTH_FORMAT = r'F \d\e Y'
  12
+MONTH_DAY_FORMAT = r'j \d\e F'
  13
+SHORT_DATE_FORMAT = 'd-m-Y'
  14
+SHORT_DATETIME_FORMAT = 'd-m-Y, H:i'
  15
+FIRST_DAY_OF_WEEK = 1 # Monday
15 16
 
16 17
 # The *_INPUT_FORMATS strings use the Python strftime format syntax,
17 18
 # see http://docs.python.org/library/datetime.html#strftime-strptime-behavior
1  django/conf/locale/he/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
3  django/conf/locale/hu/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -28,5 +29,5 @@
28 29
     '%Y.%m.%d.',            # '2006.10.25.'
29 30
 )
30 31
 DECIMAL_SEPARATOR = ','
31  
-THOUSAND_SEPARATOR = u' ' # Non-breaking space
  32
+THOUSAND_SEPARATOR = ' ' # Non-breaking space
32 33
 NUMBER_GROUPING = 3
1  django/conf/locale/ja/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
1  django/conf/locale/km/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
1  django/conf/locale/ko/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
3  django/conf/locale/lv/formats.py
... ...
@@ -1,6 +1,7 @@
1 1
 # -*- encoding: utf-8 -*-
2 2
 # This file is distributed under the same license as the Django package.
3 3
 #
  4
+from __future__ import unicode_literals
4 5
 
5 6
 # The *_FORMAT strings use the Django date format syntax,
6 7
 # see http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
@@ -37,5 +38,5 @@
37 38
     '%d.%m.%y',              # '25.10.06'
38 39
 )
39 40
 DECIMAL_SEPARATOR = ','
40  
-THOUSAND_SEPARATOR = u' ' # Non-breaking space
  41
+THOUSAND_SEPARATOR = ' ' # Non-breaking space
41 42