From b03203c8cb991c16ac8a3d74c8c4078182d0bb48 Mon Sep 17 00:00:00 2001 From: Nishanth Amuluru Date: Tue, 11 Jan 2011 22:41:51 +0530 Subject: removed all the buildout files --- bin/buildout | 20 - bin/django | 22 - develop-eggs/Django.egg-link | 2 - downloads/django-1.2.4.tar.gz | Bin 6357270 -> 0 bytes eggs/MercurialRecipe-0.1.3-py2.6.egg | Bin 3880 -> 0 bytes eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/PKG-INFO | 443 -- .../EGG-INFO/SOURCES.txt | 25 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/entry_points.txt | 5 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/requires.txt | 2 - .../EGG-INFO/top_level.txt | 1 - .../djangorecipe/__init__.py | 0 .../djangorecipe/__init__.pyo | Bin 182 -> 0 bytes .../djangorecipe/fcgi.py | 29 - .../djangorecipe/fcgi.pyo | Bin 1125 -> 0 bytes .../djangorecipe/manage.py | 16 - .../djangorecipe/manage.pyo | Bin 842 -> 0 bytes .../djangorecipe/recipe.py | 466 -- .../djangorecipe/recipe.pyo | Bin 14946 -> 0 bytes .../djangorecipe/test.py | 16 - .../djangorecipe/test.pyo | Bin 914 -> 0 bytes .../djangorecipe/tests.py | 790 -- .../djangorecipe/tests.pyo | Bin 27378 -> 0 bytes .../djangorecipe/wsgi.py | 45 - .../djangorecipe/wsgi.pyo | Bin 2337 -> 0 bytes .../EGG-INFO/PKG-INFO | 259 - .../EGG-INFO/SOURCES.txt | 21 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/entry_points.txt | 6 - .../EGG-INFO/namespace_packages.txt | 1 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/requires.txt | 11 - .../EGG-INFO/top_level.txt | 1 - .../infrae/__init__.py | 4 - .../infrae/__init__.pyo | Bin 269 -> 0 bytes .../infrae/subversion/Common.py | 244 - .../infrae/subversion/Common.pyo | Bin 10420 -> 0 bytes .../infrae/subversion/Native.py | 140 - .../infrae/subversion/Native.pyo | Bin 6354 -> 0 bytes .../infrae/subversion/Py.py | 87 - .../infrae/subversion/Py.pyo | Bin 3549 -> 0 bytes .../infrae/subversion/__init__.py | 22 - .../infrae/subversion/__init__.pyo | Bin 480 -> 0 bytes .../infrae/subversion/tests/__init__.py | 0 .../infrae/subversion/tests/__init__.pyo | Bin 199 -> 0 bytes .../infrae/subversion/tests/test_impl.py | 75 - .../infrae/subversion/tests/test_impl.pyo | Bin 3349 -> 0 bytes .../EGG-INFO/PKG-INFO | 10 - .../EGG-INFO/SOURCES.txt | 146 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/native_libs.txt | 6 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/scripts/hg | 38 - .../EGG-INFO/top_level.txt | 2 - .../hgext/__init__.py | 1 - .../hgext/__init__.pyo | Bin 186 -> 0 bytes .../hgext/acl.py | 250 - .../hgext/acl.pyo | Bin 8875 -> 0 bytes .../hgext/bookmarks.py | 579 -- .../hgext/bookmarks.pyo | Bin 21456 -> 0 bytes .../hgext/bugzilla.py | 441 -- .../hgext/bugzilla.pyo | Bin 18525 -> 0 bytes .../hgext/children.py | 45 - .../hgext/children.pyo | Bin 1514 -> 0 bytes .../hgext/churn.py | 198 - .../hgext/churn.pyo | Bin 9040 -> 0 bytes .../hgext/color.py | 319 - .../hgext/color.pyo | Bin 11558 -> 0 bytes .../hgext/convert/__init__.py | 321 - .../hgext/convert/__init__.pyo | Bin 14008 -> 0 bytes .../hgext/convert/bzr.py | 260 - .../hgext/convert/bzr.pyo | Bin 9581 -> 0 bytes .../hgext/convert/common.py | 389 - .../hgext/convert/common.pyo | Bin 20100 -> 0 bytes .../hgext/convert/convcmd.py | 434 -- .../hgext/convert/convcmd.pyo | Bin 16933 -> 0 bytes .../hgext/convert/cvs.py | 271 - .../hgext/convert/cvs.pyo | Bin 9466 -> 0 bytes .../hgext/convert/cvsps.py | 847 -- .../hgext/convert/cvsps.pyo | Bin 21195 -> 0 bytes .../hgext/convert/darcs.py | 200 - .../hgext/convert/darcs.pyo | Bin 8694 -> 0 bytes .../hgext/convert/filemap.py | 365 - .../hgext/convert/filemap.pyo | Bin 11449 -> 0 bytes .../hgext/convert/git.py | 170 - .../hgext/convert/git.pyo | Bin 7015 -> 0 bytes .../hgext/convert/gnuarch.py | 338 - .../hgext/convert/gnuarch.pyo | Bin 12415 -> 0 bytes .../hgext/convert/hg.py | 376 - .../hgext/convert/hg.pyo | Bin 16042 -> 0 bytes .../hgext/convert/monotone.py | 227 - .../hgext/convert/monotone.pyo | Bin 7808 -> 0 bytes .../hgext/convert/p4.py | 202 - .../hgext/convert/p4.pyo | Bin 7333 -> 0 bytes .../hgext/convert/subversion.py | 1168 --- .../hgext/convert/subversion.pyo | Bin 39371 -> 0 bytes .../hgext/convert/transport.py | 128 - .../hgext/convert/transport.pyo | Bin 5744 -> 0 bytes .../hgext/eol.py | 272 - .../hgext/eol.pyo | Bin 10766 -> 0 bytes .../hgext/extdiff.py | 325 - .../hgext/extdiff.pyo | Bin 10985 -> 0 bytes .../hgext/fetch.py | 152 - .../hgext/fetch.pyo | Bin 5046 -> 0 bytes .../hgext/gpg.py | 288 - .../hgext/gpg.pyo | Bin 10444 -> 0 bytes .../hgext/graphlog.py | 337 - .../hgext/graphlog.pyo | Bin 12442 -> 0 bytes .../hgext/hgcia.py | 251 - .../hgext/hgcia.pyo | Bin 10391 -> 0 bytes .../hgext/hgk.py | 348 - .../hgext/hgk.pyo | Bin 11815 -> 0 bytes .../hgext/highlight/__init__.py | 61 - .../hgext/highlight/__init__.pyo | Bin 2545 -> 0 bytes .../hgext/highlight/highlight.py | 61 - .../hgext/highlight/highlight.pyo | Bin 2358 -> 0 bytes .../hgext/interhg.py | 81 - .../hgext/interhg.pyo | Bin 2746 -> 0 bytes .../hgext/keyword.py | 649 -- .../hgext/keyword.pyo | Bin 29160 -> 0 bytes .../hgext/mq.py | 3211 -------- .../hgext/mq.pyo | Bin 112419 -> 0 bytes .../hgext/notify.py | 316 - .../hgext/notify.pyo | Bin 11753 -> 0 bytes .../hgext/pager.py | 113 - .../hgext/pager.pyo | Bin 4114 -> 0 bytes .../hgext/parentrevspec.py | 96 - .../hgext/parentrevspec.pyo | Bin 2626 -> 0 bytes .../hgext/patchbomb.py | 553 -- .../hgext/patchbomb.pyo | Bin 20701 -> 0 bytes .../hgext/progress.py | 206 - .../hgext/progress.pyo | Bin 8302 -> 0 bytes .../hgext/purge.py | 111 - .../hgext/purge.pyo | Bin 3694 -> 0 bytes .../hgext/rebase.py | 577 -- .../hgext/rebase.pyo | Bin 20920 -> 0 bytes .../hgext/record.py | 569 -- .../hgext/record.pyo | Bin 22073 -> 0 bytes .../hgext/relink.py | 180 - .../hgext/relink.pyo | Bin 6226 -> 0 bytes .../hgext/schemes.py | 84 - .../hgext/schemes.pyo | Bin 3984 -> 0 bytes .../hgext/share.py | 38 - .../hgext/share.pyo | Bin 1595 -> 0 bytes .../hgext/transplant.py | 630 -- .../hgext/transplant.pyo | Bin 23926 -> 0 bytes .../hgext/win32mbcs.py | 159 - .../hgext/win32mbcs.pyo | Bin 5770 -> 0 bytes .../hgext/win32text.py | 170 - .../hgext/win32text.pyo | Bin 7010 -> 0 bytes .../hgext/zeroconf/Zeroconf.py | 1582 ---- .../hgext/zeroconf/Zeroconf.pyo | Bin 66077 -> 0 bytes .../hgext/zeroconf/__init__.py | 173 - .../hgext/zeroconf/__init__.pyo | Bin 7506 -> 0 bytes .../mercurial/__init__.py | 0 .../mercurial/__init__.pyo | Bin 190 -> 0 bytes .../mercurial/__version__.py | 2 - .../mercurial/__version__.pyo | Bin 221 -> 0 bytes .../mercurial/ancestor.py | 88 - .../mercurial/ancestor.pyo | Bin 2405 -> 0 bytes .../mercurial/archival.py | 274 - .../mercurial/archival.pyo | Bin 13614 -> 0 bytes .../mercurial/base85.py | 7 - .../mercurial/base85.pyo | Bin 650 -> 0 bytes .../mercurial/base85.so | Bin 24487 -> 0 bytes .../mercurial/bdiff.py | 7 - .../mercurial/bdiff.pyo | Bin 647 -> 0 bytes .../mercurial/bdiff.so | Bin 32073 -> 0 bytes .../mercurial/bundlerepo.py | 324 - .../mercurial/bundlerepo.pyo | Bin 13535 -> 0 bytes .../mercurial/byterange.py | 466 -- .../mercurial/byterange.pyo | Bin 16669 -> 0 bytes .../mercurial/changegroup.py | 204 - .../mercurial/changegroup.pyo | Bin 10311 -> 0 bytes .../mercurial/changelog.py | 233 - .../mercurial/changelog.pyo | Bin 10631 -> 0 bytes .../mercurial/cmdutil.py | 1374 ---- .../mercurial/cmdutil.pyo | Bin 52264 -> 0 bytes .../mercurial/commands.py | 4530 ----------- .../mercurial/commands.pyo | Bin 163183 -> 0 bytes .../mercurial/config.py | 142 - .../mercurial/config.pyo | Bin 7763 -> 0 bytes .../mercurial/context.py | 1098 --- .../mercurial/context.pyo | Bin 60280 -> 0 bytes .../mercurial/copies.py | 267 - .../mercurial/copies.pyo | Bin 6643 -> 0 bytes .../mercurial/dagparser.py | 474 -- .../mercurial/dagparser.pyo | Bin 13875 -> 0 bytes .../mercurial/demandimport.py | 146 - .../mercurial/demandimport.pyo | Bin 5581 -> 0 bytes .../mercurial/diffhelpers.py | 7 - .../mercurial/diffhelpers.pyo | Bin 665 -> 0 bytes .../mercurial/diffhelpers.so | Bin 25257 -> 0 bytes .../mercurial/dirstate.py | 681 -- .../mercurial/dirstate.pyo | Bin 25942 -> 0 bytes .../mercurial/discovery.py | 308 - .../mercurial/discovery.pyo | Bin 8887 -> 0 bytes .../mercurial/dispatch.py | 641 -- .../mercurial/dispatch.pyo | Bin 23354 -> 0 bytes .../mercurial/encoding.py | 103 - .../mercurial/encoding.pyo | Bin 4721 -> 0 bytes .../mercurial/error.py | 81 - .../mercurial/error.pyo | Bin 6402 -> 0 bytes .../mercurial/extensions.py | 302 - .../mercurial/extensions.pyo | Bin 10788 -> 0 bytes .../mercurial/fancyopts.py | 117 - .../mercurial/fancyopts.pyo | Bin 2989 -> 0 bytes .../mercurial/filelog.py | 79 - .../mercurial/filelog.pyo | Bin 3401 -> 0 bytes .../mercurial/filemerge.py | 267 - .../mercurial/filemerge.pyo | Bin 10005 -> 0 bytes .../mercurial/graphmod.py | 122 - .../mercurial/graphmod.pyo | Bin 4291 -> 0 bytes .../mercurial/hbisect.py | 155 - .../mercurial/hbisect.pyo | Bin 4507 -> 0 bytes .../mercurial/help.py | 117 - .../mercurial/help.pyo | Bin 4447 -> 0 bytes .../mercurial/help/config.txt | 51 - .../mercurial/help/dates.txt | 36 - .../mercurial/help/diffs.txt | 29 - .../mercurial/help/environment.txt | 93 - .../mercurial/help/extensions.txt | 33 - .../mercurial/help/glossary.txt | 368 - .../mercurial/help/hgweb.txt | 46 - .../mercurial/help/merge-tools.txt | 110 - .../mercurial/help/multirevs.txt | 13 - .../mercurial/help/patterns.txt | 41 - .../mercurial/help/revisions.txt | 29 - .../mercurial/help/revsets.txt | 87 - .../mercurial/help/subrepos.txt | 127 - .../mercurial/help/templates.txt | 160 - .../mercurial/help/urls.txt | 66 - .../mercurial/hg.py | 556 -- .../mercurial/hg.pyo | Bin 20282 -> 0 bytes .../mercurial/hgweb/__init__.py | 31 - .../mercurial/hgweb/__init__.pyo | Bin 1270 -> 0 bytes .../mercurial/hgweb/common.py | 161 - .../mercurial/hgweb/common.pyo | Bin 6498 -> 0 bytes .../mercurial/hgweb/hgweb_mod.py | 290 - .../mercurial/hgweb/hgweb_mod.pyo | Bin 10447 -> 0 bytes .../mercurial/hgweb/hgwebdir_mod.py | 359 - .../mercurial/hgweb/hgwebdir_mod.pyo | Bin 14489 -> 0 bytes .../mercurial/hgweb/protocol.py | 75 - .../mercurial/hgweb/protocol.pyo | Bin 4062 -> 0 bytes .../mercurial/hgweb/request.py | 147 - .../mercurial/hgweb/request.pyo | Bin 7397 -> 0 bytes .../mercurial/hgweb/server.py | 309 - .../mercurial/hgweb/server.pyo | Bin 15769 -> 0 bytes .../mercurial/hgweb/webcommands.py | 783 -- .../mercurial/hgweb/webcommands.pyo | Bin 30612 -> 0 bytes .../mercurial/hgweb/webutil.py | 226 - .../mercurial/hgweb/webutil.pyo | Bin 11377 -> 0 bytes .../mercurial/hgweb/wsgicgi.py | 77 - .../mercurial/hgweb/wsgicgi.pyo | Bin 2518 -> 0 bytes .../mercurial/hook.py | 153 - .../mercurial/hook.pyo | Bin 5290 -> 0 bytes .../mercurial/httprepo.py | 203 - .../mercurial/httprepo.pyo | Bin 8863 -> 0 bytes .../mercurial/i18n.py | 58 - .../mercurial/i18n.pyo | Bin 1715 -> 0 bytes .../mercurial/ignore.py | 103 - .../mercurial/ignore.pyo | Bin 3186 -> 0 bytes .../mercurial/keepalive.py | 765 -- .../mercurial/keepalive.pyo | Bin 24739 -> 0 bytes .../mercurial/localrepo.py | 1906 ----- .../mercurial/localrepo.pyo | Bin 66596 -> 0 bytes .../mercurial/lock.py | 137 - .../mercurial/lock.pyo | Bin 4721 -> 0 bytes .../mercurial/lsprof.py | 111 - .../mercurial/lsprof.pyo | Bin 5121 -> 0 bytes .../mercurial/lsprofcalltree.py | 86 - .../mercurial/lsprofcalltree.pyo | Bin 3459 -> 0 bytes .../mercurial/mail.py | 226 - .../mercurial/mail.pyo | Bin 10244 -> 0 bytes .../mercurial/manifest.py | 196 - .../mercurial/manifest.pyo | Bin 8415 -> 0 bytes .../mercurial/match.py | 296 - .../mercurial/match.pyo | Bin 13921 -> 0 bytes .../mercurial/mdiff.py | 277 - .../mercurial/mdiff.pyo | Bin 9774 -> 0 bytes .../mercurial/merge.py | 544 -- .../mercurial/merge.pyo | Bin 19153 -> 0 bytes .../mercurial/minirst.py | 450 -- .../mercurial/minirst.pyo | Bin 14228 -> 0 bytes .../mercurial/mpatch.py | 7 - .../mercurial/mpatch.pyo | Bin 650 -> 0 bytes .../mercurial/mpatch.so | Bin 31349 -> 0 bytes .../mercurial/node.py | 18 - .../mercurial/node.pyo | Bin 577 -> 0 bytes .../mercurial/osutil.py | 7 - .../mercurial/osutil.pyo | Bin 650 -> 0 bytes .../mercurial/osutil.so | Bin 29995 -> 0 bytes .../mercurial/parser.py | 91 - .../mercurial/parser.pyo | Bin 3726 -> 0 bytes .../mercurial/parsers.py | 7 - .../mercurial/parsers.pyo | Bin 653 -> 0 bytes .../mercurial/parsers.so | Bin 37408 -> 0 bytes .../mercurial/patch.py | 1630 ---- .../mercurial/patch.pyo | Bin 54653 -> 0 bytes .../mercurial/posix.py | 297 - .../mercurial/posix.pyo | Bin 13660 -> 0 bytes .../mercurial/pushkey.py | 31 - .../mercurial/pushkey.pyo | Bin 2141 -> 0 bytes .../mercurial/py3kcompat.py | 72 - .../mercurial/py3kcompat.pyo | Bin 2101 -> 0 bytes .../mercurial/repair.py | 167 - .../mercurial/repair.pyo | Bin 4821 -> 0 bytes .../mercurial/repo.py | 37 - .../mercurial/repo.pyo | Bin 1938 -> 0 bytes .../mercurial/revlog.py | 1477 ---- .../mercurial/revlog.pyo | Bin 49776 -> 0 bytes .../mercurial/revset.py | 797 -- .../mercurial/revset.pyo | Bin 32125 -> 0 bytes .../mercurial/similar.py | 103 - .../mercurial/similar.pyo | Bin 3753 -> 0 bytes .../mercurial/simplemerge.py | 450 -- .../mercurial/simplemerge.pyo | Bin 12893 -> 0 bytes .../mercurial/sshrepo.py | 197 - .../mercurial/sshrepo.pyo | Bin 8489 -> 0 bytes .../mercurial/sshserver.py | 144 - .../mercurial/sshserver.pyo | Bin 6486 -> 0 bytes .../mercurial/statichttprepo.py | 146 - .../mercurial/statichttprepo.pyo | Bin 6760 -> 0 bytes .../mercurial/store.py | 339 - .../mercurial/store.pyo | Bin 17343 -> 0 bytes .../mercurial/strutil.py | 34 - .../mercurial/strutil.pyo | Bin 1143 -> 0 bytes .../mercurial/subrepo.py | 610 -- .../mercurial/subrepo.pyo | Bin 27960 -> 0 bytes .../mercurial/tags.py | 288 - .../mercurial/tags.pyo | Bin 6923 -> 0 bytes .../mercurial/templatefilters.py | 228 - .../mercurial/templatefilters.pyo | Bin 13562 -> 0 bytes .../mercurial/templatekw.py | 271 - .../mercurial/templatekw.pyo | Bin 11894 -> 0 bytes .../mercurial/templater.py | 289 - .../mercurial/templater.pyo | Bin 10857 -> 0 bytes .../mercurial/templates/atom/changelog.tmpl | 10 - .../mercurial/templates/atom/changelogentry.tmpl | 16 - .../mercurial/templates/atom/error.tmpl | 17 - .../mercurial/templates/atom/filelog.tmpl | 8 - .../mercurial/templates/atom/header.tmpl | 2 - .../mercurial/templates/atom/map | 11 - .../mercurial/templates/atom/tagentry.tmpl | 8 - .../mercurial/templates/atom/tags.tmpl | 11 - .../mercurial/templates/coal/header.tmpl | 6 - .../mercurial/templates/coal/map | 201 - .../mercurial/templates/gitweb/branches.tmpl | 31 - .../mercurial/templates/gitweb/changelog.tmpl | 40 - .../mercurial/templates/gitweb/changelogentry.tmpl | 14 - .../mercurial/templates/gitweb/changeset.tmpl | 52 - .../mercurial/templates/gitweb/error.tmpl | 25 - .../mercurial/templates/gitweb/fileannotate.tmpl | 64 - .../mercurial/templates/gitweb/filediff.tmpl | 49 - .../mercurial/templates/gitweb/filelog.tmpl | 41 - .../mercurial/templates/gitweb/filerevision.tmpl | 63 - .../mercurial/templates/gitweb/footer.tmpl | 11 - .../mercurial/templates/gitweb/graph.tmpl | 122 - .../mercurial/templates/gitweb/header.tmpl | 8 - .../mercurial/templates/gitweb/help.tmpl | 31 - .../mercurial/templates/gitweb/helptopics.tmpl | 38 - .../mercurial/templates/gitweb/index.tmpl | 26 - .../mercurial/templates/gitweb/manifest.tmpl | 40 - .../mercurial/templates/gitweb/map | 260 - .../mercurial/templates/gitweb/notfound.tmpl | 18 - .../mercurial/templates/gitweb/search.tmpl | 38 - .../mercurial/templates/gitweb/shortlog.tmpl | 41 - .../mercurial/templates/gitweb/summary.tmpl | 59 - .../mercurial/templates/gitweb/tags.tmpl | 31 - .../mercurial/templates/map-cmdline.changelog | 17 - .../mercurial/templates/map-cmdline.compact | 9 - .../mercurial/templates/map-cmdline.default | 24 - .../mercurial/templates/map-cmdline.xml | 19 - .../mercurial/templates/monoblue/branches.tmpl | 37 - .../mercurial/templates/monoblue/changelog.tmpl | 41 - .../templates/monoblue/changelogentry.tmpl | 6 - .../mercurial/templates/monoblue/changeset.tmpl | 64 - .../mercurial/templates/monoblue/error.tmpl | 35 - .../mercurial/templates/monoblue/fileannotate.tmpl | 64 - .../mercurial/templates/monoblue/filediff.tmpl | 55 - .../mercurial/templates/monoblue/filelog.tmpl | 50 - .../mercurial/templates/monoblue/filerevision.tmpl | 64 - .../mercurial/templates/monoblue/footer.tmpl | 22 - .../mercurial/templates/monoblue/graph.tmpl | 119 - .../mercurial/templates/monoblue/header.tmpl | 6 - .../mercurial/templates/monoblue/help.tmpl | 37 - .../mercurial/templates/monoblue/helptopics.tmpl | 44 - .../mercurial/templates/monoblue/index.tmpl | 39 - .../mercurial/templates/monoblue/manifest.tmpl | 52 - .../mercurial/templates/monoblue/map | 226 - .../mercurial/templates/monoblue/notfound.tmpl | 36 - .../mercurial/templates/monoblue/search.tmpl | 35 - .../mercurial/templates/monoblue/shortlog.tmpl | 43 - .../mercurial/templates/monoblue/summary.tmpl | 67 - .../mercurial/templates/monoblue/tags.tmpl | 37 - .../mercurial/templates/paper/branches.tmpl | 48 - .../mercurial/templates/paper/changeset.tmpl | 74 - .../mercurial/templates/paper/error.tmpl | 44 - .../mercurial/templates/paper/fileannotate.tmpl | 81 - .../mercurial/templates/paper/filediff.tmpl | 76 - .../mercurial/templates/paper/filelog.tmpl | 72 - .../mercurial/templates/paper/filelogentry.tmpl | 5 - .../mercurial/templates/paper/filerevision.tmpl | 76 - .../mercurial/templates/paper/footer.tmpl | 4 - .../mercurial/templates/paper/graph.tmpl | 135 - .../mercurial/templates/paper/header.tmpl | 6 - .../mercurial/templates/paper/help.tmpl | 43 - .../mercurial/templates/paper/helptopics.tmpl | 48 - .../mercurial/templates/paper/index.tmpl | 26 - .../mercurial/templates/paper/manifest.tmpl | 57 - .../mercurial/templates/paper/map | 200 - .../mercurial/templates/paper/notfound.tmpl | 12 - .../mercurial/templates/paper/search.tmpl | 54 - .../mercurial/templates/paper/shortlog.tmpl | 69 - .../mercurial/templates/paper/shortlogentry.tmpl | 5 - .../mercurial/templates/paper/tags.tmpl | 48 - .../mercurial/templates/raw/changeset.tmpl | 9 - .../mercurial/templates/raw/error.tmpl | 2 - .../mercurial/templates/raw/fileannotate.tmpl | 5 - .../mercurial/templates/raw/filediff.tmpl | 5 - .../mercurial/templates/raw/index.tmpl | 2 - .../mercurial/templates/raw/manifest.tmpl | 3 - .../mercurial/templates/raw/map | 28 - .../mercurial/templates/raw/notfound.tmpl | 2 - .../mercurial/templates/rss/changelog.tmpl | 6 - .../mercurial/templates/rss/changelogentry.tmpl | 7 - .../mercurial/templates/rss/error.tmpl | 10 - .../mercurial/templates/rss/filelog.tmpl | 6 - .../mercurial/templates/rss/filelogentry.tmpl | 7 - .../mercurial/templates/rss/header.tmpl | 5 - .../mercurial/templates/rss/map | 10 - .../mercurial/templates/rss/tagentry.tmpl | 6 - .../mercurial/templates/rss/tags.tmpl | 6 - .../mercurial/templates/spartan/branches.tmpl | 27 - .../mercurial/templates/spartan/changelog.tmpl | 44 - .../templates/spartan/changelogentry.tmpl | 25 - .../mercurial/templates/spartan/changeset.tmpl | 52 - .../mercurial/templates/spartan/error.tmpl | 15 - .../mercurial/templates/spartan/fileannotate.tmpl | 49 - .../mercurial/templates/spartan/filediff.tmpl | 37 - .../mercurial/templates/spartan/filelog.tmpl | 29 - .../mercurial/templates/spartan/filelogentry.tmpl | 25 - .../mercurial/templates/spartan/filerevision.tmpl | 47 - .../mercurial/templates/spartan/footer.tmpl | 8 - .../mercurial/templates/spartan/graph.tmpl | 97 - .../mercurial/templates/spartan/header.tmpl | 6 - .../mercurial/templates/spartan/index.tmpl | 19 - .../mercurial/templates/spartan/manifest.tmpl | 29 - .../mercurial/templates/spartan/map | 183 - .../mercurial/templates/spartan/notfound.tmpl | 12 - .../mercurial/templates/spartan/search.tmpl | 37 - .../mercurial/templates/spartan/shortlog.tmpl | 44 - .../mercurial/templates/spartan/shortlogentry.tmpl | 7 - .../mercurial/templates/spartan/tags.tmpl | 27 - .../mercurial/templates/static/background.png | Bin 603 -> 0 bytes .../mercurial/templates/static/coal-file.png | Bin 273 -> 0 bytes .../mercurial/templates/static/coal-folder.png | Bin 284 -> 0 bytes .../mercurial/templates/static/excanvas.js | 19 - .../mercurial/templates/static/graph.js | 137 - .../mercurial/templates/static/hgicon.png | Bin 792 -> 0 bytes .../mercurial/templates/static/hglogo.png | Bin 4123 -> 0 bytes .../mercurial/templates/static/style-coal.css | 265 - .../mercurial/templates/static/style-gitweb.css | 124 - .../mercurial/templates/static/style-monoblue.css | 475 -- .../mercurial/templates/static/style-paper.css | 254 - .../mercurial/templates/static/style.css | 105 - .../mercurial/templates/template-vars.txt | 41 - .../mercurial/transaction.py | 176 - .../mercurial/transaction.pyo | Bin 7272 -> 0 bytes .../mercurial/ui.py | 626 -- .../mercurial/ui.pyo | Bin 25999 -> 0 bytes .../mercurial/url.py | 701 -- .../mercurial/url.pyo | Bin 26899 -> 0 bytes .../mercurial/util.py | 1538 ---- .../mercurial/util.pyo | Bin 59018 -> 0 bytes .../mercurial/verify.py | 301 - .../mercurial/verify.pyo | Bin 9810 -> 0 bytes .../mercurial/win32.py | 180 - .../mercurial/win32.pyo | Bin 8551 -> 0 bytes .../mercurial/windows.py | 375 - .../mercurial/windows.pyo | Bin 15878 -> 0 bytes .../mercurial/wireproto.py | 338 - .../mercurial/wireproto.pyo | Bin 16623 -> 0 bytes eggs/py-1.4.0-py2.6.egg/EGG-INFO/PKG-INFO | 45 - eggs/py-1.4.0-py2.6.egg/EGG-INFO/SOURCES.txt | 116 - .../EGG-INFO/dependency_links.txt | 1 - eggs/py-1.4.0-py2.6.egg/EGG-INFO/not-zip-safe | 1 - eggs/py-1.4.0-py2.6.egg/EGG-INFO/top_level.txt | 1 - eggs/py-1.4.0-py2.6.egg/py/__init__.py | 143 - eggs/py-1.4.0-py2.6.egg/py/__init__.pyo | Bin 4763 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/__metainfo.py | 2 - eggs/py-1.4.0-py2.6.egg/py/__metainfo.pyo | Bin 272 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_apipkg.py | 161 - eggs/py-1.4.0-py2.6.egg/py/_apipkg.pyo | Bin 6645 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_builtin.py | 234 - eggs/py-1.4.0-py2.6.egg/py/_builtin.pyo | Bin 9688 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/__init__.py | 1 - eggs/py-1.4.0-py2.6.egg/py/_code/__init__.pyo | Bin 231 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/_assertionnew.py | 345 - eggs/py-1.4.0-py2.6.egg/py/_code/_assertionnew.pyo | Bin 14716 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/_assertionold.py | 555 -- eggs/py-1.4.0-py2.6.egg/py/_code/_assertionold.pyo | Bin 22340 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/assertion.py | 94 - eggs/py-1.4.0-py2.6.egg/py/_code/assertion.pyo | Bin 3236 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/code.py | 722 -- eggs/py-1.4.0-py2.6.egg/py/_code/code.pyo | Bin 32358 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_code/source.py | 346 - eggs/py-1.4.0-py2.6.egg/py/_code/source.pyo | Bin 12620 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_error.py | 83 - eggs/py-1.4.0-py2.6.egg/py/_error.pyo | Bin 3324 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_iniconfig.py | 149 - eggs/py-1.4.0-py2.6.egg/py/_iniconfig.pyo | Bin 6970 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_io/__init__.py | 1 - eggs/py-1.4.0-py2.6.egg/py/_io/__init__.pyo | Bin 212 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_io/capture.py | 355 - eggs/py-1.4.0-py2.6.egg/py/_io/capture.pyo | Bin 15430 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_io/saferepr.py | 54 - eggs/py-1.4.0-py2.6.egg/py/_io/saferepr.pyo | Bin 2656 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_io/terminalwriter.py | 285 - eggs/py-1.4.0-py2.6.egg/py/_io/terminalwriter.pyo | Bin 11264 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_log/__init__.py | 2 - eggs/py-1.4.0-py2.6.egg/py/_log/__init__.pyo | Bin 257 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_log/log.py | 186 - eggs/py-1.4.0-py2.6.egg/py/_log/log.pyo | Bin 10230 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_log/warning.py | 76 - eggs/py-1.4.0-py2.6.egg/py/_log/warning.pyo | Bin 3103 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/__init__.py | 1 - eggs/py-1.4.0-py2.6.egg/py/_path/__init__.pyo | Bin 217 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/cacheutil.py | 114 - eggs/py-1.4.0-py2.6.egg/py/_path/cacheutil.pyo | Bin 6178 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/common.py | 373 - eggs/py-1.4.0-py2.6.egg/py/_path/common.pyo | Bin 17110 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/local.py | 777 -- eggs/py-1.4.0-py2.6.egg/py/_path/local.pyo | Bin 31049 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/svnurl.py | 378 - eggs/py-1.4.0-py2.6.egg/py/_path/svnurl.pyo | Bin 16946 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_path/svnwc.py | 1231 --- eggs/py-1.4.0-py2.6.egg/py/_path/svnwc.pyo | Bin 47427 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_process/__init__.py | 1 - eggs/py-1.4.0-py2.6.egg/py/_process/__init__.pyo | Bin 228 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_process/cmdexec.py | 53 - eggs/py-1.4.0-py2.6.egg/py/_process/cmdexec.pyo | Bin 2480 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_process/forkedfunc.py | 108 - eggs/py-1.4.0-py2.6.egg/py/_process/forkedfunc.pyo | Bin 4063 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_process/killproc.py | 23 - eggs/py-1.4.0-py2.6.egg/py/_process/killproc.pyo | Bin 1496 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_std.py | 18 - eggs/py-1.4.0-py2.6.egg/py/_std.pyo | Bin 1109 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/_xmlgen.py | 244 - eggs/py-1.4.0-py2.6.egg/py/_xmlgen.pyo | Bin 12878 -> 0 bytes eggs/py-1.4.0-py2.6.egg/py/test.py | 10 - eggs/py-1.4.0-py2.6.egg/py/test.pyo | Bin 358 -> 0 bytes eggs/setuptools-0.6c12dev_r85381-py2.6.egg | Bin 333775 -> 0 bytes eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/PKG-INFO | 8235 -------------------- .../EGG-INFO/SOURCES.txt | 76 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/entry_points.txt | 7 - .../EGG-INFO/namespace_packages.txt | 1 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/requires.txt | 4 - .../EGG-INFO/top_level.txt | 1 - eggs/zc.buildout-1.5.2-py2.6.egg/README.txt | 202 - eggs/zc.buildout-1.5.2-py2.6.egg/zc/__init__.py | 5 - eggs/zc.buildout-1.5.2-py2.6.egg/zc/__init__.pyo | Bin 279 -> 0 bytes .../zc/buildout/__init__.py | 24 - .../zc/buildout/allowhosts.txt | 128 - .../zc/buildout/bootstrap.txt | 360 - .../zc/buildout/buildout.py | 1835 ----- .../zc/buildout/buildout.txt | 2831 ------- .../zc/buildout/debugging.txt | 97 - .../zc/buildout/dependencylinks.txt | 199 - .../zc/buildout/distribute.txt | 23 - .../zc/buildout/download.py | 251 - .../zc/buildout/download.txt | 550 -- .../zc/buildout/downloadcache.txt | 141 - .../zc/buildout/easy_install.py | 1906 ----- .../zc/buildout/easy_install.txt | 1985 ----- .../zc/buildout/extends-cache.txt | 399 - .../zc/buildout/repeatable.txt | 180 - .../zc/buildout/rmtree.py | 66 - .../zc/buildout/runsetup.txt | 42 - .../zc/buildout/setup.txt | 51 - .../zc/buildout/testing.py | 616 -- .../zc/buildout/testing.txt | 181 - .../zc/buildout/testing_bugfix.txt | 39 - .../zc/buildout/testrecipes.py | 16 - .../zc/buildout/tests.py | 4190 ---------- .../zc/buildout/testselectingpython.py | 96 - .../zc/buildout/unzip.txt | 54 - .../zc/buildout/update.txt | 263 - .../zc/buildout/upgrading_distribute.txt | 56 - .../zc/buildout/virtualenv.txt | 257 - .../zc/buildout/windows.txt | 66 - .../EGG-INFO/PKG-INFO | 1708 ---- .../EGG-INFO/SOURCES.txt | 22 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/entry_points.txt | 8 - .../EGG-INFO/namespace_packages.txt | 2 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/requires.txt | 2 - .../EGG-INFO/top_level.txt | 1 - eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/__init__.py | 1 - eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/__init__.pyo | Bin 261 -> 0 bytes .../zc/recipe/__init__.py | 1 - .../zc/recipe/__init__.pyo | Bin 268 -> 0 bytes .../zc/recipe/egg/README.txt | 645 -- .../zc/recipe/egg/__init__.py | 2 - .../zc/recipe/egg/__init__.pyo | Bin 376 -> 0 bytes .../zc/recipe/egg/api.txt | 152 - .../zc/recipe/egg/custom.py | 170 - .../zc/recipe/egg/custom.pyo | Bin 5902 -> 0 bytes .../zc/recipe/egg/custom.txt | 579 -- .../zc/recipe/egg/egg.py | 230 - .../zc/recipe/egg/egg.pyo | Bin 7900 -> 0 bytes .../zc/recipe/egg/selecting-python.txt | 140 - .../zc/recipe/egg/tests.py | 169 - .../zc/recipe/egg/tests.pyo | Bin 5797 -> 0 bytes parts/buildout/site.py | 617 -- parts/buildout/site.pyo | Bin 21538 -> 0 bytes parts/buildout/sitecustomize.py | 10 - parts/buildout/sitecustomize.pyo | Bin 268 -> 0 bytes parts/django/AUTHORS | 530 -- parts/django/Django.egg-info/PKG-INFO | 23 - parts/django/Django.egg-info/SOURCES.txt | 2381 ------ parts/django/Django.egg-info/dependency_links.txt | 1 - parts/django/Django.egg-info/top_level.txt | 1 - parts/django/INSTALL | 16 - parts/django/LICENSE | 27 - parts/django/MANIFEST.in | 29 - parts/django/PKG-INFO | 23 - parts/django/README | 37 - parts/django/django/__init__.py | 16 - parts/django/django/bin/__init__.py | 0 parts/django/django/bin/compile-messages.py | 11 - parts/django/django/bin/daily_cleanup.py | 13 - parts/django/django/bin/django-admin.py | 5 - parts/django/django/bin/make-messages.py | 11 - parts/django/django/bin/profiling/__init__.py | 0 .../django/bin/profiling/gather_profile_stats.py | 36 - parts/django/django/bin/unique-messages.py | 28 - parts/django/django/conf/__init__.py | 136 - parts/django/django/conf/app_template/__init__.py | 0 parts/django/django/conf/app_template/models.py | 3 - parts/django/django/conf/app_template/tests.py | 23 - parts/django/django/conf/app_template/views.py | 1 - parts/django/django/conf/global_settings.py | 524 -- parts/django/django/conf/locale/__init__.py | 0 .../django/conf/locale/ar/LC_MESSAGES/django.mo | Bin 68894 -> 0 bytes .../django/conf/locale/ar/LC_MESSAGES/django.po | 5159 ------------ .../django/conf/locale/ar/LC_MESSAGES/djangojs.mo | Bin 1859 -> 0 bytes .../django/conf/locale/ar/LC_MESSAGES/djangojs.po | 118 - parts/django/django/conf/locale/ar/__init__.py | 0 parts/django/django/conf/locale/ar/formats.py | 18 - .../django/conf/locale/bg/LC_MESSAGES/django.mo | Bin 63935 -> 0 bytes .../django/conf/locale/bg/LC_MESSAGES/django.po | 5326 ------------- .../django/conf/locale/bg/LC_MESSAGES/djangojs.mo | Bin 1725 -> 0 bytes .../django/conf/locale/bg/LC_MESSAGES/djangojs.po | 106 - parts/django/django/conf/locale/bg/__init__.py | 0 parts/django/django/conf/locale/bg/formats.py | 18 - .../django/conf/locale/bn/LC_MESSAGES/django.mo | Bin 50191 -> 0 bytes .../django/conf/locale/bn/LC_MESSAGES/django.po | 4041 ---------- .../django/conf/locale/bn/LC_MESSAGES/djangojs.mo | Bin 2230 -> 0 bytes .../django/conf/locale/bn/LC_MESSAGES/djangojs.po | 114 - parts/django/django/conf/locale/bn/__init__.py | 0 parts/django/django/conf/locale/bn/formats.py | 18 - .../django/conf/locale/bs/LC_MESSAGES/django.mo | Bin 53222 -> 0 bytes .../django/conf/locale/bs/LC_MESSAGES/django.po | 5183 ------------ parts/django/django/conf/locale/bs/__init__.py | 0 parts/django/django/conf/locale/bs/formats.py | 18 - .../django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 67366 -> 0 bytes .../django/conf/locale/ca/LC_MESSAGES/django.po | 4490 ----------- .../django/conf/locale/ca/LC_MESSAGES/djangojs.mo | Bin 1684 -> 0 bytes .../django/conf/locale/ca/LC_MESSAGES/djangojs.po | 115 - parts/django/django/conf/locale/ca/__init__.py | 0 parts/django/django/conf/locale/ca/formats.py | 30 - .../django/conf/locale/cs/LC_MESSAGES/django.mo | Bin 77011 -> 0 bytes .../django/conf/locale/cs/LC_MESSAGES/django.po | 5153 ------------ .../django/conf/locale/cs/LC_MESSAGES/djangojs.mo | Bin 2695 -> 0 bytes .../django/conf/locale/cs/LC_MESSAGES/djangojs.po | 159 - parts/django/django/conf/locale/cs/__init__.py | 0 parts/django/django/conf/locale/cs/formats.py | 32 - .../django/conf/locale/cy/LC_MESSAGES/django.mo | Bin 22756 -> 0 bytes .../django/conf/locale/cy/LC_MESSAGES/django.po | 1990 ----- .../django/conf/locale/cy/LC_MESSAGES/djangojs.mo | Bin 1009 -> 0 bytes .../django/conf/locale/cy/LC_MESSAGES/djangojs.po | 111 - parts/django/django/conf/locale/cy/__init__.py | 0 parts/django/django/conf/locale/cy/formats.py | 18 - .../django/conf/locale/da/LC_MESSAGES/django.mo | Bin 73112 -> 0 bytes .../django/conf/locale/da/LC_MESSAGES/django.po | 5105 ------------ .../django/conf/locale/da/LC_MESSAGES/djangojs.mo | Bin 2587 -> 0 bytes .../django/conf/locale/da/LC_MESSAGES/djangojs.po | 155 - parts/django/django/conf/locale/da/__init__.py | 0 parts/django/django/conf/locale/da/formats.py | 26 - .../django/conf/locale/de/LC_MESSAGES/django.mo | Bin 77651 -> 0 bytes .../django/conf/locale/de/LC_MESSAGES/django.po | 5225 ------------- .../django/conf/locale/de/LC_MESSAGES/djangojs.mo | Bin 2723 -> 0 bytes .../django/conf/locale/de/LC_MESSAGES/djangojs.po | 160 - parts/django/django/conf/locale/de/__init__.py | 0 parts/django/django/conf/locale/de/formats.py | 32 - .../django/conf/locale/el/LC_MESSAGES/django.mo | Bin 38998 -> 0 bytes .../django/conf/locale/el/LC_MESSAGES/django.po | 2766 ------- .../django/conf/locale/el/LC_MESSAGES/djangojs.mo | Bin 1801 -> 0 bytes .../django/conf/locale/el/LC_MESSAGES/djangojs.po | 108 - parts/django/django/conf/locale/el/__init__.py | 0 parts/django/django/conf/locale/el/formats.py | 18 - .../django/conf/locale/en/LC_MESSAGES/django.mo | Bin 572 -> 0 bytes .../django/conf/locale/en/LC_MESSAGES/django.po | 5002 ------------ .../django/conf/locale/en/LC_MESSAGES/djangojs.mo | Bin 358 -> 0 bytes .../django/conf/locale/en/LC_MESSAGES/djangojs.po | 145 - parts/django/django/conf/locale/en/__init__.py | 0 parts/django/django/conf/locale/en/formats.py | 38 - .../django/conf/locale/en_GB/LC_MESSAGES/django.mo | Bin 762 -> 0 bytes .../django/conf/locale/en_GB/LC_MESSAGES/django.po | 4996 ------------ .../conf/locale/en_GB/LC_MESSAGES/djangojs.mo | Bin 344 -> 0 bytes .../conf/locale/en_GB/LC_MESSAGES/djangojs.po | 114 - parts/django/django/conf/locale/en_GB/__init__.py | 0 parts/django/django/conf/locale/en_GB/formats.py | 39 - .../django/conf/locale/es/LC_MESSAGES/django.mo | Bin 71672 -> 0 bytes .../django/conf/locale/es/LC_MESSAGES/django.po | 5574 ------------- .../django/conf/locale/es/LC_MESSAGES/djangojs.mo | Bin 1622 -> 0 bytes .../django/conf/locale/es/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/es/__init__.py | 0 parts/django/django/conf/locale/es/formats.py | 30 - .../django/conf/locale/es_AR/LC_MESSAGES/django.mo | Bin 77720 -> 0 bytes .../django/conf/locale/es_AR/LC_MESSAGES/django.po | 5186 ------------ .../conf/locale/es_AR/LC_MESSAGES/djangojs.mo | Bin 2512 -> 0 bytes .../conf/locale/es_AR/LC_MESSAGES/djangojs.po | 132 - parts/django/django/conf/locale/es_AR/__init__.py | 0 parts/django/django/conf/locale/es_AR/formats.py | 29 - .../django/conf/locale/et/LC_MESSAGES/django.mo | Bin 64652 -> 0 bytes .../django/conf/locale/et/LC_MESSAGES/django.po | 4414 ----------- .../django/conf/locale/et/LC_MESSAGES/djangojs.mo | Bin 1636 -> 0 bytes .../django/conf/locale/et/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/et/__init__.py | 0 parts/django/django/conf/locale/et/formats.py | 18 - .../django/conf/locale/eu/LC_MESSAGES/django.mo | Bin 44912 -> 0 bytes .../django/conf/locale/eu/LC_MESSAGES/django.po | 4248 ---------- .../django/conf/locale/eu/LC_MESSAGES/djangojs.mo | Bin 1560 -> 0 bytes .../django/conf/locale/eu/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/eu/__init__.py | 0 parts/django/django/conf/locale/eu/formats.py | 18 - .../django/conf/locale/fa/LC_MESSAGES/django.mo | Bin 41548 -> 0 bytes .../django/conf/locale/fa/LC_MESSAGES/django.po | 4006 ---------- .../django/conf/locale/fa/LC_MESSAGES/djangojs.mo | Bin 1889 -> 0 bytes .../django/conf/locale/fa/LC_MESSAGES/djangojs.po | 118 - parts/django/django/conf/locale/fa/__init__.py | 0 parts/django/django/conf/locale/fa/formats.py | 18 - .../django/conf/locale/fi/LC_MESSAGES/django.mo | Bin 74561 -> 0 bytes .../django/conf/locale/fi/LC_MESSAGES/django.po | 5558 ------------- .../django/conf/locale/fi/LC_MESSAGES/djangojs.mo | Bin 2703 -> 0 bytes .../django/conf/locale/fi/LC_MESSAGES/djangojs.po | 157 - parts/django/django/conf/locale/fi/__init__.py | 0 parts/django/django/conf/locale/fi/formats.py | 18 - .../django/conf/locale/fr/LC_MESSAGES/django.mo | Bin 78477 -> 0 bytes .../django/conf/locale/fr/LC_MESSAGES/django.po | 5198 ------------ .../django/conf/locale/fr/LC_MESSAGES/djangojs.mo | Bin 2726 -> 0 bytes .../django/conf/locale/fr/LC_MESSAGES/djangojs.po | 162 - parts/django/django/conf/locale/fr/__init__.py | 0 parts/django/django/conf/locale/fr/formats.py | 36 - .../django/conf/locale/fy_NL/LC_MESSAGES/django.mo | Bin 4885 -> 0 bytes .../django/conf/locale/fy_NL/LC_MESSAGES/django.po | 4997 ------------ .../conf/locale/fy_NL/LC_MESSAGES/djangojs.mo | Bin 367 -> 0 bytes .../conf/locale/fy_NL/LC_MESSAGES/djangojs.po | 119 - parts/django/django/conf/locale/fy_NL/__init__.py | 0 parts/django/django/conf/locale/fy_NL/formats.py | 18 - .../django/conf/locale/ga/LC_MESSAGES/django.mo | Bin 78750 -> 0 bytes .../django/conf/locale/ga/LC_MESSAGES/django.po | 5223 ------------- .../django/conf/locale/ga/LC_MESSAGES/djangojs.mo | Bin 2639 -> 0 bytes .../django/conf/locale/ga/LC_MESSAGES/djangojs.po | 156 - parts/django/django/conf/locale/ga/__init__.py | 0 parts/django/django/conf/locale/ga/formats.py | 18 - .../django/conf/locale/gl/LC_MESSAGES/django.mo | Bin 49175 -> 0 bytes .../django/conf/locale/gl/LC_MESSAGES/django.po | 3028 ------- .../django/conf/locale/gl/LC_MESSAGES/djangojs.mo | Bin 1519 -> 0 bytes .../django/conf/locale/gl/LC_MESSAGES/djangojs.po | 109 - parts/django/django/conf/locale/gl/__init__.py | 0 parts/django/django/conf/locale/gl/formats.py | 18 - .../django/conf/locale/he/LC_MESSAGES/django.mo | Bin 83367 -> 0 bytes .../django/conf/locale/he/LC_MESSAGES/django.po | 5064 ------------ .../django/conf/locale/he/LC_MESSAGES/djangojs.mo | Bin 2938 -> 0 bytes .../django/conf/locale/he/LC_MESSAGES/djangojs.po | 159 - parts/django/django/conf/locale/he/__init__.py | 0 parts/django/django/conf/locale/he/formats.py | 18 - .../django/conf/locale/hi/LC_MESSAGES/django.mo | Bin 69628 -> 0 bytes .../django/conf/locale/hi/LC_MESSAGES/django.po | 4121 ---------- .../django/conf/locale/hi/LC_MESSAGES/djangojs.mo | Bin 2094 -> 0 bytes .../django/conf/locale/hi/LC_MESSAGES/djangojs.po | 116 - parts/django/django/conf/locale/hi/__init__.py | 0 parts/django/django/conf/locale/hi/formats.py | 18 - .../django/conf/locale/hr/LC_MESSAGES/django.mo | Bin 75854 -> 0 bytes .../django/conf/locale/hr/LC_MESSAGES/django.po | 5199 ------------ .../django/conf/locale/hr/LC_MESSAGES/djangojs.mo | Bin 1740 -> 0 bytes .../django/conf/locale/hr/LC_MESSAGES/djangojs.po | 119 - parts/django/django/conf/locale/hr/__init__.py | 0 parts/django/django/conf/locale/hr/formats.py | 42 - .../django/conf/locale/hu/LC_MESSAGES/django.mo | Bin 68796 -> 0 bytes .../django/conf/locale/hu/LC_MESSAGES/django.po | 4423 ----------- .../django/conf/locale/hu/LC_MESSAGES/djangojs.mo | Bin 1638 -> 0 bytes .../django/conf/locale/hu/LC_MESSAGES/djangojs.po | 111 - parts/django/django/conf/locale/hu/__init__.py | 0 parts/django/django/conf/locale/hu/formats.py | 18 - .../django/conf/locale/id/LC_MESSAGES/django.mo | Bin 74754 -> 0 bytes .../django/conf/locale/id/LC_MESSAGES/django.po | 5127 ------------ .../django/conf/locale/id/LC_MESSAGES/djangojs.mo | Bin 2579 -> 0 bytes .../django/conf/locale/id/LC_MESSAGES/djangojs.po | 157 - parts/django/django/conf/locale/id/__init__.py | 0 parts/django/django/conf/locale/id/formats.py | 43 - .../django/conf/locale/is/LC_MESSAGES/django.mo | Bin 36864 -> 0 bytes .../django/conf/locale/is/LC_MESSAGES/django.po | 4285 ---------- .../django/conf/locale/is/LC_MESSAGES/djangojs.mo | Bin 1603 -> 0 bytes .../django/conf/locale/is/LC_MESSAGES/djangojs.po | 109 - parts/django/django/conf/locale/is/__init__.py | 0 parts/django/django/conf/locale/is/formats.py | 18 - .../django/conf/locale/it/LC_MESSAGES/django.mo | Bin 75958 -> 0 bytes .../django/conf/locale/it/LC_MESSAGES/django.po | 5124 ------------ .../django/conf/locale/it/LC_MESSAGES/djangojs.mo | Bin 1729 -> 0 bytes .../django/conf/locale/it/LC_MESSAGES/djangojs.po | 124 - parts/django/django/conf/locale/it/__init__.py | 0 parts/django/django/conf/locale/it/formats.py | 41 - .../django/conf/locale/ja/LC_MESSAGES/django.mo | Bin 75882 -> 0 bytes .../django/conf/locale/ja/LC_MESSAGES/django.po | 5116 ------------ .../django/conf/locale/ja/LC_MESSAGES/djangojs.mo | Bin 2696 -> 0 bytes .../django/conf/locale/ja/LC_MESSAGES/djangojs.po | 144 - parts/django/django/conf/locale/ja/__init__.py | 0 parts/django/django/conf/locale/ja/formats.py | 18 - .../django/conf/locale/ka/LC_MESSAGES/django.mo | Bin 93456 -> 0 bytes .../django/conf/locale/ka/LC_MESSAGES/django.po | 4176 ---------- .../django/conf/locale/ka/LC_MESSAGES/djangojs.mo | Bin 2217 -> 0 bytes .../django/conf/locale/ka/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/ka/__init__.py | 0 parts/django/django/conf/locale/ka/formats.py | 42 - .../django/conf/locale/km/LC_MESSAGES/django.mo | Bin 68554 -> 0 bytes .../django/conf/locale/km/LC_MESSAGES/django.po | 2508 ------ .../django/conf/locale/km/LC_MESSAGES/djangojs.mo | Bin 1938 -> 0 bytes .../django/conf/locale/km/LC_MESSAGES/djangojs.po | 108 - parts/django/django/conf/locale/km/__init__.py | 0 parts/django/django/conf/locale/km/formats.py | 18 - .../django/conf/locale/kn/LC_MESSAGES/django.mo | Bin 56739 -> 0 bytes .../django/conf/locale/kn/LC_MESSAGES/django.po | 2536 ------ .../django/conf/locale/kn/LC_MESSAGES/djangojs.mo | Bin 2198 -> 0 bytes .../django/conf/locale/kn/LC_MESSAGES/djangojs.po | 116 - parts/django/django/conf/locale/kn/__init__.py | 0 parts/django/django/conf/locale/kn/formats.py | 18 - .../django/conf/locale/ko/LC_MESSAGES/django.mo | Bin 74546 -> 0 bytes .../django/conf/locale/ko/LC_MESSAGES/django.po | 5124 ------------ .../django/conf/locale/ko/LC_MESSAGES/djangojs.mo | Bin 2485 -> 0 bytes .../django/conf/locale/ko/LC_MESSAGES/djangojs.po | 154 - parts/django/django/conf/locale/ko/__init__.py | 0 parts/django/django/conf/locale/ko/formats.py | 44 - .../django/conf/locale/lt/LC_MESSAGES/django.mo | Bin 44186 -> 0 bytes .../django/conf/locale/lt/LC_MESSAGES/django.po | 2868 ------- .../django/conf/locale/lt/LC_MESSAGES/djangojs.mo | Bin 1667 -> 0 bytes .../django/conf/locale/lt/LC_MESSAGES/djangojs.po | 116 - parts/django/django/conf/locale/lt/__init__.py | 0 parts/django/django/conf/locale/lt/formats.py | 18 - .../django/conf/locale/lv/LC_MESSAGES/django.mo | Bin 58805 -> 0 bytes .../django/conf/locale/lv/LC_MESSAGES/django.po | 5471 ------------- .../django/conf/locale/lv/LC_MESSAGES/djangojs.mo | Bin 2853 -> 0 bytes .../django/conf/locale/lv/LC_MESSAGES/djangojs.po | 164 - parts/django/django/conf/locale/lv/__init__.py | 0 parts/django/django/conf/locale/lv/formats.py | 36 - .../django/conf/locale/mk/LC_MESSAGES/django.mo | Bin 93415 -> 0 bytes .../django/conf/locale/mk/LC_MESSAGES/django.po | 5140 ------------ .../django/conf/locale/mk/LC_MESSAGES/djangojs.mo | Bin 1926 -> 0 bytes .../django/conf/locale/mk/LC_MESSAGES/djangojs.po | 126 - parts/django/django/conf/locale/mk/__init__.py | 0 parts/django/django/conf/locale/mk/formats.py | 18 - .../django/conf/locale/ml/LC_MESSAGES/django.mo | Bin 64084 -> 0 bytes .../django/conf/locale/ml/LC_MESSAGES/django.po | 5044 ------------ .../django/conf/locale/ml/LC_MESSAGES/djangojs.mo | Bin 4350 -> 0 bytes .../django/conf/locale/ml/LC_MESSAGES/djangojs.po | 156 - parts/django/django/conf/locale/ml/__init__.py | 0 parts/django/django/conf/locale/ml/formats.py | 38 - .../django/conf/locale/mn/LC_MESSAGES/django.mo | Bin 69940 -> 0 bytes .../django/conf/locale/mn/LC_MESSAGES/django.po | 5243 ------------- .../django/conf/locale/mn/LC_MESSAGES/djangojs.mo | Bin 367 -> 0 bytes .../django/conf/locale/mn/LC_MESSAGES/djangojs.po | 149 - parts/django/django/conf/locale/mn/__init__.py | 0 parts/django/django/conf/locale/mn/formats.py | 18 - .../django/conf/locale/nb/LC_MESSAGES/django.mo | Bin 68407 -> 0 bytes .../django/conf/locale/nb/LC_MESSAGES/django.po | 5132 ------------ .../django/conf/locale/nb/LC_MESSAGES/djangojs.mo | Bin 1539 -> 0 bytes .../django/conf/locale/nb/LC_MESSAGES/djangojs.po | 119 - parts/django/django/conf/locale/nb/__init__.py | 0 parts/django/django/conf/locale/nb/formats.py | 34 - .../django/conf/locale/nl/LC_MESSAGES/django.mo | Bin 65480 -> 0 bytes .../django/conf/locale/nl/LC_MESSAGES/django.po | 4443 ----------- .../django/conf/locale/nl/LC_MESSAGES/djangojs.mo | Bin 1609 -> 0 bytes .../django/conf/locale/nl/LC_MESSAGES/djangojs.po | 118 - parts/django/django/conf/locale/nl/__init__.py | 0 parts/django/django/conf/locale/nl/formats.py | 48 - .../django/conf/locale/nn/LC_MESSAGES/django.mo | Bin 72359 -> 0 bytes .../django/conf/locale/nn/LC_MESSAGES/django.po | 5150 ------------ .../django/conf/locale/nn/LC_MESSAGES/djangojs.mo | Bin 2506 -> 0 bytes .../django/conf/locale/nn/LC_MESSAGES/djangojs.po | 155 - parts/django/django/conf/locale/nn/__init__.py | 0 parts/django/django/conf/locale/nn/formats.py | 34 - .../django/conf/locale/no/LC_MESSAGES/django.mo | Bin 68407 -> 0 bytes .../django/conf/locale/no/LC_MESSAGES/django.po | 5133 ------------ .../django/conf/locale/no/LC_MESSAGES/djangojs.mo | Bin 1539 -> 0 bytes .../django/conf/locale/no/LC_MESSAGES/djangojs.po | 120 - parts/django/django/conf/locale/no/__init__.py | 0 parts/django/django/conf/locale/no/formats.py | 34 - .../django/conf/locale/pl/LC_MESSAGES/django.mo | Bin 69963 -> 0 bytes .../django/conf/locale/pl/LC_MESSAGES/django.po | 5172 ------------ .../django/conf/locale/pl/LC_MESSAGES/djangojs.mo | Bin 1733 -> 0 bytes .../django/conf/locale/pl/LC_MESSAGES/djangojs.po | 120 - parts/django/django/conf/locale/pl/__init__.py | 0 parts/django/django/conf/locale/pl/formats.py | 32 - .../django/conf/locale/pt/LC_MESSAGES/django.mo | Bin 52977 -> 0 bytes .../django/conf/locale/pt/LC_MESSAGES/django.po | 5149 ------------ .../django/conf/locale/pt/LC_MESSAGES/djangojs.mo | Bin 1596 -> 0 bytes .../django/conf/locale/pt/LC_MESSAGES/djangojs.po | 125 - parts/django/django/conf/locale/pt/__init__.py | 0 parts/django/django/conf/locale/pt/formats.py | 35 - .../django/conf/locale/pt_BR/LC_MESSAGES/django.mo | Bin 75625 -> 0 bytes .../django/conf/locale/pt_BR/LC_MESSAGES/django.po | 5119 ------------ .../conf/locale/pt_BR/LC_MESSAGES/djangojs.mo | Bin 1662 -> 0 bytes .../conf/locale/pt_BR/LC_MESSAGES/djangojs.po | 113 - parts/django/django/conf/locale/pt_BR/__init__.py | 0 parts/django/django/conf/locale/pt_BR/formats.py | 35 - .../django/conf/locale/ro/LC_MESSAGES/django.mo | Bin 66590 -> 0 bytes .../django/conf/locale/ro/LC_MESSAGES/django.po | 4268 ---------- .../django/conf/locale/ro/LC_MESSAGES/djangojs.mo | Bin 1476 -> 0 bytes .../django/conf/locale/ro/LC_MESSAGES/djangojs.po | 116 - parts/django/django/conf/locale/ro/__init__.py | 0 parts/django/django/conf/locale/ro/formats.py | 18 - .../django/conf/locale/ru/LC_MESSAGES/django.mo | Bin 96144 -> 0 bytes .../django/conf/locale/ru/LC_MESSAGES/django.po | 5069 ------------ .../django/conf/locale/ru/LC_MESSAGES/djangojs.mo | Bin 3735 -> 0 bytes .../django/conf/locale/ru/LC_MESSAGES/djangojs.po | 144 - parts/django/django/conf/locale/ru/__init__.py | 0 parts/django/django/conf/locale/ru/formats.py | 35 - .../django/conf/locale/sk/LC_MESSAGES/django.mo | Bin 77069 -> 0 bytes .../django/conf/locale/sk/LC_MESSAGES/django.po | 5183 ------------ .../django/conf/locale/sk/LC_MESSAGES/djangojs.mo | Bin 2659 -> 0 bytes .../django/conf/locale/sk/LC_MESSAGES/djangojs.po | 156 - parts/django/django/conf/locale/sk/__init__.py | 0 parts/django/django/conf/locale/sk/formats.py | 32 - .../django/conf/locale/sl/LC_MESSAGES/django.mo | Bin 76473 -> 0 bytes .../django/conf/locale/sl/LC_MESSAGES/django.po | 5182 ------------ .../django/conf/locale/sl/LC_MESSAGES/djangojs.mo | Bin 2794 -> 0 bytes .../django/conf/locale/sl/LC_MESSAGES/djangojs.po | 165 - parts/django/django/conf/locale/sl/__init__.py | 0 parts/django/django/conf/locale/sl/formats.py | 18 - .../django/conf/locale/sq/LC_MESSAGES/django.mo | Bin 5125 -> 0 bytes .../django/conf/locale/sq/LC_MESSAGES/django.po | 5011 ------------ .../django/conf/locale/sq/LC_MESSAGES/djangojs.mo | Bin 367 -> 0 bytes .../django/conf/locale/sq/LC_MESSAGES/djangojs.po | 119 - parts/django/django/conf/locale/sq/__init__.py | 0 parts/django/django/conf/locale/sq/formats.py | 18 - .../django/conf/locale/sr/LC_MESSAGES/django.mo | Bin 57173 -> 0 bytes .../django/conf/locale/sr/LC_MESSAGES/django.po | 5152 ------------ .../django/conf/locale/sr/LC_MESSAGES/djangojs.mo | Bin 2683 -> 0 bytes .../django/conf/locale/sr/LC_MESSAGES/djangojs.po | 144 - parts/django/django/conf/locale/sr/__init__.py | 0 parts/django/django/conf/locale/sr/formats.py | 44 - .../conf/locale/sr_Latn/LC_MESSAGES/django.mo | Bin 45656 -> 0 bytes .../conf/locale/sr_Latn/LC_MESSAGES/django.po | 5037 ------------ .../conf/locale/sr_Latn/LC_MESSAGES/djangojs.mo | Bin 2580 -> 0 bytes .../conf/locale/sr_Latn/LC_MESSAGES/djangojs.po | 153 - .../django/django/conf/locale/sr_Latn/__init__.py | 0 parts/django/django/conf/locale/sr_Latn/formats.py | 44 - .../django/conf/locale/sv/LC_MESSAGES/django.mo | Bin 63220 -> 0 bytes .../django/conf/locale/sv/LC_MESSAGES/django.po | 4804 ------------ .../django/conf/locale/sv/LC_MESSAGES/djangojs.mo | Bin 1688 -> 0 bytes .../django/conf/locale/sv/LC_MESSAGES/djangojs.po | 121 - parts/django/django/conf/locale/sv/__init__.py | 0 parts/django/django/conf/locale/sv/formats.py | 35 - .../django/conf/locale/ta/LC_MESSAGES/django.mo | Bin 60018 -> 0 bytes .../django/conf/locale/ta/LC_MESSAGES/django.po | 2136 ----- .../django/conf/locale/ta/LC_MESSAGES/djangojs.mo | Bin 2334 -> 0 bytes .../django/conf/locale/ta/LC_MESSAGES/djangojs.po | 112 - parts/django/django/conf/locale/ta/__init__.py | 0 parts/django/django/conf/locale/ta/formats.py | 18 - .../django/conf/locale/te/LC_MESSAGES/django.mo | Bin 66372 -> 0 bytes .../django/conf/locale/te/LC_MESSAGES/django.po | 4112 ---------- .../django/conf/locale/te/LC_MESSAGES/djangojs.mo | Bin 2330 -> 0 bytes .../django/conf/locale/te/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/te/__init__.py | 0 parts/django/django/conf/locale/te/formats.py | 18 - .../django/conf/locale/th/LC_MESSAGES/django.mo | Bin 83394 -> 0 bytes .../django/conf/locale/th/LC_MESSAGES/django.po | 3932 ---------- .../django/conf/locale/th/LC_MESSAGES/djangojs.mo | Bin 2322 -> 0 bytes .../django/conf/locale/th/LC_MESSAGES/djangojs.po | 117 - parts/django/django/conf/locale/th/__init__.py | 0 parts/django/django/conf/locale/th/formats.py | 18 - .../django/conf/locale/tr/LC_MESSAGES/django.mo | Bin 75061 -> 0 bytes .../django/conf/locale/tr/LC_MESSAGES/django.po | 5113 ------------ .../django/conf/locale/tr/LC_MESSAGES/djangojs.mo | Bin 1747 -> 0 bytes .../django/conf/locale/tr/LC_MESSAGES/djangojs.po | 123 - parts/django/django/conf/locale/tr/__init__.py | 0 parts/django/django/conf/locale/tr/formats.py | 32 - .../django/conf/locale/uk/LC_MESSAGES/django.mo | Bin 87474 -> 0 bytes .../django/conf/locale/uk/LC_MESSAGES/django.po | 4774 ------------ .../django/conf/locale/uk/LC_MESSAGES/djangojs.mo | Bin 1892 -> 0 bytes .../django/conf/locale/uk/LC_MESSAGES/djangojs.po | 118 - parts/django/django/conf/locale/uk/__init__.py | 0 parts/django/django/conf/locale/uk/formats.py | 18 - .../django/conf/locale/vi/LC_MESSAGES/django.mo | Bin 33952 -> 0 bytes .../django/conf/locale/vi/LC_MESSAGES/django.po | 5058 ------------ .../django/conf/locale/vi/LC_MESSAGES/djangojs.mo | Bin 1049 -> 0 bytes .../django/conf/locale/vi/LC_MESSAGES/djangojs.po | 115 - parts/django/django/conf/locale/vi/__init__.py | 0 parts/django/django/conf/locale/vi/formats.py | 18 - .../django/conf/locale/zh_CN/LC_MESSAGES/django.mo | Bin 61710 -> 0 bytes .../django/conf/locale/zh_CN/LC_MESSAGES/django.po | 4208 ---------- .../conf/locale/zh_CN/LC_MESSAGES/djangojs.mo | Bin 1517 -> 0 bytes .../conf/locale/zh_CN/LC_MESSAGES/djangojs.po | 105 - parts/django/django/conf/locale/zh_CN/__init__.py | 0 parts/django/django/conf/locale/zh_CN/formats.py | 18 - .../django/conf/locale/zh_TW/LC_MESSAGES/django.mo | Bin 38115 -> 0 bytes .../django/conf/locale/zh_TW/LC_MESSAGES/django.po | 4147 ---------- .../conf/locale/zh_TW/LC_MESSAGES/djangojs.mo | Bin 358 -> 0 bytes .../conf/locale/zh_TW/LC_MESSAGES/djangojs.po | 118 - parts/django/django/conf/locale/zh_TW/__init__.py | 0 parts/django/django/conf/locale/zh_TW/formats.py | 18 - .../django/conf/project_template/__init__.py | 0 .../django/django/conf/project_template/manage.py | 11 - .../django/conf/project_template/settings.py | 96 - parts/django/django/conf/project_template/urls.py | 16 - parts/django/django/conf/urls/__init__.py | 0 parts/django/django/conf/urls/defaults.py | 42 - parts/django/django/conf/urls/i18n.py | 5 - parts/django/django/conf/urls/shortcut.py | 5 - parts/django/django/contrib/__init__.py | 0 parts/django/django/contrib/admin/__init__.py | 36 - parts/django/django/contrib/admin/actions.py | 73 - parts/django/django/contrib/admin/filterspecs.py | 179 - parts/django/django/contrib/admin/helpers.py | 344 - .../django/django/contrib/admin/media/css/base.css | 759 -- .../django/contrib/admin/media/css/changelists.css | 286 - .../django/contrib/admin/media/css/dashboard.css | 24 - .../django/contrib/admin/media/css/forms.css | 354 - parts/django/django/contrib/admin/media/css/ie.css | 57 - .../django/contrib/admin/media/css/login.css | 54 - .../django/django/contrib/admin/media/css/rtl.css | 221 - .../django/contrib/admin/media/css/widgets.css | 506 -- .../contrib/admin/media/img/admin/arrow-down.gif | Bin 80 -> 0 bytes .../contrib/admin/media/img/admin/arrow-up.gif | Bin 838 -> 0 bytes .../admin/media/img/admin/changelist-bg.gif | Bin 58 -> 0 bytes .../admin/media/img/admin/changelist-bg_rtl.gif | Bin 75 -> 0 bytes .../contrib/admin/media/img/admin/chooser-bg.gif | Bin 199 -> 0 bytes .../admin/media/img/admin/chooser_stacked-bg.gif | Bin 212 -> 0 bytes .../admin/media/img/admin/default-bg-reverse.gif | Bin 843 -> 0 bytes .../contrib/admin/media/img/admin/default-bg.gif | Bin 844 -> 0 bytes .../admin/media/img/admin/deleted-overlay.gif | Bin 45 -> 0 bytes .../contrib/admin/media/img/admin/icon-no.gif | Bin 176 -> 0 bytes .../contrib/admin/media/img/admin/icon-unknown.gif | Bin 130 -> 0 bytes .../contrib/admin/media/img/admin/icon-yes.gif | Bin 299 -> 0 bytes .../contrib/admin/media/img/admin/icon_addlink.gif | Bin 119 -> 0 bytes .../contrib/admin/media/img/admin/icon_alert.gif | Bin 145 -> 0 bytes .../admin/media/img/admin/icon_calendar.gif | Bin 192 -> 0 bytes .../admin/media/img/admin/icon_changelink.gif | Bin 119 -> 0 bytes .../contrib/admin/media/img/admin/icon_clock.gif | Bin 390 -> 0 bytes .../admin/media/img/admin/icon_deletelink.gif | Bin 181 -> 0 bytes .../contrib/admin/media/img/admin/icon_error.gif | Bin 319 -> 0 bytes .../admin/media/img/admin/icon_searchbox.png | Bin 667 -> 0 bytes .../contrib/admin/media/img/admin/icon_success.gif | Bin 341 -> 0 bytes .../admin/media/img/admin/inline-delete-8bit.png | Bin 477 -> 0 bytes .../admin/media/img/admin/inline-delete.png | Bin 781 -> 0 bytes .../admin/media/img/admin/inline-restore-8bit.png | Bin 447 -> 0 bytes .../admin/media/img/admin/inline-restore.png | Bin 623 -> 0 bytes .../admin/media/img/admin/inline-splitter-bg.gif | Bin 102 -> 0 bytes .../admin/media/img/admin/nav-bg-grabber.gif | Bin 116 -> 0 bytes .../admin/media/img/admin/nav-bg-reverse.gif | Bin 186 -> 0 bytes .../contrib/admin/media/img/admin/nav-bg.gif | Bin 273 -> 0 bytes .../contrib/admin/media/img/admin/selector-add.gif | Bin 606 -> 0 bytes .../admin/media/img/admin/selector-addall.gif | Bin 358 -> 0 bytes .../admin/media/img/admin/selector-remove.gif | Bin 398 -> 0 bytes .../admin/media/img/admin/selector-removeall.gif | Bin 355 -> 0 bytes .../admin/media/img/admin/selector-search.gif | Bin 552 -> 0 bytes .../admin/media/img/admin/selector_stacked-add.gif | Bin 612 -> 0 bytes .../media/img/admin/selector_stacked-remove.gif | Bin 401 -> 0 bytes .../contrib/admin/media/img/admin/tool-left.gif | Bin 197 -> 0 bytes .../admin/media/img/admin/tool-left_over.gif | Bin 203 -> 0 bytes .../contrib/admin/media/img/admin/tool-right.gif | Bin 198 -> 0 bytes .../admin/media/img/admin/tool-right_over.gif | Bin 200 -> 0 bytes .../contrib/admin/media/img/admin/tooltag-add.gif | Bin 932 -> 0 bytes .../admin/media/img/admin/tooltag-add_over.gif | Bin 336 -> 0 bytes .../admin/media/img/admin/tooltag-arrowright.gif | Bin 351 -> 0 bytes .../media/img/admin/tooltag-arrowright_over.gif | Bin 354 -> 0 bytes .../admin/media/img/gis/move_vertex_off.png | Bin 711 -> 0 bytes .../contrib/admin/media/img/gis/move_vertex_on.png | Bin 506 -> 0 bytes .../contrib/admin/media/js/LICENSE-JQUERY.txt | 20 - .../django/contrib/admin/media/js/SelectBox.js | 111 - .../django/contrib/admin/media/js/SelectFilter2.js | 117 - .../django/contrib/admin/media/js/actions.js | 139 - .../django/contrib/admin/media/js/actions.min.js | 7 - .../admin/media/js/admin/DateTimeShortcuts.js | 274 - .../admin/media/js/admin/RelatedObjectLookups.js | 96 - .../contrib/admin/media/js/admin/ordering.js | 137 - .../django/contrib/admin/media/js/calendar.js | 156 - .../django/contrib/admin/media/js/collapse.js | 27 - .../django/contrib/admin/media/js/collapse.min.js | 2 - .../django/contrib/admin/media/js/compress.py | 47 - parts/django/django/contrib/admin/media/js/core.js | 221 - .../django/contrib/admin/media/js/dateparse.js | 233 - .../admin/media/js/getElementsBySelector.js | 167 - .../django/contrib/admin/media/js/inlines.js | 148 - .../django/contrib/admin/media/js/inlines.min.js | 6 - .../django/contrib/admin/media/js/jquery.init.js | 4 - .../django/django/contrib/admin/media/js/jquery.js | 6240 --------------- .../django/contrib/admin/media/js/jquery.min.js | 154 - .../django/contrib/admin/media/js/prepopulate.js | 34 - .../contrib/admin/media/js/prepopulate.min.js | 1 - .../django/contrib/admin/media/js/timeparse.js | 94 - .../django/django/contrib/admin/media/js/urlify.js | 140 - parts/django/django/contrib/admin/models.py | 54 - parts/django/django/contrib/admin/options.py | 1306 ---- parts/django/django/contrib/admin/sites.py | 534 -- .../django/contrib/admin/templates/admin/404.html | 12 - .../django/contrib/admin/templates/admin/500.html | 12 - .../contrib/admin/templates/admin/actions.html | 16 - .../contrib/admin/templates/admin/app_index.html | 15 - .../admin/templates/admin/auth/user/add_form.html | 14 - .../templates/admin/auth/user/change_password.html | 54 - .../django/contrib/admin/templates/admin/base.html | 82 - .../contrib/admin/templates/admin/base_site.html | 10 - .../contrib/admin/templates/admin/change_form.html | 67 - .../contrib/admin/templates/admin/change_list.html | 102 - .../admin/templates/admin/change_list_results.html | 22 - .../admin/templates/admin/date_hierarchy.html | 10 - .../admin/templates/admin/delete_confirmation.html | 32 - .../admin/delete_selected_confirmation.html | 37 - .../admin/templates/admin/edit_inline/stacked.html | 82 - .../admin/templates/admin/edit_inline/tabular.html | 128 - .../contrib/admin/templates/admin/filter.html | 8 - .../admin/templates/admin/includes/fieldset.html | 29 - .../contrib/admin/templates/admin/index.html | 80 - .../admin/templates/admin/invalid_setup.html | 8 - .../contrib/admin/templates/admin/login.html | 34 - .../admin/templates/admin/object_history.html | 42 - .../contrib/admin/templates/admin/pagination.html | 12 - .../templates/admin/prepopulated_fields_js.html | 23 - .../contrib/admin/templates/admin/search_form.html | 18 - .../contrib/admin/templates/admin/submit_line.html | 8 - .../admin/templates/registration/logged_out.html | 12 - .../registration/password_change_done.html | 14 - .../registration/password_change_form.html | 50 - .../registration/password_reset_complete.html | 16 - .../registration/password_reset_confirm.html | 32 - .../registration/password_reset_done.html | 14 - .../registration/password_reset_email.html | 15 - .../registration/password_reset_form.html | 19 - .../django/contrib/admin/templatetags/__init__.py | 0 .../contrib/admin/templatetags/admin_list.py | 304 - .../contrib/admin/templatetags/admin_modify.py | 42 - .../contrib/admin/templatetags/adminmedia.py | 15 - .../django/contrib/admin/templatetags/log.py | 57 - parts/django/django/contrib/admin/util.py | 340 - parts/django/django/contrib/admin/validation.py | 379 - .../django/django/contrib/admin/views/__init__.py | 0 .../django/contrib/admin/views/decorators.py | 73 - parts/django/django/contrib/admin/views/main.py | 251 - parts/django/django/contrib/admin/widgets.py | 293 - parts/django/django/contrib/admindocs/__init__.py | 0 parts/django/django/contrib/admindocs/models.py | 1 - .../templates/admin_doc/bookmarklets.html | 31 - .../admindocs/templates/admin_doc/index.html | 28 - .../templates/admin_doc/missing_docutils.html | 16 - .../templates/admin_doc/model_detail.html | 46 - .../admindocs/templates/admin_doc/model_index.html | 44 - .../templates/admin_doc/template_detail.html | 21 - .../templates/admin_doc/template_filter_index.html | 47 - .../templates/admin_doc/template_tag_index.html | 47 - .../admindocs/templates/admin_doc/view_detail.html | 25 - .../admindocs/templates/admin_doc/view_index.html | 43 - .../django/contrib/admindocs/tests/__init__.py | 30 - .../django/contrib/admindocs/tests/fields.py | 7 - parts/django/django/contrib/admindocs/urls.py | 41 - parts/django/django/contrib/admindocs/utils.py | 105 - parts/django/django/contrib/admindocs/views.py | 387 - parts/django/django/contrib/auth/__init__.py | 105 - parts/django/django/contrib/auth/admin.py | 153 - parts/django/django/contrib/auth/backends.py | 121 - .../django/contrib/auth/context_processors.py | 33 - .../django/django/contrib/auth/create_superuser.py | 8 - parts/django/django/contrib/auth/decorators.py | 52 - .../django/contrib/auth/fixtures/authtestdata.json | 56 - parts/django/django/contrib/auth/forms.py | 214 - .../django/contrib/auth/handlers/__init__.py | 0 .../django/contrib/auth/handlers/modpython.py | 56 - .../django/contrib/auth/management/__init__.py | 50 - .../contrib/auth/management/commands/__init__.py | 0 .../auth/management/commands/changepassword.py | 48 - .../auth/management/commands/createsuperuser.py | 136 - parts/django/django/contrib/auth/middleware.py | 81 - parts/django/django/contrib/auth/models.py | 474 -- parts/django/django/contrib/auth/tests/__init__.py | 12 - .../django/contrib/auth/tests/auth_backends.py | 268 - parts/django/django/contrib/auth/tests/basic.py | 92 - .../django/django/contrib/auth/tests/decorators.py | 25 - parts/django/django/contrib/auth/tests/forms.py | 252 - parts/django/django/contrib/auth/tests/models.py | 35 - .../django/contrib/auth/tests/remote_user.py | 170 - .../tests/templates/registration/logged_out.html | 1 - .../auth/tests/templates/registration/login.html | 1 - .../registration/password_change_form.html | 1 - .../registration/password_reset_complete.html | 1 - .../registration/password_reset_confirm.html | 5 - .../registration/password_reset_done.html | 1 - .../registration/password_reset_email.html | 1 - .../registration/password_reset_form.html | 1 - parts/django/django/contrib/auth/tests/tokens.py | 63 - parts/django/django/contrib/auth/tests/urls.py | 18 - parts/django/django/contrib/auth/tests/views.py | 286 - parts/django/django/contrib/auth/tokens.py | 66 - parts/django/django/contrib/auth/urls.py | 17 - parts/django/django/contrib/auth/views.py | 188 - parts/django/django/contrib/comments/__init__.py | 91 - parts/django/django/contrib/comments/admin.py | 73 - parts/django/django/contrib/comments/feeds.py | 38 - parts/django/django/contrib/comments/forms.py | 190 - parts/django/django/contrib/comments/managers.py | 22 - parts/django/django/contrib/comments/models.py | 191 - parts/django/django/contrib/comments/moderation.py | 353 - parts/django/django/contrib/comments/signals.py | 21 - .../comments/templates/comments/400-debug.html | 53 - .../comments/templates/comments/approve.html | 15 - .../comments/templates/comments/approved.html | 8 - .../contrib/comments/templates/comments/base.html | 10 - .../comments/templates/comments/delete.html | 15 - .../comments/templates/comments/deleted.html | 8 - .../contrib/comments/templates/comments/flag.html | 15 - .../comments/templates/comments/flagged.html | 8 - .../contrib/comments/templates/comments/form.html | 20 - .../contrib/comments/templates/comments/list.html | 10 - .../comments/templates/comments/posted.html | 8 - .../comments/templates/comments/preview.html | 36 - .../contrib/comments/templatetags/__init__.py | 0 .../contrib/comments/templatetags/comments.py | 333 - parts/django/django/contrib/comments/urls.py | 16 - .../django/contrib/comments/views/__init__.py | 0 .../django/contrib/comments/views/comments.py | 136 - .../django/contrib/comments/views/moderation.py | 159 - .../django/django/contrib/comments/views/utils.py | 58 - .../django/django/contrib/contenttypes/__init__.py | 0 .../django/django/contrib/contenttypes/generic.py | 409 - .../django/contrib/contenttypes/management.py | 60 - parts/django/django/contrib/contenttypes/models.py | 105 - parts/django/django/contrib/contenttypes/tests.py | 69 - parts/django/django/contrib/contenttypes/views.py | 71 - parts/django/django/contrib/csrf/__init__.py | 0 parts/django/django/contrib/csrf/middleware.py | 7 - parts/django/django/contrib/databrowse/__init__.py | 1 - .../django/contrib/databrowse/datastructures.py | 215 - .../django/contrib/databrowse/plugins/__init__.py | 0 .../django/contrib/databrowse/plugins/calendars.py | 86 - .../contrib/databrowse/plugins/fieldchoices.py | 74 - .../django/contrib/databrowse/plugins/objects.py | 14 - parts/django/django/contrib/databrowse/sites.py | 149 - .../databrowse/templates/databrowse/base.html | 61 - .../databrowse/templates/databrowse/base_site.html | 1 - .../templates/databrowse/calendar_day.html | 17 - .../templates/databrowse/calendar_homepage.html | 17 - .../templates/databrowse/calendar_main.html | 17 - .../templates/databrowse/calendar_month.html | 17 - .../templates/databrowse/calendar_year.html | 17 - .../templates/databrowse/choice_detail.html | 17 - .../templates/databrowse/choice_list.html | 17 - .../templates/databrowse/fieldchoice_detail.html | 17 - .../templates/databrowse/fieldchoice_homepage.html | 17 - .../templates/databrowse/fieldchoice_list.html | 17 - .../databrowse/templates/databrowse/homepage.html | 21 - .../templates/databrowse/model_detail.html | 19 - .../templates/databrowse/object_detail.html | 41 - parts/django/django/contrib/databrowse/urls.py | 20 - parts/django/django/contrib/databrowse/views.py | 19 - parts/django/django/contrib/flatpages/__init__.py | 0 parts/django/django/contrib/flatpages/admin.py | 28 - .../flatpages/fixtures/sample_flatpages.json | 32 - .../django/django/contrib/flatpages/middleware.py | 18 - parts/django/django/contrib/flatpages/models.py | 26 - .../django/contrib/flatpages/tests/__init__.py | 3 - .../django/django/contrib/flatpages/tests/csrf.py | 73 - .../django/contrib/flatpages/tests/middleware.py | 59 - .../contrib/flatpages/tests/templates/404.html | 1 - .../tests/templates/flatpages/default.html | 2 - .../tests/templates/registration/login.html | 0 .../django/django/contrib/flatpages/tests/urls.py | 8 - .../django/django/contrib/flatpages/tests/views.py | 53 - parts/django/django/contrib/flatpages/urls.py | 5 - parts/django/django/contrib/flatpages/views.py | 64 - parts/django/django/contrib/formtools/__init__.py | 0 parts/django/django/contrib/formtools/models.py | 1 - parts/django/django/contrib/formtools/preview.py | 127 - .../formtools/templates/formtools/form.html | 15 - .../formtools/templates/formtools/preview.html | 36 - parts/django/django/contrib/formtools/test_urls.py | 10 - parts/django/django/contrib/formtools/tests.py | 216 - parts/django/django/contrib/formtools/utils.py | 39 - parts/django/django/contrib/formtools/wizard.py | 262 - parts/django/django/contrib/gis/__init__.py | 0 parts/django/django/contrib/gis/admin/__init__.py | 12 - parts/django/django/contrib/gis/admin/options.py | 124 - parts/django/django/contrib/gis/admin/widgets.py | 107 - parts/django/django/contrib/gis/db/__init__.py | 0 .../django/contrib/gis/db/backend/__init__.py | 11 - .../django/contrib/gis/db/backends/__init__.py | 0 .../django/contrib/gis/db/backends/adapter.py | 17 - .../django/django/contrib/gis/db/backends/base.py | 336 - .../contrib/gis/db/backends/mysql/__init__.py | 0 .../django/contrib/gis/db/backends/mysql/base.py | 13 - .../contrib/gis/db/backends/mysql/creation.py | 18 - .../contrib/gis/db/backends/mysql/introspection.py | 32 - .../contrib/gis/db/backends/mysql/operations.py | 65 - .../contrib/gis/db/backends/oracle/__init__.py | 0 .../contrib/gis/db/backends/oracle/adapter.py | 5 - .../django/contrib/gis/db/backends/oracle/base.py | 12 - .../contrib/gis/db/backends/oracle/compiler.py | 44 - .../contrib/gis/db/backends/oracle/creation.py | 42 - .../gis/db/backends/oracle/introspection.py | 39 - .../contrib/gis/db/backends/oracle/models.py | 65 - .../contrib/gis/db/backends/oracle/operations.py | 293 - .../contrib/gis/db/backends/postgis/__init__.py | 0 .../contrib/gis/db/backends/postgis/adapter.py | 35 - .../django/contrib/gis/db/backends/postgis/base.py | 12 - .../contrib/gis/db/backends/postgis/creation.py | 60 - .../gis/db/backends/postgis/introspection.py | 95 - .../contrib/gis/db/backends/postgis/models.py | 66 - .../contrib/gis/db/backends/postgis/operations.py | 589 -- .../contrib/gis/db/backends/spatialite/__init__.py | 0 .../contrib/gis/db/backends/spatialite/adapter.py | 8 - .../contrib/gis/db/backends/spatialite/base.py | 77 - .../contrib/gis/db/backends/spatialite/client.py | 5 - .../contrib/gis/db/backends/spatialite/creation.py | 96 - .../gis/db/backends/spatialite/introspection.py | 51 - .../contrib/gis/db/backends/spatialite/models.py | 60 - .../gis/db/backends/spatialite/operations.py | 343 - .../django/django/contrib/gis/db/backends/util.py | 56 - .../django/contrib/gis/db/models/__init__.py | 14 - .../django/contrib/gis/db/models/aggregates.py | 17 - .../django/django/contrib/gis/db/models/fields.py | 294 - .../django/django/contrib/gis/db/models/manager.py | 103 - parts/django/django/contrib/gis/db/models/proxy.py | 64 - parts/django/django/contrib/gis/db/models/query.py | 777 -- .../django/contrib/gis/db/models/sql/__init__.py | 3 - .../django/contrib/gis/db/models/sql/aggregates.py | 61 - .../django/contrib/gis/db/models/sql/compiler.py | 278 - .../django/contrib/gis/db/models/sql/conversion.py | 27 - .../django/contrib/gis/db/models/sql/query.py | 119 - .../django/contrib/gis/db/models/sql/where.py | 89 - parts/django/django/contrib/gis/feeds.py | 135 - parts/django/django/contrib/gis/forms/__init__.py | 2 - parts/django/django/contrib/gis/forms/fields.py | 67 - parts/django/django/contrib/gis/gdal/LICENSE | 28 - parts/django/django/contrib/gis/gdal/__init__.py | 54 - parts/django/django/contrib/gis/gdal/base.py | 35 - parts/django/django/contrib/gis/gdal/datasource.py | 128 - parts/django/django/contrib/gis/gdal/driver.py | 65 - parts/django/django/contrib/gis/gdal/envelope.py | 175 - parts/django/django/contrib/gis/gdal/error.py | 42 - parts/django/django/contrib/gis/gdal/feature.py | 110 - parts/django/django/contrib/gis/gdal/field.py | 178 - parts/django/django/contrib/gis/gdal/geometries.py | 737 -- parts/django/django/contrib/gis/gdal/geomtype.py | 85 - parts/django/django/contrib/gis/gdal/layer.py | 212 - parts/django/django/contrib/gis/gdal/libgdal.py | 104 - .../django/contrib/gis/gdal/prototypes/__init__.py | 0 .../django/contrib/gis/gdal/prototypes/ds.py | 71 - .../django/contrib/gis/gdal/prototypes/errcheck.py | 127 - .../contrib/gis/gdal/prototypes/generation.py | 119 - .../django/contrib/gis/gdal/prototypes/geom.py | 106 - .../django/contrib/gis/gdal/prototypes/srs.py | 72 - parts/django/django/contrib/gis/gdal/srs.py | 337 - .../django/contrib/gis/gdal/tests/__init__.py | 25 - .../django/contrib/gis/gdal/tests/test_driver.py | 40 - .../django/contrib/gis/gdal/tests/test_ds.py | 226 - .../django/contrib/gis/gdal/tests/test_envelope.py | 94 - .../django/contrib/gis/gdal/tests/test_geom.py | 490 -- .../django/contrib/gis/gdal/tests/test_srs.py | 169 - .../django/django/contrib/gis/geometry/__init__.py | 0 .../contrib/gis/geometry/backend/__init__.py | 21 - .../django/contrib/gis/geometry/backend/geos.py | 3 - parts/django/django/contrib/gis/geometry/regex.py | 12 - .../django/contrib/gis/geometry/test_data.py | 105 - parts/django/django/contrib/gis/geos/LICENSE | 27 - parts/django/django/contrib/gis/geos/__init__.py | 14 - parts/django/django/contrib/gis/geos/base.py | 52 - .../django/django/contrib/gis/geos/collections.py | 123 - parts/django/django/contrib/gis/geos/coordseq.py | 156 - parts/django/django/contrib/gis/geos/error.py | 20 - parts/django/django/contrib/gis/geos/factory.py | 23 - parts/django/django/contrib/gis/geos/geometry.py | 661 -- parts/django/django/contrib/gis/geos/io.py | 20 - parts/django/django/contrib/gis/geos/libgeos.py | 141 - parts/django/django/contrib/gis/geos/linestring.py | 152 - .../django/django/contrib/gis/geos/mutable_list.py | 309 - parts/django/django/contrib/gis/geos/point.py | 135 - parts/django/django/contrib/gis/geos/polygon.py | 166 - parts/django/django/contrib/gis/geos/prepared.py | 30 - .../django/contrib/gis/geos/prototypes/__init__.py | 30 - .../django/contrib/gis/geos/prototypes/coordseq.py | 83 - .../django/contrib/gis/geos/prototypes/errcheck.py | 95 - .../django/contrib/gis/geos/prototypes/geom.py | 119 - .../django/contrib/gis/geos/prototypes/io.py | 242 - .../django/contrib/gis/geos/prototypes/misc.py | 28 - .../contrib/gis/geos/prototypes/predicates.py | 44 - .../django/contrib/gis/geos/prototypes/prepared.py | 25 - .../contrib/gis/geos/prototypes/threadsafe.py | 90 - .../django/contrib/gis/geos/prototypes/topology.py | 51 - .../django/contrib/gis/geos/tests/__init__.py | 25 - .../django/contrib/gis/geos/tests/test_geos.py | 926 --- .../contrib/gis/geos/tests/test_geos_mutation.py | 137 - .../django/contrib/gis/geos/tests/test_io.py | 112 - .../contrib/gis/geos/tests/test_mutable_list.py | 398 - .../django/contrib/gis/management/__init__.py | 0 parts/django/django/contrib/gis/management/base.py | 15 - .../contrib/gis/management/commands/__init__.py | 0 .../contrib/gis/management/commands/inspectdb.py | 32 - .../contrib/gis/management/commands/ogrinspect.py | 122 - parts/django/django/contrib/gis/maps/__init__.py | 0 .../django/contrib/gis/maps/google/__init__.py | 61 - .../django/django/contrib/gis/maps/google/gmap.py | 226 - .../django/contrib/gis/maps/google/overlays.py | 301 - .../django/django/contrib/gis/maps/google/zoom.py | 161 - .../django/contrib/gis/maps/openlayers/__init__.py | 0 parts/django/django/contrib/gis/measure.py | 336 - parts/django/django/contrib/gis/models.py | 9 - parts/django/django/contrib/gis/shortcuts.py | 32 - .../django/django/contrib/gis/sitemaps/__init__.py | 4 - parts/django/django/contrib/gis/sitemaps/georss.py | 53 - parts/django/django/contrib/gis/sitemaps/kml.py | 63 - parts/django/django/contrib/gis/sitemaps/views.py | 111 - .../gis/templates/gis/admin/openlayers.html | 37 - .../contrib/gis/templates/gis/admin/openlayers.js | 167 - .../contrib/gis/templates/gis/admin/osm.html | 2 - .../django/contrib/gis/templates/gis/admin/osm.js | 2 - .../gis/templates/gis/google/google-map.html | 12 - .../contrib/gis/templates/gis/google/google-map.js | 35 - .../gis/templates/gis/google/google-multi.js | 8 - .../gis/templates/gis/google/google-single.js | 2 - .../django/contrib/gis/templates/gis/kml/base.kml | 6 - .../contrib/gis/templates/gis/kml/placemarks.kml | 8 - .../gis/templates/gis/sitemaps/geo_sitemap.xml | 17 - parts/django/django/contrib/gis/tests/__init__.py | 141 - .../contrib/gis/tests/data/cities/cities.dbf | Bin 533 -> 0 bytes .../contrib/gis/tests/data/cities/cities.prj | 1 - .../contrib/gis/tests/data/cities/cities.shp | Bin 184 -> 0 bytes .../contrib/gis/tests/data/cities/cities.shx | Bin 124 -> 0 bytes .../contrib/gis/tests/data/counties/counties.dbf | Bin 3961 -> 0 bytes .../contrib/gis/tests/data/counties/counties.shp | Bin 37364 -> 0 bytes .../contrib/gis/tests/data/counties/counties.shx | Bin 292 -> 0 bytes .../contrib/gis/tests/data/geometries.json.gz | Bin 9100 -> 0 bytes .../gis/tests/data/interstates/interstates.dbf | Bin 412 -> 0 bytes .../gis/tests/data/interstates/interstates.prj | 1 - .../gis/tests/data/interstates/interstates.shp | Bin 892 -> 0 bytes .../gis/tests/data/interstates/interstates.shx | Bin 124 -> 0 bytes .../gis/tests/data/test_point/test_point.dbf | Bin 749 -> 0 bytes .../gis/tests/data/test_point/test_point.prj | 1 - .../gis/tests/data/test_point/test_point.shp | Bin 240 -> 0 bytes .../gis/tests/data/test_point/test_point.shx | Bin 140 -> 0 bytes .../contrib/gis/tests/data/test_poly/test_poly.dbf | Bin 501 -> 0 bytes .../contrib/gis/tests/data/test_poly/test_poly.prj | 1 - .../contrib/gis/tests/data/test_poly/test_poly.shp | Bin 620 -> 0 bytes .../contrib/gis/tests/data/test_poly/test_poly.shx | Bin 124 -> 0 bytes .../contrib/gis/tests/data/test_vrt/test_vrt.csv | 4 - .../contrib/gis/tests/data/test_vrt/test_vrt.vrt | 7 - .../django/contrib/gis/tests/distapp/__init__.py | 0 .../django/contrib/gis/tests/distapp/models.py | 50 - .../django/contrib/gis/tests/distapp/tests.py | 358 - .../django/contrib/gis/tests/geo3d/__init__.py | 0 .../django/contrib/gis/tests/geo3d/models.py | 69 - .../django/django/contrib/gis/tests/geo3d/tests.py | 231 - .../django/django/contrib/gis/tests/geo3d/views.py | 1 - .../django/contrib/gis/tests/geoapp/__init__.py | 0 .../django/contrib/gis/tests/geoapp/feeds.py | 63 - .../gis/tests/geoapp/fixtures/initial_data.json.gz | Bin 131252 -> 0 bytes .../django/contrib/gis/tests/geoapp/models.py | 45 - .../django/contrib/gis/tests/geoapp/sitemaps.py | 8 - .../django/contrib/gis/tests/geoapp/test_feeds.py | 78 - .../contrib/gis/tests/geoapp/test_regress.py | 37 - .../contrib/gis/tests/geoapp/test_sitemaps.py | 86 - .../django/contrib/gis/tests/geoapp/tests.py | 735 -- .../django/django/contrib/gis/tests/geoapp/urls.py | 14 - .../django/contrib/gis/tests/geogapp/__init__.py | 0 .../gis/tests/geogapp/fixtures/initial_data.json | 98 - .../django/contrib/gis/tests/geogapp/models.py | 20 - .../django/contrib/gis/tests/geogapp/tests.py | 87 - .../django/contrib/gis/tests/layermap/__init__.py | 0 .../django/contrib/gis/tests/layermap/models.py | 66 - .../django/contrib/gis/tests/layermap/tests.py | 268 - .../contrib/gis/tests/relatedapp/__init__.py | 0 .../django/contrib/gis/tests/relatedapp/models.py | 49 - .../django/contrib/gis/tests/relatedapp/tests.py | 284 - .../django/contrib/gis/tests/test_geoforms.py | 65 - .../django/django/contrib/gis/tests/test_geoip.py | 103 - .../django/contrib/gis/tests/test_measure.py | 336 - .../django/contrib/gis/tests/test_spatialrefsys.py | 113 - parts/django/django/contrib/gis/tests/utils.py | 26 - parts/django/django/contrib/gis/utils/__init__.py | 25 - parts/django/django/contrib/gis/utils/geoip.py | 361 - .../django/contrib/gis/utils/layermapping.py | 602 -- parts/django/django/contrib/gis/utils/ogrinfo.py | 53 - .../django/django/contrib/gis/utils/ogrinspect.py | 225 - parts/django/django/contrib/gis/utils/srs.py | 77 - parts/django/django/contrib/gis/utils/wkt.py | 55 - parts/django/django/contrib/humanize/__init__.py | 0 .../contrib/humanize/templatetags/__init__.py | 0 .../contrib/humanize/templatetags/humanize.py | 102 - .../django/django/contrib/localflavor/__init__.py | 0 .../django/contrib/localflavor/ar/__init__.py | 0 .../django/contrib/localflavor/ar/ar_provinces.py | 36 - .../django/django/contrib/localflavor/ar/forms.py | 115 - .../django/contrib/localflavor/at/__init__.py | 0 .../django/contrib/localflavor/at/at_states.py | 14 - .../django/django/contrib/localflavor/at/forms.py | 69 - .../django/contrib/localflavor/au/__init__.py | 0 .../django/contrib/localflavor/au/au_states.py | 17 - .../django/django/contrib/localflavor/au/forms.py | 50 - .../django/contrib/localflavor/br/__init__.py | 0 .../django/contrib/localflavor/br/br_states.py | 37 - .../django/django/contrib/localflavor/br/forms.py | 163 - .../django/contrib/localflavor/ca/__init__.py | 0 .../django/contrib/localflavor/ca/ca_provinces.py | 59 - .../django/django/contrib/localflavor/ca/forms.py | 134 - .../django/contrib/localflavor/ch/__init__.py | 0 .../django/contrib/localflavor/ch/ch_states.py | 31 - .../django/django/contrib/localflavor/ch/forms.py | 119 - .../django/contrib/localflavor/cl/__init__.py | 0 .../django/contrib/localflavor/cl/cl_regions.py | 25 - .../django/django/contrib/localflavor/cl/forms.py | 95 - .../django/contrib/localflavor/cz/__init__.py | 0 .../django/contrib/localflavor/cz/cz_regions.py | 22 - .../django/django/contrib/localflavor/cz/forms.py | 141 - .../django/contrib/localflavor/de/__init__.py | 0 .../django/contrib/localflavor/de/de_states.py | 21 - .../django/django/contrib/localflavor/de/forms.py | 84 - .../django/contrib/localflavor/es/__init__.py | 0 .../django/contrib/localflavor/es/es_provinces.py | 58 - .../django/contrib/localflavor/es/es_regions.py | 23 - .../django/django/contrib/localflavor/es/forms.py | 185 - .../django/contrib/localflavor/fi/__init__.py | 0 .../contrib/localflavor/fi/fi_municipalities.py | 353 - .../django/django/contrib/localflavor/fi/forms.py | 51 - .../django/contrib/localflavor/fr/__init__.py | 0 .../django/django/contrib/localflavor/fr/forms.py | 51 - .../django/contrib/localflavor/fr/fr_department.py | 110 - .../django/contrib/localflavor/generic/__init__.py | 0 .../django/contrib/localflavor/generic/forms.py | 48 - .../django/contrib/localflavor/id/__init__.py | 0 .../django/django/contrib/localflavor/id/forms.py | 211 - .../django/contrib/localflavor/id/id_choices.py | 101 - .../django/contrib/localflavor/ie/__init__.py | 0 .../django/django/contrib/localflavor/ie/forms.py | 13 - .../django/contrib/localflavor/ie/ie_counties.py | 40 - .../django/contrib/localflavor/in_/__init__.py | 0 .../django/django/contrib/localflavor/in_/forms.py | 56 - .../django/contrib/localflavor/in_/in_states.py | 84 - .../django/contrib/localflavor/is_/__init__.py | 0 .../django/django/contrib/localflavor/is_/forms.py | 83 - .../contrib/localflavor/is_/is_postalcodes.py | 151 - .../django/contrib/localflavor/it/__init__.py | 0 .../django/django/contrib/localflavor/it/forms.py | 84 - .../django/contrib/localflavor/it/it_province.py | 114 - .../django/contrib/localflavor/it/it_region.py | 24 - parts/django/django/contrib/localflavor/it/util.py | 44 - .../django/contrib/localflavor/jp/__init__.py | 0 .../django/django/contrib/localflavor/jp/forms.py | 37 - .../contrib/localflavor/jp/jp_prefectures.py | 51 - .../django/contrib/localflavor/kw/__init__.py | 0 .../django/django/contrib/localflavor/kw/forms.py | 63 - .../django/contrib/localflavor/mx/__init__.py | 0 .../django/django/contrib/localflavor/mx/forms.py | 14 - .../django/contrib/localflavor/mx/mx_states.py | 45 - .../django/contrib/localflavor/nl/__init__.py | 0 .../django/django/contrib/localflavor/nl/forms.py | 101 - .../django/contrib/localflavor/nl/nl_provinces.py | 16 - .../django/contrib/localflavor/no/__init__.py | 0 .../django/django/contrib/localflavor/no/forms.py | 82 - .../contrib/localflavor/no/no_municipalities.py | 32 - .../django/contrib/localflavor/pe/__init__.py | 0 .../django/django/contrib/localflavor/pe/forms.py | 72 - .../django/contrib/localflavor/pe/pe_region.py | 35 - .../django/contrib/localflavor/pl/__init__.py | 0 .../django/django/contrib/localflavor/pl/forms.py | 160 - .../localflavor/pl/pl_administrativeunits.py | 385 - .../contrib/localflavor/pl/pl_voivodeships.py | 24 - .../django/contrib/localflavor/pt/__init__.py | 0 .../django/django/contrib/localflavor/pt/forms.py | 48 - .../django/contrib/localflavor/ro/__init__.py | 0 .../django/django/contrib/localflavor/ro/forms.py | 206 - .../django/contrib/localflavor/ro/ro_counties.py | 52 - .../django/contrib/localflavor/se/__init__.py | 0 .../django/django/contrib/localflavor/se/forms.py | 157 - .../django/contrib/localflavor/se/se_counties.py | 36 - .../django/django/contrib/localflavor/se/utils.py | 84 - .../django/contrib/localflavor/sk/__init__.py | 0 .../django/django/contrib/localflavor/sk/forms.py | 43 - .../django/contrib/localflavor/sk/sk_districts.py | 87 - .../django/contrib/localflavor/sk/sk_regions.py | 16 - .../django/contrib/localflavor/uk/__init__.py | 0 .../django/django/contrib/localflavor/uk/forms.py | 53 - .../django/contrib/localflavor/uk/uk_regions.py | 97 - .../django/contrib/localflavor/us/__init__.py | 0 .../django/django/contrib/localflavor/us/forms.py | 113 - .../django/django/contrib/localflavor/us/models.py | 27 - .../django/contrib/localflavor/us/us_states.py | 234 - .../django/contrib/localflavor/uy/__init__.py | 0 .../django/django/contrib/localflavor/uy/forms.py | 60 - parts/django/django/contrib/localflavor/uy/util.py | 12 - .../contrib/localflavor/uy/uy_departaments.py | 24 - .../django/contrib/localflavor/za/__init__.py | 0 .../django/django/contrib/localflavor/za/forms.py | 60 - .../django/contrib/localflavor/za/za_provinces.py | 13 - parts/django/django/contrib/markup/__init__.py | 0 parts/django/django/contrib/markup/models.py | 0 .../django/contrib/markup/templatetags/__init__.py | 0 .../django/contrib/markup/templatetags/markup.py | 91 - parts/django/django/contrib/markup/tests.py | 78 - parts/django/django/contrib/messages/__init__.py | 2 - parts/django/django/contrib/messages/api.py | 114 - parts/django/django/contrib/messages/constants.py | 13 - .../django/contrib/messages/context_processors.py | 8 - parts/django/django/contrib/messages/middleware.py | 26 - parts/django/django/contrib/messages/models.py | 1 - .../django/contrib/messages/storage/__init__.py | 31 - .../django/django/contrib/messages/storage/base.py | 181 - .../django/contrib/messages/storage/cookie.py | 152 - .../django/contrib/messages/storage/fallback.py | 54 - .../django/contrib/messages/storage/session.py | 33 - .../contrib/messages/storage/user_messages.py | 64 - .../django/contrib/messages/tests/__init__.py | 6 - parts/django/django/contrib/messages/tests/base.py | 402 - .../django/django/contrib/messages/tests/cookie.py | 106 - .../django/contrib/messages/tests/fallback.py | 175 - .../django/contrib/messages/tests/middleware.py | 18 - .../django/contrib/messages/tests/session.py | 38 - parts/django/django/contrib/messages/tests/urls.py | 39 - .../django/contrib/messages/tests/user_messages.py | 65 - parts/django/django/contrib/messages/utils.py | 11 - parts/django/django/contrib/redirects/__init__.py | 0 parts/django/django/contrib/redirects/admin.py | 11 - .../django/django/contrib/redirects/middleware.py | 27 - parts/django/django/contrib/redirects/models.py | 20 - parts/django/django/contrib/sessions/__init__.py | 0 .../django/contrib/sessions/backends/__init__.py | 0 .../django/contrib/sessions/backends/base.py | 287 - .../django/contrib/sessions/backends/cache.py | 56 - .../django/contrib/sessions/backends/cached_db.py | 42 - .../django/django/contrib/sessions/backends/db.py | 78 - .../django/contrib/sessions/backends/file.py | 147 - parts/django/django/contrib/sessions/middleware.py | 42 - parts/django/django/contrib/sessions/models.py | 67 - parts/django/django/contrib/sessions/tests.py | 388 - parts/django/django/contrib/sitemaps/__init__.py | 109 - .../django/contrib/sitemaps/management/__init__.py | 0 .../sitemaps/management/commands/__init__.py | 0 .../sitemaps/management/commands/ping_google.py | 14 - parts/django/django/contrib/sitemaps/models.py | 1 - .../django/contrib/sitemaps/templates/sitemap.xml | 13 - .../contrib/sitemaps/templates/sitemap_index.xml | 4 - .../django/contrib/sitemaps/tests/__init__.py | 1 - .../django/django/contrib/sitemaps/tests/basic.py | 126 - parts/django/django/contrib/sitemaps/tests/urls.py | 33 - parts/django/django/contrib/sitemaps/views.py | 47 - parts/django/django/contrib/sites/__init__.py | 0 parts/django/django/contrib/sites/admin.py | 9 - parts/django/django/contrib/sites/management.py | 17 - parts/django/django/contrib/sites/managers.py | 41 - parts/django/django/contrib/sites/models.py | 95 - parts/django/django/contrib/sites/tests.py | 56 - .../django/django/contrib/syndication/__init__.py | 0 parts/django/django/contrib/syndication/feeds.py | 38 - parts/django/django/contrib/syndication/views.py | 217 - parts/django/django/contrib/webdesign/__init__.py | 0 .../django/django/contrib/webdesign/lorem_ipsum.py | 101 - parts/django/django/contrib/webdesign/models.py | 0 .../contrib/webdesign/templatetags/__init__.py | 0 .../contrib/webdesign/templatetags/webdesign.py | 67 - parts/django/django/contrib/webdesign/tests.py | 21 - parts/django/django/core/__init__.py | 0 parts/django/django/core/cache/__init__.py | 79 - .../django/django/core/cache/backends/__init__.py | 0 parts/django/django/core/cache/backends/base.py | 144 - parts/django/django/core/cache/backends/db.py | 145 - parts/django/django/core/cache/backends/dummy.py | 37 - .../django/django/core/cache/backends/filebased.py | 171 - parts/django/django/core/cache/backends/locmem.py | 143 - .../django/django/core/cache/backends/memcached.py | 104 - parts/django/django/core/context_processors.py | 104 - parts/django/django/core/exceptions.py | 87 - parts/django/django/core/files/__init__.py | 1 - parts/django/django/core/files/base.py | 134 - parts/django/django/core/files/images.py | 62 - parts/django/django/core/files/locks.py | 70 - parts/django/django/core/files/move.py | 88 - parts/django/django/core/files/storage.py | 244 - parts/django/django/core/files/temp.py | 56 - parts/django/django/core/files/uploadedfile.py | 128 - parts/django/django/core/files/uploadhandler.py | 215 - parts/django/django/core/files/utils.py | 29 - parts/django/django/core/handlers/__init__.py | 0 parts/django/django/core/handlers/base.py | 220 - parts/django/django/core/handlers/modpython.py | 228 - .../django/core/handlers/profiler-hotshot.py | 22 - parts/django/django/core/handlers/wsgi.py | 260 - parts/django/django/core/mail/__init__.py | 111 - parts/django/django/core/mail/backends/__init__.py | 1 - parts/django/django/core/mail/backends/base.py | 39 - parts/django/django/core/mail/backends/console.py | 37 - parts/django/django/core/mail/backends/dummy.py | 9 - .../django/django/core/mail/backends/filebased.py | 59 - parts/django/django/core/mail/backends/locmem.py | 24 - parts/django/django/core/mail/backends/smtp.py | 112 - parts/django/django/core/mail/message.py | 289 - parts/django/django/core/mail/utils.py | 19 - parts/django/django/core/management/__init__.py | 438 -- parts/django/django/core/management/base.py | 431 - parts/django/django/core/management/color.py | 50 - .../django/core/management/commands/__init__.py | 0 .../django/core/management/commands/cleanup.py | 11 - .../core/management/commands/compilemessages.py | 63 - .../core/management/commands/createcachetable.py | 53 - .../django/core/management/commands/dbshell.py | 28 - .../core/management/commands/diffsettings.py | 32 - .../django/core/management/commands/dumpdata.py | 167 - .../django/core/management/commands/flush.py | 83 - .../django/core/management/commands/inspectdb.py | 164 - .../django/core/management/commands/loaddata.py | 243 - .../core/management/commands/makemessages.py | 321 - .../django/core/management/commands/reset.py | 57 - .../django/core/management/commands/runfcgi.py | 20 - .../django/core/management/commands/runserver.py | 84 - .../django/core/management/commands/shell.py | 69 - .../django/django/core/management/commands/sql.py | 19 - .../django/core/management/commands/sqlall.py | 19 - .../django/core/management/commands/sqlclear.py | 19 - .../django/core/management/commands/sqlcustom.py | 19 - .../django/core/management/commands/sqlflush.py | 19 - .../django/core/management/commands/sqlindexes.py | 20 - .../core/management/commands/sqlinitialdata.py | 7 - .../django/core/management/commands/sqlreset.py | 20 - .../core/management/commands/sqlsequencereset.py | 20 - .../django/core/management/commands/startapp.py | 47 - .../core/management/commands/startproject.py | 39 - .../django/core/management/commands/syncdb.py | 152 - .../django/django/core/management/commands/test.py | 40 - .../django/core/management/commands/testserver.py | 33 - .../django/core/management/commands/validate.py | 9 - parts/django/django/core/management/sql.py | 182 - parts/django/django/core/management/validation.py | 293 - parts/django/django/core/paginator.py | 120 - parts/django/django/core/serializers/__init__.py | 113 - parts/django/django/core/serializers/base.py | 172 - parts/django/django/core/serializers/json.py | 65 - parts/django/django/core/serializers/python.py | 142 - parts/django/django/core/serializers/pyyaml.py | 59 - .../django/core/serializers/xml_serializer.py | 297 - parts/django/django/core/servers/__init__.py | 0 parts/django/django/core/servers/basehttp.py | 721 -- parts/django/django/core/servers/fastcgi.py | 183 - parts/django/django/core/signals.py | 5 - parts/django/django/core/template_loader.py | 7 - parts/django/django/core/urlresolvers.py | 396 - parts/django/django/core/validators.py | 172 - parts/django/django/core/xheaders.py | 24 - parts/django/django/db/__init__.py | 103 - parts/django/django/db/backends/__init__.py | 592 -- parts/django/django/db/backends/creation.py | 456 -- parts/django/django/db/backends/dummy/__init__.py | 0 parts/django/django/db/backends/dummy/base.py | 56 - parts/django/django/db/backends/mysql/__init__.py | 0 parts/django/django/db/backends/mysql/base.py | 318 - parts/django/django/db/backends/mysql/client.py | 40 - parts/django/django/db/backends/mysql/compiler.py | 27 - parts/django/django/db/backends/mysql/creation.py | 65 - .../django/db/backends/mysql/introspection.py | 98 - .../django/django/db/backends/mysql/validation.py | 26 - parts/django/django/db/backends/oracle/__init__.py | 0 parts/django/django/db/backends/oracle/base.py | 711 -- parts/django/django/db/backends/oracle/client.py | 16 - parts/django/django/db/backends/oracle/compiler.py | 66 - parts/django/django/db/backends/oracle/creation.py | 257 - .../django/db/backends/oracle/introspection.py | 121 - .../django/db/backends/postgresql/__init__.py | 0 parts/django/django/db/backends/postgresql/base.py | 179 - .../django/django/db/backends/postgresql/client.py | 23 - .../django/db/backends/postgresql/creation.py | 75 - .../django/db/backends/postgresql/introspection.py | 88 - .../django/db/backends/postgresql/operations.py | 179 - .../django/db/backends/postgresql/version.py | 31 - .../db/backends/postgresql_psycopg2/__init__.py | 0 .../django/db/backends/postgresql_psycopg2/base.py | 198 - .../backends/postgresql_psycopg2/introspection.py | 21 - parts/django/django/db/backends/signals.py | 3 - .../django/django/db/backends/sqlite3/__init__.py | 0 parts/django/django/db/backends/sqlite3/base.py | 247 - parts/django/django/db/backends/sqlite3/client.py | 16 - .../django/django/db/backends/sqlite3/creation.py | 70 - .../django/db/backends/sqlite3/introspection.py | 141 - parts/django/django/db/backends/util.py | 128 - parts/django/django/db/models/__init__.py | 33 - parts/django/django/db/models/aggregates.py | 67 - parts/django/django/db/models/base.py | 998 --- parts/django/django/db/models/expressions.py | 113 - parts/django/django/db/models/fields/__init__.py | 1141 --- parts/django/django/db/models/fields/files.py | 403 - parts/django/django/db/models/fields/proxy.py | 17 - parts/django/django/db/models/fields/related.py | 1165 --- .../django/django/db/models/fields/subclassing.py | 117 - parts/django/django/db/models/loading.py | 227 - parts/django/django/db/models/manager.py | 216 - parts/django/django/db/models/options.py | 485 -- parts/django/django/db/models/query.py | 1518 ---- parts/django/django/db/models/query_utils.py | 278 - parts/django/django/db/models/related.py | 50 - parts/django/django/db/models/signals.py | 16 - parts/django/django/db/models/sql/__init__.py | 7 - parts/django/django/db/models/sql/aggregates.py | 128 - parts/django/django/db/models/sql/compiler.py | 979 --- parts/django/django/db/models/sql/constants.py | 37 - .../django/django/db/models/sql/datastructures.py | 46 - parts/django/django/db/models/sql/expressions.py | 87 - parts/django/django/db/models/sql/query.py | 1860 ----- parts/django/django/db/models/sql/subqueries.py | 212 - parts/django/django/db/models/sql/where.py | 345 - parts/django/django/db/transaction.py | 351 - parts/django/django/db/utils.py | 170 - parts/django/django/dispatch/__init__.py | 9 - parts/django/django/dispatch/dispatcher.py | 256 - parts/django/django/dispatch/license.txt | 36 - parts/django/django/dispatch/saferef.py | 250 - parts/django/django/forms/__init__.py | 17 - parts/django/django/forms/extras/__init__.py | 1 - parts/django/django/forms/extras/widgets.py | 121 - parts/django/django/forms/fields.py | 898 --- parts/django/django/forms/forms.py | 520 -- parts/django/django/forms/formsets.py | 346 - parts/django/django/forms/models.py | 1046 --- parts/django/django/forms/util.py | 54 - parts/django/django/forms/widgets.py | 785 -- parts/django/django/http/__init__.py | 496 -- parts/django/django/http/multipartparser.py | 638 -- parts/django/django/http/utils.py | 84 - parts/django/django/middleware/__init__.py | 0 parts/django/django/middleware/cache.py | 156 - parts/django/django/middleware/common.py | 147 - parts/django/django/middleware/csrf.py | 298 - parts/django/django/middleware/doc.py | 19 - parts/django/django/middleware/gzip.py | 38 - parts/django/django/middleware/http.py | 51 - parts/django/django/middleware/locale.py | 25 - parts/django/django/middleware/transaction.py | 27 - parts/django/django/shortcuts/__init__.py | 104 - parts/django/django/template/__init__.py | 1052 --- parts/django/django/template/context.py | 149 - parts/django/django/template/debug.py | 101 - parts/django/django/template/defaultfilters.py | 938 --- parts/django/django/template/defaulttags.py | 1218 --- parts/django/django/template/loader.py | 198 - parts/django/django/template/loader_tags.py | 220 - parts/django/django/template/loaders/__init__.py | 0 .../django/template/loaders/app_directories.py | 74 - parts/django/django/template/loaders/cached.py | 59 - parts/django/django/template/loaders/eggs.py | 39 - parts/django/django/template/loaders/filesystem.py | 61 - parts/django/django/template/smartif.py | 206 - parts/django/django/templatetags/__init__.py | 0 parts/django/django/templatetags/cache.py | 63 - parts/django/django/templatetags/i18n.py | 274 - parts/django/django/test/__init__.py | 7 - parts/django/django/test/_doctest.py | 2693 ------- parts/django/django/test/client.py | 499 -- parts/django/django/test/signals.py | 3 - parts/django/django/test/simple.py | 410 - parts/django/django/test/testcases.py | 546 -- parts/django/django/test/utils.py | 124 - parts/django/django/utils/__init__.py | 0 parts/django/django/utils/_os.py | 46 - parts/django/django/utils/_threading_local.py | 240 - parts/django/django/utils/autoreload.py | 119 - parts/django/django/utils/cache.py | 218 - parts/django/django/utils/checksums.py | 22 - parts/django/django/utils/copycompat.py | 14 - parts/django/django/utils/daemonize.py | 58 - parts/django/django/utils/datastructures.py | 473 -- parts/django/django/utils/dateformat.py | 286 - parts/django/django/utils/dates.py | 33 - parts/django/django/utils/datetime_safe.py | 89 - parts/django/django/utils/decorators.py | 90 - parts/django/django/utils/encoding.py | 162 - parts/django/django/utils/feedgenerator.py | 373 - parts/django/django/utils/formats.py | 147 - parts/django/django/utils/functional.py | 367 - parts/django/django/utils/hashcompat.py | 20 - parts/django/django/utils/html.py | 167 - parts/django/django/utils/http.py | 124 - parts/django/django/utils/importlib.py | 36 - parts/django/django/utils/itercompat.py | 45 - parts/django/django/utils/module_loading.py | 60 - parts/django/django/utils/numberformat.py | 48 - parts/django/django/utils/regex_helper.py | 328 - parts/django/django/utils/safestring.py | 119 - parts/django/django/utils/simplejson/LICENSE.txt | 19 - parts/django/django/utils/simplejson/__init__.py | 349 - parts/django/django/utils/simplejson/decoder.py | 345 - parts/django/django/utils/simplejson/encoder.py | 430 - parts/django/django/utils/simplejson/scanner.py | 65 - parts/django/django/utils/simplejson/tool.py | 35 - parts/django/django/utils/stopwords.py | 42 - parts/django/django/utils/synch.py | 87 - parts/django/django/utils/termcolors.py | 198 - parts/django/django/utils/text.py | 282 - parts/django/django/utils/thread_support.py | 12 - parts/django/django/utils/timesince.py | 69 - parts/django/django/utils/translation/__init__.py | 104 - .../django/django/utils/translation/trans_null.py | 72 - .../django/django/utils/translation/trans_real.py | 550 -- parts/django/django/utils/tree.py | 153 - parts/django/django/utils/tzinfo.py | 77 - parts/django/django/utils/version.py | 42 - parts/django/django/utils/xmlutils.py | 14 - parts/django/django/views/__init__.py | 0 parts/django/django/views/csrf.py | 102 - parts/django/django/views/debug.py | 857 -- parts/django/django/views/decorators/__init__.py | 0 parts/django/django/views/decorators/cache.py | 81 - parts/django/django/views/decorators/csrf.py | 64 - parts/django/django/views/decorators/gzip.py | 6 - parts/django/django/views/decorators/http.py | 143 - parts/django/django/views/decorators/vary.py | 41 - parts/django/django/views/defaults.py | 43 - parts/django/django/views/generic/__init__.py | 3 - parts/django/django/views/generic/create_update.py | 215 - parts/django/django/views/generic/date_based.py | 368 - parts/django/django/views/generic/list_detail.py | 145 - parts/django/django/views/generic/simple.py | 41 - parts/django/django/views/i18n.py | 264 - parts/django/django/views/static.py | 143 - parts/django/docs/Makefile | 130 - parts/django/docs/_ext/applyxrefs.py | 88 - parts/django/docs/_ext/djangodocs.py | 265 - parts/django/docs/_ext/literals_to_xrefs.py | 171 - parts/django/docs/_theme/djangodocs/genindex.html | 4 - parts/django/docs/_theme/djangodocs/layout.html | 124 - parts/django/docs/_theme/djangodocs/modindex.html | 3 - parts/django/docs/_theme/djangodocs/search.html | 3 - .../docs/_theme/djangodocs/static/default.css | 3 - .../docs/_theme/djangodocs/static/djangodocs.css | 135 - .../djangodocs/static/docicons-behindscenes.png | Bin 2269 -> 0 bytes .../_theme/djangodocs/static/docicons-note.png | Bin 1013 -> 0 bytes .../djangodocs/static/docicons-philosophy.png | Bin 1523 -> 0 bytes .../docs/_theme/djangodocs/static/homepage.css | 22 - .../_theme/djangodocs/static/reset-fonts-grids.css | 8 - parts/django/docs/_theme/djangodocs/theme.conf | 4 - parts/django/docs/conf.py | 269 - parts/django/docs/contents.txt | 41 - parts/django/docs/faq/admin.txt | 96 - parts/django/docs/faq/contributing.txt | 102 - parts/django/docs/faq/general.txt | 192 - parts/django/docs/faq/help.txt | 73 - parts/django/docs/faq/index.txt | 14 - parts/django/docs/faq/install.txt | 102 - parts/django/docs/faq/models.txt | 105 - parts/django/docs/faq/usage.txt | 77 - parts/django/docs/glossary.txt | 81 - parts/django/docs/howto/apache-auth.txt | 120 - parts/django/docs/howto/auth-remote-user.txt | 100 - parts/django/docs/howto/custom-file-storage.txt | 90 - .../docs/howto/custom-management-commands.txt | 253 - parts/django/docs/howto/custom-model-fields.txt | 745 -- parts/django/docs/howto/custom-template-tags.txt | 939 --- parts/django/docs/howto/deployment/fastcgi.txt | 400 - parts/django/docs/howto/deployment/index.txt | 25 - parts/django/docs/howto/deployment/modpython.txt | 418 - parts/django/docs/howto/deployment/modwsgi.txt | 118 - parts/django/docs/howto/error-reporting.txt | 78 - parts/django/docs/howto/i18n.txt | 103 - parts/django/docs/howto/index.txt | 34 - parts/django/docs/howto/initial-data.txt | 142 - parts/django/docs/howto/jython.txt | 73 - parts/django/docs/howto/legacy-databases.txt | 66 - parts/django/docs/howto/outputting-csv.txt | 137 - parts/django/docs/howto/outputting-pdf.txt | 160 - parts/django/docs/howto/static-files.txt | 162 - parts/django/docs/index.txt | 213 - .../docs/internals/_images/djangotickets.png | Bin 52003 -> 0 bytes parts/django/docs/internals/committers.txt | 344 - parts/django/docs/internals/contributing.txt | 1294 --- parts/django/docs/internals/deprecation.txt | 106 - parts/django/docs/internals/documentation.txt | 221 - parts/django/docs/internals/index.txt | 24 - parts/django/docs/internals/release-process.txt | 205 - parts/django/docs/internals/svn.txt | 254 - parts/django/docs/intro/_images/admin01.png | Bin 18233 -> 0 bytes parts/django/docs/intro/_images/admin02.png | Bin 64260 -> 0 bytes parts/django/docs/intro/_images/admin02t.png | Bin 24726 -> 0 bytes parts/django/docs/intro/_images/admin03.png | Bin 75434 -> 0 bytes parts/django/docs/intro/_images/admin03t.png | Bin 28131 -> 0 bytes parts/django/docs/intro/_images/admin04.png | Bin 57718 -> 0 bytes parts/django/docs/intro/_images/admin04t.png | Bin 22806 -> 0 bytes parts/django/docs/intro/_images/admin05.png | Bin 28875 -> 0 bytes parts/django/docs/intro/_images/admin05t.png | Bin 22754 -> 0 bytes parts/django/docs/intro/_images/admin06.png | Bin 22780 -> 0 bytes parts/django/docs/intro/_images/admin06t.png | Bin 18156 -> 0 bytes parts/django/docs/intro/_images/admin07.png | Bin 19804 -> 0 bytes parts/django/docs/intro/_images/admin08.png | Bin 31552 -> 0 bytes parts/django/docs/intro/_images/admin08t.png | Bin 23883 -> 0 bytes parts/django/docs/intro/_images/admin09.png | Bin 16318 -> 0 bytes parts/django/docs/intro/_images/admin10.png | Bin 10914 -> 0 bytes parts/django/docs/intro/_images/admin11.png | Bin 33563 -> 0 bytes parts/django/docs/intro/_images/admin11t.png | Bin 26365 -> 0 bytes parts/django/docs/intro/_images/admin12.png | Bin 12682 -> 0 bytes parts/django/docs/intro/_images/admin13.png | Bin 22062 -> 0 bytes parts/django/docs/intro/_images/admin13t.png | Bin 18690 -> 0 bytes parts/django/docs/intro/_images/admin14.png | Bin 28987 -> 0 bytes parts/django/docs/intro/_images/admin14t.png | Bin 23460 -> 0 bytes parts/django/docs/intro/index.txt | 36 - parts/django/docs/intro/install.txt | 84 - parts/django/docs/intro/overview.txt | 324 - parts/django/docs/intro/tutorial01.txt | 690 -- parts/django/docs/intro/tutorial02.txt | 465 -- parts/django/docs/intro/tutorial03.txt | 546 -- parts/django/docs/intro/tutorial04.txt | 346 - parts/django/docs/intro/whatsnext.txt | 231 - parts/django/docs/man/daily_cleanup.1 | 34 - parts/django/docs/man/django-admin.1 | 226 - parts/django/docs/man/gather_profile_stats.1 | 26 - parts/django/docs/misc/api-stability.txt | 152 - parts/django/docs/misc/design-philosophies.txt | 314 - parts/django/docs/misc/distributions.txt | 36 - parts/django/docs/misc/index.txt | 12 - parts/django/docs/obsolete/_images/formrow.png | Bin 16601 -> 0 bytes parts/django/docs/obsolete/_images/module.png | Bin 10072 -> 0 bytes .../docs/obsolete/_images/objecttools_01.png | Bin 1398 -> 0 bytes .../docs/obsolete/_images/objecttools_02.png | Bin 2268 -> 0 bytes parts/django/docs/obsolete/admin-css.txt | 186 - parts/django/docs/obsolete/index.txt | 12 - parts/django/docs/ref/authbackends.txt | 35 - .../ref/contrib/admin/_images/article_actions.png | Bin 38545 -> 0 bytes .../admin/_images/article_actions_message.png | Bin 22098 -> 0 bytes .../ref/contrib/admin/_images/flatfiles_admin.png | Bin 42243 -> 0 bytes .../ref/contrib/admin/_images/user_actions.png | Bin 27047 -> 0 bytes .../ref/contrib/admin/_images/users_changelist.png | Bin 59355 -> 0 bytes parts/django/docs/ref/contrib/admin/actions.txt | 351 - parts/django/docs/ref/contrib/admin/admindocs.txt | 161 - parts/django/docs/ref/contrib/admin/index.txt | 1613 ---- parts/django/docs/ref/contrib/auth.txt | 4 - parts/django/docs/ref/contrib/comments/custom.txt | 202 - parts/django/docs/ref/contrib/comments/example.txt | 208 - parts/django/docs/ref/contrib/comments/forms.txt | 46 - parts/django/docs/ref/contrib/comments/index.txt | 302 - parts/django/docs/ref/contrib/comments/models.txt | 80 - .../docs/ref/contrib/comments/moderation.txt | 230 - .../django/docs/ref/contrib/comments/settings.txt | 33 - parts/django/docs/ref/contrib/comments/signals.txt | 91 - parts/django/docs/ref/contrib/comments/upgrade.txt | 78 - parts/django/docs/ref/contrib/contenttypes.txt | 385 - parts/django/docs/ref/contrib/csrf.txt | 433 - parts/django/docs/ref/contrib/databrowse.txt | 90 - parts/django/docs/ref/contrib/flatpages.txt | 167 - .../docs/ref/contrib/formtools/form-preview.txt | 121 - .../docs/ref/contrib/formtools/form-wizard.txt | 312 - parts/django/docs/ref/contrib/formtools/index.txt | 10 - parts/django/docs/ref/contrib/gis/admin.txt | 72 - parts/django/docs/ref/contrib/gis/commands.txt | 83 - .../ref/contrib/gis/create_template_postgis-1.3.sh | 9 - .../ref/contrib/gis/create_template_postgis-1.4.sh | 9 - .../ref/contrib/gis/create_template_postgis-1.5.sh | 10 - .../contrib/gis/create_template_postgis-debian.sh | 9 - parts/django/docs/ref/contrib/gis/db-api.txt | 349 - parts/django/docs/ref/contrib/gis/deployment.txt | 99 - parts/django/docs/ref/contrib/gis/feeds.txt | 95 - parts/django/docs/ref/contrib/gis/gdal.txt | 1114 --- parts/django/docs/ref/contrib/gis/geoip.txt | 223 - parts/django/docs/ref/contrib/gis/geoquerysets.txt | 1256 --- parts/django/docs/ref/contrib/gis/geos.txt | 911 --- parts/django/docs/ref/contrib/gis/index.txt | 33 - parts/django/docs/ref/contrib/gis/install.txt | 1190 --- parts/django/docs/ref/contrib/gis/layermapping.txt | 220 - parts/django/docs/ref/contrib/gis/measure.txt | 180 - parts/django/docs/ref/contrib/gis/model-api.txt | 265 - parts/django/docs/ref/contrib/gis/ogrinspect.txt | 21 - parts/django/docs/ref/contrib/gis/sitemaps.txt | 27 - parts/django/docs/ref/contrib/gis/testing.txt | 268 - parts/django/docs/ref/contrib/gis/tutorial.txt | 758 -- parts/django/docs/ref/contrib/gis/utils.txt | 32 - parts/django/docs/ref/contrib/humanize.txt | 100 - parts/django/docs/ref/contrib/index.txt | 207 - parts/django/docs/ref/contrib/localflavor.txt | 842 -- parts/django/docs/ref/contrib/markup.txt | 42 - parts/django/docs/ref/contrib/messages.txt | 411 - parts/django/docs/ref/contrib/redirects.txt | 70 - parts/django/docs/ref/contrib/sitemaps.txt | 351 - parts/django/docs/ref/contrib/sites.txt | 415 - parts/django/docs/ref/contrib/syndication.txt | 949 --- parts/django/docs/ref/contrib/webdesign.txt | 56 - parts/django/docs/ref/databases.txt | 682 -- parts/django/docs/ref/django-admin.txt | 1293 --- parts/django/docs/ref/exceptions.txt | 128 - parts/django/docs/ref/files/file.txt | 152 - parts/django/docs/ref/files/index.txt | 12 - parts/django/docs/ref/files/storage.txt | 119 - parts/django/docs/ref/forms/api.txt | 791 -- parts/django/docs/ref/forms/fields.txt | 939 --- parts/django/docs/ref/forms/index.txt | 13 - parts/django/docs/ref/forms/validation.txt | 366 - parts/django/docs/ref/forms/widgets.txt | 247 - parts/django/docs/ref/generic-views.txt | 1095 --- parts/django/docs/ref/index.txt | 24 - parts/django/docs/ref/middleware.txt | 212 - parts/django/docs/ref/models/fields.txt | 1063 --- parts/django/docs/ref/models/index.txt | 14 - parts/django/docs/ref/models/instances.txt | 570 -- parts/django/docs/ref/models/options.txt | 269 - parts/django/docs/ref/models/querysets.txt | 1888 ----- parts/django/docs/ref/models/relations.txt | 105 - parts/django/docs/ref/request-response.txt | 646 -- parts/django/docs/ref/settings.txt | 1836 ----- parts/django/docs/ref/signals.txt | 475 -- parts/django/docs/ref/templates/api.txt | 815 -- parts/django/docs/ref/templates/builtins.txt | 2107 ----- parts/django/docs/ref/templates/index.txt | 19 - parts/django/docs/ref/unicode.txt | 362 - parts/django/docs/ref/utils.txt | 504 -- parts/django/docs/ref/validators.txt | 158 - parts/django/docs/releases/0.95.txt | 124 - parts/django/docs/releases/0.96.txt | 264 - parts/django/docs/releases/1.0-alpha-1.txt | 161 - parts/django/docs/releases/1.0-alpha-2.txt | 136 - parts/django/docs/releases/1.0-beta-2.txt | 119 - parts/django/docs/releases/1.0-beta.txt | 153 - parts/django/docs/releases/1.0-porting-guide.txt | 772 -- parts/django/docs/releases/1.0.1.txt | 65 - parts/django/docs/releases/1.0.2.txt | 51 - parts/django/docs/releases/1.0.txt | 246 - parts/django/docs/releases/1.1-alpha-1.txt | 163 - parts/django/docs/releases/1.1-beta-1.txt | 208 - parts/django/docs/releases/1.1-rc-1.txt | 109 - parts/django/docs/releases/1.1.2.txt | 56 - parts/django/docs/releases/1.1.txt | 463 -- parts/django/docs/releases/1.2-alpha-1.txt | 578 -- parts/django/docs/releases/1.2-beta-1.txt | 173 - parts/django/docs/releases/1.2-rc-1.txt | 101 - parts/django/docs/releases/1.2.2.txt | 29 - parts/django/docs/releases/1.2.4.txt | 52 - parts/django/docs/releases/1.2.txt | 1139 --- parts/django/docs/releases/index.txt | 70 - parts/django/docs/topics/auth.txt | 1612 ---- parts/django/docs/topics/cache.txt | 917 --- .../docs/topics/conditional-view-processing.txt | 199 - parts/django/docs/topics/db/aggregation.txt | 378 - parts/django/docs/topics/db/index.txt | 18 - parts/django/docs/topics/db/managers.txt | 376 - parts/django/docs/topics/db/models.txt | 1234 --- parts/django/docs/topics/db/multi-db.txt | 574 -- parts/django/docs/topics/db/optimization.txt | 260 - parts/django/docs/topics/db/queries.txt | 1110 --- parts/django/docs/topics/db/sql.txt | 279 - parts/django/docs/topics/db/transactions.txt | 328 - parts/django/docs/topics/email.txt | 618 -- parts/django/docs/topics/files.txt | 147 - parts/django/docs/topics/forms/formsets.txt | 440 -- parts/django/docs/topics/forms/index.txt | 402 - parts/django/docs/topics/forms/media.txt | 309 - parts/django/docs/topics/forms/modelforms.txt | 885 --- parts/django/docs/topics/generic-views.txt | 501 -- .../django/docs/topics/http/_images/middleware.png | Bin 56301 -> 0 bytes parts/django/docs/topics/http/file-uploads.txt | 394 - parts/django/docs/topics/http/generic-views.txt | 5 - parts/django/docs/topics/http/index.txt | 15 - parts/django/docs/topics/http/middleware.txt | 179 - parts/django/docs/topics/http/sessions.txt | 529 -- parts/django/docs/topics/http/shortcuts.txt | 229 - parts/django/docs/topics/http/urls.txt | 890 --- parts/django/docs/topics/http/views.txt | 202 - parts/django/docs/topics/i18n/deployment.txt | 191 - parts/django/docs/topics/i18n/index.txt | 113 - .../docs/topics/i18n/internationalization.txt | 624 -- parts/django/docs/topics/i18n/localization.txt | 317 - parts/django/docs/topics/index.txt | 27 - parts/django/docs/topics/install.txt | 298 - parts/django/docs/topics/pagination.txt | 281 - parts/django/docs/topics/serialization.txt | 402 - parts/django/docs/topics/settings.txt | 255 - parts/django/docs/topics/signals.txt | 255 - parts/django/docs/topics/templates.txt | 617 -- parts/django/docs/topics/testing.txt | 1613 ---- parts/django/extras/README.TXT | 1 - parts/django/extras/csrf_migration_helper.py | 357 - parts/django/extras/django_bash_completion | 72 - parts/django/scripts/rpm-install.sh | 28 - parts/django/setup.cfg | 4 - parts/django/setup.py | 98 - parts/django/tests/modeltests/__init__.py | 0 .../tests/modeltests/aggregation/__init__.py | 0 .../aggregation/fixtures/initial_data.json | 243 - .../django/tests/modeltests/aggregation/models.py | 42 - parts/django/tests/modeltests/aggregation/tests.py | 565 -- parts/django/tests/modeltests/basic/__init__.py | 0 parts/django/tests/modeltests/basic/models.py | 17 - parts/django/tests/modeltests/basic/tests.py | 562 -- parts/django/tests/modeltests/choices/__init__.py | 0 parts/django/tests/modeltests/choices/models.py | 24 - parts/django/tests/modeltests/choices/tests.py | 23 - .../tests/modeltests/custom_columns/__init__.py | 0 .../tests/modeltests/custom_columns/models.py | 40 - .../tests/modeltests/custom_columns/tests.py | 71 - .../tests/modeltests/custom_managers/__init__.py | 0 .../tests/modeltests/custom_managers/models.py | 59 - .../tests/modeltests/custom_managers/tests.py | 71 - .../tests/modeltests/custom_methods/__init__.py | 0 .../tests/modeltests/custom_methods/models.py | 36 - .../tests/modeltests/custom_methods/tests.py | 42 - .../django/tests/modeltests/custom_pk/__init__.py | 0 parts/django/tests/modeltests/custom_pk/fields.py | 55 - parts/django/tests/modeltests/custom_pk/models.py | 42 - parts/django/tests/modeltests/custom_pk/tests.py | 183 - parts/django/tests/modeltests/defer/__init__.py | 0 parts/django/tests/modeltests/defer/models.py | 24 - parts/django/tests/modeltests/defer/tests.py | 137 - parts/django/tests/modeltests/delete/__init__.py | 1 - parts/django/tests/modeltests/delete/models.py | 42 - parts/django/tests/modeltests/delete/tests.py | 135 - parts/django/tests/modeltests/empty/__init__.py | 0 parts/django/tests/modeltests/empty/models.py | 12 - parts/django/tests/modeltests/empty/tests.py | 15 - .../tests/modeltests/expressions/__init__.py | 0 .../django/tests/modeltests/expressions/models.py | 27 - parts/django/tests/modeltests/expressions/tests.py | 218 - .../tests/modeltests/field_defaults/__init__.py | 0 .../tests/modeltests/field_defaults/models.py | 21 - .../tests/modeltests/field_defaults/tests.py | 16 - .../tests/modeltests/field_subclassing/__init__.py | 0 .../tests/modeltests/field_subclassing/fields.py | 74 - .../tests/modeltests/field_subclassing/models.py | 22 - .../tests/modeltests/field_subclassing/tests.py | 81 - parts/django/tests/modeltests/files/__init__.py | 1 - parts/django/tests/modeltests/files/models.py | 34 - parts/django/tests/modeltests/files/tests.py | 100 - parts/django/tests/modeltests/fixtures/__init__.py | 2 - .../fixtures/fixtures/db_fixture_1.default.json | 10 - .../fixtures/fixtures/db_fixture_2.default.json.gz | Bin 175 -> 0 bytes .../fixtures/fixtures/db_fixture_3.nosuchdb.json | 10 - .../modeltests/fixtures/fixtures/fixture1.json | 34 - .../modeltests/fixtures/fixtures/fixture2.json | 18 - .../modeltests/fixtures/fixtures/fixture2.xml | 11 - .../modeltests/fixtures/fixtures/fixture3.xml | 11 - .../modeltests/fixtures/fixtures/fixture4.json.zip | Bin 282 -> 0 bytes .../modeltests/fixtures/fixtures/fixture5.json.gz | Bin 169 -> 0 bytes .../modeltests/fixtures/fixtures/fixture5.json.zip | Bin 295 -> 0 bytes .../modeltests/fixtures/fixtures/fixture6.json | 41 - .../modeltests/fixtures/fixtures/fixture7.xml | 27 - .../modeltests/fixtures/fixtures/fixture8.json | 32 - .../modeltests/fixtures/fixtures/fixture9.xml | 48 - .../modeltests/fixtures/fixtures/initial_data.json | 10 - parts/django/tests/modeltests/fixtures/models.py | 92 - parts/django/tests/modeltests/fixtures/tests.py | 277 - .../modeltests/fixtures_model_package/__init__.py | 2 - .../fixtures_model_package/fixtures/fixture1.json | 18 - .../fixtures_model_package/fixtures/fixture2.json | 18 - .../fixtures_model_package/fixtures/fixture2.xml | 11 - .../fixtures/initial_data.json | 10 - .../fixtures_model_package/models/__init__.py | 14 - .../modeltests/fixtures_model_package/tests.py | 71 - .../modeltests/force_insert_update/__init__.py | 0 .../tests/modeltests/force_insert_update/models.py | 13 - .../tests/modeltests/force_insert_update/tests.py | 38 - .../tests/modeltests/generic_relations/__init__.py | 0 .../tests/modeltests/generic_relations/models.py | 80 - .../tests/modeltests/generic_relations/tests.py | 223 - .../django/tests/modeltests/get_latest/__init__.py | 0 parts/django/tests/modeltests/get_latest/models.py | 30 - parts/django/tests/modeltests/get_latest/tests.py | 53 - .../tests/modeltests/get_object_or_404/__init__.py | 0 .../tests/modeltests/get_object_or_404/models.py | 34 - .../tests/modeltests/get_object_or_404/tests.py | 80 - .../tests/modeltests/get_or_create/__init__.py | 0 .../tests/modeltests/get_or_create/models.py | 21 - .../django/tests/modeltests/get_or_create/tests.py | 52 - .../tests/modeltests/invalid_models/__init__.py | 1 - .../tests/modeltests/invalid_models/models.py | 335 - parts/django/tests/modeltests/lookup/__init__.py | 0 parts/django/tests/modeltests/lookup/models.py | 16 - parts/django/tests/modeltests/lookup/tests.py | 547 -- .../tests/modeltests/m2m_and_m2o/__init__.py | 0 .../django/tests/modeltests/m2m_and_m2o/models.py | 21 - parts/django/tests/modeltests/m2m_and_m2o/tests.py | 75 - .../tests/modeltests/m2m_intermediary/__init__.py | 0 .../tests/modeltests/m2m_intermediary/models.py | 36 - .../tests/modeltests/m2m_intermediary/tests.py | 38 - .../tests/modeltests/m2m_multiple/__init__.py | 0 .../django/tests/modeltests/m2m_multiple/models.py | 30 - .../django/tests/modeltests/m2m_multiple/tests.py | 84 - .../tests/modeltests/m2m_recursive/__init__.py | 0 .../tests/modeltests/m2m_recursive/models.py | 28 - .../django/tests/modeltests/m2m_recursive/tests.py | 253 - .../tests/modeltests/m2m_signals/__init__.py | 1 - .../django/tests/modeltests/m2m_signals/models.py | 36 - parts/django/tests/modeltests/m2m_signals/tests.py | 427 - .../tests/modeltests/m2m_through/__init__.py | 2 - .../django/tests/modeltests/m2m_through/models.py | 65 - parts/django/tests/modeltests/m2m_through/tests.py | 343 - .../tests/modeltests/m2o_recursive/__init__.py | 0 .../tests/modeltests/m2o_recursive/models.py | 28 - .../django/tests/modeltests/m2o_recursive/tests.py | 38 - .../tests/modeltests/many_to_many/__init__.py | 0 .../django/tests/modeltests/many_to_many/models.py | 29 - .../django/tests/modeltests/many_to_many/tests.py | 384 - .../tests/modeltests/many_to_one/__init__.py | 0 .../django/tests/modeltests/many_to_one/models.py | 26 - parts/django/tests/modeltests/many_to_one/tests.py | 371 - .../tests/modeltests/many_to_one_null/__init__.py | 0 .../tests/modeltests/many_to_one_null/models.py | 24 - .../tests/modeltests/many_to_one_null/tests.py | 84 - .../tests/modeltests/model_forms/__init__.py | 0 .../django/tests/modeltests/model_forms/mforms.py | 39 - .../django/tests/modeltests/model_forms/models.py | 1575 ---- parts/django/tests/modeltests/model_forms/test.png | Bin 482 -> 0 bytes .../django/tests/modeltests/model_forms/test2.png | Bin 2072 -> 0 bytes parts/django/tests/modeltests/model_forms/tests.py | 185 - .../tests/modeltests/model_formsets/__init__.py | 0 .../tests/modeltests/model_formsets/models.py | 193 - .../tests/modeltests/model_formsets/tests.py | 1159 --- .../tests/modeltests/model_inheritance/__init__.py | 0 .../tests/modeltests/model_inheritance/models.py | 145 - .../tests/modeltests/model_inheritance/tests.py | 281 - .../model_inheritance_same_model_name/__init__.py | 0 .../model_inheritance_same_model_name/models.py | 19 - .../model_inheritance_same_model_name/tests.py | 32 - .../tests/modeltests/model_package/__init__.py | 1 - .../modeltests/model_package/models/__init__.py | 3 - .../modeltests/model_package/models/article.py | 10 - .../modeltests/model_package/models/publication.py | 7 - .../django/tests/modeltests/model_package/tests.py | 72 - .../modeltests/mutually_referential/__init__.py | 0 .../modeltests/mutually_referential/models.py | 19 - .../tests/modeltests/mutually_referential/tests.py | 20 - .../django/tests/modeltests/one_to_one/__init__.py | 0 parts/django/tests/modeltests/one_to_one/models.py | 47 - parts/django/tests/modeltests/one_to_one/tests.py | 119 - .../django/tests/modeltests/or_lookups/__init__.py | 0 parts/django/tests/modeltests/or_lookups/models.py | 22 - parts/django/tests/modeltests/or_lookups/tests.py | 232 - .../modeltests/order_with_respect_to/__init__.py | 0 .../modeltests/order_with_respect_to/models.py | 29 - .../modeltests/order_with_respect_to/tests.py | 71 - parts/django/tests/modeltests/ordering/__init__.py | 0 parts/django/tests/modeltests/ordering/models.py | 26 - parts/django/tests/modeltests/ordering/tests.py | 137 - .../django/tests/modeltests/pagination/__init__.py | 0 parts/django/tests/modeltests/pagination/models.py | 17 - parts/django/tests/modeltests/pagination/tests.py | 132 - .../django/tests/modeltests/properties/__init__.py | 0 parts/django/tests/modeltests/properties/models.py | 21 - parts/django/tests/modeltests/properties/tests.py | 20 - .../modeltests/proxy_model_inheritance/__init__.py | 0 .../proxy_model_inheritance/app1/__init__.py | 0 .../proxy_model_inheritance/app1/models.py | 5 - .../proxy_model_inheritance/app2/__init__.py | 0 .../proxy_model_inheritance/app2/models.py | 4 - .../modeltests/proxy_model_inheritance/models.py | 0 .../modeltests/proxy_model_inheritance/tests.py | 36 - .../tests/modeltests/proxy_models/__init__.py | 0 .../modeltests/proxy_models/fixtures/mypeople.json | 9 - .../django/tests/modeltests/proxy_models/models.py | 164 - .../django/tests/modeltests/proxy_models/tests.py | 314 - .../django/tests/modeltests/raw_query/__init__.py | 0 .../raw_query/fixtures/raw_query_books.json | 110 - parts/django/tests/modeltests/raw_query/models.py | 30 - parts/django/tests/modeltests/raw_query/tests.py | 236 - .../tests/modeltests/reserved_names/__init__.py | 0 .../tests/modeltests/reserved_names/models.py | 25 - .../tests/modeltests/reserved_names/tests.py | 48 - .../tests/modeltests/reverse_lookup/__init__.py | 0 .../tests/modeltests/reverse_lookup/models.py | 28 - .../tests/modeltests/reverse_lookup/tests.py | 49 - .../tests/modeltests/save_delete_hooks/__init__.py | 0 .../tests/modeltests/save_delete_hooks/models.py | 32 - .../tests/modeltests/save_delete_hooks/tests.py | 30 - .../tests/modeltests/select_related/__init__.py | 0 .../tests/modeltests/select_related/models.py | 59 - .../tests/modeltests/select_related/tests.py | 166 - .../tests/modeltests/serializers/__init__.py | 0 .../django/tests/modeltests/serializers/models.py | 117 - parts/django/tests/modeltests/serializers/tests.py | 417 - parts/django/tests/modeltests/signals/__init__.py | 0 parts/django/tests/modeltests/signals/models.py | 13 - parts/django/tests/modeltests/signals/tests.py | 148 - parts/django/tests/modeltests/str/__init__.py | 0 parts/django/tests/modeltests/str/models.py | 33 - parts/django/tests/modeltests/str/tests.py | 23 - .../tests/modeltests/test_client/__init__.py | 0 .../modeltests/test_client/fixtures/testdata.json | 56 - .../django/tests/modeltests/test_client/models.py | 459 -- parts/django/tests/modeltests/test_client/tests.py | 20 - parts/django/tests/modeltests/test_client/urls.py | 29 - parts/django/tests/modeltests/test_client/views.py | 214 - .../tests/modeltests/transactions/__init__.py | 0 .../django/tests/modeltests/transactions/models.py | 21 - .../django/tests/modeltests/transactions/tests.py | 155 - .../tests/modeltests/unmanaged_models/__init__.py | 2 - .../tests/modeltests/unmanaged_models/models.py | 125 - .../tests/modeltests/unmanaged_models/tests.py | 58 - parts/django/tests/modeltests/update/__init__.py | 0 parts/django/tests/modeltests/update/models.py | 35 - parts/django/tests/modeltests/update/tests.py | 116 - .../tests/modeltests/user_commands/__init__.py | 0 .../user_commands/management/__init__.py | 0 .../user_commands/management/commands/__init__.py | 0 .../user_commands/management/commands/dance.py | 14 - .../tests/modeltests/user_commands/models.py | 14 - .../django/tests/modeltests/user_commands/tests.py | 21 - .../django/tests/modeltests/validation/__init__.py | 21 - parts/django/tests/modeltests/validation/models.py | 65 - .../modeltests/validation/test_custom_messages.py | 13 - .../tests/modeltests/validation/test_unique.py | 85 - parts/django/tests/modeltests/validation/tests.py | 114 - .../tests/modeltests/validation/validators.py | 18 - .../django/tests/modeltests/validators/__init__.py | 0 parts/django/tests/modeltests/validators/models.py | 0 parts/django/tests/modeltests/validators/tests.py | 159 - parts/django/tests/regressiontests/__init__.py | 0 .../regressiontests/admin_changelist/__init__.py | 0 .../regressiontests/admin_changelist/models.py | 9 - .../regressiontests/admin_changelist/tests.py | 103 - .../regressiontests/admin_inlines/__init__.py | 0 .../admin_inlines/fixtures/admin-views-users.xml | 17 - .../tests/regressiontests/admin_inlines/models.py | 125 - .../tests/regressiontests/admin_inlines/tests.py | 121 - .../regressiontests/admin_ordering/__init__.py | 0 .../tests/regressiontests/admin_ordering/models.py | 10 - .../tests/regressiontests/admin_ordering/tests.py | 39 - .../regressiontests/admin_registration/__init__.py | 0 .../regressiontests/admin_registration/models.py | 11 - .../regressiontests/admin_registration/tests.py | 54 - .../regressiontests/admin_scripts/__init__.py | 0 .../admin_scripts/app_with_import/__init__.py | 0 .../admin_scripts/app_with_import/models.py | 7 - .../admin_scripts/broken_app/__init__.py | 0 .../admin_scripts/broken_app/models.py | 1 - .../admin_scripts/complex_app/__init__.py | 0 .../admin_scripts/complex_app/admin/__init__.py | 0 .../admin_scripts/complex_app/admin/foo.py | 3 - .../admin_scripts/complex_app/models/__init__.py | 4 - .../admin_scripts/complex_app/models/bar.py | 7 - .../admin_scripts/complex_app/models/foo.py | 6 - .../admin_scripts/management/__init__.py | 0 .../admin_scripts/management/commands/__init__.py | 0 .../management/commands/app_command.py | 10 - .../management/commands/base_command.py | 15 - .../management/commands/label_command.py | 9 - .../management/commands/noargs_command.py | 9 - .../tests/regressiontests/admin_scripts/models.py | 12 - .../admin_scripts/simple_app/__init__.py | 0 .../admin_scripts/simple_app/models.py | 1 - .../tests/regressiontests/admin_scripts/tests.py | 1199 --- .../tests/regressiontests/admin_util/__init__.py | 0 .../tests/regressiontests/admin_util/models.py | 33 - .../tests/regressiontests/admin_util/tests.py | 239 - .../regressiontests/admin_validation/__init__.py | 0 .../regressiontests/admin_validation/models.py | 47 - .../regressiontests/admin_validation/tests.py | 247 - .../tests/regressiontests/admin_views/__init__.py | 0 .../regressiontests/admin_views/customadmin.py | 34 - .../admin_views/fixtures/admin-views-actions.xml | 15 - .../admin_views/fixtures/admin-views-colors.xml | 19 - .../admin_views/fixtures/admin-views-fabrics.xml | 12 - .../admin_views/fixtures/admin-views-person.xml | 18 - .../admin_views/fixtures/admin-views-unicode.xml | 63 - .../admin_views/fixtures/admin-views-users.xml | 93 - .../admin_views/fixtures/deleted-objects.xml | 53 - .../fixtures/multiple-child-classes.json | 107 - .../admin_views/fixtures/string-primary-key.xml | 6 - .../tests/regressiontests/admin_views/models.py | 636 -- .../tests/regressiontests/admin_views/tests.py | 2287 ------ .../tests/regressiontests/admin_views/urls.py | 11 - .../tests/regressiontests/admin_views/views.py | 6 - .../regressiontests/admin_widgets/__init__.py | 0 .../admin_widgets/fixtures/admin-widgets-users.xml | 43 - .../tests/regressiontests/admin_widgets/models.py | 68 - .../tests/regressiontests/admin_widgets/tests.py | 316 - .../tests/regressiontests/admin_widgets/urls.py | 7 - .../regressiontests/admin_widgets/widgetadmin.py | 30 - .../aggregation_regress/__init__.py | 0 .../aggregation_regress/fixtures/initial_data.json | 257 - .../regressiontests/aggregation_regress/models.py | 65 - .../regressiontests/aggregation_regress/tests.py | 757 -- .../tests/regressiontests/app_loading/__init__.py | 0 .../regressiontests/app_loading/eggs/brokenapp.egg | Bin 1605 -> 0 bytes .../regressiontests/app_loading/eggs/modelapp.egg | Bin 3347 -> 0 bytes .../app_loading/eggs/nomodelapp.egg | Bin 1211 -> 0 bytes .../regressiontests/app_loading/eggs/omelet.egg | Bin 9020 -> 0 bytes .../tests/regressiontests/app_loading/models.py | 0 .../regressiontests/app_loading/parent/__init__.py | 0 .../app_loading/parent/app/__init__.py | 0 .../app_loading/parent/app1/__init__.py | 0 .../app_loading/parent/app_2/__init__.py | 0 .../regressiontests/app_loading/test_settings.py | 3 - .../tests/regressiontests/app_loading/tests.py | 83 - .../tests/regressiontests/backends/__init__.py | 0 .../tests/regressiontests/backends/models.py | 37 - .../django/tests/regressiontests/backends/tests.py | 208 - .../regressiontests/bash_completion/__init__.py | 1 - .../bash_completion/management/__init__.py | 1 - .../management/commands/__init__.py | 1 - .../management/commands/test_command.py | 14 - .../regressiontests/bash_completion/models.py | 1 - .../tests/regressiontests/bash_completion/tests.py | 87 - .../tests/regressiontests/bug639/__init__.py | 0 .../django/tests/regressiontests/bug639/models.py | 26 - parts/django/tests/regressiontests/bug639/test.jpg | Bin 1780 -> 0 bytes parts/django/tests/regressiontests/bug639/tests.py | 41 - .../tests/regressiontests/bug8245/__init__.py | 0 .../django/tests/regressiontests/bug8245/admin.py | 7 - .../django/tests/regressiontests/bug8245/models.py | 4 - .../django/tests/regressiontests/bug8245/tests.py | 29 - .../regressiontests/builtin_server/__init__.py | 0 .../tests/regressiontests/builtin_server/models.py | 0 .../tests/regressiontests/builtin_server/tests.py | 51 - .../django/tests/regressiontests/cache/__init__.py | 0 .../tests/regressiontests/cache/liberal_backend.py | 9 - parts/django/tests/regressiontests/cache/models.py | 11 - parts/django/tests/regressiontests/cache/tests.py | 652 -- .../regressiontests/comment_tests/__init__.py | 0 .../comment_tests/custom_comments/__init__.py | 32 - .../comment_tests/custom_comments/forms.py | 4 - .../comment_tests/custom_comments/models.py | 4 - .../comment_tests/custom_comments/views.py | 13 - .../comment_tests/fixtures/comment_tests.json | 53 - .../comment_tests/fixtures/comment_utils.xml | 15 - .../tests/regressiontests/comment_tests/models.py | 34 - .../comment_tests/tests/__init__.py | 89 - .../comment_tests/tests/app_api_tests.py | 71 - .../comment_tests/tests/comment_form_tests.py | 84 - .../tests/comment_utils_moderators_tests.py | 75 - .../comment_tests/tests/comment_view_tests.py | 258 - .../comment_tests/tests/model_tests.py | 49 - .../comment_tests/tests/moderation_view_tests.py | 203 - .../comment_tests/tests/templatetag_tests.py | 97 - .../tests/regressiontests/comment_tests/urls.py | 9 - .../regressiontests/comment_tests/urls_admin.py | 19 - .../conditional_processing/__init__.py | 1 - .../conditional_processing/models.py | 128 - .../regressiontests/conditional_processing/urls.py | 10 - .../conditional_processing/views.py | 26 - .../regressiontests/context_processors/__init__.py | 0 .../fixtures/context-processors-users.xml | 17 - .../regressiontests/context_processors/models.py | 1 - .../context_processors/auth_attrs_access.html | 1 - .../context_processors/auth_attrs_messages.html | 1 - .../context_processors/auth_attrs_no_access.html | 1 - .../context_processors/auth_attrs_perms.html | 1 - .../context_processors/auth_attrs_test_access.html | 1 - .../context_processors/auth_attrs_user.html | 4 - .../context_processors/request_attrs.html | 13 - .../regressiontests/context_processors/tests.py | 112 - .../regressiontests/context_processors/urls.py | 14 - .../regressiontests/context_processors/views.py | 37 - .../tests/regressiontests/csrf_tests/__init__.py | 0 .../tests/regressiontests/csrf_tests/models.py | 1 - .../tests/regressiontests/csrf_tests/tests.py | 375 - .../custom_columns_regress/__init__.py | 0 .../custom_columns_regress/models.py | 36 - .../custom_columns_regress/tests.py | 84 - .../custom_managers_regress/__init__.py | 0 .../custom_managers_regress/models.py | 40 - .../custom_managers_regress/tests.py | 47 - .../tests/regressiontests/datatypes/__init__.py | 0 .../tests/regressiontests/datatypes/models.py | 25 - .../tests/regressiontests/datatypes/tests.py | 93 - .../tests/regressiontests/db_typecasts/__init__.py | 0 .../tests/regressiontests/db_typecasts/models.py | 0 .../tests/regressiontests/db_typecasts/tests.py | 62 - .../tests/regressiontests/decorators/__init__.py | 0 .../tests/regressiontests/decorators/models.py | 2 - .../tests/regressiontests/decorators/tests.py | 141 - .../regressiontests/defaultfilters/__init__.py | 0 .../tests/regressiontests/defaultfilters/models.py | 0 .../tests/regressiontests/defaultfilters/tests.py | 485 -- .../regressiontests/defer_regress/__init__.py | 0 .../tests/regressiontests/defer_regress/models.py | 36 - .../tests/regressiontests/defer_regress/tests.py | 163 - .../regressiontests/delete_regress/__init__.py | 1 - .../tests/regressiontests/delete_regress/models.py | 37 - .../tests/regressiontests/delete_regress/tests.py | 116 - .../tests/regressiontests/dispatch/__init__.py | 2 - .../tests/regressiontests/dispatch/models.py | 0 .../regressiontests/dispatch/tests/__init__.py | 6 - .../dispatch/tests/test_dispatcher.py | 123 - .../regressiontests/dispatch/tests/test_saferef.py | 79 - .../expressions_regress/__init__.py | 0 .../regressiontests/expressions_regress/models.py | 12 - .../regressiontests/expressions_regress/tests.py | 195 - .../regressiontests/extra_regress/__init__.py | 0 .../tests/regressiontests/extra_regress/models.py | 40 - .../tests/regressiontests/extra_regress/tests.py | 314 - .../tests/regressiontests/file_storage/__init__.py | 1 - .../tests/regressiontests/file_storage/models.py | 0 .../tests/regressiontests/file_storage/test.png | Bin 482 -> 0 bytes .../tests/regressiontests/file_storage/test1.png | Bin 480 -> 0 bytes .../tests/regressiontests/file_storage/tests.py | 382 - .../tests/regressiontests/file_uploads/__init__.py | 0 .../tests/regressiontests/file_uploads/models.py | 10 - .../tests/regressiontests/file_uploads/tests.py | 305 - .../regressiontests/file_uploads/uploadhandler.py | 34 - .../tests/regressiontests/file_uploads/urls.py | 13 - .../tests/regressiontests/file_uploads/views.py | 114 - .../regressiontests/fixtures_regress/__init__.py | 0 .../fixtures_regress/fixtures/absolute.json | 9 - .../fixtures_regress/fixtures/animal.xml | 9 - .../fixtures_regress/fixtures/bad_fixture1.unkn | 1 - .../fixtures_regress/fixtures/bad_fixture2.xml | 7 - .../fixtures_regress/fixtures/big-fixture.json | 83 - .../fixtures_regress/fixtures/empty.json | 1 - .../fixtures/forward_ref_lookup.json | 32 - .../fixtures/model-inheritance.json | 4 - .../fixtures_regress/fixtures/nk-inheritance.json | 18 - .../fixtures_regress/fixtures/nk-inheritance2.xml | 23 - .../fixtures_regress/fixtures/non_natural_1.json | 25 - .../fixtures_regress/fixtures/non_natural_2.xml | 16 - .../fixtures_regress/fixtures/pretty.xml | 11 - .../fixtures_regress/fixtures/sequence.json | 12 - .../fixtures_regress/fixtures/thingy.json | 9 - .../regressiontests/fixtures_regress/models.py | 225 - .../regressiontests/fixtures_regress/tests.py | 611 -- .../django/tests/regressiontests/forms/__init__.py | 0 .../regressiontests/forms/localflavor/__init__.py | 0 .../tests/regressiontests/forms/localflavor/ar.py | 99 - .../tests/regressiontests/forms/localflavor/at.py | 45 - .../tests/regressiontests/forms/localflavor/au.py | 50 - .../tests/regressiontests/forms/localflavor/br.py | 144 - .../tests/regressiontests/forms/localflavor/ca.py | 95 - .../tests/regressiontests/forms/localflavor/ch.py | 75 - .../tests/regressiontests/forms/localflavor/cl.py | 56 - .../tests/regressiontests/forms/localflavor/cz.py | 126 - .../tests/regressiontests/forms/localflavor/de.py | 49 - .../tests/regressiontests/forms/localflavor/es.py | 172 - .../tests/regressiontests/forms/localflavor/fi.py | 382 - .../tests/regressiontests/forms/localflavor/fr.py | 145 - .../regressiontests/forms/localflavor/generic.py | 88 - .../tests/regressiontests/forms/localflavor/id.py | 181 - .../tests/regressiontests/forms/localflavor/ie.py | 43 - .../tests/regressiontests/forms/localflavor/is_.py | 199 - .../tests/regressiontests/forms/localflavor/it.py | 70 - .../tests/regressiontests/forms/localflavor/jp.py | 73 - .../tests/regressiontests/forms/localflavor/kw.py | 16 - .../tests/regressiontests/forms/localflavor/nl.py | 62 - .../tests/regressiontests/forms/localflavor/pl.py | 462 -- .../tests/regressiontests/forms/localflavor/pt.py | 32 - .../tests/regressiontests/forms/localflavor/ro.py | 142 - .../tests/regressiontests/forms/localflavor/se.py | 331 - .../tests/regressiontests/forms/localflavor/sk.py | 116 - .../tests/regressiontests/forms/localflavor/uk.py | 30 - .../tests/regressiontests/forms/localflavor/us.py | 126 - .../regressiontests/forms/localflavor/utils.py | 51 - .../tests/regressiontests/forms/localflavor/uy.py | 52 - .../tests/regressiontests/forms/localflavor/za.py | 29 - .../regressiontests/forms/localflavortests.py | 37 - parts/django/tests/regressiontests/forms/models.py | 74 - .../tests/regressiontests/forms/tests/__init__.py | 43 - .../regressiontests/forms/tests/error_messages.py | 253 - .../tests/regressiontests/forms/tests/extra.py | 610 -- .../tests/regressiontests/forms/tests/fields.py | 862 -- .../tests/regressiontests/forms/tests/forms.py | 1700 ---- .../tests/regressiontests/forms/tests/formsets.py | 763 -- .../regressiontests/forms/tests/input_formats.py | 894 --- .../tests/regressiontests/forms/tests/media.py | 460 -- .../tests/regressiontests/forms/tests/models.py | 169 - .../regressiontests/forms/tests/regressions.py | 145 - .../tests/regressiontests/forms/tests/util.py | 57 - .../regressiontests/forms/tests/validators.py | 17 - .../tests/regressiontests/forms/tests/widgets.py | 1070 --- .../tests/regressiontests/formwizard/__init__.py | 0 .../tests/regressiontests/formwizard/forms.py | 18 - .../tests/regressiontests/formwizard/models.py | 0 .../formwizard/templates/forms/wizard.html | 13 - .../tests/regressiontests/formwizard/tests.py | 59 - .../tests/regressiontests/formwizard/urls.py | 6 - .../generic_inline_admin/__init__.py | 0 .../generic_inline_admin/fixtures/users.xml | 17 - .../regressiontests/generic_inline_admin/models.py | 108 - .../regressiontests/generic_inline_admin/tests.py | 214 - .../regressiontests/generic_inline_admin/urls.py | 6 - .../generic_relations_regress/__init__.py | 0 .../generic_relations_regress/models.py | 79 - .../generic_relations_regress/tests.py | 74 - .../get_or_create_regress/__init__.py | 0 .../get_or_create_regress/models.py | 13 - .../regressiontests/get_or_create_regress/tests.py | 53 - .../tests/regressiontests/httpwrappers/__init__.py | 0 .../tests/regressiontests/httpwrappers/models.py | 0 .../tests/regressiontests/httpwrappers/tests.py | 266 - .../tests/regressiontests/humanize/__init__.py | 0 .../tests/regressiontests/humanize/models.py | 0 .../django/tests/regressiontests/humanize/tests.py | 76 - .../django/tests/regressiontests/i18n/__init__.py | 0 parts/django/tests/regressiontests/i18n/forms.py | 22 - parts/django/tests/regressiontests/i18n/models.py | 12 - .../tests/regressiontests/i18n/other/__init__.py | 0 .../regressiontests/i18n/other/locale/__init__.py | 0 .../i18n/other/locale/de/LC_MESSAGES/django.mo | Bin 469 -> 0 bytes .../i18n/other/locale/de/LC_MESSAGES/django.po | 22 - .../i18n/other/locale/de/__init__.py | 0 .../i18n/other/locale/de/formats.py | 0 .../regressiontests/i18n/resolution/__init__.py | 0 .../resolution/locale/de/LC_MESSAGES/django.mo | Bin 460 -> 0 bytes .../resolution/locale/de/LC_MESSAGES/django.po | 22 - .../regressiontests/i18n/resolution/models.py | 1 - parts/django/tests/regressiontests/i18n/tests.py | 667 -- .../initial_sql_regress/__init__.py | 0 .../regressiontests/initial_sql_regress/models.py | 11 - .../initial_sql_regress/sql/simple.sql | 8 - .../regressiontests/initial_sql_regress/tests.py | 8 - .../regressiontests/inline_formsets/__init__.py | 0 .../regressiontests/inline_formsets/models.py | 28 - .../tests/regressiontests/inline_formsets/tests.py | 163 - .../regressiontests/introspection/__init__.py | 0 .../tests/regressiontests/introspection/models.py | 21 - .../tests/regressiontests/introspection/tests.py | 111 - .../locale/de/LC_MESSAGES/django.mo | Bin 464 -> 0 bytes .../locale/de/LC_MESSAGES/django.po | 22 - .../tests/regressiontests/localflavor/__init__.py | 0 .../tests/regressiontests/localflavor/models.py | 0 .../tests/regressiontests/localflavor/tests.py | 5 - .../regressiontests/localflavor/us/__init__.py | 0 .../tests/regressiontests/localflavor/us/forms.py | 7 - .../tests/regressiontests/localflavor/us/models.py | 13 - .../tests/regressiontests/localflavor/us/tests.py | 82 - .../tests/regressiontests/m2m_regress/__init__.py | 0 .../tests/regressiontests/m2m_regress/models.py | 58 - .../tests/regressiontests/m2m_regress/tests.py | 82 - .../m2m_through_regress/__init__.py | 2 - .../m2m_through_regress/fixtures/m2m_through.json | 34 - .../regressiontests/m2m_through_regress/models.py | 55 - .../regressiontests/m2m_through_regress/tests.py | 128 - .../django/tests/regressiontests/mail/__init__.py | 2 - .../tests/regressiontests/mail/custombackend.py | 15 - parts/django/tests/regressiontests/mail/models.py | 1 - parts/django/tests/regressiontests/mail/tests.py | 375 - .../tests/regressiontests/makemessages/__init__.py | 0 .../regressiontests/makemessages/extraction.py | 109 - .../makemessages/ignore_dir/ignored.html | 2 - .../regressiontests/makemessages/javascript.js | 4 - .../regressiontests/makemessages/locale/dummy | 0 .../tests/regressiontests/makemessages/models.py | 0 .../makemessages/templates/test.html | 4 - .../tests/regressiontests/makemessages/tests.py | 40 - .../regressiontests/managers_regress/__init__.py | 0 .../regressiontests/managers_regress/models.py | 100 - .../regressiontests/managers_regress/tests.py | 54 - .../many_to_one_regress/__init__.py | 0 .../regressiontests/many_to_one_regress/models.py | 46 - .../regressiontests/many_to_one_regress/tests.py | 105 - .../tests/regressiontests/max_lengths/__init__.py | 1 - .../tests/regressiontests/max_lengths/models.py | 13 - .../tests/regressiontests/max_lengths/tests.py | 36 - .../tests/regressiontests/middleware/__init__.py | 0 .../tests/regressiontests/middleware/extra_urls.py | 7 - .../tests/regressiontests/middleware/models.py | 1 - .../tests/regressiontests/middleware/tests.py | 249 - .../tests/regressiontests/middleware/urls.py | 7 - .../middleware_exceptions/__init__.py | 0 .../middleware_exceptions/models.py | 1 - .../regressiontests/middleware_exceptions/tests.py | 40 - .../regressiontests/middleware_exceptions/urls.py | 8 - .../regressiontests/middleware_exceptions/views.py | 4 - .../tests/regressiontests/model_fields/4x8.png | Bin 87 -> 0 bytes .../tests/regressiontests/model_fields/8x4.png | Bin 87 -> 0 bytes .../tests/regressiontests/model_fields/__init__.py | 0 .../regressiontests/model_fields/imagefield.py | 420 - .../tests/regressiontests/model_fields/models.py | 154 - .../tests/regressiontests/model_fields/tests.py | 313 - .../model_forms_regress/__init__.py | 0 .../regressiontests/model_forms_regress/models.py | 59 - .../regressiontests/model_forms_regress/tests.py | 311 - .../model_formsets_regress/__init__.py | 0 .../model_formsets_regress/models.py | 19 - .../model_formsets_regress/tests.py | 218 - .../model_inheritance_regress/__init__.py | 0 .../model_inheritance_regress/models.py | 148 - .../model_inheritance_regress/tests.py | 388 - .../model_inheritance_select_related/__init__.py | 0 .../model_inheritance_select_related/models.py | 29 - .../model_inheritance_select_related/tests.py | 29 - .../regressiontests/model_regress/__init__.py | 0 .../tests/regressiontests/model_regress/models.py | 59 - .../tests/regressiontests/model_regress/tests.py | 175 - .../tests/regressiontests/modeladmin/__init__.py | 0 .../tests/regressiontests/modeladmin/models.py | 36 - .../tests/regressiontests/modeladmin/tests.py | 1226 --- .../regressiontests/multiple_database/__init__.py | 0 .../multiple_database/fixtures/multidb-common.json | 10 - .../fixtures/multidb.default.json | 26 - .../multiple_database/fixtures/multidb.other.json | 26 - .../multiple_database/fixtures/pets.json | 18 - .../regressiontests/multiple_database/models.py | 76 - .../regressiontests/multiple_database/tests.py | 1681 ---- .../tests/regressiontests/null_fk/__init__.py | 0 .../django/tests/regressiontests/null_fk/models.py | 33 - .../django/tests/regressiontests/null_fk/tests.py | 42 - .../regressiontests/null_fk_ordering/__init__.py | 0 .../regressiontests/null_fk_ordering/models.py | 49 - .../regressiontests/null_fk_ordering/tests.py | 39 - .../tests/regressiontests/null_queries/__init__.py | 0 .../tests/regressiontests/null_queries/models.py | 25 - .../tests/regressiontests/null_queries/tests.py | 69 - .../regressiontests/one_to_one_regress/__init__.py | 0 .../regressiontests/one_to_one_regress/models.py | 43 - .../regressiontests/one_to_one_regress/tests.py | 130 - .../regressiontests/pagination_regress/__init__.py | 0 .../regressiontests/pagination_regress/models.py | 1 - .../regressiontests/pagination_regress/tests.py | 157 - .../tests/regressiontests/queries/__init__.py | 0 .../django/tests/regressiontests/queries/models.py | 276 - .../django/tests/regressiontests/queries/tests.py | 1586 ---- .../regressiontests/queryset_pickle/__init__.py | 0 .../regressiontests/queryset_pickle/models.py | 34 - .../tests/regressiontests/queryset_pickle/tests.py | 36 - .../tests/regressiontests/requests/__init__.py | 3 - .../tests/regressiontests/requests/models.py | 1 - .../django/tests/regressiontests/requests/tests.py | 59 - .../reverse_single_related/__init__.py | 0 .../reverse_single_related/models.py | 12 - .../reverse_single_related/tests.py | 36 - .../select_related_onetoone/__init__.py | 0 .../select_related_onetoone/models.py | 54 - .../select_related_onetoone/tests.py | 94 - .../select_related_regress/__init__.py | 0 .../select_related_regress/models.py | 86 - .../select_related_regress/tests.py | 134 - .../serializers_regress/__init__.py | 0 .../regressiontests/serializers_regress/models.py | 266 - .../regressiontests/serializers_regress/tests.py | 421 - .../tests/regressiontests/servers/__init__.py | 0 .../django/tests/regressiontests/servers/models.py | 0 .../django/tests/regressiontests/servers/tests.py | 68 - .../regressiontests/settings_tests/__init__.py | 0 .../tests/regressiontests/settings_tests/models.py | 0 .../tests/regressiontests/settings_tests/tests.py | 17 - .../regressiontests/signals_regress/__init__.py | 0 .../regressiontests/signals_regress/models.py | 14 - .../tests/regressiontests/signals_regress/tests.py | 96 - .../regressiontests/sites_framework/__init__.py | 0 .../regressiontests/sites_framework/models.py | 36 - .../tests/regressiontests/sites_framework/tests.py | 34 - .../regressiontests/special_headers/__init__.py | 0 .../special_headers/fixtures/data.xml | 20 - .../regressiontests/special_headers/models.py | 4 - .../templates/special_headers/article_detail.html | 1 - .../tests/regressiontests/special_headers/tests.py | 40 - .../tests/regressiontests/special_headers/urls.py | 10 - .../tests/regressiontests/special_headers/views.py | 10 - .../regressiontests/string_lookup/__init__.py | 0 .../tests/regressiontests/string_lookup/models.py | 45 - .../tests/regressiontests/string_lookup/tests.py | 78 - .../tests/regressiontests/syndication/__init__.py | 0 .../tests/regressiontests/syndication/feeds.py | 142 - .../syndication/fixtures/feeddata.json | 42 - .../tests/regressiontests/syndication/models.py | 23 - .../templates/syndication/description.html | 1 - .../syndication/templates/syndication/title.html | 1 - .../tests/regressiontests/syndication/tests.py | 356 - .../tests/regressiontests/syndication/urls.py | 24 - .../tests/regressiontests/templates/__init__.py | 0 .../tests/regressiontests/templates/context.py | 17 - .../tests/regressiontests/templates/custom.py | 12 - .../regressiontests/templates/eggs/tagsegg.egg | Bin 2581 -> 0 bytes .../tests/regressiontests/templates/filters.py | 350 - .../tests/regressiontests/templates/loaders.py | 150 - .../tests/regressiontests/templates/models.py | 0 .../tests/regressiontests/templates/nodelist.py | 30 - .../tests/regressiontests/templates/parser.py | 84 - .../tests/regressiontests/templates/smartif.py | 53 - .../templates/templates/broken_base.html | 1 - .../templates/templates/first/test.html | 1 - .../templates/templates/second/test.html | 1 - .../templates/templates/test_extends_error.html | 1 - .../templates/templatetags/__init__.py | 0 .../templates/templatetags/broken_tag.py | 1 - .../templates/templatetags/custom.py | 11 - .../tests/regressiontests/templates/tests.py | 1389 ---- .../tests/regressiontests/templates/unicode.py | 30 - .../django/tests/regressiontests/templates/urls.py | 17 - .../tests/regressiontests/templates/views.py | 13 - .../test_client_regress/__init__.py | 0 .../test_client_regress/bad_templates/404.html | 3 - .../test_client_regress/fixtures/testdata.json | 56 - .../regressiontests/test_client_regress/models.py | 864 -- .../regressiontests/test_client_regress/session.py | 30 - .../test_client_regress/templates/unicode.html | 5 - .../regressiontests/test_client_regress/urls.py | 29 - .../regressiontests/test_client_regress/views.py | 93 - .../tests/regressiontests/test_runner/__init__.py | 0 .../tests/regressiontests/test_runner/models.py | 0 .../tests/regressiontests/test_runner/tests.py | 120 - .../tests/regressiontests/test_utils/__init__.py | 0 .../tests/regressiontests/test_utils/models.py | 0 .../tests/regressiontests/test_utils/tests.py | 72 - .../django/tests/regressiontests/text/__init__.py | 0 parts/django/tests/regressiontests/text/models.py | 0 parts/django/tests/regressiontests/text/tests.py | 81 - .../urlpatterns_reverse/__init__.py | 0 .../urlpatterns_reverse/extra_urls.py | 13 - .../urlpatterns_reverse/included_namespace_urls.py | 13 - .../urlpatterns_reverse/included_urls.py | 8 - .../urlpatterns_reverse/included_urls2.py | 14 - .../urlpatterns_reverse/middleware.py | 11 - .../regressiontests/urlpatterns_reverse/models.py | 0 .../urlpatterns_reverse/namespace_urls.py | 38 - .../regressiontests/urlpatterns_reverse/no_urls.py | 2 - .../regressiontests/urlpatterns_reverse/tests.py | 330 - .../urlpatterns_reverse/urlconf_inner.py | 12 - .../urlpatterns_reverse/urlconf_outer.py | 9 - .../regressiontests/urlpatterns_reverse/urls.py | 63 - .../urlpatterns_reverse/urls_error_handlers.py | 8 - .../urls_error_handlers_callables.py | 9 - .../regressiontests/urlpatterns_reverse/views.py | 8 - .../django/tests/regressiontests/utils/__init__.py | 0 .../tests/regressiontests/utils/checksums.py | 29 - .../tests/regressiontests/utils/datastructures.py | 256 - .../tests/regressiontests/utils/dateformat.py | 129 - .../tests/regressiontests/utils/datetime_safe.py | 42 - .../tests/regressiontests/utils/decorators.py | 19 - .../tests/regressiontests/utils/eggs/test_egg.egg | Bin 4844 -> 0 bytes .../tests/regressiontests/utils/feedgenerator.py | 63 - .../tests/regressiontests/utils/functional.py | 10 - parts/django/tests/regressiontests/utils/html.py | 111 - parts/django/tests/regressiontests/utils/models.py | 1 - .../tests/regressiontests/utils/module_loading.py | 114 - .../regressiontests/utils/simplelazyobject.py | 77 - .../tests/regressiontests/utils/termcolors.py | 149 - .../regressiontests/utils/test_module/__init__.py | 0 .../utils/test_module/bad_module.py | 3 - .../utils/test_module/good_module.py | 1 - parts/django/tests/regressiontests/utils/tests.py | 18 - parts/django/tests/regressiontests/utils/text.py | 20 - .../tests/regressiontests/utils/timesince.py | 107 - parts/django/tests/regressiontests/utils/tzinfo.py | 18 - parts/django/tests/regressiontests/utils/urls.py | 8 - parts/django/tests/regressiontests/utils/views.py | 17 - .../django/tests/regressiontests/views/__init__.py | 10 - .../tests/regressiontests/views/app0/__init__.py | 1 - .../views/app0/locale/en/LC_MESSAGES/djangojs.mo | Bin 482 -> 0 bytes .../views/app0/locale/en/LC_MESSAGES/djangojs.po | 20 - .../tests/regressiontests/views/app1/__init__.py | 1 - .../views/app1/locale/fr/LC_MESSAGES/djangojs.mo | Bin 482 -> 0 bytes .../views/app1/locale/fr/LC_MESSAGES/djangojs.po | 20 - .../tests/regressiontests/views/app2/__init__.py | 1 - .../views/app2/locale/fr/LC_MESSAGES/djangojs.mo | Bin 482 -> 0 bytes .../views/app2/locale/fr/LC_MESSAGES/djangojs.po | 20 - .../tests/regressiontests/views/app3/__init__.py | 1 - .../app3/locale/es_AR/LC_MESSAGES/djangojs.mo | Bin 483 -> 0 bytes .../app3/locale/es_AR/LC_MESSAGES/djangojs.po | 20 - .../tests/regressiontests/views/app4/__init__.py | 1 - .../app4/locale/es_AR/LC_MESSAGES/djangojs.mo | Bin 483 -> 0 bytes .../app4/locale/es_AR/LC_MESSAGES/djangojs.po | 20 - .../regressiontests/views/fixtures/testdata.json | 75 - .../views/locale/es/LC_MESSAGES/djangojs.mo | Bin 490 -> 0 bytes .../views/locale/es/LC_MESSAGES/djangojs.po | 25 - .../views/locale/fr/LC_MESSAGES/djangojs.mo | Bin 484 -> 0 bytes .../views/locale/fr/LC_MESSAGES/djangojs.po | 24 - .../views/locale/ru/LC_MESSAGES/djangojs.mo | Bin 489 -> 0 bytes .../views/locale/ru/LC_MESSAGES/djangojs.po | 24 - .../tests/regressiontests/views/media/file.txt | 1 - .../tests/regressiontests/views/media/file.txt.gz | Bin 51 -> 0 bytes .../tests/regressiontests/views/media/file.unknown | 1 - parts/django/tests/regressiontests/views/models.py | 49 - .../views/templates/debug/template_exception.html | 2 - .../regressiontests/views/templatetags/__init__.py | 0 .../views/templatetags/debugtags.py | 10 - .../tests/regressiontests/views/tests/__init__.py | 7 - .../tests/regressiontests/views/tests/debug.py | 50 - .../tests/regressiontests/views/tests/defaults.py | 85 - .../views/tests/generic/__init__.py | 0 .../views/tests/generic/create_update.py | 211 - .../views/tests/generic/date_based.py | 140 - .../tests/regressiontests/views/tests/i18n.py | 149 - .../tests/regressiontests/views/tests/specials.py | 35 - .../tests/regressiontests/views/tests/static.py | 77 - parts/django/tests/regressiontests/views/urls.py | 131 - parts/django/tests/regressiontests/views/views.py | 59 - parts/django/tests/runtests.py | 336 - parts/django/tests/templates/404.html | 1 - parts/django/tests/templates/500.html | 1 - parts/django/tests/templates/base.html | 8 - .../comments/comment_notification_email.txt | 3 - .../tests/templates/custom_admin/add_form.html | 1 - .../tests/templates/custom_admin/change_form.html | 1 - .../tests/templates/custom_admin/change_list.html | 7 - .../custom_admin/delete_confirmation.html | 1 - .../custom_admin/delete_selected_confirmation.html | 1 - .../django/tests/templates/custom_admin/index.html | 6 - .../django/tests/templates/custom_admin/login.html | 6 - .../tests/templates/custom_admin/logout.html | 6 - .../templates/custom_admin/object_history.html | 1 - .../custom_admin/password_change_done.html | 6 - .../custom_admin/password_change_form.html | 6 - parts/django/tests/templates/extended.html | 5 - parts/django/tests/templates/form_view.html | 15 - parts/django/tests/templates/login.html | 17 - .../tests/templates/views/article_archive_day.html | 1 - .../templates/views/article_archive_month.html | 1 - .../templates/views/article_confirm_delete.html | 1 - .../tests/templates/views/article_detail.html | 1 - .../django/tests/templates/views/article_form.html | 3 - .../templates/views/datearticle_archive_month.html | 1 - .../tests/templates/views/urlarticle_detail.html | 1 - .../tests/templates/views/urlarticle_form.html | 3 - parts/django/tests/test_sqlite.py | 22 - parts/django/tests/urls.py | 44 - parts/tagging/.svn/all-wcprops | 41 - parts/tagging/.svn/dir-prop-base | 6 - parts/tagging/.svn/entries | 238 - .../tagging/.svn/prop-base/CHANGELOG.txt.svn-base | 5 - parts/tagging/.svn/prop-base/INSTALL.txt.svn-base | 5 - parts/tagging/.svn/prop-base/LICENSE.txt.svn-base | 5 - parts/tagging/.svn/prop-base/MANIFEST.in.svn-base | 5 - parts/tagging/.svn/prop-base/README.txt.svn-base | 5 - parts/tagging/.svn/prop-base/setup.py.svn-base | 5 - .../tagging/.svn/text-base/CHANGELOG.txt.svn-base | 112 - parts/tagging/.svn/text-base/INSTALL.txt.svn-base | 14 - parts/tagging/.svn/text-base/LICENSE.txt.svn-base | 55 - parts/tagging/.svn/text-base/MANIFEST.in.svn-base | 7 - parts/tagging/.svn/text-base/README.txt.svn-base | 10 - parts/tagging/.svn/text-base/setup.py.svn-base | 70 - parts/tagging/CHANGELOG.txt | 112 - parts/tagging/INSTALL.txt | 14 - parts/tagging/LICENSE.txt | 55 - parts/tagging/MANIFEST.in | 7 - parts/tagging/README.txt | 10 - parts/tagging/docs/.svn/all-wcprops | 11 - parts/tagging/docs/.svn/entries | 62 - .../docs/.svn/prop-base/overview.txt.svn-base | 5 - .../docs/.svn/text-base/overview.txt.svn-base | 904 --- parts/tagging/docs/overview.txt | 904 --- parts/tagging/setup.py | 70 - parts/tagging/tagging/.svn/all-wcprops | 65 - parts/tagging/tagging/.svn/dir-prop-base | 6 - parts/tagging/tagging/.svn/entries | 374 - .../tagging/.svn/prop-base/__init__.py.svn-base | 5 - .../tagging/.svn/prop-base/admin.py.svn-base | 5 - .../tagging/.svn/prop-base/fields.py.svn-base | 5 - .../tagging/.svn/prop-base/forms.py.svn-base | 5 - .../tagging/.svn/prop-base/generic.py.svn-base | 5 - .../tagging/.svn/prop-base/managers.py.svn-base | 5 - .../tagging/.svn/prop-base/models.py.svn-base | 5 - .../tagging/.svn/prop-base/settings.py.svn-base | 5 - .../tagging/.svn/prop-base/utils.py.svn-base | 5 - .../tagging/.svn/prop-base/views.py.svn-base | 5 - .../tagging/.svn/text-base/__init__.py.svn-base | 62 - .../tagging/.svn/text-base/admin.py.svn-base | 13 - .../tagging/.svn/text-base/fields.py.svn-base | 119 - .../tagging/.svn/text-base/forms.py.svn-base | 40 - .../tagging/.svn/text-base/generic.py.svn-base | 40 - .../tagging/.svn/text-base/managers.py.svn-base | 68 - .../tagging/.svn/text-base/models.py.svn-base | 490 -- .../tagging/.svn/text-base/settings.py.svn-base | 13 - .../tagging/.svn/text-base/utils.py.svn-base | 263 - .../tagging/.svn/text-base/views.py.svn-base | 52 - parts/tagging/tagging/__init__.py | 62 - parts/tagging/tagging/admin.py | 13 - parts/tagging/tagging/fields.py | 119 - parts/tagging/tagging/forms.py | 40 - parts/tagging/tagging/generic.py | 40 - parts/tagging/tagging/managers.py | 68 - parts/tagging/tagging/models.py | 490 -- parts/tagging/tagging/settings.py | 13 - .../tagging/tagging/templatetags/.svn/all-wcprops | 17 - .../tagging/templatetags/.svn/dir-prop-base | 6 - parts/tagging/tagging/templatetags/.svn/entries | 96 - .../.svn/prop-base/__init__.py.svn-base | 5 - .../.svn/prop-base/tagging_tags.py.svn-base | 5 - .../.svn/text-base/__init__.py.svn-base | 0 .../.svn/text-base/tagging_tags.py.svn-base | 231 - parts/tagging/tagging/templatetags/__init__.py | 0 parts/tagging/tagging/templatetags/tagging_tags.py | 231 - parts/tagging/tagging/tests/.svn/all-wcprops | 35 - parts/tagging/tagging/tests/.svn/dir-prop-base | 6 - parts/tagging/tagging/tests/.svn/entries | 198 - .../tests/.svn/prop-base/__init__.py.svn-base | 5 - .../tests/.svn/prop-base/models.py.svn-base | 5 - .../tests/.svn/prop-base/settings.py.svn-base | 5 - .../tagging/tests/.svn/prop-base/tags.txt.svn-base | 5 - .../tagging/tests/.svn/prop-base/tests.py.svn-base | 5 - .../tests/.svn/text-base/__init__.py.svn-base | 0 .../tests/.svn/text-base/models.py.svn-base | 42 - .../tests/.svn/text-base/settings.py.svn-base | 27 - .../tagging/tests/.svn/text-base/tags.txt.svn-base | 122 - .../tagging/tests/.svn/text-base/tests.py.svn-base | 920 --- parts/tagging/tagging/tests/__init__.py | 0 parts/tagging/tagging/tests/models.py | 42 - parts/tagging/tagging/tests/settings.py | 27 - parts/tagging/tagging/tests/tags.txt | 122 - parts/tagging/tagging/tests/tests.py | 920 --- parts/tagging/tagging/utils.py | 263 - parts/tagging/tagging/views.py | 52 - 3090 files changed, 643922 deletions(-) delete mode 100755 bin/buildout delete mode 100755 bin/django delete mode 100644 develop-eggs/Django.egg-link delete mode 100644 downloads/django-1.2.4.tar.gz delete mode 100644 eggs/MercurialRecipe-0.1.3-py2.6.egg delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/entry_points.txt delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/requires.txt delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.pyo delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.py delete mode 100644 eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/entry_points.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/namespace_packages.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/requires.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.pyo delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.py delete mode 100644 eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/native_libs.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/scripts/hg delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/highlight.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/highlight.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/interhg.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/interhg.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/keyword.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/keyword.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/mq.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/mq.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/notify.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/notify.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/pager.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/pager.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/parentrevspec.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/parentrevspec.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/patchbomb.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/patchbomb.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/progress.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/progress.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/purge.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/purge.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/rebase.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/rebase.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/record.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/record.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/relink.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/relink.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/schemes.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/schemes.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/share.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/share.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/transplant.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/transplant.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/win32mbcs.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/win32mbcs.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/win32text.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/win32text.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/zeroconf/Zeroconf.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/zeroconf/Zeroconf.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/zeroconf/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/zeroconf/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/__version__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/__version__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ancestor.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ancestor.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/archival.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/archival.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/base85.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/base85.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/base85.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/bdiff.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/bdiff.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/bdiff.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/bundlerepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/bundlerepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/byterange.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/byterange.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/changegroup.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/changegroup.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/changelog.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/changelog.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/cmdutil.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/cmdutil.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/commands.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/commands.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/config.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/config.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/context.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/context.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/copies.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/copies.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dagparser.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dagparser.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/demandimport.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/demandimport.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/diffhelpers.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/diffhelpers.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/diffhelpers.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dirstate.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dirstate.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/discovery.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/discovery.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dispatch.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/dispatch.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/encoding.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/encoding.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/error.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/error.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/extensions.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/extensions.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/filelog.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/filelog.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/filemerge.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/filemerge.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/graphmod.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/graphmod.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hbisect.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hbisect.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/config.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/dates.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/diffs.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/environment.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/extensions.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/glossary.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/hgweb.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/merge-tools.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/multirevs.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/patterns.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/revisions.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/revsets.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/subrepos.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/templates.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/urls.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hg.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hg.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/__init__.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/__init__.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/common.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/common.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/hgweb_mod.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/hgweb_mod.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/hgwebdir_mod.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/hgwebdir_mod.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/protocol.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/protocol.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/request.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/request.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/server.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/server.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/webcommands.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/webcommands.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/webutil.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/webutil.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/wsgicgi.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hgweb/wsgicgi.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hook.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/hook.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/httprepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/httprepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/i18n.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/i18n.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ignore.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ignore.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/keepalive.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/keepalive.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/localrepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/localrepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lock.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lock.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lsprof.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lsprof.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lsprofcalltree.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/lsprofcalltree.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mail.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mail.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/manifest.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/manifest.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/match.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/match.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mdiff.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mdiff.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/merge.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/merge.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/minirst.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/minirst.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mpatch.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mpatch.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/mpatch.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/node.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/node.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/osutil.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/osutil.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/osutil.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/parser.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/parser.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/parsers.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/parsers.pyo delete mode 100755 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/parsers.so delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/patch.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/patch.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/posix.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/posix.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/pushkey.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/pushkey.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/py3kcompat.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/py3kcompat.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/repair.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/repair.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/repo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/repo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/revlog.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/revlog.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/revset.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/revset.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/similar.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/similar.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/simplemerge.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/simplemerge.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/sshrepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/sshrepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/sshserver.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/sshserver.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/statichttprepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/statichttprepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/store.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/store.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/strutil.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/strutil.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/subrepo.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/subrepo.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/tags.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/tags.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templatefilters.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templatefilters.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templatekw.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templatekw.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templater.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templater.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/changelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/changelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/tagentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/atom/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/coal/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/coal/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/branches.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/changelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/changelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/changeset.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/fileannotate.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/filediff.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/filerevision.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/footer.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/graph.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/help.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/helptopics.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/index.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/manifest.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/notfound.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/search.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/shortlog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/summary.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/gitweb/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/map-cmdline.changelog delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/map-cmdline.compact delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/map-cmdline.default delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/map-cmdline.xml delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/branches.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/changelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/changelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/changeset.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/fileannotate.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/filediff.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/filerevision.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/footer.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/graph.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/help.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/helptopics.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/index.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/manifest.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/notfound.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/search.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/shortlog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/summary.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/monoblue/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/branches.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/changeset.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/fileannotate.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/filediff.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/filelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/filerevision.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/footer.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/graph.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/help.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/helptopics.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/index.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/manifest.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/notfound.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/search.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/shortlog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/shortlogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/paper/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/changeset.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/fileannotate.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/filediff.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/index.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/manifest.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/raw/notfound.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/changelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/changelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/filelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/tagentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/rss/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/branches.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/changelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/changelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/changeset.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/error.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/fileannotate.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/filediff.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/filelog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/filelogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/filerevision.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/footer.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/graph.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/header.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/index.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/manifest.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/map delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/notfound.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/search.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/shortlog.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/shortlogentry.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/spartan/tags.tmpl delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/background.png delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/coal-file.png delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/coal-folder.png delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/excanvas.js delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/graph.js delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/hgicon.png delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/hglogo.png delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/style-coal.css delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/style-gitweb.css delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/style-monoblue.css delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/style-paper.css delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/static/style.css delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/templates/template-vars.txt delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/transaction.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/transaction.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ui.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/ui.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/url.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/url.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/util.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/util.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/verify.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/verify.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/win32.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/win32.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/windows.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/windows.pyo delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/wireproto.py delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/wireproto.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/py-1.4.0-py2.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/py-1.4.0-py2.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/py-1.4.0-py2.6.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/py-1.4.0-py2.6.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/__metainfo.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/__metainfo.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_apipkg.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_apipkg.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_builtin.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_builtin.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/_assertionnew.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/_assertionnew.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/_assertionold.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/_assertionold.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/assertion.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/assertion.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/code.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/code.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/source.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_code/source.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_error.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_error.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_iniconfig.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_iniconfig.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/capture.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/capture.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/saferepr.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/saferepr.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/terminalwriter.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_io/terminalwriter.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/log.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/log.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/warning.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_log/warning.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/cacheutil.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/cacheutil.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/common.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/common.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/local.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/local.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/svnurl.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/svnurl.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/svnwc.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_path/svnwc.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/__init__.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/__init__.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/cmdexec.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/cmdexec.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/forkedfunc.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/forkedfunc.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/killproc.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_process/killproc.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_std.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_std.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_xmlgen.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/_xmlgen.pyo delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/test.py delete mode 100644 eggs/py-1.4.0-py2.6.egg/py/test.pyo delete mode 100644 eggs/setuptools-0.6c12dev_r85381-py2.6.egg delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/entry_points.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/namespace_packages.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/requires.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/README.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/__init__.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/__init__.pyo delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/__init__.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/allowhosts.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/bootstrap.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/buildout.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/buildout.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/debugging.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/dependencylinks.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/distribute.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/download.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/download.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/downloadcache.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/easy_install.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/easy_install.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/extends-cache.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/repeatable.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/rmtree.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/runsetup.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/setup.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/testing.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/testing.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/testing_bugfix.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/testrecipes.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/tests.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/testselectingpython.py delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/unzip.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/update.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/upgrading_distribute.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/virtualenv.txt delete mode 100644 eggs/zc.buildout-1.5.2-py2.6.egg/zc/buildout/windows.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/PKG-INFO delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/entry_points.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/namespace_packages.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/not-zip-safe delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/requires.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/EGG-INFO/top_level.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/__init__.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/__init__.pyo delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/__init__.pyo delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/README.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/__init__.pyo delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/api.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.pyo delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/custom.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/egg.pyo delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/selecting-python.txt delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.py delete mode 100644 eggs/zc.recipe.egg-1.3.2-py2.6.egg/zc/recipe/egg/tests.pyo delete mode 100644 parts/buildout/site.py delete mode 100644 parts/buildout/site.pyo delete mode 100644 parts/buildout/sitecustomize.py delete mode 100644 parts/buildout/sitecustomize.pyo delete mode 100644 parts/django/AUTHORS delete mode 100644 parts/django/Django.egg-info/PKG-INFO delete mode 100644 parts/django/Django.egg-info/SOURCES.txt delete mode 100644 parts/django/Django.egg-info/dependency_links.txt delete mode 100644 parts/django/Django.egg-info/top_level.txt delete mode 100644 parts/django/INSTALL delete mode 100644 parts/django/LICENSE delete mode 100644 parts/django/MANIFEST.in delete mode 100644 parts/django/PKG-INFO delete mode 100644 parts/django/README delete mode 100644 parts/django/django/__init__.py delete mode 100644 parts/django/django/bin/__init__.py delete mode 100755 parts/django/django/bin/compile-messages.py delete mode 100755 parts/django/django/bin/daily_cleanup.py delete mode 100755 parts/django/django/bin/django-admin.py delete mode 100755 parts/django/django/bin/make-messages.py delete mode 100644 parts/django/django/bin/profiling/__init__.py delete mode 100644 parts/django/django/bin/profiling/gather_profile_stats.py delete mode 100755 parts/django/django/bin/unique-messages.py delete mode 100644 parts/django/django/conf/__init__.py delete mode 100644 parts/django/django/conf/app_template/__init__.py delete mode 100644 parts/django/django/conf/app_template/models.py delete mode 100644 parts/django/django/conf/app_template/tests.py delete mode 100644 parts/django/django/conf/app_template/views.py delete mode 100644 parts/django/django/conf/global_settings.py delete mode 100644 parts/django/django/conf/locale/__init__.py delete mode 100644 parts/django/django/conf/locale/ar/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ar/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ar/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ar/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ar/__init__.py delete mode 100644 parts/django/django/conf/locale/ar/formats.py delete mode 100644 parts/django/django/conf/locale/bg/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/bg/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/bg/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/bg/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/bg/__init__.py delete mode 100644 parts/django/django/conf/locale/bg/formats.py delete mode 100644 parts/django/django/conf/locale/bn/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/bn/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/bn/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/bn/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/bn/__init__.py delete mode 100644 parts/django/django/conf/locale/bn/formats.py delete mode 100644 parts/django/django/conf/locale/bs/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/bs/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/bs/__init__.py delete mode 100644 parts/django/django/conf/locale/bs/formats.py delete mode 100644 parts/django/django/conf/locale/ca/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ca/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ca/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ca/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ca/__init__.py delete mode 100644 parts/django/django/conf/locale/ca/formats.py delete mode 100644 parts/django/django/conf/locale/cs/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/cs/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/cs/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/cs/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/cs/__init__.py delete mode 100644 parts/django/django/conf/locale/cs/formats.py delete mode 100644 parts/django/django/conf/locale/cy/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/cy/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/cy/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/cy/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/cy/__init__.py delete mode 100644 parts/django/django/conf/locale/cy/formats.py delete mode 100644 parts/django/django/conf/locale/da/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/da/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/da/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/da/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/da/__init__.py delete mode 100644 parts/django/django/conf/locale/da/formats.py delete mode 100644 parts/django/django/conf/locale/de/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/de/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/de/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/de/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/de/__init__.py delete mode 100644 parts/django/django/conf/locale/de/formats.py delete mode 100644 parts/django/django/conf/locale/el/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/el/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/el/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/el/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/el/__init__.py delete mode 100644 parts/django/django/conf/locale/el/formats.py delete mode 100644 parts/django/django/conf/locale/en/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/en/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/en/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/en/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/en/__init__.py delete mode 100644 parts/django/django/conf/locale/en/formats.py delete mode 100644 parts/django/django/conf/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/en_GB/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/en_GB/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/en_GB/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/en_GB/__init__.py delete mode 100644 parts/django/django/conf/locale/en_GB/formats.py delete mode 100644 parts/django/django/conf/locale/es/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/es/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/es/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/es/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/es/__init__.py delete mode 100644 parts/django/django/conf/locale/es/formats.py delete mode 100644 parts/django/django/conf/locale/es_AR/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/es_AR/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/es_AR/__init__.py delete mode 100644 parts/django/django/conf/locale/es_AR/formats.py delete mode 100644 parts/django/django/conf/locale/et/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/et/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/et/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/et/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/et/__init__.py delete mode 100644 parts/django/django/conf/locale/et/formats.py delete mode 100644 parts/django/django/conf/locale/eu/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/eu/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/eu/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/eu/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/eu/__init__.py delete mode 100644 parts/django/django/conf/locale/eu/formats.py delete mode 100644 parts/django/django/conf/locale/fa/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/fa/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/fa/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/fa/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/fa/__init__.py delete mode 100644 parts/django/django/conf/locale/fa/formats.py delete mode 100644 parts/django/django/conf/locale/fi/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/fi/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/fi/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/fi/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/fi/__init__.py delete mode 100644 parts/django/django/conf/locale/fi/formats.py delete mode 100644 parts/django/django/conf/locale/fr/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/fr/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/fr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/fr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/fr/__init__.py delete mode 100644 parts/django/django/conf/locale/fr/formats.py delete mode 100644 parts/django/django/conf/locale/fy_NL/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/fy_NL/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/fy_NL/__init__.py delete mode 100644 parts/django/django/conf/locale/fy_NL/formats.py delete mode 100644 parts/django/django/conf/locale/ga/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ga/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ga/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ga/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ga/__init__.py delete mode 100644 parts/django/django/conf/locale/ga/formats.py delete mode 100644 parts/django/django/conf/locale/gl/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/gl/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/gl/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/gl/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/gl/__init__.py delete mode 100644 parts/django/django/conf/locale/gl/formats.py delete mode 100644 parts/django/django/conf/locale/he/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/he/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/he/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/he/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/he/__init__.py delete mode 100644 parts/django/django/conf/locale/he/formats.py delete mode 100644 parts/django/django/conf/locale/hi/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/hi/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/hi/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/hi/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/hi/__init__.py delete mode 100644 parts/django/django/conf/locale/hi/formats.py delete mode 100644 parts/django/django/conf/locale/hr/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/hr/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/hr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/hr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/hr/__init__.py delete mode 100644 parts/django/django/conf/locale/hr/formats.py delete mode 100644 parts/django/django/conf/locale/hu/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/hu/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/hu/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/hu/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/hu/__init__.py delete mode 100644 parts/django/django/conf/locale/hu/formats.py delete mode 100644 parts/django/django/conf/locale/id/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/id/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/id/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/id/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/id/__init__.py delete mode 100644 parts/django/django/conf/locale/id/formats.py delete mode 100644 parts/django/django/conf/locale/is/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/is/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/is/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/is/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/is/__init__.py delete mode 100644 parts/django/django/conf/locale/is/formats.py delete mode 100644 parts/django/django/conf/locale/it/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/it/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/it/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/it/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/it/__init__.py delete mode 100644 parts/django/django/conf/locale/it/formats.py delete mode 100644 parts/django/django/conf/locale/ja/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ja/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ja/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ja/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ja/__init__.py delete mode 100644 parts/django/django/conf/locale/ja/formats.py delete mode 100644 parts/django/django/conf/locale/ka/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ka/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ka/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ka/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ka/__init__.py delete mode 100644 parts/django/django/conf/locale/ka/formats.py delete mode 100644 parts/django/django/conf/locale/km/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/km/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/km/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/km/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/km/__init__.py delete mode 100644 parts/django/django/conf/locale/km/formats.py delete mode 100644 parts/django/django/conf/locale/kn/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/kn/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/kn/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/kn/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/kn/__init__.py delete mode 100644 parts/django/django/conf/locale/kn/formats.py delete mode 100644 parts/django/django/conf/locale/ko/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ko/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ko/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ko/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ko/__init__.py delete mode 100644 parts/django/django/conf/locale/ko/formats.py delete mode 100644 parts/django/django/conf/locale/lt/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/lt/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/lt/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/lt/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/lt/__init__.py delete mode 100644 parts/django/django/conf/locale/lt/formats.py delete mode 100644 parts/django/django/conf/locale/lv/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/lv/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/lv/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/lv/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/lv/__init__.py delete mode 100644 parts/django/django/conf/locale/lv/formats.py delete mode 100644 parts/django/django/conf/locale/mk/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/mk/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/mk/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/mk/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/mk/__init__.py delete mode 100644 parts/django/django/conf/locale/mk/formats.py delete mode 100644 parts/django/django/conf/locale/ml/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ml/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ml/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ml/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ml/__init__.py delete mode 100644 parts/django/django/conf/locale/ml/formats.py delete mode 100644 parts/django/django/conf/locale/mn/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/mn/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/mn/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/mn/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/mn/__init__.py delete mode 100644 parts/django/django/conf/locale/mn/formats.py delete mode 100644 parts/django/django/conf/locale/nb/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/nb/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/nb/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/nb/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/nb/__init__.py delete mode 100644 parts/django/django/conf/locale/nb/formats.py delete mode 100644 parts/django/django/conf/locale/nl/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/nl/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/nl/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/nl/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/nl/__init__.py delete mode 100644 parts/django/django/conf/locale/nl/formats.py delete mode 100644 parts/django/django/conf/locale/nn/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/nn/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/nn/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/nn/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/nn/__init__.py delete mode 100644 parts/django/django/conf/locale/nn/formats.py delete mode 100644 parts/django/django/conf/locale/no/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/no/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/no/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/no/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/no/__init__.py delete mode 100644 parts/django/django/conf/locale/no/formats.py delete mode 100644 parts/django/django/conf/locale/pl/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/pl/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/pl/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/pl/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/pl/__init__.py delete mode 100644 parts/django/django/conf/locale/pl/formats.py delete mode 100644 parts/django/django/conf/locale/pt/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/pt/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/pt/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/pt/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/pt/__init__.py delete mode 100644 parts/django/django/conf/locale/pt/formats.py delete mode 100644 parts/django/django/conf/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/pt_BR/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/pt_BR/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/pt_BR/__init__.py delete mode 100644 parts/django/django/conf/locale/pt_BR/formats.py delete mode 100644 parts/django/django/conf/locale/ro/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ro/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ro/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ro/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ro/__init__.py delete mode 100644 parts/django/django/conf/locale/ro/formats.py delete mode 100644 parts/django/django/conf/locale/ru/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ru/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ru/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ru/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ru/__init__.py delete mode 100644 parts/django/django/conf/locale/ru/formats.py delete mode 100644 parts/django/django/conf/locale/sk/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sk/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sk/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sk/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sk/__init__.py delete mode 100644 parts/django/django/conf/locale/sk/formats.py delete mode 100644 parts/django/django/conf/locale/sl/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sl/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sl/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sl/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sl/__init__.py delete mode 100644 parts/django/django/conf/locale/sl/formats.py delete mode 100644 parts/django/django/conf/locale/sq/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sq/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sq/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sq/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sq/__init__.py delete mode 100644 parts/django/django/conf/locale/sq/formats.py delete mode 100644 parts/django/django/conf/locale/sr/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sr/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sr/__init__.py delete mode 100644 parts/django/django/conf/locale/sr/formats.py delete mode 100644 parts/django/django/conf/locale/sr_Latn/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sr_Latn/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sr_Latn/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sr_Latn/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sr_Latn/__init__.py delete mode 100644 parts/django/django/conf/locale/sr_Latn/formats.py delete mode 100644 parts/django/django/conf/locale/sv/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/sv/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/sv/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/sv/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/sv/__init__.py delete mode 100644 parts/django/django/conf/locale/sv/formats.py delete mode 100644 parts/django/django/conf/locale/ta/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/ta/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/ta/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/ta/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/ta/__init__.py delete mode 100644 parts/django/django/conf/locale/ta/formats.py delete mode 100644 parts/django/django/conf/locale/te/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/te/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/te/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/te/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/te/__init__.py delete mode 100644 parts/django/django/conf/locale/te/formats.py delete mode 100644 parts/django/django/conf/locale/th/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/th/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/th/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/th/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/th/__init__.py delete mode 100644 parts/django/django/conf/locale/th/formats.py delete mode 100644 parts/django/django/conf/locale/tr/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/tr/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/tr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/tr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/tr/__init__.py delete mode 100644 parts/django/django/conf/locale/tr/formats.py delete mode 100644 parts/django/django/conf/locale/uk/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/uk/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/uk/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/uk/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/uk/__init__.py delete mode 100644 parts/django/django/conf/locale/uk/formats.py delete mode 100644 parts/django/django/conf/locale/vi/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/vi/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/vi/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/vi/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/vi/__init__.py delete mode 100644 parts/django/django/conf/locale/vi/formats.py delete mode 100644 parts/django/django/conf/locale/zh_CN/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/zh_CN/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/zh_CN/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/zh_CN/__init__.py delete mode 100644 parts/django/django/conf/locale/zh_CN/formats.py delete mode 100644 parts/django/django/conf/locale/zh_TW/LC_MESSAGES/django.mo delete mode 100644 parts/django/django/conf/locale/zh_TW/LC_MESSAGES/django.po delete mode 100644 parts/django/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/django/conf/locale/zh_TW/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/django/conf/locale/zh_TW/__init__.py delete mode 100644 parts/django/django/conf/locale/zh_TW/formats.py delete mode 100644 parts/django/django/conf/project_template/__init__.py delete mode 100755 parts/django/django/conf/project_template/manage.py delete mode 100644 parts/django/django/conf/project_template/settings.py delete mode 100644 parts/django/django/conf/project_template/urls.py delete mode 100644 parts/django/django/conf/urls/__init__.py delete mode 100644 parts/django/django/conf/urls/defaults.py delete mode 100644 parts/django/django/conf/urls/i18n.py delete mode 100644 parts/django/django/conf/urls/shortcut.py delete mode 100644 parts/django/django/contrib/__init__.py delete mode 100644 parts/django/django/contrib/admin/__init__.py delete mode 100644 parts/django/django/contrib/admin/actions.py delete mode 100644 parts/django/django/contrib/admin/filterspecs.py delete mode 100644 parts/django/django/contrib/admin/helpers.py delete mode 100644 parts/django/django/contrib/admin/media/css/base.css delete mode 100644 parts/django/django/contrib/admin/media/css/changelists.css delete mode 100644 parts/django/django/contrib/admin/media/css/dashboard.css delete mode 100644 parts/django/django/contrib/admin/media/css/forms.css delete mode 100644 parts/django/django/contrib/admin/media/css/ie.css delete mode 100644 parts/django/django/contrib/admin/media/css/login.css delete mode 100644 parts/django/django/contrib/admin/media/css/rtl.css delete mode 100644 parts/django/django/contrib/admin/media/css/widgets.css delete mode 100644 parts/django/django/contrib/admin/media/img/admin/arrow-down.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/arrow-up.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/changelist-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/changelist-bg_rtl.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/chooser-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/chooser_stacked-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/default-bg-reverse.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/default-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/deleted-overlay.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon-no.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon-unknown.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon-yes.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_addlink.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_alert.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_calendar.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_changelink.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_clock.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_deletelink.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_error.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_searchbox.png delete mode 100644 parts/django/django/contrib/admin/media/img/admin/icon_success.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/inline-delete-8bit.png delete mode 100644 parts/django/django/contrib/admin/media/img/admin/inline-delete.png delete mode 100644 parts/django/django/contrib/admin/media/img/admin/inline-restore-8bit.png delete mode 100644 parts/django/django/contrib/admin/media/img/admin/inline-restore.png delete mode 100644 parts/django/django/contrib/admin/media/img/admin/inline-splitter-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/nav-bg-grabber.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/nav-bg-reverse.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/nav-bg.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector-add.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector-addall.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector-remove.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector-removeall.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector-search.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector_stacked-add.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/selector_stacked-remove.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tool-left.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tool-left_over.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tool-right.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tool-right_over.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tooltag-add.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tooltag-add_over.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tooltag-arrowright.gif delete mode 100644 parts/django/django/contrib/admin/media/img/admin/tooltag-arrowright_over.gif delete mode 100644 parts/django/django/contrib/admin/media/img/gis/move_vertex_off.png delete mode 100644 parts/django/django/contrib/admin/media/img/gis/move_vertex_on.png delete mode 100644 parts/django/django/contrib/admin/media/js/LICENSE-JQUERY.txt delete mode 100644 parts/django/django/contrib/admin/media/js/SelectBox.js delete mode 100644 parts/django/django/contrib/admin/media/js/SelectFilter2.js delete mode 100644 parts/django/django/contrib/admin/media/js/actions.js delete mode 100644 parts/django/django/contrib/admin/media/js/actions.min.js delete mode 100644 parts/django/django/contrib/admin/media/js/admin/DateTimeShortcuts.js delete mode 100644 parts/django/django/contrib/admin/media/js/admin/RelatedObjectLookups.js delete mode 100644 parts/django/django/contrib/admin/media/js/admin/ordering.js delete mode 100644 parts/django/django/contrib/admin/media/js/calendar.js delete mode 100644 parts/django/django/contrib/admin/media/js/collapse.js delete mode 100644 parts/django/django/contrib/admin/media/js/collapse.min.js delete mode 100644 parts/django/django/contrib/admin/media/js/compress.py delete mode 100644 parts/django/django/contrib/admin/media/js/core.js delete mode 100644 parts/django/django/contrib/admin/media/js/dateparse.js delete mode 100644 parts/django/django/contrib/admin/media/js/getElementsBySelector.js delete mode 100644 parts/django/django/contrib/admin/media/js/inlines.js delete mode 100644 parts/django/django/contrib/admin/media/js/inlines.min.js delete mode 100644 parts/django/django/contrib/admin/media/js/jquery.init.js delete mode 100644 parts/django/django/contrib/admin/media/js/jquery.js delete mode 100644 parts/django/django/contrib/admin/media/js/jquery.min.js delete mode 100644 parts/django/django/contrib/admin/media/js/prepopulate.js delete mode 100644 parts/django/django/contrib/admin/media/js/prepopulate.min.js delete mode 100644 parts/django/django/contrib/admin/media/js/timeparse.js delete mode 100644 parts/django/django/contrib/admin/media/js/urlify.js delete mode 100644 parts/django/django/contrib/admin/models.py delete mode 100644 parts/django/django/contrib/admin/options.py delete mode 100644 parts/django/django/contrib/admin/sites.py delete mode 100644 parts/django/django/contrib/admin/templates/admin/404.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/500.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/actions.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/app_index.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/auth/user/add_form.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/auth/user/change_password.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/base.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/base_site.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/change_form.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/change_list.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/change_list_results.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/date_hierarchy.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/delete_confirmation.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/delete_selected_confirmation.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/edit_inline/stacked.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/edit_inline/tabular.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/filter.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/includes/fieldset.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/index.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/invalid_setup.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/login.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/object_history.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/pagination.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/prepopulated_fields_js.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/search_form.html delete mode 100644 parts/django/django/contrib/admin/templates/admin/submit_line.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/logged_out.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_change_done.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_change_form.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_reset_complete.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_reset_confirm.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_reset_done.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_reset_email.html delete mode 100644 parts/django/django/contrib/admin/templates/registration/password_reset_form.html delete mode 100644 parts/django/django/contrib/admin/templatetags/__init__.py delete mode 100644 parts/django/django/contrib/admin/templatetags/admin_list.py delete mode 100644 parts/django/django/contrib/admin/templatetags/admin_modify.py delete mode 100644 parts/django/django/contrib/admin/templatetags/adminmedia.py delete mode 100644 parts/django/django/contrib/admin/templatetags/log.py delete mode 100644 parts/django/django/contrib/admin/util.py delete mode 100644 parts/django/django/contrib/admin/validation.py delete mode 100644 parts/django/django/contrib/admin/views/__init__.py delete mode 100644 parts/django/django/contrib/admin/views/decorators.py delete mode 100644 parts/django/django/contrib/admin/views/main.py delete mode 100644 parts/django/django/contrib/admin/widgets.py delete mode 100644 parts/django/django/contrib/admindocs/__init__.py delete mode 100644 parts/django/django/contrib/admindocs/models.py delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/bookmarklets.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/index.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/missing_docutils.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/model_detail.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/model_index.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/template_detail.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/template_filter_index.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/template_tag_index.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/view_detail.html delete mode 100644 parts/django/django/contrib/admindocs/templates/admin_doc/view_index.html delete mode 100644 parts/django/django/contrib/admindocs/tests/__init__.py delete mode 100644 parts/django/django/contrib/admindocs/tests/fields.py delete mode 100644 parts/django/django/contrib/admindocs/urls.py delete mode 100644 parts/django/django/contrib/admindocs/utils.py delete mode 100644 parts/django/django/contrib/admindocs/views.py delete mode 100644 parts/django/django/contrib/auth/__init__.py delete mode 100644 parts/django/django/contrib/auth/admin.py delete mode 100644 parts/django/django/contrib/auth/backends.py delete mode 100644 parts/django/django/contrib/auth/context_processors.py delete mode 100644 parts/django/django/contrib/auth/create_superuser.py delete mode 100644 parts/django/django/contrib/auth/decorators.py delete mode 100644 parts/django/django/contrib/auth/fixtures/authtestdata.json delete mode 100644 parts/django/django/contrib/auth/forms.py delete mode 100644 parts/django/django/contrib/auth/handlers/__init__.py delete mode 100644 parts/django/django/contrib/auth/handlers/modpython.py delete mode 100644 parts/django/django/contrib/auth/management/__init__.py delete mode 100644 parts/django/django/contrib/auth/management/commands/__init__.py delete mode 100644 parts/django/django/contrib/auth/management/commands/changepassword.py delete mode 100644 parts/django/django/contrib/auth/management/commands/createsuperuser.py delete mode 100644 parts/django/django/contrib/auth/middleware.py delete mode 100644 parts/django/django/contrib/auth/models.py delete mode 100644 parts/django/django/contrib/auth/tests/__init__.py delete mode 100644 parts/django/django/contrib/auth/tests/auth_backends.py delete mode 100644 parts/django/django/contrib/auth/tests/basic.py delete mode 100644 parts/django/django/contrib/auth/tests/decorators.py delete mode 100644 parts/django/django/contrib/auth/tests/forms.py delete mode 100644 parts/django/django/contrib/auth/tests/models.py delete mode 100644 parts/django/django/contrib/auth/tests/remote_user.py delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/logged_out.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/login.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_change_form.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_reset_complete.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_reset_confirm.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_reset_done.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_reset_email.html delete mode 100644 parts/django/django/contrib/auth/tests/templates/registration/password_reset_form.html delete mode 100644 parts/django/django/contrib/auth/tests/tokens.py delete mode 100644 parts/django/django/contrib/auth/tests/urls.py delete mode 100644 parts/django/django/contrib/auth/tests/views.py delete mode 100644 parts/django/django/contrib/auth/tokens.py delete mode 100644 parts/django/django/contrib/auth/urls.py delete mode 100644 parts/django/django/contrib/auth/views.py delete mode 100644 parts/django/django/contrib/comments/__init__.py delete mode 100644 parts/django/django/contrib/comments/admin.py delete mode 100644 parts/django/django/contrib/comments/feeds.py delete mode 100644 parts/django/django/contrib/comments/forms.py delete mode 100644 parts/django/django/contrib/comments/managers.py delete mode 100644 parts/django/django/contrib/comments/models.py delete mode 100644 parts/django/django/contrib/comments/moderation.py delete mode 100644 parts/django/django/contrib/comments/signals.py delete mode 100644 parts/django/django/contrib/comments/templates/comments/400-debug.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/approve.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/approved.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/base.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/delete.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/deleted.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/flag.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/flagged.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/form.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/list.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/posted.html delete mode 100644 parts/django/django/contrib/comments/templates/comments/preview.html delete mode 100644 parts/django/django/contrib/comments/templatetags/__init__.py delete mode 100644 parts/django/django/contrib/comments/templatetags/comments.py delete mode 100644 parts/django/django/contrib/comments/urls.py delete mode 100644 parts/django/django/contrib/comments/views/__init__.py delete mode 100644 parts/django/django/contrib/comments/views/comments.py delete mode 100644 parts/django/django/contrib/comments/views/moderation.py delete mode 100644 parts/django/django/contrib/comments/views/utils.py delete mode 100644 parts/django/django/contrib/contenttypes/__init__.py delete mode 100644 parts/django/django/contrib/contenttypes/generic.py delete mode 100644 parts/django/django/contrib/contenttypes/management.py delete mode 100644 parts/django/django/contrib/contenttypes/models.py delete mode 100644 parts/django/django/contrib/contenttypes/tests.py delete mode 100644 parts/django/django/contrib/contenttypes/views.py delete mode 100644 parts/django/django/contrib/csrf/__init__.py delete mode 100644 parts/django/django/contrib/csrf/middleware.py delete mode 100644 parts/django/django/contrib/databrowse/__init__.py delete mode 100644 parts/django/django/contrib/databrowse/datastructures.py delete mode 100644 parts/django/django/contrib/databrowse/plugins/__init__.py delete mode 100644 parts/django/django/contrib/databrowse/plugins/calendars.py delete mode 100644 parts/django/django/contrib/databrowse/plugins/fieldchoices.py delete mode 100644 parts/django/django/contrib/databrowse/plugins/objects.py delete mode 100644 parts/django/django/contrib/databrowse/sites.py delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/base.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/base_site.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/calendar_day.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/calendar_homepage.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/calendar_main.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/calendar_month.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/calendar_year.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/choice_detail.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/choice_list.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/homepage.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/model_detail.html delete mode 100644 parts/django/django/contrib/databrowse/templates/databrowse/object_detail.html delete mode 100644 parts/django/django/contrib/databrowse/urls.py delete mode 100644 parts/django/django/contrib/databrowse/views.py delete mode 100644 parts/django/django/contrib/flatpages/__init__.py delete mode 100644 parts/django/django/contrib/flatpages/admin.py delete mode 100644 parts/django/django/contrib/flatpages/fixtures/sample_flatpages.json delete mode 100644 parts/django/django/contrib/flatpages/middleware.py delete mode 100644 parts/django/django/contrib/flatpages/models.py delete mode 100644 parts/django/django/contrib/flatpages/tests/__init__.py delete mode 100644 parts/django/django/contrib/flatpages/tests/csrf.py delete mode 100644 parts/django/django/contrib/flatpages/tests/middleware.py delete mode 100644 parts/django/django/contrib/flatpages/tests/templates/404.html delete mode 100644 parts/django/django/contrib/flatpages/tests/templates/flatpages/default.html delete mode 100644 parts/django/django/contrib/flatpages/tests/templates/registration/login.html delete mode 100644 parts/django/django/contrib/flatpages/tests/urls.py delete mode 100644 parts/django/django/contrib/flatpages/tests/views.py delete mode 100644 parts/django/django/contrib/flatpages/urls.py delete mode 100644 parts/django/django/contrib/flatpages/views.py delete mode 100644 parts/django/django/contrib/formtools/__init__.py delete mode 100644 parts/django/django/contrib/formtools/models.py delete mode 100644 parts/django/django/contrib/formtools/preview.py delete mode 100644 parts/django/django/contrib/formtools/templates/formtools/form.html delete mode 100644 parts/django/django/contrib/formtools/templates/formtools/preview.html delete mode 100644 parts/django/django/contrib/formtools/test_urls.py delete mode 100644 parts/django/django/contrib/formtools/tests.py delete mode 100644 parts/django/django/contrib/formtools/utils.py delete mode 100644 parts/django/django/contrib/formtools/wizard.py delete mode 100644 parts/django/django/contrib/gis/__init__.py delete mode 100644 parts/django/django/contrib/gis/admin/__init__.py delete mode 100644 parts/django/django/contrib/gis/admin/options.py delete mode 100644 parts/django/django/contrib/gis/admin/widgets.py delete mode 100644 parts/django/django/contrib/gis/db/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backend/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/adapter.py delete mode 100644 parts/django/django/contrib/gis/db/backends/base.py delete mode 100644 parts/django/django/contrib/gis/db/backends/mysql/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/mysql/base.py delete mode 100644 parts/django/django/contrib/gis/db/backends/mysql/creation.py delete mode 100644 parts/django/django/contrib/gis/db/backends/mysql/introspection.py delete mode 100644 parts/django/django/contrib/gis/db/backends/mysql/operations.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/adapter.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/base.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/compiler.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/creation.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/introspection.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/models.py delete mode 100644 parts/django/django/contrib/gis/db/backends/oracle/operations.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/adapter.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/base.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/creation.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/introspection.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/models.py delete mode 100644 parts/django/django/contrib/gis/db/backends/postgis/operations.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/adapter.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/base.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/client.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/creation.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/introspection.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/models.py delete mode 100644 parts/django/django/contrib/gis/db/backends/spatialite/operations.py delete mode 100644 parts/django/django/contrib/gis/db/backends/util.py delete mode 100644 parts/django/django/contrib/gis/db/models/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/models/aggregates.py delete mode 100644 parts/django/django/contrib/gis/db/models/fields.py delete mode 100644 parts/django/django/contrib/gis/db/models/manager.py delete mode 100644 parts/django/django/contrib/gis/db/models/proxy.py delete mode 100644 parts/django/django/contrib/gis/db/models/query.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/__init__.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/aggregates.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/compiler.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/conversion.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/query.py delete mode 100644 parts/django/django/contrib/gis/db/models/sql/where.py delete mode 100644 parts/django/django/contrib/gis/feeds.py delete mode 100644 parts/django/django/contrib/gis/forms/__init__.py delete mode 100644 parts/django/django/contrib/gis/forms/fields.py delete mode 100644 parts/django/django/contrib/gis/gdal/LICENSE delete mode 100644 parts/django/django/contrib/gis/gdal/__init__.py delete mode 100644 parts/django/django/contrib/gis/gdal/base.py delete mode 100644 parts/django/django/contrib/gis/gdal/datasource.py delete mode 100644 parts/django/django/contrib/gis/gdal/driver.py delete mode 100644 parts/django/django/contrib/gis/gdal/envelope.py delete mode 100644 parts/django/django/contrib/gis/gdal/error.py delete mode 100644 parts/django/django/contrib/gis/gdal/feature.py delete mode 100644 parts/django/django/contrib/gis/gdal/field.py delete mode 100644 parts/django/django/contrib/gis/gdal/geometries.py delete mode 100644 parts/django/django/contrib/gis/gdal/geomtype.py delete mode 100644 parts/django/django/contrib/gis/gdal/layer.py delete mode 100644 parts/django/django/contrib/gis/gdal/libgdal.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/__init__.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/ds.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/errcheck.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/generation.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/geom.py delete mode 100644 parts/django/django/contrib/gis/gdal/prototypes/srs.py delete mode 100644 parts/django/django/contrib/gis/gdal/srs.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/__init__.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/test_driver.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/test_ds.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/test_envelope.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/test_geom.py delete mode 100644 parts/django/django/contrib/gis/gdal/tests/test_srs.py delete mode 100644 parts/django/django/contrib/gis/geometry/__init__.py delete mode 100644 parts/django/django/contrib/gis/geometry/backend/__init__.py delete mode 100644 parts/django/django/contrib/gis/geometry/backend/geos.py delete mode 100644 parts/django/django/contrib/gis/geometry/regex.py delete mode 100644 parts/django/django/contrib/gis/geometry/test_data.py delete mode 100644 parts/django/django/contrib/gis/geos/LICENSE delete mode 100644 parts/django/django/contrib/gis/geos/__init__.py delete mode 100644 parts/django/django/contrib/gis/geos/base.py delete mode 100644 parts/django/django/contrib/gis/geos/collections.py delete mode 100644 parts/django/django/contrib/gis/geos/coordseq.py delete mode 100644 parts/django/django/contrib/gis/geos/error.py delete mode 100644 parts/django/django/contrib/gis/geos/factory.py delete mode 100644 parts/django/django/contrib/gis/geos/geometry.py delete mode 100644 parts/django/django/contrib/gis/geos/io.py delete mode 100644 parts/django/django/contrib/gis/geos/libgeos.py delete mode 100644 parts/django/django/contrib/gis/geos/linestring.py delete mode 100644 parts/django/django/contrib/gis/geos/mutable_list.py delete mode 100644 parts/django/django/contrib/gis/geos/point.py delete mode 100644 parts/django/django/contrib/gis/geos/polygon.py delete mode 100644 parts/django/django/contrib/gis/geos/prepared.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/__init__.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/coordseq.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/errcheck.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/geom.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/io.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/misc.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/predicates.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/prepared.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/threadsafe.py delete mode 100644 parts/django/django/contrib/gis/geos/prototypes/topology.py delete mode 100644 parts/django/django/contrib/gis/geos/tests/__init__.py delete mode 100644 parts/django/django/contrib/gis/geos/tests/test_geos.py delete mode 100644 parts/django/django/contrib/gis/geos/tests/test_geos_mutation.py delete mode 100644 parts/django/django/contrib/gis/geos/tests/test_io.py delete mode 100644 parts/django/django/contrib/gis/geos/tests/test_mutable_list.py delete mode 100644 parts/django/django/contrib/gis/management/__init__.py delete mode 100644 parts/django/django/contrib/gis/management/base.py delete mode 100644 parts/django/django/contrib/gis/management/commands/__init__.py delete mode 100644 parts/django/django/contrib/gis/management/commands/inspectdb.py delete mode 100644 parts/django/django/contrib/gis/management/commands/ogrinspect.py delete mode 100644 parts/django/django/contrib/gis/maps/__init__.py delete mode 100644 parts/django/django/contrib/gis/maps/google/__init__.py delete mode 100644 parts/django/django/contrib/gis/maps/google/gmap.py delete mode 100644 parts/django/django/contrib/gis/maps/google/overlays.py delete mode 100644 parts/django/django/contrib/gis/maps/google/zoom.py delete mode 100644 parts/django/django/contrib/gis/maps/openlayers/__init__.py delete mode 100644 parts/django/django/contrib/gis/measure.py delete mode 100644 parts/django/django/contrib/gis/models.py delete mode 100644 parts/django/django/contrib/gis/shortcuts.py delete mode 100644 parts/django/django/contrib/gis/sitemaps/__init__.py delete mode 100644 parts/django/django/contrib/gis/sitemaps/georss.py delete mode 100644 parts/django/django/contrib/gis/sitemaps/kml.py delete mode 100644 parts/django/django/contrib/gis/sitemaps/views.py delete mode 100644 parts/django/django/contrib/gis/templates/gis/admin/openlayers.html delete mode 100644 parts/django/django/contrib/gis/templates/gis/admin/openlayers.js delete mode 100644 parts/django/django/contrib/gis/templates/gis/admin/osm.html delete mode 100644 parts/django/django/contrib/gis/templates/gis/admin/osm.js delete mode 100644 parts/django/django/contrib/gis/templates/gis/google/google-map.html delete mode 100644 parts/django/django/contrib/gis/templates/gis/google/google-map.js delete mode 100644 parts/django/django/contrib/gis/templates/gis/google/google-multi.js delete mode 100644 parts/django/django/contrib/gis/templates/gis/google/google-single.js delete mode 100644 parts/django/django/contrib/gis/templates/gis/kml/base.kml delete mode 100644 parts/django/django/contrib/gis/templates/gis/kml/placemarks.kml delete mode 100644 parts/django/django/contrib/gis/templates/gis/sitemaps/geo_sitemap.xml delete mode 100644 parts/django/django/contrib/gis/tests/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/data/cities/cities.dbf delete mode 100644 parts/django/django/contrib/gis/tests/data/cities/cities.prj delete mode 100644 parts/django/django/contrib/gis/tests/data/cities/cities.shp delete mode 100644 parts/django/django/contrib/gis/tests/data/cities/cities.shx delete mode 100644 parts/django/django/contrib/gis/tests/data/counties/counties.dbf delete mode 100644 parts/django/django/contrib/gis/tests/data/counties/counties.shp delete mode 100644 parts/django/django/contrib/gis/tests/data/counties/counties.shx delete mode 100644 parts/django/django/contrib/gis/tests/data/geometries.json.gz delete mode 100644 parts/django/django/contrib/gis/tests/data/interstates/interstates.dbf delete mode 100644 parts/django/django/contrib/gis/tests/data/interstates/interstates.prj delete mode 100644 parts/django/django/contrib/gis/tests/data/interstates/interstates.shp delete mode 100644 parts/django/django/contrib/gis/tests/data/interstates/interstates.shx delete mode 100644 parts/django/django/contrib/gis/tests/data/test_point/test_point.dbf delete mode 100644 parts/django/django/contrib/gis/tests/data/test_point/test_point.prj delete mode 100644 parts/django/django/contrib/gis/tests/data/test_point/test_point.shp delete mode 100644 parts/django/django/contrib/gis/tests/data/test_point/test_point.shx delete mode 100644 parts/django/django/contrib/gis/tests/data/test_poly/test_poly.dbf delete mode 100644 parts/django/django/contrib/gis/tests/data/test_poly/test_poly.prj delete mode 100644 parts/django/django/contrib/gis/tests/data/test_poly/test_poly.shp delete mode 100644 parts/django/django/contrib/gis/tests/data/test_poly/test_poly.shx delete mode 100644 parts/django/django/contrib/gis/tests/data/test_vrt/test_vrt.csv delete mode 100644 parts/django/django/contrib/gis/tests/data/test_vrt/test_vrt.vrt delete mode 100644 parts/django/django/contrib/gis/tests/distapp/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/distapp/models.py delete mode 100644 parts/django/django/contrib/gis/tests/distapp/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/geo3d/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/geo3d/models.py delete mode 100644 parts/django/django/contrib/gis/tests/geo3d/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/geo3d/views.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/feeds.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/fixtures/initial_data.json.gz delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/models.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/sitemaps.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/test_feeds.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/test_regress.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/test_sitemaps.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/geoapp/urls.py delete mode 100644 parts/django/django/contrib/gis/tests/geogapp/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/geogapp/fixtures/initial_data.json delete mode 100644 parts/django/django/contrib/gis/tests/geogapp/models.py delete mode 100644 parts/django/django/contrib/gis/tests/geogapp/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/layermap/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/layermap/models.py delete mode 100644 parts/django/django/contrib/gis/tests/layermap/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/relatedapp/__init__.py delete mode 100644 parts/django/django/contrib/gis/tests/relatedapp/models.py delete mode 100644 parts/django/django/contrib/gis/tests/relatedapp/tests.py delete mode 100644 parts/django/django/contrib/gis/tests/test_geoforms.py delete mode 100644 parts/django/django/contrib/gis/tests/test_geoip.py delete mode 100644 parts/django/django/contrib/gis/tests/test_measure.py delete mode 100644 parts/django/django/contrib/gis/tests/test_spatialrefsys.py delete mode 100644 parts/django/django/contrib/gis/tests/utils.py delete mode 100644 parts/django/django/contrib/gis/utils/__init__.py delete mode 100644 parts/django/django/contrib/gis/utils/geoip.py delete mode 100644 parts/django/django/contrib/gis/utils/layermapping.py delete mode 100644 parts/django/django/contrib/gis/utils/ogrinfo.py delete mode 100644 parts/django/django/contrib/gis/utils/ogrinspect.py delete mode 100644 parts/django/django/contrib/gis/utils/srs.py delete mode 100644 parts/django/django/contrib/gis/utils/wkt.py delete mode 100644 parts/django/django/contrib/humanize/__init__.py delete mode 100644 parts/django/django/contrib/humanize/templatetags/__init__.py delete mode 100644 parts/django/django/contrib/humanize/templatetags/humanize.py delete mode 100644 parts/django/django/contrib/localflavor/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ar/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ar/ar_provinces.py delete mode 100644 parts/django/django/contrib/localflavor/ar/forms.py delete mode 100644 parts/django/django/contrib/localflavor/at/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/at/at_states.py delete mode 100644 parts/django/django/contrib/localflavor/at/forms.py delete mode 100644 parts/django/django/contrib/localflavor/au/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/au/au_states.py delete mode 100644 parts/django/django/contrib/localflavor/au/forms.py delete mode 100644 parts/django/django/contrib/localflavor/br/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/br/br_states.py delete mode 100644 parts/django/django/contrib/localflavor/br/forms.py delete mode 100644 parts/django/django/contrib/localflavor/ca/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ca/ca_provinces.py delete mode 100644 parts/django/django/contrib/localflavor/ca/forms.py delete mode 100644 parts/django/django/contrib/localflavor/ch/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ch/ch_states.py delete mode 100644 parts/django/django/contrib/localflavor/ch/forms.py delete mode 100644 parts/django/django/contrib/localflavor/cl/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/cl/cl_regions.py delete mode 100644 parts/django/django/contrib/localflavor/cl/forms.py delete mode 100644 parts/django/django/contrib/localflavor/cz/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/cz/cz_regions.py delete mode 100644 parts/django/django/contrib/localflavor/cz/forms.py delete mode 100644 parts/django/django/contrib/localflavor/de/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/de/de_states.py delete mode 100644 parts/django/django/contrib/localflavor/de/forms.py delete mode 100644 parts/django/django/contrib/localflavor/es/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/es/es_provinces.py delete mode 100644 parts/django/django/contrib/localflavor/es/es_regions.py delete mode 100644 parts/django/django/contrib/localflavor/es/forms.py delete mode 100644 parts/django/django/contrib/localflavor/fi/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/fi/fi_municipalities.py delete mode 100644 parts/django/django/contrib/localflavor/fi/forms.py delete mode 100644 parts/django/django/contrib/localflavor/fr/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/fr/forms.py delete mode 100644 parts/django/django/contrib/localflavor/fr/fr_department.py delete mode 100644 parts/django/django/contrib/localflavor/generic/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/generic/forms.py delete mode 100644 parts/django/django/contrib/localflavor/id/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/id/forms.py delete mode 100644 parts/django/django/contrib/localflavor/id/id_choices.py delete mode 100644 parts/django/django/contrib/localflavor/ie/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ie/forms.py delete mode 100644 parts/django/django/contrib/localflavor/ie/ie_counties.py delete mode 100644 parts/django/django/contrib/localflavor/in_/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/in_/forms.py delete mode 100644 parts/django/django/contrib/localflavor/in_/in_states.py delete mode 100644 parts/django/django/contrib/localflavor/is_/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/is_/forms.py delete mode 100644 parts/django/django/contrib/localflavor/is_/is_postalcodes.py delete mode 100644 parts/django/django/contrib/localflavor/it/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/it/forms.py delete mode 100644 parts/django/django/contrib/localflavor/it/it_province.py delete mode 100644 parts/django/django/contrib/localflavor/it/it_region.py delete mode 100644 parts/django/django/contrib/localflavor/it/util.py delete mode 100644 parts/django/django/contrib/localflavor/jp/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/jp/forms.py delete mode 100644 parts/django/django/contrib/localflavor/jp/jp_prefectures.py delete mode 100644 parts/django/django/contrib/localflavor/kw/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/kw/forms.py delete mode 100644 parts/django/django/contrib/localflavor/mx/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/mx/forms.py delete mode 100644 parts/django/django/contrib/localflavor/mx/mx_states.py delete mode 100644 parts/django/django/contrib/localflavor/nl/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/nl/forms.py delete mode 100644 parts/django/django/contrib/localflavor/nl/nl_provinces.py delete mode 100644 parts/django/django/contrib/localflavor/no/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/no/forms.py delete mode 100644 parts/django/django/contrib/localflavor/no/no_municipalities.py delete mode 100644 parts/django/django/contrib/localflavor/pe/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/pe/forms.py delete mode 100644 parts/django/django/contrib/localflavor/pe/pe_region.py delete mode 100644 parts/django/django/contrib/localflavor/pl/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/pl/forms.py delete mode 100644 parts/django/django/contrib/localflavor/pl/pl_administrativeunits.py delete mode 100644 parts/django/django/contrib/localflavor/pl/pl_voivodeships.py delete mode 100644 parts/django/django/contrib/localflavor/pt/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/pt/forms.py delete mode 100644 parts/django/django/contrib/localflavor/ro/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/ro/forms.py delete mode 100644 parts/django/django/contrib/localflavor/ro/ro_counties.py delete mode 100644 parts/django/django/contrib/localflavor/se/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/se/forms.py delete mode 100644 parts/django/django/contrib/localflavor/se/se_counties.py delete mode 100644 parts/django/django/contrib/localflavor/se/utils.py delete mode 100644 parts/django/django/contrib/localflavor/sk/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/sk/forms.py delete mode 100644 parts/django/django/contrib/localflavor/sk/sk_districts.py delete mode 100644 parts/django/django/contrib/localflavor/sk/sk_regions.py delete mode 100644 parts/django/django/contrib/localflavor/uk/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/uk/forms.py delete mode 100644 parts/django/django/contrib/localflavor/uk/uk_regions.py delete mode 100644 parts/django/django/contrib/localflavor/us/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/us/forms.py delete mode 100644 parts/django/django/contrib/localflavor/us/models.py delete mode 100644 parts/django/django/contrib/localflavor/us/us_states.py delete mode 100644 parts/django/django/contrib/localflavor/uy/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/uy/forms.py delete mode 100644 parts/django/django/contrib/localflavor/uy/util.py delete mode 100644 parts/django/django/contrib/localflavor/uy/uy_departaments.py delete mode 100644 parts/django/django/contrib/localflavor/za/__init__.py delete mode 100644 parts/django/django/contrib/localflavor/za/forms.py delete mode 100644 parts/django/django/contrib/localflavor/za/za_provinces.py delete mode 100644 parts/django/django/contrib/markup/__init__.py delete mode 100644 parts/django/django/contrib/markup/models.py delete mode 100644 parts/django/django/contrib/markup/templatetags/__init__.py delete mode 100644 parts/django/django/contrib/markup/templatetags/markup.py delete mode 100644 parts/django/django/contrib/markup/tests.py delete mode 100644 parts/django/django/contrib/messages/__init__.py delete mode 100644 parts/django/django/contrib/messages/api.py delete mode 100644 parts/django/django/contrib/messages/constants.py delete mode 100644 parts/django/django/contrib/messages/context_processors.py delete mode 100644 parts/django/django/contrib/messages/middleware.py delete mode 100644 parts/django/django/contrib/messages/models.py delete mode 100644 parts/django/django/contrib/messages/storage/__init__.py delete mode 100644 parts/django/django/contrib/messages/storage/base.py delete mode 100644 parts/django/django/contrib/messages/storage/cookie.py delete mode 100644 parts/django/django/contrib/messages/storage/fallback.py delete mode 100644 parts/django/django/contrib/messages/storage/session.py delete mode 100644 parts/django/django/contrib/messages/storage/user_messages.py delete mode 100644 parts/django/django/contrib/messages/tests/__init__.py delete mode 100644 parts/django/django/contrib/messages/tests/base.py delete mode 100644 parts/django/django/contrib/messages/tests/cookie.py delete mode 100644 parts/django/django/contrib/messages/tests/fallback.py delete mode 100644 parts/django/django/contrib/messages/tests/middleware.py delete mode 100644 parts/django/django/contrib/messages/tests/session.py delete mode 100644 parts/django/django/contrib/messages/tests/urls.py delete mode 100644 parts/django/django/contrib/messages/tests/user_messages.py delete mode 100644 parts/django/django/contrib/messages/utils.py delete mode 100644 parts/django/django/contrib/redirects/__init__.py delete mode 100644 parts/django/django/contrib/redirects/admin.py delete mode 100644 parts/django/django/contrib/redirects/middleware.py delete mode 100644 parts/django/django/contrib/redirects/models.py delete mode 100644 parts/django/django/contrib/sessions/__init__.py delete mode 100644 parts/django/django/contrib/sessions/backends/__init__.py delete mode 100644 parts/django/django/contrib/sessions/backends/base.py delete mode 100644 parts/django/django/contrib/sessions/backends/cache.py delete mode 100644 parts/django/django/contrib/sessions/backends/cached_db.py delete mode 100644 parts/django/django/contrib/sessions/backends/db.py delete mode 100644 parts/django/django/contrib/sessions/backends/file.py delete mode 100644 parts/django/django/contrib/sessions/middleware.py delete mode 100644 parts/django/django/contrib/sessions/models.py delete mode 100644 parts/django/django/contrib/sessions/tests.py delete mode 100644 parts/django/django/contrib/sitemaps/__init__.py delete mode 100644 parts/django/django/contrib/sitemaps/management/__init__.py delete mode 100644 parts/django/django/contrib/sitemaps/management/commands/__init__.py delete mode 100644 parts/django/django/contrib/sitemaps/management/commands/ping_google.py delete mode 100644 parts/django/django/contrib/sitemaps/models.py delete mode 100644 parts/django/django/contrib/sitemaps/templates/sitemap.xml delete mode 100644 parts/django/django/contrib/sitemaps/templates/sitemap_index.xml delete mode 100644 parts/django/django/contrib/sitemaps/tests/__init__.py delete mode 100644 parts/django/django/contrib/sitemaps/tests/basic.py delete mode 100644 parts/django/django/contrib/sitemaps/tests/urls.py delete mode 100644 parts/django/django/contrib/sitemaps/views.py delete mode 100644 parts/django/django/contrib/sites/__init__.py delete mode 100644 parts/django/django/contrib/sites/admin.py delete mode 100644 parts/django/django/contrib/sites/management.py delete mode 100644 parts/django/django/contrib/sites/managers.py delete mode 100644 parts/django/django/contrib/sites/models.py delete mode 100644 parts/django/django/contrib/sites/tests.py delete mode 100644 parts/django/django/contrib/syndication/__init__.py delete mode 100644 parts/django/django/contrib/syndication/feeds.py delete mode 100644 parts/django/django/contrib/syndication/views.py delete mode 100644 parts/django/django/contrib/webdesign/__init__.py delete mode 100644 parts/django/django/contrib/webdesign/lorem_ipsum.py delete mode 100644 parts/django/django/contrib/webdesign/models.py delete mode 100644 parts/django/django/contrib/webdesign/templatetags/__init__.py delete mode 100644 parts/django/django/contrib/webdesign/templatetags/webdesign.py delete mode 100644 parts/django/django/contrib/webdesign/tests.py delete mode 100644 parts/django/django/core/__init__.py delete mode 100644 parts/django/django/core/cache/__init__.py delete mode 100644 parts/django/django/core/cache/backends/__init__.py delete mode 100644 parts/django/django/core/cache/backends/base.py delete mode 100644 parts/django/django/core/cache/backends/db.py delete mode 100644 parts/django/django/core/cache/backends/dummy.py delete mode 100644 parts/django/django/core/cache/backends/filebased.py delete mode 100644 parts/django/django/core/cache/backends/locmem.py delete mode 100644 parts/django/django/core/cache/backends/memcached.py delete mode 100644 parts/django/django/core/context_processors.py delete mode 100644 parts/django/django/core/exceptions.py delete mode 100644 parts/django/django/core/files/__init__.py delete mode 100644 parts/django/django/core/files/base.py delete mode 100644 parts/django/django/core/files/images.py delete mode 100644 parts/django/django/core/files/locks.py delete mode 100644 parts/django/django/core/files/move.py delete mode 100644 parts/django/django/core/files/storage.py delete mode 100644 parts/django/django/core/files/temp.py delete mode 100644 parts/django/django/core/files/uploadedfile.py delete mode 100644 parts/django/django/core/files/uploadhandler.py delete mode 100644 parts/django/django/core/files/utils.py delete mode 100644 parts/django/django/core/handlers/__init__.py delete mode 100644 parts/django/django/core/handlers/base.py delete mode 100644 parts/django/django/core/handlers/modpython.py delete mode 100644 parts/django/django/core/handlers/profiler-hotshot.py delete mode 100644 parts/django/django/core/handlers/wsgi.py delete mode 100644 parts/django/django/core/mail/__init__.py delete mode 100644 parts/django/django/core/mail/backends/__init__.py delete mode 100644 parts/django/django/core/mail/backends/base.py delete mode 100644 parts/django/django/core/mail/backends/console.py delete mode 100644 parts/django/django/core/mail/backends/dummy.py delete mode 100644 parts/django/django/core/mail/backends/filebased.py delete mode 100644 parts/django/django/core/mail/backends/locmem.py delete mode 100644 parts/django/django/core/mail/backends/smtp.py delete mode 100644 parts/django/django/core/mail/message.py delete mode 100644 parts/django/django/core/mail/utils.py delete mode 100644 parts/django/django/core/management/__init__.py delete mode 100644 parts/django/django/core/management/base.py delete mode 100644 parts/django/django/core/management/color.py delete mode 100644 parts/django/django/core/management/commands/__init__.py delete mode 100644 parts/django/django/core/management/commands/cleanup.py delete mode 100644 parts/django/django/core/management/commands/compilemessages.py delete mode 100644 parts/django/django/core/management/commands/createcachetable.py delete mode 100644 parts/django/django/core/management/commands/dbshell.py delete mode 100644 parts/django/django/core/management/commands/diffsettings.py delete mode 100644 parts/django/django/core/management/commands/dumpdata.py delete mode 100644 parts/django/django/core/management/commands/flush.py delete mode 100644 parts/django/django/core/management/commands/inspectdb.py delete mode 100644 parts/django/django/core/management/commands/loaddata.py delete mode 100644 parts/django/django/core/management/commands/makemessages.py delete mode 100644 parts/django/django/core/management/commands/reset.py delete mode 100644 parts/django/django/core/management/commands/runfcgi.py delete mode 100644 parts/django/django/core/management/commands/runserver.py delete mode 100644 parts/django/django/core/management/commands/shell.py delete mode 100644 parts/django/django/core/management/commands/sql.py delete mode 100644 parts/django/django/core/management/commands/sqlall.py delete mode 100644 parts/django/django/core/management/commands/sqlclear.py delete mode 100644 parts/django/django/core/management/commands/sqlcustom.py delete mode 100644 parts/django/django/core/management/commands/sqlflush.py delete mode 100644 parts/django/django/core/management/commands/sqlindexes.py delete mode 100644 parts/django/django/core/management/commands/sqlinitialdata.py delete mode 100644 parts/django/django/core/management/commands/sqlreset.py delete mode 100644 parts/django/django/core/management/commands/sqlsequencereset.py delete mode 100644 parts/django/django/core/management/commands/startapp.py delete mode 100644 parts/django/django/core/management/commands/startproject.py delete mode 100644 parts/django/django/core/management/commands/syncdb.py delete mode 100644 parts/django/django/core/management/commands/test.py delete mode 100644 parts/django/django/core/management/commands/testserver.py delete mode 100644 parts/django/django/core/management/commands/validate.py delete mode 100644 parts/django/django/core/management/sql.py delete mode 100644 parts/django/django/core/management/validation.py delete mode 100644 parts/django/django/core/paginator.py delete mode 100644 parts/django/django/core/serializers/__init__.py delete mode 100644 parts/django/django/core/serializers/base.py delete mode 100644 parts/django/django/core/serializers/json.py delete mode 100644 parts/django/django/core/serializers/python.py delete mode 100644 parts/django/django/core/serializers/pyyaml.py delete mode 100644 parts/django/django/core/serializers/xml_serializer.py delete mode 100644 parts/django/django/core/servers/__init__.py delete mode 100644 parts/django/django/core/servers/basehttp.py delete mode 100644 parts/django/django/core/servers/fastcgi.py delete mode 100644 parts/django/django/core/signals.py delete mode 100644 parts/django/django/core/template_loader.py delete mode 100644 parts/django/django/core/urlresolvers.py delete mode 100644 parts/django/django/core/validators.py delete mode 100644 parts/django/django/core/xheaders.py delete mode 100644 parts/django/django/db/__init__.py delete mode 100644 parts/django/django/db/backends/__init__.py delete mode 100644 parts/django/django/db/backends/creation.py delete mode 100644 parts/django/django/db/backends/dummy/__init__.py delete mode 100644 parts/django/django/db/backends/dummy/base.py delete mode 100644 parts/django/django/db/backends/mysql/__init__.py delete mode 100644 parts/django/django/db/backends/mysql/base.py delete mode 100644 parts/django/django/db/backends/mysql/client.py delete mode 100644 parts/django/django/db/backends/mysql/compiler.py delete mode 100644 parts/django/django/db/backends/mysql/creation.py delete mode 100644 parts/django/django/db/backends/mysql/introspection.py delete mode 100644 parts/django/django/db/backends/mysql/validation.py delete mode 100644 parts/django/django/db/backends/oracle/__init__.py delete mode 100644 parts/django/django/db/backends/oracle/base.py delete mode 100644 parts/django/django/db/backends/oracle/client.py delete mode 100644 parts/django/django/db/backends/oracle/compiler.py delete mode 100644 parts/django/django/db/backends/oracle/creation.py delete mode 100644 parts/django/django/db/backends/oracle/introspection.py delete mode 100644 parts/django/django/db/backends/postgresql/__init__.py delete mode 100644 parts/django/django/db/backends/postgresql/base.py delete mode 100644 parts/django/django/db/backends/postgresql/client.py delete mode 100644 parts/django/django/db/backends/postgresql/creation.py delete mode 100644 parts/django/django/db/backends/postgresql/introspection.py delete mode 100644 parts/django/django/db/backends/postgresql/operations.py delete mode 100644 parts/django/django/db/backends/postgresql/version.py delete mode 100644 parts/django/django/db/backends/postgresql_psycopg2/__init__.py delete mode 100644 parts/django/django/db/backends/postgresql_psycopg2/base.py delete mode 100644 parts/django/django/db/backends/postgresql_psycopg2/introspection.py delete mode 100644 parts/django/django/db/backends/signals.py delete mode 100644 parts/django/django/db/backends/sqlite3/__init__.py delete mode 100644 parts/django/django/db/backends/sqlite3/base.py delete mode 100644 parts/django/django/db/backends/sqlite3/client.py delete mode 100644 parts/django/django/db/backends/sqlite3/creation.py delete mode 100644 parts/django/django/db/backends/sqlite3/introspection.py delete mode 100644 parts/django/django/db/backends/util.py delete mode 100644 parts/django/django/db/models/__init__.py delete mode 100644 parts/django/django/db/models/aggregates.py delete mode 100644 parts/django/django/db/models/base.py delete mode 100644 parts/django/django/db/models/expressions.py delete mode 100644 parts/django/django/db/models/fields/__init__.py delete mode 100644 parts/django/django/db/models/fields/files.py delete mode 100644 parts/django/django/db/models/fields/proxy.py delete mode 100644 parts/django/django/db/models/fields/related.py delete mode 100644 parts/django/django/db/models/fields/subclassing.py delete mode 100644 parts/django/django/db/models/loading.py delete mode 100644 parts/django/django/db/models/manager.py delete mode 100644 parts/django/django/db/models/options.py delete mode 100644 parts/django/django/db/models/query.py delete mode 100644 parts/django/django/db/models/query_utils.py delete mode 100644 parts/django/django/db/models/related.py delete mode 100644 parts/django/django/db/models/signals.py delete mode 100644 parts/django/django/db/models/sql/__init__.py delete mode 100644 parts/django/django/db/models/sql/aggregates.py delete mode 100644 parts/django/django/db/models/sql/compiler.py delete mode 100644 parts/django/django/db/models/sql/constants.py delete mode 100644 parts/django/django/db/models/sql/datastructures.py delete mode 100644 parts/django/django/db/models/sql/expressions.py delete mode 100644 parts/django/django/db/models/sql/query.py delete mode 100644 parts/django/django/db/models/sql/subqueries.py delete mode 100644 parts/django/django/db/models/sql/where.py delete mode 100644 parts/django/django/db/transaction.py delete mode 100644 parts/django/django/db/utils.py delete mode 100644 parts/django/django/dispatch/__init__.py delete mode 100644 parts/django/django/dispatch/dispatcher.py delete mode 100644 parts/django/django/dispatch/license.txt delete mode 100644 parts/django/django/dispatch/saferef.py delete mode 100644 parts/django/django/forms/__init__.py delete mode 100644 parts/django/django/forms/extras/__init__.py delete mode 100644 parts/django/django/forms/extras/widgets.py delete mode 100644 parts/django/django/forms/fields.py delete mode 100644 parts/django/django/forms/forms.py delete mode 100644 parts/django/django/forms/formsets.py delete mode 100644 parts/django/django/forms/models.py delete mode 100644 parts/django/django/forms/util.py delete mode 100644 parts/django/django/forms/widgets.py delete mode 100644 parts/django/django/http/__init__.py delete mode 100644 parts/django/django/http/multipartparser.py delete mode 100644 parts/django/django/http/utils.py delete mode 100644 parts/django/django/middleware/__init__.py delete mode 100644 parts/django/django/middleware/cache.py delete mode 100644 parts/django/django/middleware/common.py delete mode 100644 parts/django/django/middleware/csrf.py delete mode 100644 parts/django/django/middleware/doc.py delete mode 100644 parts/django/django/middleware/gzip.py delete mode 100644 parts/django/django/middleware/http.py delete mode 100644 parts/django/django/middleware/locale.py delete mode 100644 parts/django/django/middleware/transaction.py delete mode 100644 parts/django/django/shortcuts/__init__.py delete mode 100644 parts/django/django/template/__init__.py delete mode 100644 parts/django/django/template/context.py delete mode 100644 parts/django/django/template/debug.py delete mode 100644 parts/django/django/template/defaultfilters.py delete mode 100644 parts/django/django/template/defaulttags.py delete mode 100644 parts/django/django/template/loader.py delete mode 100644 parts/django/django/template/loader_tags.py delete mode 100644 parts/django/django/template/loaders/__init__.py delete mode 100644 parts/django/django/template/loaders/app_directories.py delete mode 100644 parts/django/django/template/loaders/cached.py delete mode 100644 parts/django/django/template/loaders/eggs.py delete mode 100644 parts/django/django/template/loaders/filesystem.py delete mode 100644 parts/django/django/template/smartif.py delete mode 100644 parts/django/django/templatetags/__init__.py delete mode 100644 parts/django/django/templatetags/cache.py delete mode 100644 parts/django/django/templatetags/i18n.py delete mode 100644 parts/django/django/test/__init__.py delete mode 100644 parts/django/django/test/_doctest.py delete mode 100644 parts/django/django/test/client.py delete mode 100644 parts/django/django/test/signals.py delete mode 100644 parts/django/django/test/simple.py delete mode 100644 parts/django/django/test/testcases.py delete mode 100644 parts/django/django/test/utils.py delete mode 100644 parts/django/django/utils/__init__.py delete mode 100644 parts/django/django/utils/_os.py delete mode 100644 parts/django/django/utils/_threading_local.py delete mode 100644 parts/django/django/utils/autoreload.py delete mode 100644 parts/django/django/utils/cache.py delete mode 100644 parts/django/django/utils/checksums.py delete mode 100644 parts/django/django/utils/copycompat.py delete mode 100644 parts/django/django/utils/daemonize.py delete mode 100644 parts/django/django/utils/datastructures.py delete mode 100644 parts/django/django/utils/dateformat.py delete mode 100644 parts/django/django/utils/dates.py delete mode 100644 parts/django/django/utils/datetime_safe.py delete mode 100644 parts/django/django/utils/decorators.py delete mode 100644 parts/django/django/utils/encoding.py delete mode 100644 parts/django/django/utils/feedgenerator.py delete mode 100644 parts/django/django/utils/formats.py delete mode 100644 parts/django/django/utils/functional.py delete mode 100644 parts/django/django/utils/hashcompat.py delete mode 100644 parts/django/django/utils/html.py delete mode 100644 parts/django/django/utils/http.py delete mode 100644 parts/django/django/utils/importlib.py delete mode 100644 parts/django/django/utils/itercompat.py delete mode 100644 parts/django/django/utils/module_loading.py delete mode 100644 parts/django/django/utils/numberformat.py delete mode 100644 parts/django/django/utils/regex_helper.py delete mode 100644 parts/django/django/utils/safestring.py delete mode 100644 parts/django/django/utils/simplejson/LICENSE.txt delete mode 100644 parts/django/django/utils/simplejson/__init__.py delete mode 100644 parts/django/django/utils/simplejson/decoder.py delete mode 100644 parts/django/django/utils/simplejson/encoder.py delete mode 100644 parts/django/django/utils/simplejson/scanner.py delete mode 100644 parts/django/django/utils/simplejson/tool.py delete mode 100644 parts/django/django/utils/stopwords.py delete mode 100644 parts/django/django/utils/synch.py delete mode 100644 parts/django/django/utils/termcolors.py delete mode 100644 parts/django/django/utils/text.py delete mode 100644 parts/django/django/utils/thread_support.py delete mode 100644 parts/django/django/utils/timesince.py delete mode 100644 parts/django/django/utils/translation/__init__.py delete mode 100644 parts/django/django/utils/translation/trans_null.py delete mode 100644 parts/django/django/utils/translation/trans_real.py delete mode 100644 parts/django/django/utils/tree.py delete mode 100644 parts/django/django/utils/tzinfo.py delete mode 100644 parts/django/django/utils/version.py delete mode 100644 parts/django/django/utils/xmlutils.py delete mode 100644 parts/django/django/views/__init__.py delete mode 100644 parts/django/django/views/csrf.py delete mode 100644 parts/django/django/views/debug.py delete mode 100644 parts/django/django/views/decorators/__init__.py delete mode 100644 parts/django/django/views/decorators/cache.py delete mode 100644 parts/django/django/views/decorators/csrf.py delete mode 100644 parts/django/django/views/decorators/gzip.py delete mode 100644 parts/django/django/views/decorators/http.py delete mode 100644 parts/django/django/views/decorators/vary.py delete mode 100644 parts/django/django/views/defaults.py delete mode 100644 parts/django/django/views/generic/__init__.py delete mode 100644 parts/django/django/views/generic/create_update.py delete mode 100644 parts/django/django/views/generic/date_based.py delete mode 100644 parts/django/django/views/generic/list_detail.py delete mode 100644 parts/django/django/views/generic/simple.py delete mode 100644 parts/django/django/views/i18n.py delete mode 100644 parts/django/django/views/static.py delete mode 100644 parts/django/docs/Makefile delete mode 100644 parts/django/docs/_ext/applyxrefs.py delete mode 100644 parts/django/docs/_ext/djangodocs.py delete mode 100644 parts/django/docs/_ext/literals_to_xrefs.py delete mode 100644 parts/django/docs/_theme/djangodocs/genindex.html delete mode 100644 parts/django/docs/_theme/djangodocs/layout.html delete mode 100644 parts/django/docs/_theme/djangodocs/modindex.html delete mode 100644 parts/django/docs/_theme/djangodocs/search.html delete mode 100644 parts/django/docs/_theme/djangodocs/static/default.css delete mode 100644 parts/django/docs/_theme/djangodocs/static/djangodocs.css delete mode 100644 parts/django/docs/_theme/djangodocs/static/docicons-behindscenes.png delete mode 100644 parts/django/docs/_theme/djangodocs/static/docicons-note.png delete mode 100644 parts/django/docs/_theme/djangodocs/static/docicons-philosophy.png delete mode 100644 parts/django/docs/_theme/djangodocs/static/homepage.css delete mode 100644 parts/django/docs/_theme/djangodocs/static/reset-fonts-grids.css delete mode 100644 parts/django/docs/_theme/djangodocs/theme.conf delete mode 100644 parts/django/docs/conf.py delete mode 100644 parts/django/docs/contents.txt delete mode 100644 parts/django/docs/faq/admin.txt delete mode 100644 parts/django/docs/faq/contributing.txt delete mode 100644 parts/django/docs/faq/general.txt delete mode 100644 parts/django/docs/faq/help.txt delete mode 100644 parts/django/docs/faq/index.txt delete mode 100644 parts/django/docs/faq/install.txt delete mode 100644 parts/django/docs/faq/models.txt delete mode 100644 parts/django/docs/faq/usage.txt delete mode 100644 parts/django/docs/glossary.txt delete mode 100644 parts/django/docs/howto/apache-auth.txt delete mode 100644 parts/django/docs/howto/auth-remote-user.txt delete mode 100644 parts/django/docs/howto/custom-file-storage.txt delete mode 100644 parts/django/docs/howto/custom-management-commands.txt delete mode 100644 parts/django/docs/howto/custom-model-fields.txt delete mode 100644 parts/django/docs/howto/custom-template-tags.txt delete mode 100644 parts/django/docs/howto/deployment/fastcgi.txt delete mode 100644 parts/django/docs/howto/deployment/index.txt delete mode 100644 parts/django/docs/howto/deployment/modpython.txt delete mode 100644 parts/django/docs/howto/deployment/modwsgi.txt delete mode 100644 parts/django/docs/howto/error-reporting.txt delete mode 100644 parts/django/docs/howto/i18n.txt delete mode 100644 parts/django/docs/howto/index.txt delete mode 100644 parts/django/docs/howto/initial-data.txt delete mode 100644 parts/django/docs/howto/jython.txt delete mode 100644 parts/django/docs/howto/legacy-databases.txt delete mode 100644 parts/django/docs/howto/outputting-csv.txt delete mode 100644 parts/django/docs/howto/outputting-pdf.txt delete mode 100644 parts/django/docs/howto/static-files.txt delete mode 100644 parts/django/docs/index.txt delete mode 100644 parts/django/docs/internals/_images/djangotickets.png delete mode 100644 parts/django/docs/internals/committers.txt delete mode 100644 parts/django/docs/internals/contributing.txt delete mode 100644 parts/django/docs/internals/deprecation.txt delete mode 100644 parts/django/docs/internals/documentation.txt delete mode 100644 parts/django/docs/internals/index.txt delete mode 100644 parts/django/docs/internals/release-process.txt delete mode 100644 parts/django/docs/internals/svn.txt delete mode 100644 parts/django/docs/intro/_images/admin01.png delete mode 100644 parts/django/docs/intro/_images/admin02.png delete mode 100644 parts/django/docs/intro/_images/admin02t.png delete mode 100644 parts/django/docs/intro/_images/admin03.png delete mode 100644 parts/django/docs/intro/_images/admin03t.png delete mode 100644 parts/django/docs/intro/_images/admin04.png delete mode 100644 parts/django/docs/intro/_images/admin04t.png delete mode 100644 parts/django/docs/intro/_images/admin05.png delete mode 100644 parts/django/docs/intro/_images/admin05t.png delete mode 100644 parts/django/docs/intro/_images/admin06.png delete mode 100644 parts/django/docs/intro/_images/admin06t.png delete mode 100644 parts/django/docs/intro/_images/admin07.png delete mode 100644 parts/django/docs/intro/_images/admin08.png delete mode 100644 parts/django/docs/intro/_images/admin08t.png delete mode 100644 parts/django/docs/intro/_images/admin09.png delete mode 100644 parts/django/docs/intro/_images/admin10.png delete mode 100644 parts/django/docs/intro/_images/admin11.png delete mode 100644 parts/django/docs/intro/_images/admin11t.png delete mode 100644 parts/django/docs/intro/_images/admin12.png delete mode 100644 parts/django/docs/intro/_images/admin13.png delete mode 100644 parts/django/docs/intro/_images/admin13t.png delete mode 100644 parts/django/docs/intro/_images/admin14.png delete mode 100644 parts/django/docs/intro/_images/admin14t.png delete mode 100644 parts/django/docs/intro/index.txt delete mode 100644 parts/django/docs/intro/install.txt delete mode 100644 parts/django/docs/intro/overview.txt delete mode 100644 parts/django/docs/intro/tutorial01.txt delete mode 100644 parts/django/docs/intro/tutorial02.txt delete mode 100644 parts/django/docs/intro/tutorial03.txt delete mode 100644 parts/django/docs/intro/tutorial04.txt delete mode 100644 parts/django/docs/intro/whatsnext.txt delete mode 100644 parts/django/docs/man/daily_cleanup.1 delete mode 100644 parts/django/docs/man/django-admin.1 delete mode 100644 parts/django/docs/man/gather_profile_stats.1 delete mode 100644 parts/django/docs/misc/api-stability.txt delete mode 100644 parts/django/docs/misc/design-philosophies.txt delete mode 100644 parts/django/docs/misc/distributions.txt delete mode 100644 parts/django/docs/misc/index.txt delete mode 100644 parts/django/docs/obsolete/_images/formrow.png delete mode 100644 parts/django/docs/obsolete/_images/module.png delete mode 100644 parts/django/docs/obsolete/_images/objecttools_01.png delete mode 100644 parts/django/docs/obsolete/_images/objecttools_02.png delete mode 100644 parts/django/docs/obsolete/admin-css.txt delete mode 100644 parts/django/docs/obsolete/index.txt delete mode 100644 parts/django/docs/ref/authbackends.txt delete mode 100644 parts/django/docs/ref/contrib/admin/_images/article_actions.png delete mode 100644 parts/django/docs/ref/contrib/admin/_images/article_actions_message.png delete mode 100644 parts/django/docs/ref/contrib/admin/_images/flatfiles_admin.png delete mode 100644 parts/django/docs/ref/contrib/admin/_images/user_actions.png delete mode 100644 parts/django/docs/ref/contrib/admin/_images/users_changelist.png delete mode 100644 parts/django/docs/ref/contrib/admin/actions.txt delete mode 100644 parts/django/docs/ref/contrib/admin/admindocs.txt delete mode 100644 parts/django/docs/ref/contrib/admin/index.txt delete mode 100644 parts/django/docs/ref/contrib/auth.txt delete mode 100644 parts/django/docs/ref/contrib/comments/custom.txt delete mode 100644 parts/django/docs/ref/contrib/comments/example.txt delete mode 100644 parts/django/docs/ref/contrib/comments/forms.txt delete mode 100644 parts/django/docs/ref/contrib/comments/index.txt delete mode 100644 parts/django/docs/ref/contrib/comments/models.txt delete mode 100644 parts/django/docs/ref/contrib/comments/moderation.txt delete mode 100644 parts/django/docs/ref/contrib/comments/settings.txt delete mode 100644 parts/django/docs/ref/contrib/comments/signals.txt delete mode 100644 parts/django/docs/ref/contrib/comments/upgrade.txt delete mode 100644 parts/django/docs/ref/contrib/contenttypes.txt delete mode 100644 parts/django/docs/ref/contrib/csrf.txt delete mode 100644 parts/django/docs/ref/contrib/databrowse.txt delete mode 100644 parts/django/docs/ref/contrib/flatpages.txt delete mode 100644 parts/django/docs/ref/contrib/formtools/form-preview.txt delete mode 100644 parts/django/docs/ref/contrib/formtools/form-wizard.txt delete mode 100644 parts/django/docs/ref/contrib/formtools/index.txt delete mode 100644 parts/django/docs/ref/contrib/gis/admin.txt delete mode 100644 parts/django/docs/ref/contrib/gis/commands.txt delete mode 100755 parts/django/docs/ref/contrib/gis/create_template_postgis-1.3.sh delete mode 100755 parts/django/docs/ref/contrib/gis/create_template_postgis-1.4.sh delete mode 100755 parts/django/docs/ref/contrib/gis/create_template_postgis-1.5.sh delete mode 100755 parts/django/docs/ref/contrib/gis/create_template_postgis-debian.sh delete mode 100644 parts/django/docs/ref/contrib/gis/db-api.txt delete mode 100644 parts/django/docs/ref/contrib/gis/deployment.txt delete mode 100644 parts/django/docs/ref/contrib/gis/feeds.txt delete mode 100644 parts/django/docs/ref/contrib/gis/gdal.txt delete mode 100644 parts/django/docs/ref/contrib/gis/geoip.txt delete mode 100644 parts/django/docs/ref/contrib/gis/geoquerysets.txt delete mode 100644 parts/django/docs/ref/contrib/gis/geos.txt delete mode 100644 parts/django/docs/ref/contrib/gis/index.txt delete mode 100644 parts/django/docs/ref/contrib/gis/install.txt delete mode 100644 parts/django/docs/ref/contrib/gis/layermapping.txt delete mode 100644 parts/django/docs/ref/contrib/gis/measure.txt delete mode 100644 parts/django/docs/ref/contrib/gis/model-api.txt delete mode 100644 parts/django/docs/ref/contrib/gis/ogrinspect.txt delete mode 100644 parts/django/docs/ref/contrib/gis/sitemaps.txt delete mode 100644 parts/django/docs/ref/contrib/gis/testing.txt delete mode 100644 parts/django/docs/ref/contrib/gis/tutorial.txt delete mode 100644 parts/django/docs/ref/contrib/gis/utils.txt delete mode 100644 parts/django/docs/ref/contrib/humanize.txt delete mode 100644 parts/django/docs/ref/contrib/index.txt delete mode 100644 parts/django/docs/ref/contrib/localflavor.txt delete mode 100644 parts/django/docs/ref/contrib/markup.txt delete mode 100644 parts/django/docs/ref/contrib/messages.txt delete mode 100644 parts/django/docs/ref/contrib/redirects.txt delete mode 100644 parts/django/docs/ref/contrib/sitemaps.txt delete mode 100644 parts/django/docs/ref/contrib/sites.txt delete mode 100644 parts/django/docs/ref/contrib/syndication.txt delete mode 100644 parts/django/docs/ref/contrib/webdesign.txt delete mode 100644 parts/django/docs/ref/databases.txt delete mode 100644 parts/django/docs/ref/django-admin.txt delete mode 100644 parts/django/docs/ref/exceptions.txt delete mode 100644 parts/django/docs/ref/files/file.txt delete mode 100644 parts/django/docs/ref/files/index.txt delete mode 100644 parts/django/docs/ref/files/storage.txt delete mode 100644 parts/django/docs/ref/forms/api.txt delete mode 100644 parts/django/docs/ref/forms/fields.txt delete mode 100644 parts/django/docs/ref/forms/index.txt delete mode 100644 parts/django/docs/ref/forms/validation.txt delete mode 100644 parts/django/docs/ref/forms/widgets.txt delete mode 100644 parts/django/docs/ref/generic-views.txt delete mode 100644 parts/django/docs/ref/index.txt delete mode 100644 parts/django/docs/ref/middleware.txt delete mode 100644 parts/django/docs/ref/models/fields.txt delete mode 100644 parts/django/docs/ref/models/index.txt delete mode 100644 parts/django/docs/ref/models/instances.txt delete mode 100644 parts/django/docs/ref/models/options.txt delete mode 100644 parts/django/docs/ref/models/querysets.txt delete mode 100644 parts/django/docs/ref/models/relations.txt delete mode 100644 parts/django/docs/ref/request-response.txt delete mode 100644 parts/django/docs/ref/settings.txt delete mode 100644 parts/django/docs/ref/signals.txt delete mode 100644 parts/django/docs/ref/templates/api.txt delete mode 100644 parts/django/docs/ref/templates/builtins.txt delete mode 100644 parts/django/docs/ref/templates/index.txt delete mode 100644 parts/django/docs/ref/unicode.txt delete mode 100644 parts/django/docs/ref/utils.txt delete mode 100644 parts/django/docs/ref/validators.txt delete mode 100644 parts/django/docs/releases/0.95.txt delete mode 100644 parts/django/docs/releases/0.96.txt delete mode 100644 parts/django/docs/releases/1.0-alpha-1.txt delete mode 100644 parts/django/docs/releases/1.0-alpha-2.txt delete mode 100644 parts/django/docs/releases/1.0-beta-2.txt delete mode 100644 parts/django/docs/releases/1.0-beta.txt delete mode 100644 parts/django/docs/releases/1.0-porting-guide.txt delete mode 100644 parts/django/docs/releases/1.0.1.txt delete mode 100644 parts/django/docs/releases/1.0.2.txt delete mode 100644 parts/django/docs/releases/1.0.txt delete mode 100644 parts/django/docs/releases/1.1-alpha-1.txt delete mode 100644 parts/django/docs/releases/1.1-beta-1.txt delete mode 100644 parts/django/docs/releases/1.1-rc-1.txt delete mode 100644 parts/django/docs/releases/1.1.2.txt delete mode 100644 parts/django/docs/releases/1.1.txt delete mode 100644 parts/django/docs/releases/1.2-alpha-1.txt delete mode 100644 parts/django/docs/releases/1.2-beta-1.txt delete mode 100644 parts/django/docs/releases/1.2-rc-1.txt delete mode 100644 parts/django/docs/releases/1.2.2.txt delete mode 100644 parts/django/docs/releases/1.2.4.txt delete mode 100644 parts/django/docs/releases/1.2.txt delete mode 100644 parts/django/docs/releases/index.txt delete mode 100644 parts/django/docs/topics/auth.txt delete mode 100644 parts/django/docs/topics/cache.txt delete mode 100644 parts/django/docs/topics/conditional-view-processing.txt delete mode 100644 parts/django/docs/topics/db/aggregation.txt delete mode 100644 parts/django/docs/topics/db/index.txt delete mode 100644 parts/django/docs/topics/db/managers.txt delete mode 100644 parts/django/docs/topics/db/models.txt delete mode 100644 parts/django/docs/topics/db/multi-db.txt delete mode 100644 parts/django/docs/topics/db/optimization.txt delete mode 100644 parts/django/docs/topics/db/queries.txt delete mode 100644 parts/django/docs/topics/db/sql.txt delete mode 100644 parts/django/docs/topics/db/transactions.txt delete mode 100644 parts/django/docs/topics/email.txt delete mode 100644 parts/django/docs/topics/files.txt delete mode 100644 parts/django/docs/topics/forms/formsets.txt delete mode 100644 parts/django/docs/topics/forms/index.txt delete mode 100644 parts/django/docs/topics/forms/media.txt delete mode 100644 parts/django/docs/topics/forms/modelforms.txt delete mode 100644 parts/django/docs/topics/generic-views.txt delete mode 100644 parts/django/docs/topics/http/_images/middleware.png delete mode 100644 parts/django/docs/topics/http/file-uploads.txt delete mode 100644 parts/django/docs/topics/http/generic-views.txt delete mode 100644 parts/django/docs/topics/http/index.txt delete mode 100644 parts/django/docs/topics/http/middleware.txt delete mode 100644 parts/django/docs/topics/http/sessions.txt delete mode 100644 parts/django/docs/topics/http/shortcuts.txt delete mode 100644 parts/django/docs/topics/http/urls.txt delete mode 100644 parts/django/docs/topics/http/views.txt delete mode 100644 parts/django/docs/topics/i18n/deployment.txt delete mode 100644 parts/django/docs/topics/i18n/index.txt delete mode 100644 parts/django/docs/topics/i18n/internationalization.txt delete mode 100644 parts/django/docs/topics/i18n/localization.txt delete mode 100644 parts/django/docs/topics/index.txt delete mode 100644 parts/django/docs/topics/install.txt delete mode 100644 parts/django/docs/topics/pagination.txt delete mode 100644 parts/django/docs/topics/serialization.txt delete mode 100644 parts/django/docs/topics/settings.txt delete mode 100644 parts/django/docs/topics/signals.txt delete mode 100644 parts/django/docs/topics/templates.txt delete mode 100644 parts/django/docs/topics/testing.txt delete mode 100644 parts/django/extras/README.TXT delete mode 100644 parts/django/extras/csrf_migration_helper.py delete mode 100755 parts/django/extras/django_bash_completion delete mode 100644 parts/django/scripts/rpm-install.sh delete mode 100644 parts/django/setup.cfg delete mode 100644 parts/django/setup.py delete mode 100644 parts/django/tests/modeltests/__init__.py delete mode 100644 parts/django/tests/modeltests/aggregation/__init__.py delete mode 100644 parts/django/tests/modeltests/aggregation/fixtures/initial_data.json delete mode 100644 parts/django/tests/modeltests/aggregation/models.py delete mode 100644 parts/django/tests/modeltests/aggregation/tests.py delete mode 100644 parts/django/tests/modeltests/basic/__init__.py delete mode 100644 parts/django/tests/modeltests/basic/models.py delete mode 100644 parts/django/tests/modeltests/basic/tests.py delete mode 100644 parts/django/tests/modeltests/choices/__init__.py delete mode 100644 parts/django/tests/modeltests/choices/models.py delete mode 100644 parts/django/tests/modeltests/choices/tests.py delete mode 100644 parts/django/tests/modeltests/custom_columns/__init__.py delete mode 100644 parts/django/tests/modeltests/custom_columns/models.py delete mode 100644 parts/django/tests/modeltests/custom_columns/tests.py delete mode 100644 parts/django/tests/modeltests/custom_managers/__init__.py delete mode 100644 parts/django/tests/modeltests/custom_managers/models.py delete mode 100644 parts/django/tests/modeltests/custom_managers/tests.py delete mode 100644 parts/django/tests/modeltests/custom_methods/__init__.py delete mode 100644 parts/django/tests/modeltests/custom_methods/models.py delete mode 100644 parts/django/tests/modeltests/custom_methods/tests.py delete mode 100644 parts/django/tests/modeltests/custom_pk/__init__.py delete mode 100644 parts/django/tests/modeltests/custom_pk/fields.py delete mode 100644 parts/django/tests/modeltests/custom_pk/models.py delete mode 100644 parts/django/tests/modeltests/custom_pk/tests.py delete mode 100644 parts/django/tests/modeltests/defer/__init__.py delete mode 100644 parts/django/tests/modeltests/defer/models.py delete mode 100644 parts/django/tests/modeltests/defer/tests.py delete mode 100644 parts/django/tests/modeltests/delete/__init__.py delete mode 100644 parts/django/tests/modeltests/delete/models.py delete mode 100644 parts/django/tests/modeltests/delete/tests.py delete mode 100644 parts/django/tests/modeltests/empty/__init__.py delete mode 100644 parts/django/tests/modeltests/empty/models.py delete mode 100644 parts/django/tests/modeltests/empty/tests.py delete mode 100644 parts/django/tests/modeltests/expressions/__init__.py delete mode 100644 parts/django/tests/modeltests/expressions/models.py delete mode 100644 parts/django/tests/modeltests/expressions/tests.py delete mode 100644 parts/django/tests/modeltests/field_defaults/__init__.py delete mode 100644 parts/django/tests/modeltests/field_defaults/models.py delete mode 100644 parts/django/tests/modeltests/field_defaults/tests.py delete mode 100644 parts/django/tests/modeltests/field_subclassing/__init__.py delete mode 100644 parts/django/tests/modeltests/field_subclassing/fields.py delete mode 100644 parts/django/tests/modeltests/field_subclassing/models.py delete mode 100644 parts/django/tests/modeltests/field_subclassing/tests.py delete mode 100644 parts/django/tests/modeltests/files/__init__.py delete mode 100644 parts/django/tests/modeltests/files/models.py delete mode 100644 parts/django/tests/modeltests/files/tests.py delete mode 100644 parts/django/tests/modeltests/fixtures/__init__.py delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/db_fixture_1.default.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/db_fixture_2.default.json.gz delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/db_fixture_3.nosuchdb.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture1.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture2.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture2.xml delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture3.xml delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture4.json.zip delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture5.json.gz delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture5.json.zip delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture6.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture7.xml delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture8.json delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/fixture9.xml delete mode 100644 parts/django/tests/modeltests/fixtures/fixtures/initial_data.json delete mode 100644 parts/django/tests/modeltests/fixtures/models.py delete mode 100644 parts/django/tests/modeltests/fixtures/tests.py delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/__init__.py delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/fixtures/fixture1.json delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/fixtures/fixture2.json delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/fixtures/fixture2.xml delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/fixtures/initial_data.json delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/models/__init__.py delete mode 100644 parts/django/tests/modeltests/fixtures_model_package/tests.py delete mode 100644 parts/django/tests/modeltests/force_insert_update/__init__.py delete mode 100644 parts/django/tests/modeltests/force_insert_update/models.py delete mode 100644 parts/django/tests/modeltests/force_insert_update/tests.py delete mode 100644 parts/django/tests/modeltests/generic_relations/__init__.py delete mode 100644 parts/django/tests/modeltests/generic_relations/models.py delete mode 100644 parts/django/tests/modeltests/generic_relations/tests.py delete mode 100644 parts/django/tests/modeltests/get_latest/__init__.py delete mode 100644 parts/django/tests/modeltests/get_latest/models.py delete mode 100644 parts/django/tests/modeltests/get_latest/tests.py delete mode 100644 parts/django/tests/modeltests/get_object_or_404/__init__.py delete mode 100644 parts/django/tests/modeltests/get_object_or_404/models.py delete mode 100644 parts/django/tests/modeltests/get_object_or_404/tests.py delete mode 100644 parts/django/tests/modeltests/get_or_create/__init__.py delete mode 100644 parts/django/tests/modeltests/get_or_create/models.py delete mode 100644 parts/django/tests/modeltests/get_or_create/tests.py delete mode 100644 parts/django/tests/modeltests/invalid_models/__init__.py delete mode 100644 parts/django/tests/modeltests/invalid_models/models.py delete mode 100644 parts/django/tests/modeltests/lookup/__init__.py delete mode 100644 parts/django/tests/modeltests/lookup/models.py delete mode 100644 parts/django/tests/modeltests/lookup/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_and_m2o/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_and_m2o/models.py delete mode 100644 parts/django/tests/modeltests/m2m_and_m2o/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_intermediary/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_intermediary/models.py delete mode 100644 parts/django/tests/modeltests/m2m_intermediary/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_multiple/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_multiple/models.py delete mode 100644 parts/django/tests/modeltests/m2m_multiple/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_recursive/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_recursive/models.py delete mode 100644 parts/django/tests/modeltests/m2m_recursive/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_signals/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_signals/models.py delete mode 100644 parts/django/tests/modeltests/m2m_signals/tests.py delete mode 100644 parts/django/tests/modeltests/m2m_through/__init__.py delete mode 100644 parts/django/tests/modeltests/m2m_through/models.py delete mode 100644 parts/django/tests/modeltests/m2m_through/tests.py delete mode 100644 parts/django/tests/modeltests/m2o_recursive/__init__.py delete mode 100644 parts/django/tests/modeltests/m2o_recursive/models.py delete mode 100644 parts/django/tests/modeltests/m2o_recursive/tests.py delete mode 100644 parts/django/tests/modeltests/many_to_many/__init__.py delete mode 100644 parts/django/tests/modeltests/many_to_many/models.py delete mode 100644 parts/django/tests/modeltests/many_to_many/tests.py delete mode 100644 parts/django/tests/modeltests/many_to_one/__init__.py delete mode 100644 parts/django/tests/modeltests/many_to_one/models.py delete mode 100644 parts/django/tests/modeltests/many_to_one/tests.py delete mode 100644 parts/django/tests/modeltests/many_to_one_null/__init__.py delete mode 100644 parts/django/tests/modeltests/many_to_one_null/models.py delete mode 100644 parts/django/tests/modeltests/many_to_one_null/tests.py delete mode 100644 parts/django/tests/modeltests/model_forms/__init__.py delete mode 100644 parts/django/tests/modeltests/model_forms/mforms.py delete mode 100644 parts/django/tests/modeltests/model_forms/models.py delete mode 100644 parts/django/tests/modeltests/model_forms/test.png delete mode 100644 parts/django/tests/modeltests/model_forms/test2.png delete mode 100644 parts/django/tests/modeltests/model_forms/tests.py delete mode 100644 parts/django/tests/modeltests/model_formsets/__init__.py delete mode 100644 parts/django/tests/modeltests/model_formsets/models.py delete mode 100644 parts/django/tests/modeltests/model_formsets/tests.py delete mode 100644 parts/django/tests/modeltests/model_inheritance/__init__.py delete mode 100644 parts/django/tests/modeltests/model_inheritance/models.py delete mode 100644 parts/django/tests/modeltests/model_inheritance/tests.py delete mode 100644 parts/django/tests/modeltests/model_inheritance_same_model_name/__init__.py delete mode 100644 parts/django/tests/modeltests/model_inheritance_same_model_name/models.py delete mode 100644 parts/django/tests/modeltests/model_inheritance_same_model_name/tests.py delete mode 100644 parts/django/tests/modeltests/model_package/__init__.py delete mode 100644 parts/django/tests/modeltests/model_package/models/__init__.py delete mode 100644 parts/django/tests/modeltests/model_package/models/article.py delete mode 100644 parts/django/tests/modeltests/model_package/models/publication.py delete mode 100644 parts/django/tests/modeltests/model_package/tests.py delete mode 100644 parts/django/tests/modeltests/mutually_referential/__init__.py delete mode 100644 parts/django/tests/modeltests/mutually_referential/models.py delete mode 100644 parts/django/tests/modeltests/mutually_referential/tests.py delete mode 100644 parts/django/tests/modeltests/one_to_one/__init__.py delete mode 100644 parts/django/tests/modeltests/one_to_one/models.py delete mode 100644 parts/django/tests/modeltests/one_to_one/tests.py delete mode 100644 parts/django/tests/modeltests/or_lookups/__init__.py delete mode 100644 parts/django/tests/modeltests/or_lookups/models.py delete mode 100644 parts/django/tests/modeltests/or_lookups/tests.py delete mode 100644 parts/django/tests/modeltests/order_with_respect_to/__init__.py delete mode 100644 parts/django/tests/modeltests/order_with_respect_to/models.py delete mode 100644 parts/django/tests/modeltests/order_with_respect_to/tests.py delete mode 100644 parts/django/tests/modeltests/ordering/__init__.py delete mode 100644 parts/django/tests/modeltests/ordering/models.py delete mode 100644 parts/django/tests/modeltests/ordering/tests.py delete mode 100644 parts/django/tests/modeltests/pagination/__init__.py delete mode 100644 parts/django/tests/modeltests/pagination/models.py delete mode 100644 parts/django/tests/modeltests/pagination/tests.py delete mode 100644 parts/django/tests/modeltests/properties/__init__.py delete mode 100644 parts/django/tests/modeltests/properties/models.py delete mode 100644 parts/django/tests/modeltests/properties/tests.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/__init__.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/app1/__init__.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/app1/models.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/app2/__init__.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/app2/models.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/models.py delete mode 100644 parts/django/tests/modeltests/proxy_model_inheritance/tests.py delete mode 100644 parts/django/tests/modeltests/proxy_models/__init__.py delete mode 100644 parts/django/tests/modeltests/proxy_models/fixtures/mypeople.json delete mode 100644 parts/django/tests/modeltests/proxy_models/models.py delete mode 100644 parts/django/tests/modeltests/proxy_models/tests.py delete mode 100644 parts/django/tests/modeltests/raw_query/__init__.py delete mode 100644 parts/django/tests/modeltests/raw_query/fixtures/raw_query_books.json delete mode 100644 parts/django/tests/modeltests/raw_query/models.py delete mode 100644 parts/django/tests/modeltests/raw_query/tests.py delete mode 100644 parts/django/tests/modeltests/reserved_names/__init__.py delete mode 100644 parts/django/tests/modeltests/reserved_names/models.py delete mode 100644 parts/django/tests/modeltests/reserved_names/tests.py delete mode 100644 parts/django/tests/modeltests/reverse_lookup/__init__.py delete mode 100644 parts/django/tests/modeltests/reverse_lookup/models.py delete mode 100644 parts/django/tests/modeltests/reverse_lookup/tests.py delete mode 100644 parts/django/tests/modeltests/save_delete_hooks/__init__.py delete mode 100644 parts/django/tests/modeltests/save_delete_hooks/models.py delete mode 100644 parts/django/tests/modeltests/save_delete_hooks/tests.py delete mode 100644 parts/django/tests/modeltests/select_related/__init__.py delete mode 100644 parts/django/tests/modeltests/select_related/models.py delete mode 100644 parts/django/tests/modeltests/select_related/tests.py delete mode 100644 parts/django/tests/modeltests/serializers/__init__.py delete mode 100644 parts/django/tests/modeltests/serializers/models.py delete mode 100644 parts/django/tests/modeltests/serializers/tests.py delete mode 100644 parts/django/tests/modeltests/signals/__init__.py delete mode 100644 parts/django/tests/modeltests/signals/models.py delete mode 100644 parts/django/tests/modeltests/signals/tests.py delete mode 100644 parts/django/tests/modeltests/str/__init__.py delete mode 100644 parts/django/tests/modeltests/str/models.py delete mode 100644 parts/django/tests/modeltests/str/tests.py delete mode 100644 parts/django/tests/modeltests/test_client/__init__.py delete mode 100644 parts/django/tests/modeltests/test_client/fixtures/testdata.json delete mode 100644 parts/django/tests/modeltests/test_client/models.py delete mode 100644 parts/django/tests/modeltests/test_client/tests.py delete mode 100644 parts/django/tests/modeltests/test_client/urls.py delete mode 100644 parts/django/tests/modeltests/test_client/views.py delete mode 100644 parts/django/tests/modeltests/transactions/__init__.py delete mode 100644 parts/django/tests/modeltests/transactions/models.py delete mode 100644 parts/django/tests/modeltests/transactions/tests.py delete mode 100644 parts/django/tests/modeltests/unmanaged_models/__init__.py delete mode 100644 parts/django/tests/modeltests/unmanaged_models/models.py delete mode 100644 parts/django/tests/modeltests/unmanaged_models/tests.py delete mode 100644 parts/django/tests/modeltests/update/__init__.py delete mode 100644 parts/django/tests/modeltests/update/models.py delete mode 100644 parts/django/tests/modeltests/update/tests.py delete mode 100644 parts/django/tests/modeltests/user_commands/__init__.py delete mode 100644 parts/django/tests/modeltests/user_commands/management/__init__.py delete mode 100644 parts/django/tests/modeltests/user_commands/management/commands/__init__.py delete mode 100644 parts/django/tests/modeltests/user_commands/management/commands/dance.py delete mode 100644 parts/django/tests/modeltests/user_commands/models.py delete mode 100644 parts/django/tests/modeltests/user_commands/tests.py delete mode 100644 parts/django/tests/modeltests/validation/__init__.py delete mode 100644 parts/django/tests/modeltests/validation/models.py delete mode 100644 parts/django/tests/modeltests/validation/test_custom_messages.py delete mode 100644 parts/django/tests/modeltests/validation/test_unique.py delete mode 100644 parts/django/tests/modeltests/validation/tests.py delete mode 100644 parts/django/tests/modeltests/validation/validators.py delete mode 100644 parts/django/tests/modeltests/validators/__init__.py delete mode 100644 parts/django/tests/modeltests/validators/models.py delete mode 100644 parts/django/tests/modeltests/validators/tests.py delete mode 100644 parts/django/tests/regressiontests/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_changelist/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_changelist/models.py delete mode 100644 parts/django/tests/regressiontests/admin_changelist/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_inlines/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_inlines/fixtures/admin-views-users.xml delete mode 100644 parts/django/tests/regressiontests/admin_inlines/models.py delete mode 100644 parts/django/tests/regressiontests/admin_inlines/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_ordering/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_ordering/models.py delete mode 100644 parts/django/tests/regressiontests/admin_ordering/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_registration/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_registration/models.py delete mode 100644 parts/django/tests/regressiontests/admin_registration/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/app_with_import/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/app_with_import/models.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/broken_app/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/broken_app/models.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/admin/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/admin/foo.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/models/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/models/bar.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/complex_app/models/foo.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/commands/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/commands/app_command.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/commands/base_command.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/commands/label_command.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/management/commands/noargs_command.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/models.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/simple_app/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/simple_app/models.py delete mode 100644 parts/django/tests/regressiontests/admin_scripts/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_util/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_util/models.py delete mode 100644 parts/django/tests/regressiontests/admin_util/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_validation/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_validation/models.py delete mode 100644 parts/django/tests/regressiontests/admin_validation/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_views/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_views/customadmin.py delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-actions.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-colors.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-fabrics.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-person.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-unicode.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/admin-views-users.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/deleted-objects.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/multiple-child-classes.json delete mode 100644 parts/django/tests/regressiontests/admin_views/fixtures/string-primary-key.xml delete mode 100644 parts/django/tests/regressiontests/admin_views/models.py delete mode 100644 parts/django/tests/regressiontests/admin_views/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_views/urls.py delete mode 100644 parts/django/tests/regressiontests/admin_views/views.py delete mode 100644 parts/django/tests/regressiontests/admin_widgets/__init__.py delete mode 100644 parts/django/tests/regressiontests/admin_widgets/fixtures/admin-widgets-users.xml delete mode 100644 parts/django/tests/regressiontests/admin_widgets/models.py delete mode 100644 parts/django/tests/regressiontests/admin_widgets/tests.py delete mode 100644 parts/django/tests/regressiontests/admin_widgets/urls.py delete mode 100644 parts/django/tests/regressiontests/admin_widgets/widgetadmin.py delete mode 100644 parts/django/tests/regressiontests/aggregation_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/aggregation_regress/fixtures/initial_data.json delete mode 100644 parts/django/tests/regressiontests/aggregation_regress/models.py delete mode 100644 parts/django/tests/regressiontests/aggregation_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/app_loading/__init__.py delete mode 100755 parts/django/tests/regressiontests/app_loading/eggs/brokenapp.egg delete mode 100755 parts/django/tests/regressiontests/app_loading/eggs/modelapp.egg delete mode 100755 parts/django/tests/regressiontests/app_loading/eggs/nomodelapp.egg delete mode 100755 parts/django/tests/regressiontests/app_loading/eggs/omelet.egg delete mode 100644 parts/django/tests/regressiontests/app_loading/models.py delete mode 100644 parts/django/tests/regressiontests/app_loading/parent/__init__.py delete mode 100644 parts/django/tests/regressiontests/app_loading/parent/app/__init__.py delete mode 100644 parts/django/tests/regressiontests/app_loading/parent/app1/__init__.py delete mode 100644 parts/django/tests/regressiontests/app_loading/parent/app_2/__init__.py delete mode 100644 parts/django/tests/regressiontests/app_loading/test_settings.py delete mode 100644 parts/django/tests/regressiontests/app_loading/tests.py delete mode 100644 parts/django/tests/regressiontests/backends/__init__.py delete mode 100644 parts/django/tests/regressiontests/backends/models.py delete mode 100644 parts/django/tests/regressiontests/backends/tests.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/__init__.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/management/__init__.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/management/commands/__init__.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/management/commands/test_command.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/models.py delete mode 100644 parts/django/tests/regressiontests/bash_completion/tests.py delete mode 100644 parts/django/tests/regressiontests/bug639/__init__.py delete mode 100644 parts/django/tests/regressiontests/bug639/models.py delete mode 100644 parts/django/tests/regressiontests/bug639/test.jpg delete mode 100644 parts/django/tests/regressiontests/bug639/tests.py delete mode 100644 parts/django/tests/regressiontests/bug8245/__init__.py delete mode 100644 parts/django/tests/regressiontests/bug8245/admin.py delete mode 100644 parts/django/tests/regressiontests/bug8245/models.py delete mode 100644 parts/django/tests/regressiontests/bug8245/tests.py delete mode 100644 parts/django/tests/regressiontests/builtin_server/__init__.py delete mode 100644 parts/django/tests/regressiontests/builtin_server/models.py delete mode 100644 parts/django/tests/regressiontests/builtin_server/tests.py delete mode 100644 parts/django/tests/regressiontests/cache/__init__.py delete mode 100644 parts/django/tests/regressiontests/cache/liberal_backend.py delete mode 100644 parts/django/tests/regressiontests/cache/models.py delete mode 100644 parts/django/tests/regressiontests/cache/tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/custom_comments/__init__.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/custom_comments/forms.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/custom_comments/models.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/custom_comments/views.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/fixtures/comment_tests.json delete mode 100644 parts/django/tests/regressiontests/comment_tests/fixtures/comment_utils.xml delete mode 100644 parts/django/tests/regressiontests/comment_tests/models.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/app_api_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/comment_form_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/comment_utils_moderators_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/comment_view_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/model_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/moderation_view_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/tests/templatetag_tests.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/urls.py delete mode 100644 parts/django/tests/regressiontests/comment_tests/urls_admin.py delete mode 100644 parts/django/tests/regressiontests/conditional_processing/__init__.py delete mode 100644 parts/django/tests/regressiontests/conditional_processing/models.py delete mode 100644 parts/django/tests/regressiontests/conditional_processing/urls.py delete mode 100644 parts/django/tests/regressiontests/conditional_processing/views.py delete mode 100644 parts/django/tests/regressiontests/context_processors/__init__.py delete mode 100644 parts/django/tests/regressiontests/context_processors/fixtures/context-processors-users.xml delete mode 100644 parts/django/tests/regressiontests/context_processors/models.py delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_access.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_messages.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_no_access.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_perms.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_test_access.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/auth_attrs_user.html delete mode 100644 parts/django/tests/regressiontests/context_processors/templates/context_processors/request_attrs.html delete mode 100644 parts/django/tests/regressiontests/context_processors/tests.py delete mode 100644 parts/django/tests/regressiontests/context_processors/urls.py delete mode 100644 parts/django/tests/regressiontests/context_processors/views.py delete mode 100644 parts/django/tests/regressiontests/csrf_tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/csrf_tests/models.py delete mode 100644 parts/django/tests/regressiontests/csrf_tests/tests.py delete mode 100644 parts/django/tests/regressiontests/custom_columns_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/custom_columns_regress/models.py delete mode 100644 parts/django/tests/regressiontests/custom_columns_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/custom_managers_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/custom_managers_regress/models.py delete mode 100644 parts/django/tests/regressiontests/custom_managers_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/datatypes/__init__.py delete mode 100644 parts/django/tests/regressiontests/datatypes/models.py delete mode 100644 parts/django/tests/regressiontests/datatypes/tests.py delete mode 100644 parts/django/tests/regressiontests/db_typecasts/__init__.py delete mode 100644 parts/django/tests/regressiontests/db_typecasts/models.py delete mode 100644 parts/django/tests/regressiontests/db_typecasts/tests.py delete mode 100644 parts/django/tests/regressiontests/decorators/__init__.py delete mode 100644 parts/django/tests/regressiontests/decorators/models.py delete mode 100644 parts/django/tests/regressiontests/decorators/tests.py delete mode 100644 parts/django/tests/regressiontests/defaultfilters/__init__.py delete mode 100644 parts/django/tests/regressiontests/defaultfilters/models.py delete mode 100644 parts/django/tests/regressiontests/defaultfilters/tests.py delete mode 100644 parts/django/tests/regressiontests/defer_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/defer_regress/models.py delete mode 100644 parts/django/tests/regressiontests/defer_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/delete_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/delete_regress/models.py delete mode 100644 parts/django/tests/regressiontests/delete_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/dispatch/__init__.py delete mode 100644 parts/django/tests/regressiontests/dispatch/models.py delete mode 100644 parts/django/tests/regressiontests/dispatch/tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/dispatch/tests/test_dispatcher.py delete mode 100644 parts/django/tests/regressiontests/dispatch/tests/test_saferef.py delete mode 100644 parts/django/tests/regressiontests/expressions_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/expressions_regress/models.py delete mode 100644 parts/django/tests/regressiontests/expressions_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/extra_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/extra_regress/models.py delete mode 100644 parts/django/tests/regressiontests/extra_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/file_storage/__init__.py delete mode 100644 parts/django/tests/regressiontests/file_storage/models.py delete mode 100644 parts/django/tests/regressiontests/file_storage/test.png delete mode 100644 parts/django/tests/regressiontests/file_storage/test1.png delete mode 100644 parts/django/tests/regressiontests/file_storage/tests.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/__init__.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/models.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/tests.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/uploadhandler.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/urls.py delete mode 100644 parts/django/tests/regressiontests/file_uploads/views.py delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/absolute.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/animal.xml delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/bad_fixture1.unkn delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/bad_fixture2.xml delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/big-fixture.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/empty.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/forward_ref_lookup.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/model-inheritance.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/nk-inheritance.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/nk-inheritance2.xml delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/non_natural_1.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/non_natural_2.xml delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/pretty.xml delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/sequence.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/fixtures/thingy.json delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/models.py delete mode 100644 parts/django/tests/regressiontests/fixtures_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/forms/__init__.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/__init__.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/ar.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/at.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/au.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/br.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/ca.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/ch.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/cl.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/cz.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/de.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/es.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/fi.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/fr.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/generic.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/id.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/ie.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/is_.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/it.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/jp.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/kw.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/nl.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/pl.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/pt.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/ro.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/se.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/sk.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/uk.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/us.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/utils.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/uy.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavor/za.py delete mode 100644 parts/django/tests/regressiontests/forms/localflavortests.py delete mode 100644 parts/django/tests/regressiontests/forms/models.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/error_messages.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/extra.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/fields.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/forms.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/formsets.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/input_formats.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/media.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/models.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/regressions.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/util.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/validators.py delete mode 100644 parts/django/tests/regressiontests/forms/tests/widgets.py delete mode 100644 parts/django/tests/regressiontests/formwizard/__init__.py delete mode 100644 parts/django/tests/regressiontests/formwizard/forms.py delete mode 100644 parts/django/tests/regressiontests/formwizard/models.py delete mode 100644 parts/django/tests/regressiontests/formwizard/templates/forms/wizard.html delete mode 100644 parts/django/tests/regressiontests/formwizard/tests.py delete mode 100644 parts/django/tests/regressiontests/formwizard/urls.py delete mode 100644 parts/django/tests/regressiontests/generic_inline_admin/__init__.py delete mode 100644 parts/django/tests/regressiontests/generic_inline_admin/fixtures/users.xml delete mode 100644 parts/django/tests/regressiontests/generic_inline_admin/models.py delete mode 100644 parts/django/tests/regressiontests/generic_inline_admin/tests.py delete mode 100644 parts/django/tests/regressiontests/generic_inline_admin/urls.py delete mode 100644 parts/django/tests/regressiontests/generic_relations_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/generic_relations_regress/models.py delete mode 100644 parts/django/tests/regressiontests/generic_relations_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/get_or_create_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/get_or_create_regress/models.py delete mode 100644 parts/django/tests/regressiontests/get_or_create_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/httpwrappers/__init__.py delete mode 100644 parts/django/tests/regressiontests/httpwrappers/models.py delete mode 100644 parts/django/tests/regressiontests/httpwrappers/tests.py delete mode 100644 parts/django/tests/regressiontests/humanize/__init__.py delete mode 100644 parts/django/tests/regressiontests/humanize/models.py delete mode 100644 parts/django/tests/regressiontests/humanize/tests.py delete mode 100644 parts/django/tests/regressiontests/i18n/__init__.py delete mode 100644 parts/django/tests/regressiontests/i18n/forms.py delete mode 100644 parts/django/tests/regressiontests/i18n/models.py delete mode 100644 parts/django/tests/regressiontests/i18n/other/__init__.py delete mode 100644 parts/django/tests/regressiontests/i18n/other/locale/__init__.py delete mode 100644 parts/django/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.mo delete mode 100644 parts/django/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.po delete mode 100644 parts/django/tests/regressiontests/i18n/other/locale/de/__init__.py delete mode 100644 parts/django/tests/regressiontests/i18n/other/locale/de/formats.py delete mode 100644 parts/django/tests/regressiontests/i18n/resolution/__init__.py delete mode 100644 parts/django/tests/regressiontests/i18n/resolution/locale/de/LC_MESSAGES/django.mo delete mode 100644 parts/django/tests/regressiontests/i18n/resolution/locale/de/LC_MESSAGES/django.po delete mode 100644 parts/django/tests/regressiontests/i18n/resolution/models.py delete mode 100644 parts/django/tests/regressiontests/i18n/tests.py delete mode 100644 parts/django/tests/regressiontests/initial_sql_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/initial_sql_regress/models.py delete mode 100644 parts/django/tests/regressiontests/initial_sql_regress/sql/simple.sql delete mode 100644 parts/django/tests/regressiontests/initial_sql_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/inline_formsets/__init__.py delete mode 100644 parts/django/tests/regressiontests/inline_formsets/models.py delete mode 100644 parts/django/tests/regressiontests/inline_formsets/tests.py delete mode 100644 parts/django/tests/regressiontests/introspection/__init__.py delete mode 100644 parts/django/tests/regressiontests/introspection/models.py delete mode 100644 parts/django/tests/regressiontests/introspection/tests.py delete mode 100644 parts/django/tests/regressiontests/locale/de/LC_MESSAGES/django.mo delete mode 100644 parts/django/tests/regressiontests/locale/de/LC_MESSAGES/django.po delete mode 100644 parts/django/tests/regressiontests/localflavor/__init__.py delete mode 100644 parts/django/tests/regressiontests/localflavor/models.py delete mode 100644 parts/django/tests/regressiontests/localflavor/tests.py delete mode 100644 parts/django/tests/regressiontests/localflavor/us/__init__.py delete mode 100644 parts/django/tests/regressiontests/localflavor/us/forms.py delete mode 100644 parts/django/tests/regressiontests/localflavor/us/models.py delete mode 100644 parts/django/tests/regressiontests/localflavor/us/tests.py delete mode 100644 parts/django/tests/regressiontests/m2m_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/m2m_regress/models.py delete mode 100644 parts/django/tests/regressiontests/m2m_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/m2m_through_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/m2m_through_regress/fixtures/m2m_through.json delete mode 100644 parts/django/tests/regressiontests/m2m_through_regress/models.py delete mode 100644 parts/django/tests/regressiontests/m2m_through_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/mail/__init__.py delete mode 100644 parts/django/tests/regressiontests/mail/custombackend.py delete mode 100644 parts/django/tests/regressiontests/mail/models.py delete mode 100644 parts/django/tests/regressiontests/mail/tests.py delete mode 100644 parts/django/tests/regressiontests/makemessages/__init__.py delete mode 100644 parts/django/tests/regressiontests/makemessages/extraction.py delete mode 100644 parts/django/tests/regressiontests/makemessages/ignore_dir/ignored.html delete mode 100644 parts/django/tests/regressiontests/makemessages/javascript.js delete mode 100644 parts/django/tests/regressiontests/makemessages/locale/dummy delete mode 100644 parts/django/tests/regressiontests/makemessages/models.py delete mode 100644 parts/django/tests/regressiontests/makemessages/templates/test.html delete mode 100644 parts/django/tests/regressiontests/makemessages/tests.py delete mode 100644 parts/django/tests/regressiontests/managers_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/managers_regress/models.py delete mode 100644 parts/django/tests/regressiontests/managers_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/many_to_one_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/many_to_one_regress/models.py delete mode 100644 parts/django/tests/regressiontests/many_to_one_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/max_lengths/__init__.py delete mode 100644 parts/django/tests/regressiontests/max_lengths/models.py delete mode 100644 parts/django/tests/regressiontests/max_lengths/tests.py delete mode 100644 parts/django/tests/regressiontests/middleware/__init__.py delete mode 100644 parts/django/tests/regressiontests/middleware/extra_urls.py delete mode 100644 parts/django/tests/regressiontests/middleware/models.py delete mode 100644 parts/django/tests/regressiontests/middleware/tests.py delete mode 100644 parts/django/tests/regressiontests/middleware/urls.py delete mode 100644 parts/django/tests/regressiontests/middleware_exceptions/__init__.py delete mode 100644 parts/django/tests/regressiontests/middleware_exceptions/models.py delete mode 100644 parts/django/tests/regressiontests/middleware_exceptions/tests.py delete mode 100644 parts/django/tests/regressiontests/middleware_exceptions/urls.py delete mode 100644 parts/django/tests/regressiontests/middleware_exceptions/views.py delete mode 100644 parts/django/tests/regressiontests/model_fields/4x8.png delete mode 100644 parts/django/tests/regressiontests/model_fields/8x4.png delete mode 100644 parts/django/tests/regressiontests/model_fields/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_fields/imagefield.py delete mode 100644 parts/django/tests/regressiontests/model_fields/models.py delete mode 100644 parts/django/tests/regressiontests/model_fields/tests.py delete mode 100644 parts/django/tests/regressiontests/model_forms_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_forms_regress/models.py delete mode 100644 parts/django/tests/regressiontests/model_forms_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/model_formsets_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_formsets_regress/models.py delete mode 100644 parts/django/tests/regressiontests/model_formsets_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_regress/models.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_select_related/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_select_related/models.py delete mode 100644 parts/django/tests/regressiontests/model_inheritance_select_related/tests.py delete mode 100644 parts/django/tests/regressiontests/model_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/model_regress/models.py delete mode 100644 parts/django/tests/regressiontests/model_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/modeladmin/__init__.py delete mode 100644 parts/django/tests/regressiontests/modeladmin/models.py delete mode 100644 parts/django/tests/regressiontests/modeladmin/tests.py delete mode 100644 parts/django/tests/regressiontests/multiple_database/__init__.py delete mode 100644 parts/django/tests/regressiontests/multiple_database/fixtures/multidb-common.json delete mode 100644 parts/django/tests/regressiontests/multiple_database/fixtures/multidb.default.json delete mode 100644 parts/django/tests/regressiontests/multiple_database/fixtures/multidb.other.json delete mode 100644 parts/django/tests/regressiontests/multiple_database/fixtures/pets.json delete mode 100644 parts/django/tests/regressiontests/multiple_database/models.py delete mode 100644 parts/django/tests/regressiontests/multiple_database/tests.py delete mode 100644 parts/django/tests/regressiontests/null_fk/__init__.py delete mode 100644 parts/django/tests/regressiontests/null_fk/models.py delete mode 100644 parts/django/tests/regressiontests/null_fk/tests.py delete mode 100644 parts/django/tests/regressiontests/null_fk_ordering/__init__.py delete mode 100644 parts/django/tests/regressiontests/null_fk_ordering/models.py delete mode 100644 parts/django/tests/regressiontests/null_fk_ordering/tests.py delete mode 100644 parts/django/tests/regressiontests/null_queries/__init__.py delete mode 100644 parts/django/tests/regressiontests/null_queries/models.py delete mode 100644 parts/django/tests/regressiontests/null_queries/tests.py delete mode 100644 parts/django/tests/regressiontests/one_to_one_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/one_to_one_regress/models.py delete mode 100644 parts/django/tests/regressiontests/one_to_one_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/pagination_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/pagination_regress/models.py delete mode 100644 parts/django/tests/regressiontests/pagination_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/queries/__init__.py delete mode 100644 parts/django/tests/regressiontests/queries/models.py delete mode 100644 parts/django/tests/regressiontests/queries/tests.py delete mode 100644 parts/django/tests/regressiontests/queryset_pickle/__init__.py delete mode 100644 parts/django/tests/regressiontests/queryset_pickle/models.py delete mode 100644 parts/django/tests/regressiontests/queryset_pickle/tests.py delete mode 100644 parts/django/tests/regressiontests/requests/__init__.py delete mode 100644 parts/django/tests/regressiontests/requests/models.py delete mode 100644 parts/django/tests/regressiontests/requests/tests.py delete mode 100644 parts/django/tests/regressiontests/reverse_single_related/__init__.py delete mode 100644 parts/django/tests/regressiontests/reverse_single_related/models.py delete mode 100644 parts/django/tests/regressiontests/reverse_single_related/tests.py delete mode 100644 parts/django/tests/regressiontests/select_related_onetoone/__init__.py delete mode 100644 parts/django/tests/regressiontests/select_related_onetoone/models.py delete mode 100644 parts/django/tests/regressiontests/select_related_onetoone/tests.py delete mode 100644 parts/django/tests/regressiontests/select_related_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/select_related_regress/models.py delete mode 100644 parts/django/tests/regressiontests/select_related_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/serializers_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/serializers_regress/models.py delete mode 100644 parts/django/tests/regressiontests/serializers_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/servers/__init__.py delete mode 100644 parts/django/tests/regressiontests/servers/models.py delete mode 100644 parts/django/tests/regressiontests/servers/tests.py delete mode 100644 parts/django/tests/regressiontests/settings_tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/settings_tests/models.py delete mode 100644 parts/django/tests/regressiontests/settings_tests/tests.py delete mode 100644 parts/django/tests/regressiontests/signals_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/signals_regress/models.py delete mode 100644 parts/django/tests/regressiontests/signals_regress/tests.py delete mode 100644 parts/django/tests/regressiontests/sites_framework/__init__.py delete mode 100644 parts/django/tests/regressiontests/sites_framework/models.py delete mode 100644 parts/django/tests/regressiontests/sites_framework/tests.py delete mode 100644 parts/django/tests/regressiontests/special_headers/__init__.py delete mode 100644 parts/django/tests/regressiontests/special_headers/fixtures/data.xml delete mode 100644 parts/django/tests/regressiontests/special_headers/models.py delete mode 100644 parts/django/tests/regressiontests/special_headers/templates/special_headers/article_detail.html delete mode 100644 parts/django/tests/regressiontests/special_headers/tests.py delete mode 100644 parts/django/tests/regressiontests/special_headers/urls.py delete mode 100644 parts/django/tests/regressiontests/special_headers/views.py delete mode 100644 parts/django/tests/regressiontests/string_lookup/__init__.py delete mode 100644 parts/django/tests/regressiontests/string_lookup/models.py delete mode 100644 parts/django/tests/regressiontests/string_lookup/tests.py delete mode 100644 parts/django/tests/regressiontests/syndication/__init__.py delete mode 100644 parts/django/tests/regressiontests/syndication/feeds.py delete mode 100644 parts/django/tests/regressiontests/syndication/fixtures/feeddata.json delete mode 100644 parts/django/tests/regressiontests/syndication/models.py delete mode 100644 parts/django/tests/regressiontests/syndication/templates/syndication/description.html delete mode 100644 parts/django/tests/regressiontests/syndication/templates/syndication/title.html delete mode 100644 parts/django/tests/regressiontests/syndication/tests.py delete mode 100644 parts/django/tests/regressiontests/syndication/urls.py delete mode 100644 parts/django/tests/regressiontests/templates/__init__.py delete mode 100644 parts/django/tests/regressiontests/templates/context.py delete mode 100644 parts/django/tests/regressiontests/templates/custom.py delete mode 100755 parts/django/tests/regressiontests/templates/eggs/tagsegg.egg delete mode 100644 parts/django/tests/regressiontests/templates/filters.py delete mode 100644 parts/django/tests/regressiontests/templates/loaders.py delete mode 100644 parts/django/tests/regressiontests/templates/models.py delete mode 100644 parts/django/tests/regressiontests/templates/nodelist.py delete mode 100644 parts/django/tests/regressiontests/templates/parser.py delete mode 100644 parts/django/tests/regressiontests/templates/smartif.py delete mode 100644 parts/django/tests/regressiontests/templates/templates/broken_base.html delete mode 100644 parts/django/tests/regressiontests/templates/templates/first/test.html delete mode 100644 parts/django/tests/regressiontests/templates/templates/second/test.html delete mode 100755 parts/django/tests/regressiontests/templates/templates/test_extends_error.html delete mode 100644 parts/django/tests/regressiontests/templates/templatetags/__init__.py delete mode 100644 parts/django/tests/regressiontests/templates/templatetags/broken_tag.py delete mode 100644 parts/django/tests/regressiontests/templates/templatetags/custom.py delete mode 100644 parts/django/tests/regressiontests/templates/tests.py delete mode 100644 parts/django/tests/regressiontests/templates/unicode.py delete mode 100644 parts/django/tests/regressiontests/templates/urls.py delete mode 100644 parts/django/tests/regressiontests/templates/views.py delete mode 100644 parts/django/tests/regressiontests/test_client_regress/__init__.py delete mode 100644 parts/django/tests/regressiontests/test_client_regress/bad_templates/404.html delete mode 100644 parts/django/tests/regressiontests/test_client_regress/fixtures/testdata.json delete mode 100644 parts/django/tests/regressiontests/test_client_regress/models.py delete mode 100644 parts/django/tests/regressiontests/test_client_regress/session.py delete mode 100644 parts/django/tests/regressiontests/test_client_regress/templates/unicode.html delete mode 100644 parts/django/tests/regressiontests/test_client_regress/urls.py delete mode 100644 parts/django/tests/regressiontests/test_client_regress/views.py delete mode 100644 parts/django/tests/regressiontests/test_runner/__init__.py delete mode 100644 parts/django/tests/regressiontests/test_runner/models.py delete mode 100644 parts/django/tests/regressiontests/test_runner/tests.py delete mode 100644 parts/django/tests/regressiontests/test_utils/__init__.py delete mode 100644 parts/django/tests/regressiontests/test_utils/models.py delete mode 100644 parts/django/tests/regressiontests/test_utils/tests.py delete mode 100644 parts/django/tests/regressiontests/text/__init__.py delete mode 100644 parts/django/tests/regressiontests/text/models.py delete mode 100644 parts/django/tests/regressiontests/text/tests.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/__init__.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/extra_urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/included_namespace_urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/included_urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/included_urls2.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/middleware.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/models.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/namespace_urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/no_urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/tests.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/urlconf_inner.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/urlconf_outer.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/urls.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/urls_error_handlers.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/urls_error_handlers_callables.py delete mode 100644 parts/django/tests/regressiontests/urlpatterns_reverse/views.py delete mode 100644 parts/django/tests/regressiontests/utils/__init__.py delete mode 100644 parts/django/tests/regressiontests/utils/checksums.py delete mode 100644 parts/django/tests/regressiontests/utils/datastructures.py delete mode 100644 parts/django/tests/regressiontests/utils/dateformat.py delete mode 100644 parts/django/tests/regressiontests/utils/datetime_safe.py delete mode 100644 parts/django/tests/regressiontests/utils/decorators.py delete mode 100644 parts/django/tests/regressiontests/utils/eggs/test_egg.egg delete mode 100644 parts/django/tests/regressiontests/utils/feedgenerator.py delete mode 100644 parts/django/tests/regressiontests/utils/functional.py delete mode 100644 parts/django/tests/regressiontests/utils/html.py delete mode 100644 parts/django/tests/regressiontests/utils/models.py delete mode 100644 parts/django/tests/regressiontests/utils/module_loading.py delete mode 100644 parts/django/tests/regressiontests/utils/simplelazyobject.py delete mode 100644 parts/django/tests/regressiontests/utils/termcolors.py delete mode 100644 parts/django/tests/regressiontests/utils/test_module/__init__.py delete mode 100644 parts/django/tests/regressiontests/utils/test_module/bad_module.py delete mode 100644 parts/django/tests/regressiontests/utils/test_module/good_module.py delete mode 100644 parts/django/tests/regressiontests/utils/tests.py delete mode 100644 parts/django/tests/regressiontests/utils/text.py delete mode 100644 parts/django/tests/regressiontests/utils/timesince.py delete mode 100644 parts/django/tests/regressiontests/utils/tzinfo.py delete mode 100644 parts/django/tests/regressiontests/utils/urls.py delete mode 100644 parts/django/tests/regressiontests/utils/views.py delete mode 100644 parts/django/tests/regressiontests/views/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app0/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/app1/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/app2/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/app3/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/app4/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/fixtures/testdata.json delete mode 100644 parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.mo delete mode 100644 parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.po delete mode 100644 parts/django/tests/regressiontests/views/media/file.txt delete mode 100644 parts/django/tests/regressiontests/views/media/file.txt.gz delete mode 100644 parts/django/tests/regressiontests/views/media/file.unknown delete mode 100644 parts/django/tests/regressiontests/views/models.py delete mode 100644 parts/django/tests/regressiontests/views/templates/debug/template_exception.html delete mode 100644 parts/django/tests/regressiontests/views/templatetags/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/templatetags/debugtags.py delete mode 100644 parts/django/tests/regressiontests/views/tests/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/tests/debug.py delete mode 100644 parts/django/tests/regressiontests/views/tests/defaults.py delete mode 100644 parts/django/tests/regressiontests/views/tests/generic/__init__.py delete mode 100644 parts/django/tests/regressiontests/views/tests/generic/create_update.py delete mode 100644 parts/django/tests/regressiontests/views/tests/generic/date_based.py delete mode 100644 parts/django/tests/regressiontests/views/tests/i18n.py delete mode 100644 parts/django/tests/regressiontests/views/tests/specials.py delete mode 100644 parts/django/tests/regressiontests/views/tests/static.py delete mode 100644 parts/django/tests/regressiontests/views/urls.py delete mode 100644 parts/django/tests/regressiontests/views/views.py delete mode 100755 parts/django/tests/runtests.py delete mode 100644 parts/django/tests/templates/404.html delete mode 100644 parts/django/tests/templates/500.html delete mode 100644 parts/django/tests/templates/base.html delete mode 100644 parts/django/tests/templates/comments/comment_notification_email.txt delete mode 100644 parts/django/tests/templates/custom_admin/add_form.html delete mode 100644 parts/django/tests/templates/custom_admin/change_form.html delete mode 100644 parts/django/tests/templates/custom_admin/change_list.html delete mode 100644 parts/django/tests/templates/custom_admin/delete_confirmation.html delete mode 100644 parts/django/tests/templates/custom_admin/delete_selected_confirmation.html delete mode 100644 parts/django/tests/templates/custom_admin/index.html delete mode 100644 parts/django/tests/templates/custom_admin/login.html delete mode 100644 parts/django/tests/templates/custom_admin/logout.html delete mode 100644 parts/django/tests/templates/custom_admin/object_history.html delete mode 100644 parts/django/tests/templates/custom_admin/password_change_done.html delete mode 100644 parts/django/tests/templates/custom_admin/password_change_form.html delete mode 100644 parts/django/tests/templates/extended.html delete mode 100644 parts/django/tests/templates/form_view.html delete mode 100644 parts/django/tests/templates/login.html delete mode 100644 parts/django/tests/templates/views/article_archive_day.html delete mode 100644 parts/django/tests/templates/views/article_archive_month.html delete mode 100644 parts/django/tests/templates/views/article_confirm_delete.html delete mode 100644 parts/django/tests/templates/views/article_detail.html delete mode 100644 parts/django/tests/templates/views/article_form.html delete mode 100644 parts/django/tests/templates/views/datearticle_archive_month.html delete mode 100644 parts/django/tests/templates/views/urlarticle_detail.html delete mode 100644 parts/django/tests/templates/views/urlarticle_form.html delete mode 100644 parts/django/tests/test_sqlite.py delete mode 100644 parts/django/tests/urls.py delete mode 100644 parts/tagging/.svn/all-wcprops delete mode 100644 parts/tagging/.svn/dir-prop-base delete mode 100644 parts/tagging/.svn/entries delete mode 100644 parts/tagging/.svn/prop-base/CHANGELOG.txt.svn-base delete mode 100644 parts/tagging/.svn/prop-base/INSTALL.txt.svn-base delete mode 100644 parts/tagging/.svn/prop-base/LICENSE.txt.svn-base delete mode 100644 parts/tagging/.svn/prop-base/MANIFEST.in.svn-base delete mode 100644 parts/tagging/.svn/prop-base/README.txt.svn-base delete mode 100644 parts/tagging/.svn/prop-base/setup.py.svn-base delete mode 100644 parts/tagging/.svn/text-base/CHANGELOG.txt.svn-base delete mode 100644 parts/tagging/.svn/text-base/INSTALL.txt.svn-base delete mode 100644 parts/tagging/.svn/text-base/LICENSE.txt.svn-base delete mode 100644 parts/tagging/.svn/text-base/MANIFEST.in.svn-base delete mode 100644 parts/tagging/.svn/text-base/README.txt.svn-base delete mode 100644 parts/tagging/.svn/text-base/setup.py.svn-base delete mode 100644 parts/tagging/CHANGELOG.txt delete mode 100644 parts/tagging/INSTALL.txt delete mode 100644 parts/tagging/LICENSE.txt delete mode 100644 parts/tagging/MANIFEST.in delete mode 100644 parts/tagging/README.txt delete mode 100644 parts/tagging/docs/.svn/all-wcprops delete mode 100644 parts/tagging/docs/.svn/entries delete mode 100644 parts/tagging/docs/.svn/prop-base/overview.txt.svn-base delete mode 100644 parts/tagging/docs/.svn/text-base/overview.txt.svn-base delete mode 100644 parts/tagging/docs/overview.txt delete mode 100644 parts/tagging/setup.py delete mode 100644 parts/tagging/tagging/.svn/all-wcprops delete mode 100644 parts/tagging/tagging/.svn/dir-prop-base delete mode 100644 parts/tagging/tagging/.svn/entries delete mode 100644 parts/tagging/tagging/.svn/prop-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/admin.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/fields.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/forms.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/generic.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/managers.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/models.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/settings.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/utils.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/prop-base/views.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/admin.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/fields.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/forms.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/generic.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/managers.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/models.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/settings.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/utils.py.svn-base delete mode 100644 parts/tagging/tagging/.svn/text-base/views.py.svn-base delete mode 100644 parts/tagging/tagging/__init__.py delete mode 100644 parts/tagging/tagging/admin.py delete mode 100644 parts/tagging/tagging/fields.py delete mode 100644 parts/tagging/tagging/forms.py delete mode 100644 parts/tagging/tagging/generic.py delete mode 100644 parts/tagging/tagging/managers.py delete mode 100644 parts/tagging/tagging/models.py delete mode 100644 parts/tagging/tagging/settings.py delete mode 100644 parts/tagging/tagging/templatetags/.svn/all-wcprops delete mode 100644 parts/tagging/tagging/templatetags/.svn/dir-prop-base delete mode 100644 parts/tagging/tagging/templatetags/.svn/entries delete mode 100644 parts/tagging/tagging/templatetags/.svn/prop-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/templatetags/.svn/prop-base/tagging_tags.py.svn-base delete mode 100644 parts/tagging/tagging/templatetags/.svn/text-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/templatetags/.svn/text-base/tagging_tags.py.svn-base delete mode 100644 parts/tagging/tagging/templatetags/__init__.py delete mode 100644 parts/tagging/tagging/templatetags/tagging_tags.py delete mode 100644 parts/tagging/tagging/tests/.svn/all-wcprops delete mode 100644 parts/tagging/tagging/tests/.svn/dir-prop-base delete mode 100644 parts/tagging/tagging/tests/.svn/entries delete mode 100644 parts/tagging/tagging/tests/.svn/prop-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/prop-base/models.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/prop-base/settings.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/prop-base/tags.txt.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/prop-base/tests.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/text-base/__init__.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/text-base/models.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/text-base/settings.py.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/text-base/tags.txt.svn-base delete mode 100644 parts/tagging/tagging/tests/.svn/text-base/tests.py.svn-base delete mode 100644 parts/tagging/tagging/tests/__init__.py delete mode 100644 parts/tagging/tagging/tests/models.py delete mode 100644 parts/tagging/tagging/tests/settings.py delete mode 100644 parts/tagging/tagging/tests/tags.txt delete mode 100644 parts/tagging/tagging/tests/tests.py delete mode 100644 parts/tagging/tagging/utils.py delete mode 100644 parts/tagging/tagging/views.py diff --git a/bin/buildout b/bin/buildout deleted file mode 100755 index 7632ca4..0000000 --- a/bin/buildout +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/python -S - -import sys -sys.path[0:0] = [ - '/home/nishanth/Desktop/pytask/parts/buildout', - ] - - -import os -path = sys.path[0] -if os.environ.get('PYTHONPATH'): - path = os.pathsep.join([path, os.environ['PYTHONPATH']]) -os.environ['BUILDOUT_ORIGINAL_PYTHONPATH'] = os.environ.get('PYTHONPATH', '') -os.environ['PYTHONPATH'] = path -import site # imports custom buildout-generated site.py - -import zc.buildout.buildout - -if __name__ == '__main__': - zc.buildout.buildout.main() diff --git a/bin/django b/bin/django deleted file mode 100755 index 8c75e4b..0000000 --- a/bin/django +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/python - -import sys -sys.path[0:0] = [ - '/usr/lib/python2.6/dist-packages/PIL', - '/home/nishanth/Desktop/pytask/eggs/djangorecipe-0.20-py2.6.egg', - '/home/nishanth/Desktop/pytask/eggs/zc.recipe.egg-1.3.2-py2.6.egg', - '/home/nishanth/Desktop/pytask/eggs/zc.buildout-1.5.2-py2.6.egg', - '/home/nishanth/Desktop/pytask/eggs/setuptools-0.6c12dev_r85381-py2.6.egg', - '/home/nishanth/Desktop/pytask/parts/django', - '/home/nishanth/Desktop/pytask', - '/home/nishanth/Desktop/pytask/parts/tagging', - '/home/nishanth/Desktop/pytask/parts/django-robots', - '/home/nishanth/Desktop/pytask/parts/south', - '/home/nishanth/Desktop/pytask/parts/registration', - ] - - -import djangorecipe.manage - -if __name__ == '__main__': - djangorecipe.manage.main('pytask.settings') diff --git a/develop-eggs/Django.egg-link b/develop-eggs/Django.egg-link deleted file mode 100644 index 2da5423..0000000 --- a/develop-eggs/Django.egg-link +++ /dev/null @@ -1,2 +0,0 @@ -/home/nishanth/Desktop/pytask/parts/django -. \ No newline at end of file diff --git a/downloads/django-1.2.4.tar.gz b/downloads/django-1.2.4.tar.gz deleted file mode 100644 index 02f128f..0000000 Binary files a/downloads/django-1.2.4.tar.gz and /dev/null differ diff --git a/eggs/MercurialRecipe-0.1.3-py2.6.egg b/eggs/MercurialRecipe-0.1.3-py2.6.egg deleted file mode 100644 index 5dafbf3..0000000 Binary files a/eggs/MercurialRecipe-0.1.3-py2.6.egg and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/PKG-INFO b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/PKG-INFO deleted file mode 100644 index b2a62f7..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/PKG-INFO +++ /dev/null @@ -1,443 +0,0 @@ -Metadata-Version: 1.0 -Name: djangorecipe -Version: 0.20 -Summary: Buildout recipe for Django -Home-page: https://launchpad.net/djangorecipe -Author: Jeroen Vloothuis -Author-email: jeroen.vloothuis@xs4all.nl -License: BSD -Description: Description - =========== - - This buildout recipe can be used to create a setup for Django. It will - automatically download Django and install it in the buildout's - sandbox. You can use either a release version of Django or a - subversion checkout (by using `trunk` instead of a version number. - - You can see an example of how to use the recipe below:: - - [buildout] - parts = satchmo django - eggs = ipython - - [satchmo] - recipe = gocept.download - url = http://www.satchmoproject.com/snapshots/satchmo-0.6.tar.gz - md5sum = 659a4845c1c731be5cfe29bfcc5d14b1 - - [django] - recipe = djangorecipe - version = trunk - settings = development - eggs = ${buildout:eggs} - extra-paths = - ${satchmo:location} - project = dummyshop - - - Supported options - ================= - - The recipe supports the following options. - - project - This option sets the name for your project. The recipe will create a - basic structure if the project is not already there. - - projectegg - Use this instead of the project option when you want to use an egg - as the project. This disables the generation of the project - structure. - - python - This option can be used to specify a specific Python version which can be a - different version from the one used to run the buildout. - - version - The version argument can accept a few different types of - arguments. You can specify `trunk`. In this case it will do a - checkout of the Django trunk. Another option is to specify a release - number like `0.96.2`. This will download the release - tarball. Finally you can specify a full svn url (including the - revision number). An example of this would be - `http://code.djangoproject.com/svn/django/branches/newforms-admin@7833`. - - settings - You can set the name of the settings file which is to be used with - this option. This is useful if you want to have a different - production setup from your development setup. It defaults to - `development`. - - download-cache - Set this to a folder somewhere on you system to speed up - installation. The recipe will use this folder as a cache for a - downloaded version of Django. - - extra-paths - All paths specified here will be used to extend the default Python - path for the `bin/*` scripts. - - pth-files - Adds paths found from a site `.pth` file to the extra-paths. - Useful for things like Pinax which maintains its own external_libs dir. - - control-script - The name of the script created in the bin folder. This script is the - equivalent of the `manage.py` Django normally creates. By default it - uses the name of the section (the part between the `[ ]`). - - wsgi - An extra script is generated in the bin folder when this is set to - `true`. This can be used with mod_wsgi to deploy the project. The - name of the script is `control-script.wsgi`. - - wsgilog - In case the WSGI server you're using does not allow printing to stdout, - you can set this variable to a filesystem path - all stdout/stderr data - is redirected to the log instead of printed - - fcgi - Like `wsgi` this creates an extra script within the bin folder. This - script can be used with an FCGI deployment. - - test - If you want a script in the bin folder to run all the tests for a - specific set of apps this is the option you would use. Set this to - the list of app labels which you want to be tested. - - testrunner - This is the name of the testrunner which will be created. It - defaults to `test`. - - All following options only have effect when the project specified by - the project option has not been created already. - - urlconf - You can set this to a specific url conf. It will use project.urls by - default. - - secret - The secret to use for the `settings.py`, it generates a random - string by default. - - - FCGI specific settings - ====================== - - Options for FCGI can be set within a settings file (`settings.py`). The options - is `FCGI_OPTIONS`. It should be set to a dictionary. The part below is an - example:: - - FCGI_OPTIONS = { - 'method': 'threaded', - } - - - Another example - =============== - - The next example shows you how to use some more of the options:: - - [buildout] - parts = django extras - eggs = - hashlib - - [extras] - recipe = iw.recipe.subversion - urls = - http://django-command-extensions.googlecode.com/svn/trunk/ django-command-extensions - http://django-mptt.googlecode.com/svn/trunk/ django-mptt - - [django] - recipe = djangorecipe - version = trunk - settings = development - project = exampleproject - wsgi = true - eggs = - ${buildout:eggs} - test = - someapp - anotherapp - - Example using .pth files - ======================== - - Pinax uses a .pth file to add a bunch of libraries to its path; we can - specify it's directory to get the libraries it specified added to our - path:: - - [buildout] - parts = PIL - svncode - myproject - - [PIL] - recipe = zc.recipe.egg:custom - egg = PIL - find-links = http://dist.repoze.org/ - - [svncode] - recipe = iw.recipe.subversion - urls = http://svn.pinaxproject.com/pinax/tags/0.5.1rc1 pinax - - [myproject] - recipe = djangorecipe - version = 1.0.2 - eggs = PIL - project = myproject - settings = settings - extra-paths = ${buildout:directory}/myproject/apps - ${svncode:location}/pinax/apps/external_apps - ${svncode:location}/pinax/apps/local_apps - pth-files = ${svncode:location}/pinax/libs/external_libs - wsgi = true - - Above, we use stock Pinax for pth-files and extra-paths paths for - apps, and our own project for the path that will be found first in the - list. Note that we expect our project to be checked out (e.g., by - svn:external) directly under this directory in to 'myproject'. - - Example with a different Python version - ======================================= - - To use a different Python version from the one that ran buildout in the - generated script use something like:: - - [buildout] - parts = myproject - - [special-python] - executable = /some/special/python - - [myproject] - recipe = djangorecipe - version = 1.0.2 - project = myproject - python = special-python - - - Example configuration for mod_wsgi - ================================== - - If you want to deploy a project using mod_wsgi you could use this - example as a starting point:: - - - Order deny,allow - Allow from all - - - ServerName my.rocking.server - CustomLog /var/log/apache2/my.rocking.server/access.log combined - ErrorLog /var/log/apache2/my.rocking.server/error.log - WSGIScriptAlias / /path/to/buildout/bin/django.wsgi - - - - Changes - ======= - - 0.20 - ---- - - - The recipe know makes the `django` package know to setuptools during install. - This closes #397864. Thanks to Daniel Bruce and Dan Fairs for the patch. - - - Fixed #451065 which fixes a problem with the WSGI log file option. - - - Added the posibilty to configure more FCGI related settings. Thanks to Vasily - Sulatskov for the patch. - - 0.19.2 - ------ - - - The generated WSGI & FCGI scripts are now properly removed when - options change (fixes #328182). Thanks to Horst Gutmann for the - patch. - - - Scripts are now updated when dependencies change. This fixes #44658, - thanks to Paul Carduner for the patch. - - 0.19.1 - ------ - - - Applied fix for the change in WSGI script generation. The previous - release did not work properly. - - 0.19 - ---- - - - When running again with non-newest set the recipe will no longer - update the Subversion checkout. Thanks to vinilios for the patch. - - - The WSGI and FCGI scripts are now generated using Buildout's own - system. This makes them more similar to the generated manage script - with regard to the setup of paths. Thanks to Jannis Leidel for the - patch. - - 0.18 - ---- - - - Paths from eggs and extra-paths now get precedence over the default - system path (fixes #370420). Thanks to Horst Gutmann for the patch. - - - The generated WSGI script now uses the `python` option if - present. This fixes #361695. - - 0.17.4 - ------ - - - Fixed a problem when not running in verbose mode (fixes #375151). - - 0.17.3 - ------ - - - Removed dependency on setuptools_bzr since it does not seem to work - like I expected. - - 0.17.2 - ------ - - - Changed the download code to use urllib2. This should make it work - from behind proxies (fixes #362822). Thanks to pauld for the patch. - - 0.17.1 - ------ - - - Fixed a problem with the new WSGI logging option #348797. Thanks to - Bertrand Mathieu for the patch. - - - Disable generation of the WSGI log if "wsgilog" isn't set, thanks to - Jacob Kaplan-Moss for the patch. - - - Updated buildout.cfg and .bzrignore, thanks Jacob Kaplan-Moss. - - 0.17 - ---- - - - Added an option to specify a log file for output redirection from - the WSGI script. Thanks to Guido Wesdorp for the patch. - - 0.16 - ---- - - - Subversion aliases are now supported (something like - svn+mystuff://myjunk). Thanks to Remco for the patch. - - 0.15.2 - ------ - - - Update to move pth-files finder from the __init__ method to the - install method so it runs in buildout-order, else it looks for pth - files in dirs that may not yet exist. Thanks to Chris Shenton for - the update to his original patch. - - 0.15.1 - ------ - - - Update to make the previously added pth-files option better - documented. - - 0.15 - ---- - - - Added "pth-files" option to add libraries to extra-paths from - site .pth files. Thanks to Chris Shenton for the patch. - - 0.14 - ---- - - - The recipe now supports creating a FCGI script. Thanks to Jannis - Leidel for the patch. - - - When downloading a Django recipe for the first time the recipe now - properly reports the url it is downloading from. - - 0.13 - ---- - - - Specifying a user name within a subversion url now works. The code - that determined the revision has been updated. This fixes issue - #274004. Thanks to Remco for the patch. - - - Updated the template for creating new projects. It now uses the - current admin system when generating it's `urls.py` file. This fixes - issue #276255. Thanks to Roland for the patch. - - 0.12.1 - ------ - - - Re-upload since CHANGES.txt was missing from the release - - 0.12 - ---- - - - The recipe no longer executes subversion to determine whether the - versions is to be downloaded using subversion. This fixes issue - #271145. Thanks to Kapil Thangavelu for the patch. - - - Changed the `pythonpath` option to `extra-paths`. This makes the - recipe more consistent with other recipes (see issue #270908). - - 0.11 - ---- - - - Another go at fixing the updating problem (#250811) by making sure - the update method is always called. It would not be called in the - previous version since the recipe wrote a random secret (if it - wasn't specified) to the options for use with a template. Buildout - saw this as a change in options and therefore always decided to - un-install & install. - - - When both projectegg and wsgi=True are specified, the generated wsgi - file did not have the correct settings file in it. This has been - fixed with a patch from Dan Fairs. - - - The recipe now has logging. All print statements have been replaced - and a few extra logging calls have been added. This makes the recipe - more informative about long running tasks. Thanks erny for the patch - from issue #260628. - - 0.10 - ---- - - - The recipe no longer expects the top level directory name in a - release tarball to be consistent with the version number. This fixes - issue #260097. Thanks to erny for reporting this issue and - suggesting a solution. - - - Revision pinns for the svn checkout now stay pinned when re-running - the buildout. This fixes issue #250811. Thanks to Remco for - reporting this. - - - Added an option to specify an egg to use as the project. This - disables the code which creates the basic project structure. Thanks - to Dan Fairs for the patch from issue #252647. - - 0.9.1 - ----- - - - Fixed the previous release which was broken due to a missing - manifest file - - 0.9 - --- - - - The settings option is fixed so that it supports arbitrary depth - settings paths (example; `conf.customer.development`). - - - The version argument now excepts a full svn url as well. You can use - this to get a branch or fix any url to a specific revision with the - standard svn @ syntax - - - The wsgi script is no longer made executable and readable only by - the user who ran buildout. This avoids problems with deployment. - -Platform: UNKNOWN -Classifier: Framework :: Buildout -Classifier: Framework :: Django -Classifier: Topic :: Software Development :: Build Tools -Classifier: Development Status :: 5 - Production/Stable -Classifier: License :: OSI Approved :: BSD License diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/SOURCES.txt b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/SOURCES.txt deleted file mode 100644 index ded8ede..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/SOURCES.txt +++ /dev/null @@ -1,25 +0,0 @@ -.bzrignore -CHANGES.txt -README.txt -bootstrap.py -buildout.cfg -fabfile -setup.cfg -setup.py -src/djangorecipe/__init__.py -src/djangorecipe/fcgi.py -src/djangorecipe/manage.py -src/djangorecipe/recipe.py -src/djangorecipe/test.py -src/djangorecipe/tests.py -src/djangorecipe/wsgi.py -src/djangorecipe.egg-info/PKG-INFO -src/djangorecipe.egg-info/SOURCES.txt -src/djangorecipe.egg-info/dependency_links.txt -src/djangorecipe.egg-info/entry_points.txt -src/djangorecipe.egg-info/not-zip-safe -src/djangorecipe.egg-info/requires.txt -src/djangorecipe.egg-info/top_level.txt -src/djangorecipe/testing/django/__init__.py -src/djangorecipe/testing/django/core/__init__.py -src/djangorecipe/testing/django/core/management.py \ No newline at end of file diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/dependency_links.txt b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/entry_points.txt b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/entry_points.txt deleted file mode 100644 index 844004d..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/entry_points.txt +++ /dev/null @@ -1,5 +0,0 @@ - - # -*- Entry points: -*- - [zc.buildout] - default = djangorecipe.recipe:Recipe - \ No newline at end of file diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/not-zip-safe b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/requires.txt b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/requires.txt deleted file mode 100644 index 0cf9b27..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/requires.txt +++ /dev/null @@ -1,2 +0,0 @@ -zc.buildout -zc.recipe.egg \ No newline at end of file diff --git a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/top_level.txt b/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/top_level.txt deleted file mode 100644 index 7d37670..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/EGG-INFO/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -djangorecipe diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.pyo deleted file mode 100644 index 7898e21..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/__init__.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.py deleted file mode 100644 index 17a793e..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.py +++ /dev/null @@ -1,29 +0,0 @@ -from django.core import management - -def main(settings_file, logfile=None): - try: - mod = __import__(settings_file) - components = settings_file.split('.') - for comp in components[1:]: - mod = getattr(mod, comp) - - except ImportError, e: - import sys - sys.stderr.write("Error loading the settings module '%s': %s" - % (settings_file, e)) - sys.exit(1) - - # Setup settings - management.setup_environ(mod) - - from django.conf import settings - - options = getattr(settings, 'FCGI_OPTIONS', {}) - if logfile: - options['outlog'] = logfile - options['errlog'] = logfile - - from django.core.servers.fastcgi import runfastcgi - - # Run FASTCGI handler - runfastcgi(**options) diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.pyo deleted file mode 100644 index 62633ea..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/fcgi.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.py deleted file mode 100644 index 6a61411..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.core import management - -def main(settings_file): - try: - mod = __import__(settings_file) - components = settings_file.split('.') - for comp in components[1:]: - mod = getattr(mod, comp) - - except ImportError, e: - import sys - sys.stderr.write("Error loading the settings module '%s': %s" - % (settings_file, e)) - return sys.exit(1) - - management.execute_manager(mod) diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.pyo deleted file mode 100644 index d483aac..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/manage.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.py deleted file mode 100644 index 2282513..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.py +++ /dev/null @@ -1,466 +0,0 @@ -from random import choice -import os -import subprocess -import urllib2 -import shutil -import logging -import re - -from zc.buildout import UserError -import zc.recipe.egg -import setuptools - -script_template = { - 'wsgi': ''' - -%(relative_paths_setup)s -import sys -sys.path[0:0] = [ - %(path)s, - ] -%(initialization)s -import %(module_name)s - -application = %(module_name)s.%(attrs)s(%(arguments)s) -''', - 'fcgi': ''' - -%(relative_paths_setup)s -import sys -sys.path[0:0] = [ - %(path)s, - ] -%(initialization)s -import %(module_name)s - -%(module_name)s.%(attrs)s(%(arguments)s) -''' -} - - -settings_template = ''' -import os - -ADMINS = ( - # ('Your Name', 'your_email@domain.com'), -) - -MANAGERS = ADMINS - -DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. -DATABASE_NAME = '%(project)s.db' -DATABASE_USER = '' # Not used with sqlite3. -DATABASE_PASSWORD = '' # Not used with sqlite3. -DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. -DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. - -TIME_ZONE = 'America/Chicago' - -LANGUAGE_CODE = 'en-us' - -# Absolute path to the directory that holds media. -# Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = %(media_root)s - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash if there is a path component (optional in other cases). -# Examples: "http://media.lawrence.com", "http://example.com/media/" -MEDIA_URL = '/media/' - -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = '/admin_media/' - -# Don't share this with anybody. -SECRET_KEY = '%(secret)s' - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.middleware.doc.XViewMiddleware', -) - -ROOT_URLCONF = '%(urlconf)s' - - -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.admin', -) - -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.load_template_source', - 'django.template.loaders.app_directories.load_template_source', -) - -TEMPLATE_DIRS = ( - os.path.join(os.path.dirname(__file__), "templates"), -) - - -''' - -production_settings = ''' -from %(project)s.settings import * -''' - -development_settings = ''' -from %(project)s.settings import * -DEBUG=True -TEMPLATE_DEBUG=DEBUG -''' - -urls_template = ''' -from django.conf.urls.defaults import patterns, include, handler500 -from django.conf import settings -from django.contrib import admin -admin.autodiscover() - -handler500 # Pyflakes - -urlpatterns = patterns( - '', - (r'^admin/(.*)', admin.site.root), - (r'^accounts/login/$', 'django.contrib.auth.views.login'), -) - -if settings.DEBUG: - urlpatterns += patterns('', - (r'^media/(?P.*)$', 'django.views.static.serve', - {'document_root': settings.MEDIA_ROOT}), - ) -''' - -class Recipe(object): - def __init__(self, buildout, name, options): - self.log = logging.getLogger(name) - self.egg = zc.recipe.egg.Egg(buildout, options['recipe'], options) - - self.buildout, self.name, self.options = buildout, name, options - options['location'] = os.path.join( - buildout['buildout']['parts-directory'], name) - options['bin-directory'] = buildout['buildout']['bin-directory'] - - options.setdefault('project', 'project') - options.setdefault('settings', 'development') - - options.setdefault('urlconf', options['project'] + '.urls') - options.setdefault( - 'media_root', - "os.path.join(os.path.dirname(__file__), 'media')") - # Set this so the rest of the recipe can expect the values to be - # there. We need to make sure that both pythonpath and extra-paths are - # set for BBB. - if 'extra-paths' in options: - options['pythonpath'] = options['extra-paths'] - else: - options.setdefault('extra-paths', options.get('pythonpath', '')) - - # Usefull when using archived versions - buildout['buildout'].setdefault( - 'download-cache', - os.path.join(buildout['buildout']['directory'], - 'downloads')) - - # mod_wsgi support script - options.setdefault('wsgi', 'false') - options.setdefault('fcgi', 'false') - options.setdefault('wsgilog', '') - options.setdefault('logfile', '') - - # only try to download stuff if we aren't asked to install from cache - self.install_from_cache = self.buildout['buildout'].get( - 'install-from-cache', '').strip() == 'true' - - - def install(self): - location = self.options['location'] - base_dir = self.buildout['buildout']['directory'] - - project_dir = os.path.join(base_dir, self.options['project']) - - download_dir = self.buildout['buildout']['download-cache'] - if not os.path.exists(download_dir): - os.mkdir(download_dir) - - version = self.options['version'] - # Remove a pre-existing installation if it is there - if os.path.exists(location): - shutil.rmtree(location) - - if self.is_svn_url(version): - self.install_svn_version(version, download_dir, location, - self.install_from_cache) - else: - tarball = self.get_release(version, download_dir) - # Extract and put the dir in its proper place - self.install_release(version, download_dir, tarball, location) - - self.options['setup'] = location - development = zc.recipe.egg.Develop(self.buildout, - self.options['recipe'], - self.options) - development.install() - del self.options['setup'] - - extra_paths = self.get_extra_paths() - requirements, ws = self.egg.working_set(['djangorecipe']) - - script_paths = [] - - # Create the Django management script - script_paths.extend(self.create_manage_script(extra_paths, ws)) - - # Create the test runner - script_paths.extend(self.create_test_runner(extra_paths, ws)) - - # Make the wsgi and fastcgi scripts if enabled - script_paths.extend(self.make_scripts(extra_paths, ws)) - - # Create default settings if we haven't got a project - # egg specified, and if it doesn't already exist - if not self.options.get('projectegg'): - if not os.path.exists(project_dir): - self.create_project(project_dir) - else: - self.log.info( - 'Skipping creating of project: %(project)s since ' - 'it exists' % self.options) - - return script_paths + [location] - - def install_svn_version(self, version, download_dir, location, - install_from_cache): - svn_url = self.version_to_svn(version) - download_location = os.path.join( - download_dir, 'django-' + - self.version_to_download_suffix(version)) - if not install_from_cache: - if os.path.exists(download_location): - if self.svn_update(download_location, version): - raise UserError( - "Failed to update Django; %s. " - "Please check your internet connection." % ( - download_location)) - else: - self.log.info("Checking out Django from svn: %s" % svn_url) - cmd = 'svn co %s %s' % (svn_url, download_location) - if not self.buildout['buildout'].get('verbosity'): - cmd += ' -q' - if self.command(cmd): - raise UserError("Failed to checkout Django. " - "Please check your internet connection.") - else: - self.log.info("Installing Django from cache: " + download_location) - - shutil.copytree(download_location, location) - - - def install_release(self, version, download_dir, tarball, destination): - extraction_dir = os.path.join(download_dir, 'django-archive') - setuptools.archive_util.unpack_archive(tarball, extraction_dir) - # Lookup the resulting extraction dir instead of guessing it - # (Django releases have a tendency not to be consistend here) - untarred_dir = os.path.join(extraction_dir, - os.listdir(extraction_dir)[0]) - shutil.move(untarred_dir, destination) - shutil.rmtree(extraction_dir) - - def get_release(self, version, download_dir): - tarball = os.path.join(download_dir, 'django-%s.tar.gz' % version) - - # Only download when we don't yet have an archive - if not os.path.exists(tarball): - download_url = 'http://www.djangoproject.com/download/%s/tarball/' - self.log.info("Downloading Django from: %s" % ( - download_url % version)) - - tarball_f = open(tarball, 'wb') - f = urllib2.urlopen(download_url % version) - tarball_f.write(f.read()) - tarball_f.close() - f.close() - return tarball - - def create_manage_script(self, extra_paths, ws): - project = self.options.get('projectegg', self.options['project']) - return zc.buildout.easy_install.scripts( - [(self.options.get('control-script', self.name), - 'djangorecipe.manage', 'main')], - ws, self.options['executable'], self.options['bin-directory'], - extra_paths = extra_paths, - arguments= "'%s.%s'" % (project, - self.options['settings'])) - - - - def create_test_runner(self, extra_paths, working_set): - apps = self.options.get('test', '').split() - # Only create the testrunner if the user requests it - if apps: - return zc.buildout.easy_install.scripts( - [(self.options.get('testrunner', 'test'), - 'djangorecipe.test', 'main')], - working_set, self.options['executable'], - self.options['bin-directory'], - extra_paths = extra_paths, - arguments= "'%s.%s', %s" % ( - self.options['project'], - self.options['settings'], - ', '.join(["'%s'" % app for app in apps]))) - else: - return [] - - - def create_project(self, project_dir): - os.makedirs(project_dir) - - template_vars = {'secret': self.generate_secret()} - template_vars.update(self.options) - - self.create_file( - os.path.join(project_dir, 'development.py'), - development_settings, template_vars) - - self.create_file( - os.path.join(project_dir, 'production.py'), - production_settings, template_vars) - - self.create_file( - os.path.join(project_dir, 'urls.py'), - urls_template, template_vars) - - self.create_file( - os.path.join(project_dir, 'settings.py'), - settings_template, template_vars) - - # Create the media and templates directories for our - # project - os.mkdir(os.path.join(project_dir, 'media')) - os.mkdir(os.path.join(project_dir, 'templates')) - - # Make the settings dir a Python package so that Django - # can load the settings from it. It will act like the - # project dir. - open(os.path.join(project_dir, '__init__.py'), 'w').close() - - def make_scripts(self, extra_paths, ws): - scripts = [] - _script_template = zc.buildout.easy_install.script_template - for protocol in ('wsgi', 'fcgi'): - zc.buildout.easy_install.script_template = \ - zc.buildout.easy_install.script_header + \ - script_template[protocol] - if self.options.get(protocol, '').lower() == 'true': - project = self.options.get('projectegg', - self.options['project']) - scripts.extend( - zc.buildout.easy_install.scripts( - [('%s.%s' % (self.options.get('control-script', - self.name), - protocol), - 'djangorecipe.%s' % protocol, 'main')], - ws, - self.options['executable'], - self.options['bin-directory'], - extra_paths=extra_paths, - arguments= "'%s.%s', logfile='%s'" % ( - project, self.options['settings'], - self.options.get('logfile')))) - zc.buildout.easy_install.script_template = _script_template - return scripts - - def is_svn_url(self, version): - # Search if there is http/https/svn or svn+[a tunnel identifier] in the - # url or if the trunk marker is used, all indicating the use of svn - svn_version_search = re.compile( - r'^(http|https|svn|svn\+[a-zA-Z-_]+)://|^(trunk)$').search(version) - return svn_version_search is not None - - def version_to_svn(self, version): - if version == 'trunk': - return 'http://code.djangoproject.com/svn/django/trunk/' - else: - return version - - def version_to_download_suffix(self, version): - if version == 'trunk': - return 'svn' - return [p for p in version.split('/') if p][-1] - - def svn_update(self, path, version): - command = 'svn up' - revision_search = re.compile(r'@([0-9]*)$').search( - self.options['version']) - - if revision_search is not None: - command += ' -r ' + revision_search.group(1) - self.log.info("Updating Django from svn") - if not self.buildout['buildout'].get('verbosity'): - command += ' -q' - return self.command(command, cwd=path) - - def get_extra_paths(self): - extra_paths = [self.options['location'], - self.buildout['buildout']['directory'] - ] - - # Add libraries found by a site .pth files to our extra-paths. - if 'pth-files' in self.options: - import site - for pth_file in self.options['pth-files'].splitlines(): - pth_libs = site.addsitedir(pth_file, set()) - if not pth_libs: - self.log.warning( - "No site *.pth libraries found for pth_file=%s" % ( - pth_file,)) - else: - self.log.info("Adding *.pth libraries=%s" % pth_libs) - self.options['extra-paths'] += '\n' + '\n'.join(pth_libs) - - pythonpath = [p.replace('/', os.path.sep) for p in - self.options['extra-paths'].splitlines() if p.strip()] - - extra_paths.extend(pythonpath) - return extra_paths - - def update(self): - newest = self.buildout['buildout'].get('newest') != 'false' - if newest and not self.install_from_cache and \ - self.is_svn_url(self.options['version']): - self.svn_update(self.options['location'], self.options['version']) - - extra_paths = self.get_extra_paths() - requirements, ws = self.egg.working_set(['djangorecipe']) - # Create the Django management script - self.create_manage_script(extra_paths, ws) - - # Create the test runner - self.create_test_runner(extra_paths, ws) - - # Make the wsgi and fastcgi scripts if enabled - self.make_scripts(extra_paths, ws) - - def command(self, cmd, **kwargs): - output = subprocess.PIPE - if self.buildout['buildout'].get('verbosity'): - output = None - command = subprocess.Popen( - cmd, shell=True, stdout=output, **kwargs) - return command.wait() - - def create_file(self, file, template, options): - if os.path.exists(file): - return - - f = open(file, 'w') - f.write(template % options) - f.close() - - def generate_secret(self): - chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' - return ''.join([choice(chars) for i in range(50)]) diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.pyo deleted file mode 100644 index a73b499..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/recipe.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.py deleted file mode 100644 index 8cad491..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.core import management - -def main(settings_file, *apps): - argv = ['test', 'test'] + list(apps) - try: - settings = __import__(settings_file) - components = settings_file.split('.') - for comp in components[1:]: - settings = getattr(settings, comp) - except ImportError, e: - import sys - sys.stderr.write("Error loading the settings module '%s': %s" - % (settings_file, e)) - return sys.exit(1) - - management.execute_manager(settings, argv=argv) diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.pyo deleted file mode 100644 index 2d4d58d..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/test.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.py deleted file mode 100644 index 8d83ad7..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.py +++ /dev/null @@ -1,790 +0,0 @@ -import unittest -import tempfile -import os -import sys -import shutil - -import mock -from zc.buildout import UserError -from zc.recipe.egg.egg import Scripts as ZCRecipeEggScripts - -from djangorecipe.recipe import Recipe - -# Add the testing dir to the Python path so we can use a fake Django -# install. This needs to be done so that we can use this as a base for -# mock's with some of the tests. -sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'testing')) - -# Now that we have a fake Django on the path we can import the -# scripts. These are depenent on a Django install, hence the fake one. -from djangorecipe import test -from djangorecipe import manage - - -class TestRecipe(unittest.TestCase): - - def setUp(self): - # Create a directory for our buildout files created by the recipe - self.buildout_dir = tempfile.mkdtemp('djangorecipe') - - self.bin_dir = os.path.join(self.buildout_dir, 'bin') - self.develop_eggs_dir = os.path.join(self.buildout_dir, - 'develop-eggs') - self.eggs_dir = os.path.join(self.buildout_dir, 'eggs') - self.parts_dir = os.path.join(self.buildout_dir, 'parts') - - # We need to create the bin dir since the recipe should be able to expect it exists - os.mkdir(self.bin_dir) - - self.recipe = Recipe({'buildout': {'eggs-directory': self.eggs_dir, - 'develop-eggs-directory': self.develop_eggs_dir, - 'python': 'python-version', - 'bin-directory': self.bin_dir, - 'parts-directory': self.parts_dir, - 'directory': self.buildout_dir, - }, - 'python-version': {'executable': sys.executable}}, - 'django', - {'recipe': 'djangorecipe', - 'version': 'trunk'}) - - def tearDown(self): - # Remove our test dir - shutil.rmtree(self.buildout_dir) - - def test_consistent_options(self): - # Buildout is pretty clever in detecting changing options. If - # the recipe modifies it's options during initialisation it - # will store this to determine wheter it needs to update or do - # a uninstall & install. We need to make sure that we normally - # do not trigger this. That means running the recipe with the - # same options should give us the same results. - self.assertEqual(*[ - Recipe({'buildout': {'eggs-directory': self.eggs_dir, - 'develop-eggs-directory': self.develop_eggs_dir, - 'python': 'python-version', - 'bin-directory': self.bin_dir, - 'parts-directory': self.parts_dir, - 'directory': self.buildout_dir, - }, - 'python-version': {'executable': sys.executable}}, - 'django', - {'recipe': 'djangorecipe', - 'version': 'trunk'}).options.copy() for i in range(2)]) - - def test_svn_url(self): - # Make sure that only a few specific type of url's are - # considered svn url's - - # This is a plain release version so it should indicate it is - # not a svn url - self.failIf(self.recipe.is_svn_url('0.96.2')) - # The next line specifies a proper link with the trunk - self.assert_(self.recipe.is_svn_url('trunk')) - # A url looking like trunk should also fail - self.failIf(self.recipe.is_svn_url('trunka')) - # A full svn url including version should work - self.assert_(self.recipe.is_svn_url( - 'http://code.djangoproject.com/svn/django/branches/newforms-admin@7833')) - # HTTPS should work too - self.assert_(self.recipe.is_svn_url( - 'https://code.djangoproject.com/svn/django/branches/newforms-admin@7833')) - # Svn+ssh should work - self.assert_(self.recipe.is_svn_url( - 'svn+ssh://myserver/newforms-admin@7833')) - # Svn protocol through any custom tunnel defined in ~/.subversion/config should work - self.assert_(self.recipe.is_svn_url( - 'svn+MY_Custom-tunnel://myserver/newforms-admin@7833')) - # Using a non existent protocol should not be a svn url? - self.failIf(self.recipe.is_svn_url( - 'unknown://myserver/newforms-admin@7833')) - - def test_command(self): - # The command method is a wrapper for subprocess which excutes - # a command and return's it's status code. We will demonstrate - # this with a simple test of running `dir`. - self.failIf(self.recipe.command('echo')) - # Executing a non existing command should return an error code - self.assert_(self.recipe.command('spamspamspameggs')) - - @mock.patch('subprocess', 'Popen') - def test_command_verbose_mode(self, popen): - # When buildout is put into verbose mode the command methode - # should stop capturing the ouput of it's commands. - popen.return_value = mock.Mock() - self.recipe.buildout['buildout']['verbosity'] = 'verbose' - self.recipe.command('silly-command') - self.assertEqual( - popen.call_args, - (('silly-command',), {'shell': True, 'stdout': None})) - - def test_create_file(self): - # The create file helper should create a file at a certain - # location unless it already exists. We will need a - # non-existing file first. - f, name = tempfile.mkstemp() - # To show the function in action we need to delete the file - # before testing. - os.remove(name) - # The method accepts a template argument which it will use - # with the options argument for string substitution. - self.recipe.create_file(name, 'Spam %s', 'eggs') - # Let's check the contents of the file - self.assertEqual(open(name).read(), 'Spam eggs') - # If we try to write it again it will just ignore our request - self.recipe.create_file(name, 'Spam spam spam %s', 'eggs') - # The content of the file should therefore be the same - self.assertEqual(open(name).read(), 'Spam eggs') - # Now remove our temp file - os.remove(name) - - def test_generate_secret(self): - # To create a basic skeleton the recipe also generates a - # random secret for the settings file. Since it should very - # unlikely that it will generate the same key a few times in a - # row we will test it with letting it generate a few keys. - self.assert_(len(set( - [self.recipe.generate_secret() for i in xrange(10)])) > 1) - - def test_version_to_svn(self): - # Version specification that lead to a svn repository can be - # specified in different ways. Just specifying `trunk` should - # be enough to get the full url to the Django trunk. - self.assertEqual(self.recipe.version_to_svn('trunk'), - 'http://code.djangoproject.com/svn/django/trunk/') - # Any other specification should lead to the url it is given - self.assertEqual(self.recipe.version_to_svn('svn://somehost/trunk'), - 'svn://somehost/trunk') - - def test_version_to_download_suffic(self): - # To create standard names for the download directory a method - # is provided which converts a version to a dir suffix. A - # simple pointer to trunk should return svn. - self.assertEqual(self.recipe.version_to_download_suffix('trunk'), - 'svn') - # Any other url should return the last path component. This - # works out nicely for branches or version pinned url's. - self.assertEqual(self.recipe.version_to_download_suffix( - 'http://monty/branches/python'), 'python') - - def test_make_protocol_scripts(self): - # To ease deployment a WSGI script can be generated. The - # script adds any paths from the `extra_paths` option to the - # Python path. - self.recipe.options['wsgi'] = 'true' - self.recipe.options['fcgi'] = 'true' - self.recipe.make_scripts([], []) - # This should have created a script in the bin dir - wsgi_script = os.path.join(self.bin_dir, 'django.wsgi') - self.assert_(os.path.exists(wsgi_script)) - # The contents should list our paths - contents = open(wsgi_script).read() - # It should also have a reference to our settings module - self.assert_('project.development' in contents) - # and a line which set's up the WSGI app - self.assert_("application = " - "djangorecipe.wsgi.main('project.development', logfile='')" - in contents) - self.assert_("class logger(object)" not in contents) - - # Another deployment options is FCGI. The recipe supports an option to - # automatically create the required script. - fcgi_script = os.path.join(self.bin_dir, 'django.fcgi') - self.assert_(os.path.exists(fcgi_script)) - # The contents should list our paths - contents = open(fcgi_script).read() - # It should also have a reference to our settings module - self.assert_('project.development' in contents) - # and a line which set's up the WSGI app - self.assert_("djangorecipe.fcgi.main('project.development', logfile='')" - in contents) - self.assert_("class logger(object)" not in contents) - - self.recipe.options['logfile'] = '/foo' - self.recipe.make_scripts([], []) - wsgi_script = os.path.join(self.bin_dir, 'django.wsgi') - contents = open(wsgi_script).read() - self.assert_("logfile='/foo'" in contents) - - self.recipe.options['logfile'] = '/foo' - self.recipe.make_scripts([], []) - fcgi_script = os.path.join(self.bin_dir, 'django.fcgi') - contents = open(fcgi_script).read() - self.assert_("logfile='/foo'" in contents) - - @mock.patch('zc.buildout.easy_install', 'scripts') - def test_make_protocol_scripts_return_value(self, scripts): - # The return value of make scripts lists the generated scripts. - self.recipe.options['wsgi'] = 'true' - self.recipe.options['fcgi'] = 'true' - scripts.return_value = ['some-path'] - self.assertEqual(self.recipe.make_scripts([], []), - ['some-path', 'some-path']) - - - - def test_create_project(self): - # If a project does not exist already the recipe will create - # one. - project_dir = os.path.join(self.buildout_dir, 'project') - self.recipe.create_project(project_dir) - # This should have create a project directory - self.assert_(os.path.exists(project_dir)) - # With this directory we should have __init__.py to make it a - # package - self.assert_( - os.path.exists(os.path.join(project_dir, '__init__.py'))) - # There should also be a urls.py - self.assert_( - os.path.exists(os.path.join(project_dir, 'urls.py'))) - # To make it easier to start using this project both a media - # and a templates folder are created - self.assert_( - os.path.exists(os.path.join(project_dir, 'media'))) - self.assert_( - os.path.exists(os.path.join(project_dir, 'templates'))) - # The project is ready to go since the recipe has generated a - # base settings, development and production file - for f in ('settings.py', 'development.py', 'production.py'): - self.assert_( - os.path.exists(os.path.join(project_dir, f))) - - def test_create_test_runner(self): - # An executable script can be generated which will make it - # possible to execute the Django test runner. This options - # only works if we specify one or apps to test. - testrunner = os.path.join(self.bin_dir, 'test') - - # This first argument sets extra_paths, we will use this to - # make sure the script can find this recipe - recipe_dir = os.path.abspath( - os.path.join(os.path.dirname(__file__), '..')) - - # First we will show it does nothing by default - self.recipe.create_test_runner([recipe_dir], []) - self.failIf(os.path.exists(testrunner)) - - # When we specify an app to test it should create the the - # testrunner - self.recipe.options['test'] = 'knight' - self.recipe.create_test_runner([recipe_dir], []) - self.assert_(os.path.exists(testrunner)) - - def test_create_manage_script(self): - # This buildout recipe creates a alternative for the standard - # manage.py script. It has all the same functionality as the - # original one but it sits in the bin dir instead of within - # the project. - manage = os.path.join(self.bin_dir, 'django') - self.recipe.create_manage_script([], []) - self.assert_(os.path.exists(manage)) - - def test_create_manage_script_projectegg(self): - # When a projectegg is specified, then the egg specified - # should get used as the project file. - manage = os.path.join(self.bin_dir, 'django') - self.recipe.options['projectegg'] = 'spameggs' - self.recipe.create_manage_script([], []) - self.assert_(os.path.exists(manage)) - # Check that we have 'spameggs' as the project - self.assert_("djangorecipe.manage.main('spameggs.development')" - in open(manage).read()) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'create_manage_script') - @mock.patch(Recipe, 'create_test_runner') - @mock.patch('zc.recipe.egg', 'Develop') - def test_fulfills_django_dependency(self, rmtree, path_exists, - urlretrieve, copytree, working_set, scripts, install_release, - manage, testrunner, develop): - # Test for https://bugs.launchpad.net/djangorecipe/+bug/397864 - # djangorecipe should always fulfil the 'Django' requirement. - self.recipe.options['version'] = '1.0' - path_exists.return_value = True - working_set.return_value = (None, []) - manage.return_value = [] - scripts.return_value = [] - testrunner.return_value = [] - develop_install = mock.Mock() - develop.return_value = develop_install - self.recipe.install() - - # We should see that Django was added as a develop egg. - options = develop.call_args[0][2] - self.assertEqual(options['location'], os.path.join(self.parts_dir, 'django')) - - # Check that the install() method for the develop egg was called with no args - first_method_name, args, kwargs = develop_install.method_calls[0] - self.assertEqual('install', first_method_name) - self.assertEqual(0, len(args)) - self.assertEqual(0, len(kwargs)) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'create_manage_script') - @mock.patch(Recipe, 'create_test_runner') - @mock.patch('zc.recipe.egg', 'Develop') - def test_extra_paths(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, manage, testrunner, - develop): - # The recipe allows extra-paths to be specified. It uses these to - # extend the Python path within it's generated scripts. - self.recipe.options['version'] = '1.0' - self.recipe.options['extra-paths'] = 'somepackage\nanotherpackage' - path_exists.return_value = True - working_set.return_value = (None, []) - manage.return_value = [] - scripts.return_value = [] - testrunner.return_value = [] - develop.return_value = mock.Mock() - self.recipe.install() - self.assertEqual(manage.call_args[0][0][-2:], - ['somepackage', 'anotherpackage']) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'create_manage_script') - @mock.patch(Recipe, 'create_test_runner') - @mock.patch('site', 'addsitedir') - @mock.patch('zc.recipe.egg', 'Develop') - def test_pth_files(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, manage, testrunner, addsitedir, - develop): - # When a pth-files option is set the recipe will use that to add more - # paths to extra-paths. - self.recipe.options['version'] = '1.0' - path_exists.return_value = True - working_set.return_value = (None, []) - scripts.return_value = [] - manage.return_value = [] - testrunner.return_value = [] - develop.return_value = mock.Mock() - - # The mock values needed to demonstrate the pth-files option. - addsitedir.return_value = ['extra', 'dirs'] - self.recipe.options['pth-files'] = 'somedir' - - self.recipe.install() - self.assertEqual(addsitedir.call_args, (('somedir', set([])), {})) - # The extra-paths option has been extended. - self.assertEqual(self.recipe.options['extra-paths'], '\nextra\ndirs') - - def test_create_wsgi_script_projectegg(self): - # When a projectegg is specified, then the egg specified - # should get used as the project in the wsgi script. - wsgi = os.path.join(self.bin_dir, 'django.wsgi') - recipe_dir = os.path.abspath( - os.path.join(os.path.dirname(__file__), '..')) - self.recipe.options['projectegg'] = 'spameggs' - self.recipe.options['wsgi'] = 'true' - self.recipe.make_scripts([recipe_dir], []) - self.assert_(os.path.exists(wsgi)) - # Check that we have 'spameggs' as the project - self.assert_('spameggs.development' in open(wsgi).read()) - - def test_settings_option(self): - # The settings option can be used to specify the settings file - # for Django to use. By default it uses `development`. - self.assertEqual(self.recipe.options['settings'], 'development') - # When we change it an generate a manage script it will use - # this var. - self.recipe.options['settings'] = 'spameggs' - self.recipe.create_manage_script([], []) - manage = os.path.join(self.bin_dir, 'django') - self.assert_("djangorecipe.manage.main('project.spameggs')" - in open(manage).read()) - - @mock.patch('urllib2', 'urlopen') - def test_get_release(self, mock): - # The get_release method fecthes a release tarball and - # extracts it. We have setup a mock so that it won't actually - # download the release. Let's call the code. - class FakeFile(object): - def read(self): - return 'Django tarball' - def close(self): - self.closed = True - - tmp = tempfile.mkdtemp() - filename = os.path.join(tmp, 'django-0.96.2.tar.gz') - mock.return_value = FakeFile() - try: - self.assertEqual( - self.recipe.get_release('0.96.2', tmp), - filename) - # It tried to download the release through our mock - mock.assert_called_with( - 'http://www.djangoproject.com/download/0.96.2/tarball/') - # The file should have been filled with the contents from the - # handle it got. - self.assertEqual(open(filename).read(), 'Django tarball') - finally: - shutil.rmtree(tmp) - - @mock.patch('setuptools.archive_util', 'unpack_archive') - @mock.patch('shutil', 'move') - @mock.patch('shutil', 'rmtree') - @mock.patch('os', 'listdir') - def test_install_release(self, unpack, move, rmtree, listdir): - # To install a release the recipe uses a specific method. We - # have have mocked all the calls which interact with the - # filesystem. - listdir.return_value = ('Django-0.96-2',) - self.recipe.install_release('0.96.2', 'downloads', - 'downloads/django-0.96.2.tar.gz', - 'parts/django') - # Let's see what the mock's have been called with - self.assertEqual(listdir.call_args, - (('downloads/django-archive',), {})) - self.assertEqual(unpack.call_args, - (('downloads/django-0.96.2.tar.gz', - 'downloads/django-archive'), {})) - self.assertEqual(move.call_args, - (('downloads/django-archive/Django-0.96-2', - 'parts/django'), {})) - self.assertEqual(rmtree.call_args, - (('downloads/django-archive',), {})) - - @mock.patch('shutil', 'copytree') - @mock.patch(Recipe, 'command') - def test_install_svn_version(self, copytree, command): - # Installation from svn is handled by a method. We have mocked - # the command method to avoid actual checkouts of Django. - self.recipe.install_svn_version('trunk', 'downloads', - 'parts/django', False) - # This should have tried to do a checkout of the Django trunk - self.assertEqual(command.call_args, - (('svn co http://code.djangoproject.com/svn/django/trunk/ downloads/django-svn -q',), {})) - # A copy command to the parts directory should also have been - # issued - self.assertEqual(copytree.call_args, - (('downloads/django-svn', 'parts/django'), {})) - - @mock.patch('shutil', 'copytree') - @mock.patch('os.path', 'exists') - @mock.patch(Recipe, 'command') - def test_install_and_update_svn_version(self, copytree, exists, command): - # When an checkout has been done of a svn based installation - # is already done the recipe should just update it. - exists.return_value = True - - self.recipe.install_svn_version('trunk', 'downloads', - 'parts/django', False) - self.assertEqual(exists.call_args, (('downloads/django-svn',), {})) - self.assertEqual(command.call_args, - (('svn up -q',), {'cwd': 'downloads/django-svn'})) - - @mock.patch(Recipe, 'command') - def test_install_broken_svn(self, command): - # When the checkout from svn fails during a svn build the - # installation method raises an error. We will simulate this - # failure by telling our mock what to do. - command.return_value = 1 - # The line above should indicate a failure (non-zero exit - # code) - self.assertRaises(UserError, self.recipe.install_svn_version, - 'trunk', 'downloads', 'parts/django', False) - - @mock.patch('shutil', 'copytree') - @mock.patch(Recipe, 'command') - def test_svn_install_from_cache(self, copytree, command): - # If the buildout is told to install from cache it will not do - # a checkout but instead an existing checkout - self.recipe.buildout['buildout']['install-from-cache'] = 'true' - # Now we can run the installation method - self.recipe.install_svn_version('trunk', 'downloads', - 'parts/django', True) - # This should not have called the recipe's command method - self.failIf(command.called) - # A copy from the cache to the destination should have been - # made - self.assertEqual(copytree.call_args, - (('downloads/django-svn', 'parts/django'), {})) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'command') - def test_update_svn(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, command): - path_exists.return_value = True - working_set.return_value = (None, []) - # When the recipe is asked to do an update and the version is - # a svn version it just does an update on the parts folder. - self.recipe.update() - self.assertEqual('svn up -q', command.call_args[0][0]) - # It changes the working directory so that the simple svn up - # command will work. - self.assertEqual(command.call_args[1].keys(), ['cwd']) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch('subprocess', 'call') - def test_update_with_cache(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, call_process): - path_exists.return_value = True - working_set.return_value = (None, []) - # When the recipe is asked to do an update whilst in install - # from cache mode it just ignores it - self.recipe.install_from_cache = True - self.recipe.update() - self.failIf(call_process.called) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch('subprocess', 'call') - def test_update_with_newest_false(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, call_process): - path_exists.return_value = True - working_set.return_value = (None, []) - # When the recipe is asked to do an update whilst in install - # from cache mode it just ignores it - self.recipe.buildout['buildout']['newest'] = 'false' - self.recipe.update() - self.assertFalse(call_process.called) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch('zc.recipe.egg', 'Develop') - def test_clear_existing_django(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, develop): - # When the recipe is executed and Django is already installed - # within parts it should remove it. We will mock the exists - # check to make it let the recipe think it has an existing - # Django install. - self.recipe.options['version'] = '1.0' - path_exists.return_value = True - working_set.return_value = (None, []) - scripts.return_value = [] - develop.return_value = mock.Mock() - self.recipe.install() - # This should have called remove tree - self.assert_(rmtree.called) - # We will assert that the last two compontents of the path - # passed to rmtree are the ones we wanted to delete. - self.assertEqual(rmtree.call_args[0][0].split('/')[-2:], - ['parts', 'django']) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'command') - def test_update_pinned_svn_url(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, command): - path_exists.return_value = True - working_set.return_value = (None, []) - # Make sure that updating a pinned version is updated - # accordingly. It must not switch to updating beyond it's - # requested revision. - # The recipe does this by checking for an @ sign in the url / - # version. - self.recipe.is_svn_url = lambda version: True - - self.recipe.options['version'] = 'http://testing/trunk@2531' - self.recipe.update() - self.assertEqual(command.call_args[0], ('svn up -r 2531 -q',)) - - @mock.patch('shutil', 'rmtree') - @mock.patch('os.path', 'exists') - @mock.patch('urllib', 'urlretrieve') - @mock.patch('shutil', 'copytree') - @mock.patch(ZCRecipeEggScripts, 'working_set') - @mock.patch('zc.buildout.easy_install', 'scripts') - @mock.patch(Recipe, 'install_release') - @mock.patch(Recipe, 'command') - def test_update_username_in_svn_url(self, rmtree, path_exists, urlretrieve, - copytree, working_set, scripts, - install_release, command): - path_exists.return_value = True - working_set.return_value = (None, []) - # Make sure that updating a version with a username - # in the URL works - self.recipe.is_svn_url = lambda version: True - - # First test with both a revision and a username in the url - self.recipe.options['version'] = 'http://user@testing/trunk@2531' - self.recipe.update() - self.assertEqual(command.call_args[0], ('svn up -r 2531 -q',)) - - # Now test with only the username - self.recipe.options['version'] = 'http://user@testing/trunk' - self.recipe.update() - self.assertEqual(command.call_args[0], ('svn up -q',)) - - def test_python_option(self): - # The python option makes it possible to specify a specific Python - # executable which is to be used for the generated scripts. - recipe = Recipe({'buildout': {'eggs-directory': self.eggs_dir, - 'develop-eggs-directory': self.develop_eggs_dir, - 'python': 'python-version', - 'bin-directory': self.bin_dir, - 'parts-directory': self.parts_dir, - 'directory': self.buildout_dir, - }, - 'python-version': {'executable': '/python4k'}}, - 'django', - {'recipe': 'djangorecipe', 'version': 'trunk', - 'wsgi': 'true'}) - recipe.make_scripts([], []) - # This should have created a script in the bin dir - wsgi_script = os.path.join(self.bin_dir, 'django.wsgi') - self.assertEqual(open(wsgi_script).readlines()[0], '#!/python4k\n') - # Changeing the option for only the part will change the used Python - # version. - recipe = Recipe({'buildout': {'eggs-directory': self.eggs_dir, - 'develop-eggs-directory': self.develop_eggs_dir, - 'python': 'python-version', - 'bin-directory': self.bin_dir, - 'parts-directory': self.parts_dir, - 'directory': self.buildout_dir, - }, - 'python-version': {'executable': '/python4k'}, - 'py5k': {'executable': '/python5k'}}, - 'django', - {'recipe': 'djangorecipe', 'version': 'trunk', - 'python': 'py5k', 'wsgi': 'true'}) - recipe.make_scripts([], []) - self.assertEqual(open(wsgi_script).readlines()[0], '#!/python5k\n') - -class ScriptTestCase(unittest.TestCase): - - def setUp(self): - # We will also need to fake the settings file's module - self.settings = mock.sentinel.Settings - sys.modules['cheeseshop'] = mock.sentinel.CheeseShop - sys.modules['cheeseshop.development'] = self.settings - sys.modules['cheeseshop'].development = self.settings - - def tearDown(self): - # We will clear out sys.modules again to clean up - for m in ['cheeseshop', 'cheeseshop.development']: - del sys.modules[m] - - -class TestTestScript(ScriptTestCase): - - @mock.patch('django.core.management', 'execute_manager') - def test_script(self, execute_manager): - # The test script should execute the standard Django test - # command with any apps given as its arguments. - test.main('cheeseshop.development', 'spamm', 'eggs') - # We only care about the arguments given to execute_manager - self.assertEqual(execute_manager.call_args[1], - {'argv': ['test', 'test', 'spamm', 'eggs']}) - - @mock.patch('django.core.management', 'execute_manager') - def test_deeply_nested_settings(self, execute_manager): - # Settings files can be more than two levels deep. We need to - # make sure the test script can properly import those. To - # demonstrate this we need to add another level to our - # sys.modules entries. - settings = mock.sentinel.SettingsModule - nce = mock.sentinel.NCE - nce.development = settings - sys.modules['cheeseshop'].nce = nce - sys.modules['cheeseshop.nce'] = nce - sys.modules['cheeseshop.nce.development'] = settings - - test.main('cheeseshop.nce.development', 'tilsit', 'stilton') - self.assertEqual(execute_manager.call_args[0], (settings,)) - - @mock.patch('sys', 'exit') - def test_settings_error(self, sys_exit): - # When the settings file cannot be imported the test runner - # wil exit with a message and a specific exit code. - test.main('cheeseshop.tilsit', 'stilton') - self.assertEqual(sys_exit.call_args, ((1,), {})) - -class TestManageScript(ScriptTestCase): - - @mock.patch('django.core.management', 'execute_manager') - def test_script(self, execute_manager): - # The manage script is a replacement for the default manage.py - # script. It has all the same bells and whistles since all it - # does is call the normal Django stuff. - manage.main('cheeseshop.development') - self.assertEqual(execute_manager.call_args, - ((self.settings,), {})) - - @mock.patch('sys', 'exit') - def test_settings_error(self, sys_exit): - # When the settings file cannot be imported the management - # script it wil exit with a message and a specific exit code. - manage.main('cheeseshop.tilsit') - self.assertEqual(sys_exit.call_args, ((1,), {})) - -def setUp(test): - zc.buildout.testing.buildoutSetUp(test) - - # Make a semi permanent download cache to speed up the test - tmp = tempfile.gettempdir() - cache_dir = os.path.join(tmp, 'djangorecipe-test-cache') - if not os.path.exists(cache_dir): - os.mkdir(cache_dir) - - # Create the default.cfg which sets the download cache - home = test.globs['tmpdir']('home') - test.globs['mkdir'](home, '.buildout') - test.globs['write'](home, '.buildout', 'default.cfg', - """ -[buildout] -download-cache = %(cache_dir)s - """ % dict(cache_dir=cache_dir)) - os.environ['HOME'] = home - - zc.buildout.testing.install('zc.recipe.egg', test) - zc.buildout.testing.install_develop('djangorecipe', test) - - -def test_suite(): - return unittest.TestSuite(( - unittest.makeSuite(TestRecipe), - unittest.makeSuite(TestTestScript), - unittest.makeSuite(TestManageScript), - )) diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.pyo deleted file mode 100644 index 880b222..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/tests.pyo and /dev/null differ diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.py b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.py deleted file mode 100644 index 9e9d054..0000000 --- a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.py +++ /dev/null @@ -1,45 +0,0 @@ -import sys - -from django.core import management - -def main(settings_file, logfile=None): - try: - mod = __import__(settings_file) - components = settings_file.split('.') - for comp in components[1:]: - mod = getattr(mod, comp) - - except ImportError, e: - sys.stderr.write("Error loading the settings module '%s': %s" - % (settings_file, e)) - sys.exit(1) - - # Setup settings - management.setup_environ(mod) - - if logfile: - import datetime - class logger(object): - def __init__(self, logfile): - self.logfile = logfile - - def write(self, data): - self.log(data) - - def writeline(self, data): - self.log(data) - - def log(self, msg): - line = '%s - %s\n' % ( - datetime.datetime.now().strftime('%Y%m%d %H:%M:%S'), msg) - fp = open(self.logfile, 'a') - try: - fp.write(line) - finally: - fp.close() - sys.stdout = sys.stderr = logger(logfile) - - from django.core.handlers.wsgi import WSGIHandler - - # Run WSGI handler for the application - return WSGIHandler() diff --git a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.pyo b/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.pyo deleted file mode 100644 index 79288fe..0000000 Binary files a/eggs/djangorecipe-0.20-py2.6.egg/djangorecipe/wsgi.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/PKG-INFO b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/PKG-INFO deleted file mode 100644 index c6d2fca..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/PKG-INFO +++ /dev/null @@ -1,259 +0,0 @@ -Metadata-Version: 1.0 -Name: infrae.subversion -Version: 1.4.5 -Summary: Buildout recipe for checking out from subversion -Home-page: https://svn.infrae.com/buildout/infrae.subversion/trunk/ -Author: Eric Casteleijn, Guido Wesdorp, Daniel Nouri, Sylvain Viollon and Reinout van Rees -Author-email: info@infrae.com -License: ZPL 2.1 -Description: infrae.subversion - ================= - - This zc.buildout recipe will check out a *number* of URLs into its - parts directory. It won't remove its parts directory if there are any - changes in the checkout, so it's safe to work with that checkout for - development. - - This is an example buildout part that uses this recipe:: - - [development-products] - recipe = infrae.subversion - urls = - https://svn.plone.org/svn/collective/PDBDebugMode/trunk PDBDebugMode - - This will maintain a working copy of ``PDBDebugMode`` in the - ``parts/development-products/PDBDebugMode`` directory (*not* in the - parts directory itself). Thus, the recipe handles multiple URLs fine. - - You can select a different location with ``location``, for instance:: - - location = src - - Will extract ``PDBDebugMode`` in ``src/PDBDebugMode`` instead of - ``parts``. - - If you have ``pysvn`` installed on the computer, it will be used. This - implies better performances. - - Update - ------ - - By default, when buildout update the part, an ``svn up`` is done for - each link. However, when a revision number is specified like this:: - - https://svn.infrae.com/buildout/infrae.subversion/trunk@27829 - - The SVN link is skipped for update. If you want to prevent update for - all SVN link of the part even if they do not contain revision number, - you can add the following option:: - - ignore_updates = true - - Export - ------ - - With ``pysvn`` installed, you can specify:: - - export = true - - in your buildout part to get an SVN export instead of an SVN checkout. - - Verification - ------------ - - By default, your checkout are checked against local modification - before any uninstallation step. This can take time on large checkouts, - and you may don't want it in some case (like when used on buildbot for - instance). To prevent this step, you can use this option:: - - ignore_verification = true - - As well, when the recipe update it can emit some warnings because a - directory have been removed. You can suppress that warning with:: - - no_warnings = true - - The verification will still be done, and the directory will be checked - out again to replace the missing one. - - Eggs - ---- - - If you set the option ``as_eggs`` in your configuration file, - checkouted URLs will be registered as development eggs in your - buildout. This only work for non-recipe development eggs. - - .. warning:: If you add a new egg, this will trigger a new - uninstall-reinstall cycle. You may want to use that option to setup - eggs coming from SVN for production, but not for development. - - Exported Variables - ------------------ - - If you set:: - - export_info = true - - Two variables will be exported by this recipe: - - - ``revisions`` which gives for each URL the corresponding revision - number, - - - ``updated`` which gives a list of URLs which have been updated with - new code. - - Since values to these variables changes each time you run buildout - (revision number changes), this trigger an uninstall/reinstall of the - part. We recommand to activate it only if you need it. - - Is always exported a variable ``location`` to say where are done the - checkouts, and a variable ``eggs`` which contains a list of - checkouted eggs. - - Sample - ------ - - For an example buildout that uses this recipe, please see the `Silva - buildout `_. - - As well, the `doctest file - `_ - can provide more sample. - - Latest version - -------------- - - The latest version is available in a `Subversion repository - `_. - - - Changes - ------- - - 1.4.5 (2009-01-29) - ~~~~~~~~~~~~~~~~~~ - - - Fix an error when some path have been added to the checkout - path. [eric] - - - Still eggify and export information on update when running as - non-newest mode. [sylvain] - - 1.4.4 (2009-01-28) - ~~~~~~~~~~~~~~~~~~ - - - Add a ``no_warnings`` options which remove some warnings when - updating a part. [sylvain] - - 1.4.3 (2009-01-21) - ~~~~~~~~~~~~~~~~~~ - - - Add a login callback for people using PySVN. This let users - authenticate to an unauthorized svn. Thanks to Martin Stadler - (martin at siarp.de) for this fix. [sylvain] - - 1.4.2 (2009-01-05) - ~~~~~~~~~~~~~~~~~~ - - - Automatically ignore ``.pyc`` and ``.pyo`` files while checking for - modified/added/removed files. [sylvain] - - - Fix bug so ``.svn`` directory is really ignored when checking for - added paths in the checkout directory. [sylvain] - - 1.4.1 (2008-10-31) - ~~~~~~~~~~~~~~~~~~ - - Bug fix: - - - Correct typo in README.txt. [sylvain] - - - Ignore ``.svn`` directory when checking for added ones at - uninstall. [sylvain] - - 1.4 (2008-10-31) - ~~~~~~~~~~~~~~~~ - - New features: - - - Added ``location`` option that allows you to override the default - /parts/partname location. [reinout] - - - Added ``as_eggs`` option that installs the checkouts as development - eggs. [reinout] - - Bug fix: - - - Don't export revisions information if you're offline with Py. Py - tries to connect to the SVN repository to do a 'svn info'. [sylvain] - - 1.3.1 - ~~~~~ - - Bug fix: - - - don't try to collect export information if you have a svn - export. [sylvain] - - - path were exported instead of URLs in the Native - implementation. [sylvain] - - 1.3 - ~~~ - - - Remove the restriction to py 0.9.0, now that py 0.9.2 is out and fix - problems on svn status with strange userid. [sylvain] - - - Correct an error rendering. [sylvain] - - - Export information only for top level svn URLs in the native - implementation, this used to inject information from svn:externals - links included in URL list. [sylvain] - - - Add tests for export information feature. [tlotze] - - - Correct URL in setup.py [sylvain]. - - 1.2 - ~~~ - - - Refactor code, performances should be better at uninstall with Py - implementation [sylvain]. - - - Look for the environment variable ``INFRAE_SUBVERSION_IMPL`` to - select which implementation to use. Possible values are ``PYSVN`` - (default) and ``PY`` [sylvain]. - - - Uninstall only look at directory which have been created by the - recipe in the part. Other are just reported [sylvain]. - - - Export two new variables, if ``export_info`` is set to true: - - ``revisions`` - - Which is lines formatted:: - - link current_revision - - ``updated`` - - Which is lines containing updated links. - - - [sylvain]. - - 1.1 - ~~~ - - - Add the ``ignore_verification`` option [sylvain]. - - 1.0 - ~~~ - - - Base version of the recipe. - -Keywords: subversion buildout -Platform: UNKNOWN -Classifier: Framework :: Buildout -Classifier: License :: OSI Approved :: Zope Public License -Classifier: Topic :: Software Development :: Version Control diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/SOURCES.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/SOURCES.txt deleted file mode 100644 index 843420c..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/SOURCES.txt +++ /dev/null @@ -1,21 +0,0 @@ -README.txt -buildout.cfg -setup.cfg -setup.py -docs/HISTORY.txt -infrae/__init__.py -infrae.subversion.egg-info/PKG-INFO -infrae.subversion.egg-info/SOURCES.txt -infrae.subversion.egg-info/dependency_links.txt -infrae.subversion.egg-info/entry_points.txt -infrae.subversion.egg-info/namespace_packages.txt -infrae.subversion.egg-info/requires.txt -infrae.subversion.egg-info/top_level.txt -infrae/subversion/Common.py -infrae/subversion/Native.py -infrae/subversion/Py.py -infrae/subversion/__init__.py -infrae/subversion/tests/EXPORT.txt -infrae/subversion/tests/IMPL.txt -infrae/subversion/tests/__init__.py -infrae/subversion/tests/test_impl.py \ No newline at end of file diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/dependency_links.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/entry_points.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/entry_points.txt deleted file mode 100644 index 578b85e..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/entry_points.txt +++ /dev/null @@ -1,6 +0,0 @@ -[zc.buildout] -default = infrae.subversion:Recipe - -[zc.buildout.uninstall] -default = infrae.subversion:uninstall - diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/namespace_packages.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/namespace_packages.txt deleted file mode 100644 index b8d1036..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/namespace_packages.txt +++ /dev/null @@ -1 +0,0 @@ -infrae diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/not-zip-safe b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/requires.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/requires.txt deleted file mode 100644 index c083e73..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/requires.txt +++ /dev/null @@ -1,11 +0,0 @@ -zc.buildout -setuptools -py - -[test] -setuptools -zc.buildout -zc.recipe.egg -zope.testing -svnhelper -py \ No newline at end of file diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/top_level.txt b/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/top_level.txt deleted file mode 100644 index b8d1036..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/EGG-INFO/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -infrae diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.py deleted file mode 100644 index a839e5c..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id$ - -__import__('pkg_resources').declare_namespace(__name__) diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.pyo deleted file mode 100644 index 0596d1d..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/__init__.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py deleted file mode 100644 index 234ef6b..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id: Common.py 33243 2009-01-29 10:59:47Z sylvain $ - -from sets import Set # For python 2.3 compatibility -import os.path -import os -import re - - -import zc.buildout - - -def ignoredFile(file): - """Return true if the file should be ignored while checking for - added/changed/modified files. - """ - for suffix in ['.pyc', '.pyo', '.egg-info']: - if file.endswith(suffix): - return True - return False - - -def reportInvalidFiles(path, name, badfiles): - """Report invalid files. - """ - badfiles = [file for file in badfiles if not ignoredFile(file)] - if not badfiles: - return - raise ValueError("""\ -In '%s': -local modifications detected while uninstalling %r: Uninstall aborted! - -Please check for local modifications and make sure these are checked -in. - -If you sure that these modifications can be ignored, remove the -checkout manually: - - rm -rf %s - -Or if applicable, add the file to the 'svn:ignore' property of the -file's container directory. Alternatively, add an ignore glob pattern -to your subversion client's 'global-ignores' configuration variable. -""" % (path, name, """ - rm -rf """.join(badfiles))) - - -def checkExistPath(path, warning=True): - """Check that a path exist. - """ - status = os.path.exists(path) - if not status and warning: - print "-------- WARNING --------" - print "Directory %s have been removed." % os.path.abspath(path) - print "Changes might be lost." - print "-------- WARNING --------" - return status - - -def checkAddedPaths(location, urls): - """Check that no path have been added to that location. - """ - current_paths = Set([os.path.join(location, s) for s in - os.listdir(location)]) - recipe_paths = Set(urls.keys()) - added_paths = list(current_paths - recipe_paths) - for path in added_paths[:]: - if path.endswith('.svn'): - added_paths.remove(path) - if added_paths: - msg = "New path have been added to the location: %s." - raise ValueError(msg % ', '.join(added_paths)) - - -def prepareURLs(location, urls): - """Given a list of urls/path, and a location, prepare a list of - tuple with url, full path. - """ - - def prepareEntry(line): - link, path = line.split() - return os.path.join(location, path), link - - return dict([prepareEntry(l) for l in urls.splitlines() if l.strip()]) - - -def extractNames(urls): - """Return just the target names of the urls (used for egg names)""" - - def extractName(line): - link, name = line.split() - return name - - return [extractName(line) for line in urls.splitlines() if line.strip()] - - -class BaseRecipe(object): - """infrae.subversion recipe. Base class. - """ - - def __init__(self, buildout, name, options): - self.buildout = buildout - self.name = name - self.options = options - # location is overridable if desired. - location = options.get('location', None) - if location: - self.location = os.path.abspath(os.path.join( - buildout['buildout']['directory'], location)) - else: - self.location = os.path.join( - buildout['buildout']['parts-directory'], self.name) - options['location'] = self.location - self.revisions = {} # Store revision information for each link - self.updated = [] # Store updated links - self.urls = prepareURLs(self.location, options['urls']) - self.export = options.get('export') - self.offline = buildout['buildout'].get('offline', 'false') == 'true' - self.eggify = options.get('as_eggs', False) - self.eggs = self.eggify and extractNames(options['urls']) or [] - self.newest = ( - not self.offline and - buildout['buildout'].get('newest', 'true') == 'true' - ) - self.verbose = buildout['buildout'].get('verbosity', 0) - self.warning = not (options.get('no_warnings', 'false') == 'true') - - def _exportInformationToOptions(self): - """Export revision and changed information to options. - - Options can only contains strings. - """ - if self.options.get('export_info', False): - self.options['updated'] = str('\n'.join(self.updated)) - str_revisions = ['%s %s' % r for r in self.revisions.items() - if r[1]] - self.options['revisions'] = str('\n'.join(sorted(str_revisions))) - # Always export egg list - self.options['eggs'] = '\n'.join(sorted(self.eggs)) - - def _updateAllRevisionInformation(self): - """Update all revision information for defined urls. - """ - for path, link in self.urls.items(): - if os.path.exists(path): - self._updateRevisionInformation(link, path) - - def _updateRevisionInformation(self, link, revision): - """Update revision information on a path. - """ - old_revision = self.revisions.get(link, None) - self.revisions[link] = revision - if not (old_revision is None): - self.updated.append(link) - - def _updatePath(self, link, path): - """Update a single path. - """ - raise NotImplementedError - - def _updateAllPaths(self): - """Update the checkouts. - """ - ignore = self.options.get('ignore_updates', False) or self.export - - num_release = re.compile('.*@[0-9]+$') - for path, link in self.urls.items(): - if not checkExistPath(path, warning=self.warning): - if self.verbose: - print "Entry %s missing, checkout a new version ..." % link - self._installPath(link, path) - continue - - if ignore: - continue - - if num_release.match(link): - if self.verbose: - print "Given num release for %s, skipping." % link - continue - - if self.verbose: - print "Updating %s" % path - self._updatePath(link, path) - - def update(self): - """Update the recipe. - - Does not update SVN path if the buildout is in offline mode, - but still eggify and export information. - """ - if self.newest: - self._updateAllPaths() - - if self.eggify: - self._eggify() - self._exportInformationToOptions() - return self.location - - def _installPath(self, link, path): - """Checkout a single entry. - """ - raise NotImplementedError - - def _installPathVerbose(self, link, path): - """Checkout a single entry with verbose. - """ - if self.verbose: - print "%s %s to %s" % (self.export and 'Export' or 'Fetch', - link, path) - self._installPath(link, path) - - def _eggify(self): - """Install everything as development eggs if eggs=true""" - if self.eggify: - target = self.buildout['buildout']['develop-eggs-directory'] - for path in self.urls.keys(): - # If we update the recipe, and we don't have newest, - # and that some path have been deleted, all of them - # might not be there. - if checkExistPath(path, warning=self.warning): - zc.buildout.easy_install.develop(path, target) - - def install(self): - """Checkout the checkouts. - - Fails if buildout is running in offline mode. - """ - - for path, link in self.urls.items(): - self._installPathVerbose(link, path) - installed = [self.location] - - if self.eggify: - self._eggify() - # And also return the develop-eggs/*.egg-link files that are - # ours so that an uninstall automatically zaps them. - dev_dir = self.buildout['buildout']['develop-eggs-directory'] - egg_links = ['%s.egg-link' % egg for egg in self.eggs] - egg_links = [os.path.join(dev_dir, link) for link in egg_links] - installed += egg_links - self._exportInformationToOptions() - - return installed diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.pyo deleted file mode 100644 index df510e5..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.py deleted file mode 100644 index d43b4b7..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.py +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id: Native.py 33170 2009-01-21 15:46:45Z sylvain $ - -from pysvn import wc_status_kind, opt_revision_kind, wc_notify_action -import pysvn - -from Common import BaseRecipe, prepareURLs -from Common import checkAddedPaths, checkExistPath, reportInvalidFiles - -import os -import re -import getpass - - -def createSVNClient(recipe): - """Create a pysvn client, and setup some callback and options. - """ - - def callback_ssl(info): - print "-------- SECURITY WARNING --------" - print "There is no valid SSL certificat for %s." % info['realm'] - print "Check that the files are correct after being fetched." - print "-------- SECURITY WARNING --------" - return True, 0, False - - def callback_login(realm, username, may_save): - print 'Authentication realm: ' + realm - user = raw_input('Username: ') - password = getpass.getpass('Password for ' + "'" + user + "': ") - return True, user, password, True - - def callback_notify(info): - if info['action'] == wc_notify_action.update_completed: - path = info['path'] - url = recipe.urls.get(path, None) - if not (url is None): - recipe._updateRevisionInformation(url, path, info['revision']) - - client = pysvn.Client() - client.set_interactive(True) - client.callback_ssl_server_trust_prompt = callback_ssl - client.callback_get_login = callback_login - if not (recipe is None): - client.callback_notify = callback_notify - return client - - -class Recipe(BaseRecipe): - """infrae.subversion recipe. - """ - - def __init__(self, buildout, name, options): - super(Recipe, self).__init__(buildout, name, options) - if self.verbose: - print 'Using pysvn implementation.' - self.client = createSVNClient(self) - if not self.export: - self._updateAllRevisionInformation() - self._exportInformationToOptions() - - def _updateRevisionInformation(self, link, path, revision=None): - """Update revision information on a path. - """ - if revision is None: - if self.export: - return - info = self.client.info(path) - revision = info['revision'] - - assert (revision.kind == opt_revision_kind.number) - super(Recipe, self)._updateRevisionInformation(link, revision.number) - - def _updatePath(self, link, path): - """Update a single path. - """ - self.client.update(path) - - def _parseRevisionInUrl(self, url): - """Parse URL to extract revision number. This is not done by - pysvn, so we have to do it by ourself. - """ - num_release = re.compile('(.*)@([0-9]+)$') - match = num_release.match(url) - if match: - return (match.group(1), - pysvn.Revision(opt_revision_kind.number, - int(match.group(2)))) - return (url, pysvn.Revision(opt_revision_kind.head)) - - def _installPath(self, link, path): - """Checkout a single entry. - """ - link, wanted_revision = self._parseRevisionInUrl(link) - if self.export: - method = self.client.export - else: - method = self.client.checkout - method(link, path, revision=wanted_revision, recurse=True) - - -def uninstall(name, options): - r""" - This is an uninstallation hook for the 'infrae.subversion' recipe. - - Its only job is to raise an exception when there are changes in a - subversion tree that a user might not want to lose. This function - does *not* delete or otherwise touch any files. - - The location of the path is passed as options['location']. - """ - if bool(options.get('export', False)): - return # SVN Export, there is nothing to check. - - if bool(options.get('ignore_verification', False)): - return # Verification disabled. - - # XXX This makes the assumption that we're in the buildout - # directory and that our part is in 'parts'. We don't have - # options['buildout'] available so no - # 'buildout:parts-directory'. - location = options.get('location', os.path.join('.', 'parts', name)) - urls = prepareURLs(location, options['urls']) - client = createSVNClient(None) - - bad_svn_status = [wc_status_kind.modified, - wc_status_kind.missing, - wc_status_kind.unversioned, ] - - if not checkExistPath(location): - return - - checkAddedPaths(location, urls) - - for path in urls.keys(): - if not checkExistPath(path): - continue - - badfiles = filter(lambda e: e['text_status'] in bad_svn_status, - client.status(path)) - reportInvalidFiles(path, name, [file['path'] for file in badfiles]) diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.pyo deleted file mode 100644 index bf95d58..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Native.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.py deleted file mode 100644 index 05e297b..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.py +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id: Py.py 32775 2009-01-05 10:53:29Z sylvain $ - -import os -import py - -from Common import BaseRecipe, prepareURLs -from Common import checkAddedPaths, checkExistPath, reportInvalidFiles - - -class Recipe(BaseRecipe): - """infrae.subversion recipe. - """ - - def __init__(self, buildout, name, options): - super(Recipe, self).__init__(buildout, name, options) - if self.verbose: - print 'Using py implementation.' - if not self.offline: # Py is not able to do svn status - # without asking something on a - # server. - self._updateAllRevisionInformation() - self._exportInformationToOptions() - - def _updateRevisionInformation(self, link, path): - """Update revision information on a path. - """ - if isinstance(path, str): - path = py.path.svnwc(path) - - revision = path.status().rev - super(Recipe, self)._updateRevisionInformation(link, revision) - - def _updatePath(self, link, path): - """Update a single path. - """ - wc = py.path.svnwc(path) - wc.update() - self._updateRevisionInformation(link, wc) - - def _installPath(self, link, path): - """Checkout a single entry. - """ - if self.export: - raise NotImplementedError - wc = py.path.svnwc(path) - wc.checkout(link) - self._updateRevisionInformation(link, wc) - - -def uninstall(name, options): - r""" - This is an uninstallation hook for the 'infrae.subversion' recipe. - - Its only job is to raise an exception when there are changes in a - subversion tree that a user might not want to lose. This function - does *not* delete or otherwise touch any files. - - The location of the path is passed as options['location']. - """ - if bool(options.get('export', False)): - return # SVN Export, there is nothing to check. - - if bool(options.get('ignore_verification', False)): - return # Verification disabled. - - - # XXX This makes the assumption that we're in the buildout - # directory and that our part is in 'parts'. We don't have - # options['buildout'] available so no - # 'buildout:parts-directory'. - location = options.get('location', os.path.join('.', 'parts', name)) - urls = prepareURLs(location, options['urls']) - - if not checkExistPath(location): - return - - checkAddedPaths(location, urls) - - for path in urls.keys(): - if not checkExistPath(path): - continue - - wc = py.path.svnwc(path) - status = wc.status(rec=1) - badfiles = [] + status.modified + status.incomplete + status.unknown - reportInvalidFiles(path, name, [file.strpath for file in badfiles]) diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.pyo deleted file mode 100644 index c2ed51d..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Py.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.py deleted file mode 100644 index d13d541..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id$ - -import os - -impl = os.getenv('INFRAE_SUBVERSION_IMPL', 'PYSVN') - -if impl == 'PYSVN': - try: - # Try to use a native binding, use native SVN. - import Native - Recipe = Native.Recipe - uninstall = Native.uninstall - except: - # Or if the binding is not present, use slow py. - impl = 'PY' - -if impl == 'PY': - import Py - Recipe = Py.Recipe - uninstall = Py.uninstall - diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.pyo deleted file mode 100644 index 14c6b2d..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/__init__.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.pyo deleted file mode 100644 index f5a5ae4..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/__init__.pyo and /dev/null differ diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.py deleted file mode 100644 index 55e6988..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.py +++ /dev/null @@ -1,75 +0,0 @@ -## -*- coding: utf-8 -*- - -__author__ = "sylvain@infrae.com" -__format__ = "plaintext" -__version__ = "$Id: test_impl.py 31670 2008-10-31 10:21:14Z sylvain $" - -import doctest -import os -import os.path -import sys -import unittest -from doctest import DocFileSuite - -import py -import svnhelper.testing -import svnhelper.tests -import zc.buildout.testing -from svnhelper.core import helper - -import infrae.subversion - - -def setUp(test): - test_package = os.path.dirname(svnhelper.tests.__file__) - test_package = os.path.join(test_package, 'tests', 'my.testing') - tested_package = os.path.dirname(infrae.subversion.__file__) - - zc.buildout.testing.buildoutSetUp(test) - zc.buildout.testing.install('py', test) - zc.buildout.testing.install_develop('infrae.subversion', test) - svnhelper.testing.setUpRepository(test) - test.globs['init_test_package'](test_package) - helper.import_to(test_package, - test.globs['repository']) - helper.import_to(tested_package, - test.globs['repository'] + '/infrae.subversion/trunk/infrae.subversion') - -def tearDown(test): - svnhelper.testing.tearDownRepository(test) - zc.buildout.testing.buildoutTearDown(test) - -flags = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE | - doctest.REPORT_ONLY_FIRST_FAILURE | doctest.REPORT_NDIFF) - -def have_pysvn(): - impl = os.getenv('INFRAE_SUBVERSION_IMPL', 'PYSVN') - if impl == 'PYSVN': - try: - import pysvn - return True - except: - pass - return False - -def test_file(name): - return os.path.join(os.path.dirname(__file__), name) - -def test_suite(): - tests = [DocFileSuite(test_file('IMPL.txt'), - optionflags=flags, - globs=globals(), - setUp=setUp, - tearDown=tearDown, - module_relative=False)] - if have_pysvn(): - tests += [DocFileSuite(test_file('EXPORT.txt'), - optionflags=flags, - globs=globals(), - setUp=setUp, - tearDown=tearDown, - module_relative=False)] - return unittest.TestSuite(tests) - -if __name__ == '__main__': - unittest.main(defaultTest='test_suite') diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.pyo b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.pyo deleted file mode 100644 index f30eecb..0000000 Binary files a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/tests/test_impl.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/PKG-INFO b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/PKG-INFO deleted file mode 100644 index 18a5c7f..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/PKG-INFO +++ /dev/null @@ -1,10 +0,0 @@ -Metadata-Version: 1.0 -Name: mercurial -Version: 1.7.3 -Summary: Scalable distributed SCM -Home-page: http://mercurial.selenic.com/ -Author: Matt Mackall -Author-email: mpm@selenic.com -License: GNU GPLv2+ -Description: UNKNOWN -Platform: UNKNOWN diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/SOURCES.txt b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/SOURCES.txt deleted file mode 100644 index b16bcb8..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/SOURCES.txt +++ /dev/null @@ -1,146 +0,0 @@ -README -hg -setup.py -hgext/__init__.py -hgext/acl.py -hgext/bookmarks.py -hgext/bugzilla.py -hgext/children.py -hgext/churn.py -hgext/color.py -hgext/eol.py -hgext/extdiff.py -hgext/fetch.py -hgext/gpg.py -hgext/graphlog.py -hgext/hgcia.py -hgext/hgk.py -hgext/interhg.py -hgext/keyword.py -hgext/mq.py -hgext/notify.py -hgext/pager.py -hgext/parentrevspec.py -hgext/patchbomb.py -hgext/progress.py -hgext/purge.py -hgext/rebase.py -hgext/record.py -hgext/relink.py -hgext/schemes.py -hgext/share.py -hgext/transplant.py -hgext/win32mbcs.py -hgext/win32text.py -hgext/convert/__init__.py -hgext/convert/bzr.py -hgext/convert/common.py -hgext/convert/convcmd.py -hgext/convert/cvs.py -hgext/convert/cvsps.py -hgext/convert/darcs.py -hgext/convert/filemap.py -hgext/convert/git.py -hgext/convert/gnuarch.py -hgext/convert/hg.py -hgext/convert/monotone.py -hgext/convert/p4.py -hgext/convert/subversion.py -hgext/convert/transport.py -hgext/highlight/__init__.py -hgext/highlight/highlight.py -hgext/zeroconf/Zeroconf.py -hgext/zeroconf/__init__.py -mercurial/__init__.py -mercurial/__version__.py -mercurial/ancestor.py -mercurial/archival.py -mercurial/base85.c -mercurial/bdiff.c -mercurial/bundlerepo.py -mercurial/byterange.py -mercurial/changegroup.py -mercurial/changelog.py -mercurial/cmdutil.py -mercurial/commands.py -mercurial/config.py -mercurial/context.py -mercurial/copies.py -mercurial/dagparser.py -mercurial/demandimport.py -mercurial/diffhelpers.c -mercurial/dirstate.py -mercurial/discovery.py -mercurial/dispatch.py -mercurial/encoding.py -mercurial/error.py -mercurial/extensions.py -mercurial/fancyopts.py -mercurial/filelog.py -mercurial/filemerge.py -mercurial/graphmod.py -mercurial/hbisect.py -mercurial/help.py -mercurial/hg.py -mercurial/hook.py -mercurial/httprepo.py -mercurial/i18n.py -mercurial/ignore.py -mercurial/keepalive.py -mercurial/localrepo.py -mercurial/lock.py -mercurial/lsprof.py -mercurial/lsprofcalltree.py -mercurial/mail.py -mercurial/manifest.py -mercurial/match.py -mercurial/mdiff.py -mercurial/merge.py -mercurial/minirst.py -mercurial/mpatch.c -mercurial/node.py -mercurial/osutil.c -mercurial/parser.py -mercurial/parsers.c -mercurial/patch.py -mercurial/posix.py -mercurial/pushkey.py -mercurial/py3kcompat.py -mercurial/repair.py -mercurial/repo.py -mercurial/revlog.py -mercurial/revset.py -mercurial/similar.py -mercurial/simplemerge.py -mercurial/sshrepo.py -mercurial/sshserver.py -mercurial/statichttprepo.py -mercurial/store.py -mercurial/strutil.py -mercurial/subrepo.py -mercurial/tags.py -mercurial/templatefilters.py -mercurial/templatekw.py -mercurial/templater.py -mercurial/transaction.py -mercurial/ui.py -mercurial/url.py -mercurial/util.py -mercurial/verify.py -mercurial/win32.py -mercurial/windows.py -mercurial/wireproto.py -mercurial.egg-info/PKG-INFO -mercurial.egg-info/SOURCES.txt -mercurial.egg-info/dependency_links.txt -mercurial.egg-info/top_level.txt -mercurial/hgweb/__init__.py -mercurial/hgweb/common.py -mercurial/hgweb/hgweb_mod.py -mercurial/hgweb/hgwebdir_mod.py -mercurial/hgweb/protocol.py -mercurial/hgweb/request.py -mercurial/hgweb/server.py -mercurial/hgweb/webcommands.py -mercurial/hgweb/webutil.py -mercurial/hgweb/wsgicgi.py \ No newline at end of file diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/dependency_links.txt b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/native_libs.txt b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/native_libs.txt deleted file mode 100644 index 0621792..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/native_libs.txt +++ /dev/null @@ -1,6 +0,0 @@ -mercurial/bdiff.so -mercurial/parsers.so -mercurial/mpatch.so -mercurial/base85.so -mercurial/diffhelpers.so -mercurial/osutil.so diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/not-zip-safe b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/scripts/hg b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/scripts/hg deleted file mode 100644 index c49e107..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/scripts/hg +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/python -# -# mercurial - scalable distributed SCM -# -# Copyright 2005-2007 Matt Mackall -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import os -import sys - -libdir = '../../' - -if libdir != '@' 'LIBDIR' '@': - if not os.path.isabs(libdir): - libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), - libdir) - libdir = os.path.abspath(libdir) - sys.path.insert(0, libdir) - -# enable importing on demand to reduce startup time -try: - from mercurial import demandimport; demandimport.enable() -except ImportError: - import sys - sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % - ' '.join(sys.path)) - sys.stderr.write("(check your install and PYTHONPATH)\n") - sys.exit(-1) - -import mercurial.util -import mercurial.dispatch - -for fp in (sys.stdin, sys.stdout, sys.stderr): - mercurial.util.set_binary(fp) - -mercurial.dispatch.run() diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/top_level.txt b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/top_level.txt deleted file mode 100644 index 99bc082..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/EGG-INFO/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -mercurial -hgext diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.py deleted file mode 100644 index fdffa2a..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# placeholder diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.pyo deleted file mode 100644 index 96afc1a..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/__init__.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.py deleted file mode 100644 index a50fa72..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.py +++ /dev/null @@ -1,250 +0,0 @@ -# acl.py - changeset access control for mercurial -# -# Copyright 2006 Vadim Gelfer -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''hooks for controlling repository access - -This hook makes it possible to allow or deny write access to given -branches and paths of a repository when receiving incoming changesets -via pretxnchangegroup and pretxncommit. - -The authorization is matched based on the local user name on the -system where the hook runs, and not the committer of the original -changeset (since the latter is merely informative). - -The acl hook is best used along with a restricted shell like hgsh, -preventing authenticating users from doing anything other than pushing -or pulling. The hook is not safe to use if users have interactive -shell access, as they can then disable the hook. Nor is it safe if -remote users share an account, because then there is no way to -distinguish them. - -The order in which access checks are performed is: - -1) Deny list for branches (section ``acl.deny.branches``) -2) Allow list for branches (section ``acl.allow.branches``) -3) Deny list for paths (section ``acl.deny``) -4) Allow list for paths (section ``acl.allow``) - -The allow and deny sections take key-value pairs. - -Branch-based Access Control -........................... - -Use the ``acl.deny.branches`` and ``acl.allow.branches`` sections to -have branch-based access control. Keys in these sections can be -either: - -- a branch name, or -- an asterisk, to match any branch; - -The corresponding values can be either: - -- a comma-separated list containing users and groups, or -- an asterisk, to match anyone; - -Path-based Access Control -......................... - -Use the ``acl.deny`` and ``acl.allow`` sections to have path-based -access control. Keys in these sections accept a subtree pattern (with -a glob syntax by default). The corresponding values follow the same -syntax as the other sections above. - -Groups -...... - -Group names must be prefixed with an ``@`` symbol. Specifying a group -name has the same effect as specifying all the users in that group. - -You can define group members in the ``acl.groups`` section. -If a group name is not defined there, and Mercurial is running under -a Unix-like system, the list of users will be taken from the OS. -Otherwise, an exception will be raised. - -Example Configuration -..................... - -:: - - [hooks] - - # Use this if you want to check access restrictions at commit time - pretxncommit.acl = python:hgext.acl.hook - - # Use this if you want to check access restrictions for pull, push, - # bundle and serve. - pretxnchangegroup.acl = python:hgext.acl.hook - - [acl] - # Allow or deny access for incoming changes only if their source is - # listed here, let them pass otherwise. Source is "serve" for all - # remote access (http or ssh), "push", "pull" or "bundle" when the - # related commands are run locally. - # Default: serve - sources = serve - - [acl.deny.branches] - - # Everyone is denied to the frozen branch: - frozen-branch = * - - # A bad user is denied on all branches: - * = bad-user - - [acl.allow.branches] - - # A few users are allowed on branch-a: - branch-a = user-1, user-2, user-3 - - # Only one user is allowed on branch-b: - branch-b = user-1 - - # The super user is allowed on any branch: - * = super-user - - # Everyone is allowed on branch-for-tests: - branch-for-tests = * - - [acl.deny] - # This list is checked first. If a match is found, acl.allow is not - # checked. All users are granted access if acl.deny is not present. - # Format for both lists: glob pattern = user, ..., @group, ... - - # To match everyone, use an asterisk for the user: - # my/glob/pattern = * - - # user6 will not have write access to any file: - ** = user6 - - # Group "hg-denied" will not have write access to any file: - ** = @hg-denied - - # Nobody will be able to change "DONT-TOUCH-THIS.txt", despite - # everyone being able to change all other files. See below. - src/main/resources/DONT-TOUCH-THIS.txt = * - - [acl.allow] - # if acl.allow is not present, all users are allowed by default - # empty acl.allow = no users allowed - - # User "doc_writer" has write access to any file under the "docs" - # folder: - docs/** = doc_writer - - # User "jack" and group "designers" have write access to any file - # under the "images" folder: - images/** = jack, @designers - - # Everyone (except for "user6" - see acl.deny above) will have write - # access to any file under the "resources" folder (except for 1 - # file. See acl.deny): - src/main/resources/** = * - - .hgtags = release_engineer - -''' - -from mercurial.i18n import _ -from mercurial import util, match -import getpass, urllib - -def _getusers(ui, group): - - # First, try to use group definition from section [acl.groups] - hgrcusers = ui.configlist('acl.groups', group) - if hgrcusers: - return hgrcusers - - ui.debug('acl: "%s" not defined in [acl.groups]\n' % group) - # If no users found in group definition, get users from OS-level group - try: - return util.groupmembers(group) - except KeyError: - raise util.Abort(_("group '%s' is undefined") % group) - -def _usermatch(ui, user, usersorgroups): - - if usersorgroups == '*': - return True - - for ug in usersorgroups.replace(',', ' ').split(): - if user == ug or ug.find('@') == 0 and user in _getusers(ui, ug[1:]): - return True - - return False - -def buildmatch(ui, repo, user, key): - '''return tuple of (match function, list enabled).''' - if not ui.has_section(key): - ui.debug('acl: %s not enabled\n' % key) - return None - - pats = [pat for pat, users in ui.configitems(key) - if _usermatch(ui, user, users)] - ui.debug('acl: %s enabled, %d entries for user %s\n' % - (key, len(pats), user)) - - if not repo: - if pats: - return lambda b: '*' in pats or b in pats - return lambda b: False - - if pats: - return match.match(repo.root, '', pats) - return match.exact(repo.root, '', []) - - -def hook(ui, repo, hooktype, node=None, source=None, **kwargs): - if hooktype not in ['pretxnchangegroup', 'pretxncommit']: - raise util.Abort(_('config error - hook type "%s" cannot stop ' - 'incoming changesets nor commits') % hooktype) - if (hooktype == 'pretxnchangegroup' and - source not in ui.config('acl', 'sources', 'serve').split()): - ui.debug('acl: changes have source "%s" - skipping\n' % source) - return - - user = None - if source == 'serve' and 'url' in kwargs: - url = kwargs['url'].split(':') - if url[0] == 'remote' and url[1].startswith('http'): - user = urllib.unquote(url[3]) - - if user is None: - user = getpass.getuser() - - cfg = ui.config('acl', 'config') - if cfg: - ui.readconfig(cfg, sections = ['acl.groups', 'acl.allow.branches', - 'acl.deny.branches', 'acl.allow', 'acl.deny']) - - allowbranches = buildmatch(ui, None, user, 'acl.allow.branches') - denybranches = buildmatch(ui, None, user, 'acl.deny.branches') - allow = buildmatch(ui, repo, user, 'acl.allow') - deny = buildmatch(ui, repo, user, 'acl.deny') - - for rev in xrange(repo[node], len(repo)): - ctx = repo[rev] - branch = ctx.branch() - if denybranches and denybranches(branch): - raise util.Abort(_('acl: user "%s" denied on branch "%s"' - ' (changeset "%s")') - % (user, branch, ctx)) - if allowbranches and not allowbranches(branch): - raise util.Abort(_('acl: user "%s" not allowed on branch "%s"' - ' (changeset "%s")') - % (user, branch, ctx)) - ui.debug('acl: branch access granted: "%s" on branch "%s"\n' - % (ctx, branch)) - - for f in ctx.files(): - if deny and deny(f): - ui.debug('acl: user %s denied on %s\n' % (user, f)) - raise util.Abort(_('acl: access denied for changeset %s') % ctx) - if allow and not allow(f): - ui.debug('acl: user %s not allowed on %s\n' % (user, f)) - raise util.Abort(_('acl: access denied for changeset %s') % ctx) - ui.debug('acl: allowing changeset %s\n' % ctx) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.pyo deleted file mode 100644 index 8001bf2..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/acl.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.py deleted file mode 100644 index 1ebbc7a..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.py +++ /dev/null @@ -1,579 +0,0 @@ -# Mercurial extension to provide the 'hg bookmark' command -# -# Copyright 2008 David Soria Parra -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''track a line of development with movable markers - -Bookmarks are local movable markers to changesets. Every bookmark -points to a changeset identified by its hash. If you commit a -changeset that is based on a changeset that has a bookmark on it, the -bookmark shifts to the new changeset. - -It is possible to use bookmark names in every revision lookup (e.g. -:hg:`merge`, :hg:`update`). - -By default, when several bookmarks point to the same changeset, they -will all move forward together. It is possible to obtain a more -git-like experience by adding the following configuration option to -your configuration file:: - - [bookmarks] - track.current = True - -This will cause Mercurial to track the bookmark that you are currently -using, and only update it. This is similar to git's approach to -branching. -''' - -from mercurial.i18n import _ -from mercurial.node import nullid, nullrev, bin, hex, short -from mercurial import util, commands, repair, extensions, pushkey, hg, url -from mercurial import revset -import os - -def write(repo): - '''Write bookmarks - - Write the given bookmark => hash dictionary to the .hg/bookmarks file - in a format equal to those of localtags. - - We also store a backup of the previous state in undo.bookmarks that - can be copied back on rollback. - ''' - refs = repo._bookmarks - - try: - bms = repo.opener('bookmarks').read() - except IOError: - bms = None - if bms is not None: - repo.opener('undo.bookmarks', 'w').write(bms) - - if repo._bookmarkcurrent not in refs: - setcurrent(repo, None) - wlock = repo.wlock() - try: - file = repo.opener('bookmarks', 'w', atomictemp=True) - for refspec, node in refs.iteritems(): - file.write("%s %s\n" % (hex(node), refspec)) - file.rename() - - # touch 00changelog.i so hgweb reloads bookmarks (no lock needed) - try: - os.utime(repo.sjoin('00changelog.i'), None) - except OSError: - pass - - finally: - wlock.release() - -def setcurrent(repo, mark): - '''Set the name of the bookmark that we are currently on - - Set the name of the bookmark that we are on (hg update ). - The name is recorded in .hg/bookmarks.current - ''' - current = repo._bookmarkcurrent - if current == mark: - return - - refs = repo._bookmarks - - # do not update if we do update to a rev equal to the current bookmark - if (mark and mark not in refs and - current and refs[current] == repo.changectx('.').node()): - return - if mark not in refs: - mark = '' - wlock = repo.wlock() - try: - file = repo.opener('bookmarks.current', 'w', atomictemp=True) - file.write(mark) - file.rename() - finally: - wlock.release() - repo._bookmarkcurrent = mark - -def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None): - '''track a line of development with movable markers - - Bookmarks are pointers to certain commits that move when - committing. Bookmarks are local. They can be renamed, copied and - deleted. It is possible to use bookmark names in :hg:`merge` and - :hg:`update` to merge and update respectively to a given bookmark. - - You can use :hg:`bookmark NAME` to set a bookmark on the working - directory's parent revision with the given name. If you specify - a revision using -r REV (where REV may be an existing bookmark), - the bookmark is assigned to that revision. - - Bookmarks can be pushed and pulled between repositories (see :hg:`help - push` and :hg:`help pull`). This requires the bookmark extension to be - enabled for both the local and remote repositories. - ''' - hexfn = ui.debugflag and hex or short - marks = repo._bookmarks - cur = repo.changectx('.').node() - - if rename: - if rename not in marks: - raise util.Abort(_("a bookmark of this name does not exist")) - if mark in marks and not force: - raise util.Abort(_("a bookmark of the same name already exists")) - if mark is None: - raise util.Abort(_("new bookmark name required")) - marks[mark] = marks[rename] - del marks[rename] - if repo._bookmarkcurrent == rename: - setcurrent(repo, mark) - write(repo) - return - - if delete: - if mark is None: - raise util.Abort(_("bookmark name required")) - if mark not in marks: - raise util.Abort(_("a bookmark of this name does not exist")) - if mark == repo._bookmarkcurrent: - setcurrent(repo, None) - del marks[mark] - write(repo) - return - - if mark != None: - if "\n" in mark: - raise util.Abort(_("bookmark name cannot contain newlines")) - mark = mark.strip() - if not mark: - raise util.Abort(_("bookmark names cannot consist entirely of " - "whitespace")) - if mark in marks and not force: - raise util.Abort(_("a bookmark of the same name already exists")) - if ((mark in repo.branchtags() or mark == repo.dirstate.branch()) - and not force): - raise util.Abort( - _("a bookmark cannot have the name of an existing branch")) - if rev: - marks[mark] = repo.lookup(rev) - else: - marks[mark] = repo.changectx('.').node() - setcurrent(repo, mark) - write(repo) - return - - if mark is None: - if rev: - raise util.Abort(_("bookmark name required")) - if len(marks) == 0: - ui.status(_("no bookmarks set\n")) - else: - for bmark, n in marks.iteritems(): - if ui.configbool('bookmarks', 'track.current'): - current = repo._bookmarkcurrent - if bmark == current and n == cur: - prefix, label = '*', 'bookmarks.current' - else: - prefix, label = ' ', '' - else: - if n == cur: - prefix, label = '*', 'bookmarks.current' - else: - prefix, label = ' ', '' - - if ui.quiet: - ui.write("%s\n" % bmark, label=label) - else: - ui.write(" %s %-25s %d:%s\n" % ( - prefix, bmark, repo.changelog.rev(n), hexfn(n)), - label=label) - return - -def _revstostrip(changelog, node): - srev = changelog.rev(node) - tostrip = [srev] - saveheads = [] - for r in xrange(srev, len(changelog)): - parents = changelog.parentrevs(r) - if parents[0] in tostrip or parents[1] in tostrip: - tostrip.append(r) - if parents[1] != nullrev: - for p in parents: - if p not in tostrip and p > srev: - saveheads.append(p) - return [r for r in tostrip if r not in saveheads] - -def strip(oldstrip, ui, repo, node, backup="all"): - """Strip bookmarks if revisions are stripped using - the mercurial.strip method. This usually happens during - qpush and qpop""" - revisions = _revstostrip(repo.changelog, node) - marks = repo._bookmarks - update = [] - for mark, n in marks.iteritems(): - if repo.changelog.rev(n) in revisions: - update.append(mark) - oldstrip(ui, repo, node, backup) - if len(update) > 0: - for m in update: - marks[m] = repo.changectx('.').node() - write(repo) - -def reposetup(ui, repo): - if not repo.local(): - return - - class bookmark_repo(repo.__class__): - - @util.propertycache - def _bookmarks(self): - '''Parse .hg/bookmarks file and return a dictionary - - Bookmarks are stored as {HASH}\\s{NAME}\\n (localtags format) values - in the .hg/bookmarks file. - Read the file and return a (name=>nodeid) dictionary - ''' - try: - bookmarks = {} - for line in self.opener('bookmarks'): - sha, refspec = line.strip().split(' ', 1) - bookmarks[refspec] = self.changelog.lookup(sha) - except: - pass - return bookmarks - - @util.propertycache - def _bookmarkcurrent(self): - '''Get the current bookmark - - If we use gittishsh branches we have a current bookmark that - we are on. This function returns the name of the bookmark. It - is stored in .hg/bookmarks.current - ''' - mark = None - if os.path.exists(self.join('bookmarks.current')): - file = self.opener('bookmarks.current') - # No readline() in posixfile_nt, reading everything is cheap - mark = (file.readlines() or [''])[0] - if mark == '': - mark = None - file.close() - return mark - - def rollback(self, *args): - if os.path.exists(self.join('undo.bookmarks')): - util.rename(self.join('undo.bookmarks'), self.join('bookmarks')) - return super(bookmark_repo, self).rollback(*args) - - def lookup(self, key): - if key in self._bookmarks: - key = self._bookmarks[key] - return super(bookmark_repo, self).lookup(key) - - def _bookmarksupdate(self, parents, node): - marks = self._bookmarks - update = False - if ui.configbool('bookmarks', 'track.current'): - mark = self._bookmarkcurrent - if mark and marks[mark] in parents: - marks[mark] = node - update = True - else: - for mark, n in marks.items(): - if n in parents: - marks[mark] = node - update = True - if update: - write(self) - - def commitctx(self, ctx, error=False): - """Add a revision to the repository and - move the bookmark""" - wlock = self.wlock() # do both commit and bookmark with lock held - try: - node = super(bookmark_repo, self).commitctx(ctx, error) - if node is None: - return None - parents = self.changelog.parents(node) - if parents[1] == nullid: - parents = (parents[0],) - - self._bookmarksupdate(parents, node) - return node - finally: - wlock.release() - - def pull(self, remote, heads=None, force=False): - result = super(bookmark_repo, self).pull(remote, heads, force) - - self.ui.debug("checking for updated bookmarks\n") - rb = remote.listkeys('bookmarks') - changed = False - for k in rb.keys(): - if k in self._bookmarks: - nr, nl = rb[k], self._bookmarks[k] - if nr in self: - cr = self[nr] - cl = self[nl] - if cl.rev() >= cr.rev(): - continue - if cr in cl.descendants(): - self._bookmarks[k] = cr.node() - changed = True - self.ui.status(_("updating bookmark %s\n") % k) - else: - self.ui.warn(_("not updating divergent" - " bookmark %s\n") % k) - if changed: - write(repo) - - return result - - def push(self, remote, force=False, revs=None, newbranch=False): - result = super(bookmark_repo, self).push(remote, force, revs, - newbranch) - - self.ui.debug("checking for updated bookmarks\n") - rb = remote.listkeys('bookmarks') - for k in rb.keys(): - if k in self._bookmarks: - nr, nl = rb[k], self._bookmarks[k] - if nr in self: - cr = self[nr] - cl = self[nl] - if cl in cr.descendants(): - r = remote.pushkey('bookmarks', k, nr, nl) - if r: - self.ui.status(_("updating bookmark %s\n") % k) - else: - self.ui.warn(_('updating bookmark %s' - ' failed!\n') % k) - - return result - - def addchangegroup(self, *args, **kwargs): - parents = self.dirstate.parents() - - result = super(bookmark_repo, self).addchangegroup(*args, **kwargs) - if result > 1: - # We have more heads than before - return result - node = self.changelog.tip() - - self._bookmarksupdate(parents, node) - return result - - def _findtags(self): - """Merge bookmarks with normal tags""" - (tags, tagtypes) = super(bookmark_repo, self)._findtags() - tags.update(self._bookmarks) - return (tags, tagtypes) - - if hasattr(repo, 'invalidate'): - def invalidate(self): - super(bookmark_repo, self).invalidate() - for attr in ('_bookmarks', '_bookmarkcurrent'): - if attr in self.__dict__: - delattr(self, attr) - - repo.__class__ = bookmark_repo - -def listbookmarks(repo): - # We may try to list bookmarks on a repo type that does not - # support it (e.g., statichttprepository). - if not hasattr(repo, '_bookmarks'): - return {} - - d = {} - for k, v in repo._bookmarks.iteritems(): - d[k] = hex(v) - return d - -def pushbookmark(repo, key, old, new): - w = repo.wlock() - try: - marks = repo._bookmarks - if hex(marks.get(key, '')) != old: - return False - if new == '': - del marks[key] - else: - if new not in repo: - return False - marks[key] = repo[new].node() - write(repo) - return True - finally: - w.release() - -def pull(oldpull, ui, repo, source="default", **opts): - # translate bookmark args to rev args for actual pull - if opts.get('bookmark'): - # this is an unpleasant hack as pull will do this internally - source, branches = hg.parseurl(ui.expandpath(source), - opts.get('branch')) - other = hg.repository(hg.remoteui(repo, opts), source) - rb = other.listkeys('bookmarks') - - for b in opts['bookmark']: - if b not in rb: - raise util.Abort(_('remote bookmark %s not found!') % b) - opts.setdefault('rev', []).append(b) - - result = oldpull(ui, repo, source, **opts) - - # update specified bookmarks - if opts.get('bookmark'): - for b in opts['bookmark']: - # explicit pull overrides local bookmark if any - ui.status(_("importing bookmark %s\n") % b) - repo._bookmarks[b] = repo[rb[b]].node() - write(repo) - - return result - -def push(oldpush, ui, repo, dest=None, **opts): - dopush = True - if opts.get('bookmark'): - dopush = False - for b in opts['bookmark']: - if b in repo._bookmarks: - dopush = True - opts.setdefault('rev', []).append(b) - - result = 0 - if dopush: - result = oldpush(ui, repo, dest, **opts) - - if opts.get('bookmark'): - # this is an unpleasant hack as push will do this internally - dest = ui.expandpath(dest or 'default-push', dest or 'default') - dest, branches = hg.parseurl(dest, opts.get('branch')) - other = hg.repository(hg.remoteui(repo, opts), dest) - rb = other.listkeys('bookmarks') - for b in opts['bookmark']: - # explicit push overrides remote bookmark if any - if b in repo._bookmarks: - ui.status(_("exporting bookmark %s\n") % b) - new = repo[b].hex() - elif b in rb: - ui.status(_("deleting remote bookmark %s\n") % b) - new = '' # delete - else: - ui.warn(_('bookmark %s does not exist on the local ' - 'or remote repository!\n') % b) - return 2 - old = rb.get(b, '') - r = other.pushkey('bookmarks', b, old, new) - if not r: - ui.warn(_('updating bookmark %s failed!\n') % b) - if not result: - result = 2 - - return result - -def diffbookmarks(ui, repo, remote): - ui.status(_("searching for changed bookmarks\n")) - - lmarks = repo.listkeys('bookmarks') - rmarks = remote.listkeys('bookmarks') - - diff = sorted(set(rmarks) - set(lmarks)) - for k in diff: - ui.write(" %-25s %s\n" % (k, rmarks[k][:12])) - - if len(diff) <= 0: - ui.status(_("no changed bookmarks found\n")) - return 1 - return 0 - -def incoming(oldincoming, ui, repo, source="default", **opts): - if opts.get('bookmarks'): - source, branches = hg.parseurl(ui.expandpath(source), opts.get('branch')) - other = hg.repository(hg.remoteui(repo, opts), source) - ui.status(_('comparing with %s\n') % url.hidepassword(source)) - return diffbookmarks(ui, repo, other) - else: - return oldincoming(ui, repo, source, **opts) - -def outgoing(oldoutgoing, ui, repo, dest=None, **opts): - if opts.get('bookmarks'): - dest = ui.expandpath(dest or 'default-push', dest or 'default') - dest, branches = hg.parseurl(dest, opts.get('branch')) - other = hg.repository(hg.remoteui(repo, opts), dest) - ui.status(_('comparing with %s\n') % url.hidepassword(dest)) - return diffbookmarks(ui, other, repo) - else: - return oldoutgoing(ui, repo, dest, **opts) - -def uisetup(ui): - extensions.wrapfunction(repair, "strip", strip) - if ui.configbool('bookmarks', 'track.current'): - extensions.wrapcommand(commands.table, 'update', updatecurbookmark) - - entry = extensions.wrapcommand(commands.table, 'pull', pull) - entry[1].append(('B', 'bookmark', [], - _("bookmark to import"), - _('BOOKMARK'))) - entry = extensions.wrapcommand(commands.table, 'push', push) - entry[1].append(('B', 'bookmark', [], - _("bookmark to export"), - _('BOOKMARK'))) - entry = extensions.wrapcommand(commands.table, 'incoming', incoming) - entry[1].append(('B', 'bookmarks', False, - _("compare bookmark"))) - entry = extensions.wrapcommand(commands.table, 'outgoing', outgoing) - entry[1].append(('B', 'bookmarks', False, - _("compare bookmark"))) - - pushkey.register('bookmarks', pushbookmark, listbookmarks) - -def updatecurbookmark(orig, ui, repo, *args, **opts): - '''Set the current bookmark - - If the user updates to a bookmark we update the .hg/bookmarks.current - file. - ''' - res = orig(ui, repo, *args, **opts) - rev = opts['rev'] - if not rev and len(args) > 0: - rev = args[0] - setcurrent(repo, rev) - return res - -def bmrevset(repo, subset, x): - """``bookmark([name])`` - The named bookmark or all bookmarks. - """ - # i18n: "bookmark" is a keyword - args = revset.getargs(x, 0, 1, _('bookmark takes one or no arguments')) - if args: - bm = revset.getstring(args[0], - # i18n: "bookmark" is a keyword - _('the argument to bookmark must be a string')) - bmrev = listbookmarks(repo).get(bm, None) - if bmrev: - bmrev = repo.changelog.rev(bin(bmrev)) - return [r for r in subset if r == bmrev] - bms = set([repo.changelog.rev(bin(r)) for r in listbookmarks(repo).values()]) - return [r for r in subset if r in bms] - -def extsetup(ui): - revset.symbols['bookmark'] = bmrevset - -cmdtable = { - "bookmarks": - (bookmark, - [('f', 'force', False, _('force')), - ('r', 'rev', '', _('revision'), _('REV')), - ('d', 'delete', False, _('delete a given bookmark')), - ('m', 'rename', '', _('rename a given bookmark'), _('NAME'))], - _('hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]')), -} - -colortable = {'bookmarks.current': 'green'} - -# tell hggettext to extract docstrings from these functions: -i18nfunctions = [bmrevset] diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.pyo deleted file mode 100644 index 9cad1f2..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bookmarks.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.py deleted file mode 100644 index de72e91..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.py +++ /dev/null @@ -1,441 +0,0 @@ -# bugzilla.py - bugzilla integration for mercurial -# -# Copyright 2006 Vadim Gelfer -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''hooks for integrating with the Bugzilla bug tracker - -This hook extension adds comments on bugs in Bugzilla when changesets -that refer to bugs by Bugzilla ID are seen. The hook does not change -bug status. - -The hook updates the Bugzilla database directly. Only Bugzilla -installations using MySQL are supported. - -The hook relies on a Bugzilla script to send bug change notification -emails. That script changes between Bugzilla versions; the -'processmail' script used prior to 2.18 is replaced in 2.18 and -subsequent versions by 'config/sendbugmail.pl'. Note that these will -be run by Mercurial as the user pushing the change; you will need to -ensure the Bugzilla install file permissions are set appropriately. - -The extension is configured through three different configuration -sections. These keys are recognized in the [bugzilla] section: - -host - Hostname of the MySQL server holding the Bugzilla database. - -db - Name of the Bugzilla database in MySQL. Default 'bugs'. - -user - Username to use to access MySQL server. Default 'bugs'. - -password - Password to use to access MySQL server. - -timeout - Database connection timeout (seconds). Default 5. - -version - Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and later, - '2.18' for Bugzilla versions from 2.18 and '2.16' for versions prior - to 2.18. - -bzuser - Fallback Bugzilla user name to record comments with, if changeset - committer cannot be found as a Bugzilla user. - -bzdir - Bugzilla install directory. Used by default notify. Default - '/var/www/html/bugzilla'. - -notify - The command to run to get Bugzilla to send bug change notification - emails. Substitutes from a map with 3 keys, 'bzdir', 'id' (bug id) - and 'user' (committer bugzilla email). Default depends on version; - from 2.18 it is "cd %(bzdir)s && perl -T contrib/sendbugmail.pl - %(id)s %(user)s". - -regexp - Regular expression to match bug IDs in changeset commit message. - Must contain one "()" group. The default expression matches 'Bug - 1234', 'Bug no. 1234', 'Bug number 1234', 'Bugs 1234,5678', 'Bug - 1234 and 5678' and variations thereof. Matching is case insensitive. - -style - The style file to use when formatting comments. - -template - Template to use when formatting comments. Overrides style if - specified. In addition to the usual Mercurial keywords, the - extension specifies:: - - {bug} The Bugzilla bug ID. - {root} The full pathname of the Mercurial repository. - {webroot} Stripped pathname of the Mercurial repository. - {hgweb} Base URL for browsing Mercurial repositories. - - Default 'changeset {node|short} in repo {root} refers ' - 'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}' - -strip - The number of slashes to strip from the front of {root} to produce - {webroot}. Default 0. - -usermap - Path of file containing Mercurial committer ID to Bugzilla user ID - mappings. If specified, the file should contain one mapping per - line, "committer"="Bugzilla user". See also the [usermap] section. - -The [usermap] section is used to specify mappings of Mercurial -committer ID to Bugzilla user ID. See also [bugzilla].usermap. -"committer"="Bugzilla user" - -Finally, the [web] section supports one entry: - -baseurl - Base URL for browsing Mercurial repositories. Reference from - templates as {hgweb}. - -Activating the extension:: - - [extensions] - bugzilla = - - [hooks] - # run bugzilla hook on every change pulled or pushed in here - incoming.bugzilla = python:hgext.bugzilla.hook - -Example configuration: - -This example configuration is for a collection of Mercurial -repositories in /var/local/hg/repos/ used with a local Bugzilla 3.2 -installation in /opt/bugzilla-3.2. :: - - [bugzilla] - host=localhost - password=XYZZY - version=3.0 - bzuser=unknown@domain.com - bzdir=/opt/bugzilla-3.2 - template=Changeset {node|short} in {root|basename}. - {hgweb}/{webroot}/rev/{node|short}\\n - {desc}\\n - strip=5 - - [web] - baseurl=http://dev.domain.com/hg - - [usermap] - user@emaildomain.com=user.name@bugzilladomain.com - -Commits add a comment to the Bugzilla bug record of the form:: - - Changeset 3b16791d6642 in repository-name. - http://dev.domain.com/hg/repository-name/rev/3b16791d6642 - - Changeset commit comment. Bug 1234. -''' - -from mercurial.i18n import _ -from mercurial.node import short -from mercurial import cmdutil, templater, util -import re, time - -MySQLdb = None - -def buglist(ids): - return '(' + ','.join(map(str, ids)) + ')' - -class bugzilla_2_16(object): - '''support for bugzilla version 2.16.''' - - def __init__(self, ui): - self.ui = ui - host = self.ui.config('bugzilla', 'host', 'localhost') - user = self.ui.config('bugzilla', 'user', 'bugs') - passwd = self.ui.config('bugzilla', 'password') - db = self.ui.config('bugzilla', 'db', 'bugs') - timeout = int(self.ui.config('bugzilla', 'timeout', 5)) - usermap = self.ui.config('bugzilla', 'usermap') - if usermap: - self.ui.readconfig(usermap, sections=['usermap']) - self.ui.note(_('connecting to %s:%s as %s, password %s\n') % - (host, db, user, '*' * len(passwd))) - self.conn = MySQLdb.connect(host=host, user=user, passwd=passwd, - db=db, connect_timeout=timeout) - self.cursor = self.conn.cursor() - self.longdesc_id = self.get_longdesc_id() - self.user_ids = {} - self.default_notify = "cd %(bzdir)s && ./processmail %(id)s %(user)s" - - def run(self, *args, **kwargs): - '''run a query.''' - self.ui.note(_('query: %s %s\n') % (args, kwargs)) - try: - self.cursor.execute(*args, **kwargs) - except MySQLdb.MySQLError: - self.ui.note(_('failed query: %s %s\n') % (args, kwargs)) - raise - - def get_longdesc_id(self): - '''get identity of longdesc field''' - self.run('select fieldid from fielddefs where name = "longdesc"') - ids = self.cursor.fetchall() - if len(ids) != 1: - raise util.Abort(_('unknown database schema')) - return ids[0][0] - - def filter_real_bug_ids(self, ids): - '''filter not-existing bug ids from list.''' - self.run('select bug_id from bugs where bug_id in %s' % buglist(ids)) - return sorted([c[0] for c in self.cursor.fetchall()]) - - def filter_unknown_bug_ids(self, node, ids): - '''filter bug ids from list that already refer to this changeset.''' - - self.run('''select bug_id from longdescs where - bug_id in %s and thetext like "%%%s%%"''' % - (buglist(ids), short(node))) - unknown = set(ids) - for (id,) in self.cursor.fetchall(): - self.ui.status(_('bug %d already knows about changeset %s\n') % - (id, short(node))) - unknown.discard(id) - return sorted(unknown) - - def notify(self, ids, committer): - '''tell bugzilla to send mail.''' - - self.ui.status(_('telling bugzilla to send mail:\n')) - (user, userid) = self.get_bugzilla_user(committer) - for id in ids: - self.ui.status(_(' bug %s\n') % id) - cmdfmt = self.ui.config('bugzilla', 'notify', self.default_notify) - bzdir = self.ui.config('bugzilla', 'bzdir', '/var/www/html/bugzilla') - try: - # Backwards-compatible with old notify string, which - # took one string. This will throw with a new format - # string. - cmd = cmdfmt % id - except TypeError: - cmd = cmdfmt % {'bzdir': bzdir, 'id': id, 'user': user} - self.ui.note(_('running notify command %s\n') % cmd) - fp = util.popen('(%s) 2>&1' % cmd) - out = fp.read() - ret = fp.close() - if ret: - self.ui.warn(out) - raise util.Abort(_('bugzilla notify command %s') % - util.explain_exit(ret)[0]) - self.ui.status(_('done\n')) - - def get_user_id(self, user): - '''look up numeric bugzilla user id.''' - try: - return self.user_ids[user] - except KeyError: - try: - userid = int(user) - except ValueError: - self.ui.note(_('looking up user %s\n') % user) - self.run('''select userid from profiles - where login_name like %s''', user) - all = self.cursor.fetchall() - if len(all) != 1: - raise KeyError(user) - userid = int(all[0][0]) - self.user_ids[user] = userid - return userid - - def map_committer(self, user): - '''map name of committer to bugzilla user name.''' - for committer, bzuser in self.ui.configitems('usermap'): - if committer.lower() == user.lower(): - return bzuser - return user - - def get_bugzilla_user(self, committer): - '''see if committer is a registered bugzilla user. Return - bugzilla username and userid if so. If not, return default - bugzilla username and userid.''' - user = self.map_committer(committer) - try: - userid = self.get_user_id(user) - except KeyError: - try: - defaultuser = self.ui.config('bugzilla', 'bzuser') - if not defaultuser: - raise util.Abort(_('cannot find bugzilla user id for %s') % - user) - userid = self.get_user_id(defaultuser) - user = defaultuser - except KeyError: - raise util.Abort(_('cannot find bugzilla user id for %s or %s') % - (user, defaultuser)) - return (user, userid) - - def add_comment(self, bugid, text, committer): - '''add comment to bug. try adding comment as committer of - changeset, otherwise as default bugzilla user.''' - (user, userid) = self.get_bugzilla_user(committer) - now = time.strftime('%Y-%m-%d %H:%M:%S') - self.run('''insert into longdescs - (bug_id, who, bug_when, thetext) - values (%s, %s, %s, %s)''', - (bugid, userid, now, text)) - self.run('''insert into bugs_activity (bug_id, who, bug_when, fieldid) - values (%s, %s, %s, %s)''', - (bugid, userid, now, self.longdesc_id)) - self.conn.commit() - -class bugzilla_2_18(bugzilla_2_16): - '''support for bugzilla 2.18 series.''' - - def __init__(self, ui): - bugzilla_2_16.__init__(self, ui) - self.default_notify = \ - "cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s" - -class bugzilla_3_0(bugzilla_2_18): - '''support for bugzilla 3.0 series.''' - - def __init__(self, ui): - bugzilla_2_18.__init__(self, ui) - - def get_longdesc_id(self): - '''get identity of longdesc field''' - self.run('select id from fielddefs where name = "longdesc"') - ids = self.cursor.fetchall() - if len(ids) != 1: - raise util.Abort(_('unknown database schema')) - return ids[0][0] - -class bugzilla(object): - # supported versions of bugzilla. different versions have - # different schemas. - _versions = { - '2.16': bugzilla_2_16, - '2.18': bugzilla_2_18, - '3.0': bugzilla_3_0 - } - - _default_bug_re = (r'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*' - r'((?:\d+\s*(?:,?\s*(?:and)?)?\s*)+)') - - _bz = None - - def __init__(self, ui, repo): - self.ui = ui - self.repo = repo - - def bz(self): - '''return object that knows how to talk to bugzilla version in - use.''' - - if bugzilla._bz is None: - bzversion = self.ui.config('bugzilla', 'version') - try: - bzclass = bugzilla._versions[bzversion] - except KeyError: - raise util.Abort(_('bugzilla version %s not supported') % - bzversion) - bugzilla._bz = bzclass(self.ui) - return bugzilla._bz - - def __getattr__(self, key): - return getattr(self.bz(), key) - - _bug_re = None - _split_re = None - - def find_bug_ids(self, ctx): - '''find valid bug ids that are referred to in changeset - comments and that do not already have references to this - changeset.''' - - if bugzilla._bug_re is None: - bugzilla._bug_re = re.compile( - self.ui.config('bugzilla', 'regexp', bugzilla._default_bug_re), - re.IGNORECASE) - bugzilla._split_re = re.compile(r'\D+') - start = 0 - ids = set() - while True: - m = bugzilla._bug_re.search(ctx.description(), start) - if not m: - break - start = m.end() - for id in bugzilla._split_re.split(m.group(1)): - if not id: - continue - ids.add(int(id)) - if ids: - ids = self.filter_real_bug_ids(ids) - if ids: - ids = self.filter_unknown_bug_ids(ctx.node(), ids) - return ids - - def update(self, bugid, ctx): - '''update bugzilla bug with reference to changeset.''' - - def webroot(root): - '''strip leading prefix of repo root and turn into - url-safe path.''' - count = int(self.ui.config('bugzilla', 'strip', 0)) - root = util.pconvert(root) - while count > 0: - c = root.find('/') - if c == -1: - break - root = root[c + 1:] - count -= 1 - return root - - mapfile = self.ui.config('bugzilla', 'style') - tmpl = self.ui.config('bugzilla', 'template') - t = cmdutil.changeset_templater(self.ui, self.repo, - False, None, mapfile, False) - if not mapfile and not tmpl: - tmpl = _('changeset {node|short} in repo {root} refers ' - 'to bug {bug}.\ndetails:\n\t{desc|tabindent}') - if tmpl: - tmpl = templater.parsestring(tmpl, quoted=False) - t.use_template(tmpl) - self.ui.pushbuffer() - t.show(ctx, changes=ctx.changeset(), - bug=str(bugid), - hgweb=self.ui.config('web', 'baseurl'), - root=self.repo.root, - webroot=webroot(self.repo.root)) - data = self.ui.popbuffer() - self.add_comment(bugid, data, util.email(ctx.user())) - -def hook(ui, repo, hooktype, node=None, **kwargs): - '''add comment to bugzilla for each changeset that refers to a - bugzilla bug id. only add a comment once per bug, so same change - seen multiple times does not fill bug with duplicate data.''' - try: - import MySQLdb as mysql - global MySQLdb - MySQLdb = mysql - except ImportError, err: - raise util.Abort(_('python mysql support not available: %s') % err) - - if node is None: - raise util.Abort(_('hook type %s does not pass a changeset id') % - hooktype) - try: - bz = bugzilla(ui, repo) - ctx = repo[node] - ids = bz.find_bug_ids(ctx) - if ids: - for id in ids: - bz.update(id, ctx) - bz.notify(ids, util.email(ctx.user())) - except MySQLdb.MySQLError, err: - raise util.Abort(_('database error: %s') % err.args[1]) - diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.pyo deleted file mode 100644 index b4bfa04..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/bugzilla.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.py deleted file mode 100644 index da2fe9c..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.py +++ /dev/null @@ -1,45 +0,0 @@ -# Mercurial extension to provide the 'hg children' command -# -# Copyright 2007 by Intevation GmbH -# -# Author(s): -# Thomas Arendsen Hein -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''command to display child changesets''' - -from mercurial import cmdutil -from mercurial.commands import templateopts -from mercurial.i18n import _ - - -def children(ui, repo, file_=None, **opts): - """show the children of the given or working directory revision - - Print the children of the working directory's revisions. If a - revision is given via -r/--rev, the children of that revision will - be printed. If a file argument is given, revision in which the - file was last changed (after the working directory revision or the - argument to --rev if given) is printed. - """ - rev = opts.get('rev') - if file_: - ctx = repo.filectx(file_, changeid=rev) - else: - ctx = repo[rev] - - displayer = cmdutil.show_changeset(ui, repo, opts) - for cctx in ctx.children(): - displayer.show(cctx) - displayer.close() - -cmdtable = { - "children": - (children, - [('r', 'rev', '', - _('show children of the specified revision'), _('REV')), - ] + templateopts, - _('hg children [-r REV] [FILE]')), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.pyo deleted file mode 100644 index 05aecd2..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/children.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.py deleted file mode 100644 index 32e481f..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.py +++ /dev/null @@ -1,198 +0,0 @@ -# churn.py - create a graph of revisions count grouped by template -# -# Copyright 2006 Josef "Jeff" Sipek -# Copyright 2008 Alexander Solovyov -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''command to display statistics about repository history''' - -from mercurial.i18n import _ -from mercurial import patch, cmdutil, util, templater, commands -import os -import time, datetime - -def maketemplater(ui, repo, tmpl): - tmpl = templater.parsestring(tmpl, quoted=False) - try: - t = cmdutil.changeset_templater(ui, repo, False, None, None, False) - except SyntaxError, inst: - raise util.Abort(inst.args[0]) - t.use_template(tmpl) - return t - -def changedlines(ui, repo, ctx1, ctx2, fns): - added, removed = 0, 0 - fmatch = cmdutil.matchfiles(repo, fns) - diff = ''.join(patch.diff(repo, ctx1.node(), ctx2.node(), fmatch)) - for l in diff.split('\n'): - if l.startswith("+") and not l.startswith("+++ "): - added += 1 - elif l.startswith("-") and not l.startswith("--- "): - removed += 1 - return (added, removed) - -def countrate(ui, repo, amap, *pats, **opts): - """Calculate stats""" - if opts.get('dateformat'): - def getkey(ctx): - t, tz = ctx.date() - date = datetime.datetime(*time.gmtime(float(t) - tz)[:6]) - return date.strftime(opts['dateformat']) - else: - tmpl = opts.get('template', '{author|email}') - tmpl = maketemplater(ui, repo, tmpl) - def getkey(ctx): - ui.pushbuffer() - tmpl.show(ctx) - return ui.popbuffer() - - state = {'count': 0} - rate = {} - df = False - if opts.get('date'): - df = util.matchdate(opts['date']) - - m = cmdutil.match(repo, pats, opts) - def prep(ctx, fns): - rev = ctx.rev() - if df and not df(ctx.date()[0]): # doesn't match date format - return - - key = getkey(ctx) - key = amap.get(key, key) # alias remap - key = key.strip() # ignore leading and trailing spaces - if opts.get('changesets'): - rate[key] = (rate.get(key, (0,))[0] + 1, 0) - else: - parents = ctx.parents() - if len(parents) > 1: - ui.note(_('Revision %d is a merge, ignoring...\n') % (rev,)) - return - - ctx1 = parents[0] - lines = changedlines(ui, repo, ctx1, ctx, fns) - rate[key] = [r + l for r, l in zip(rate.get(key, (0, 0)), lines)] - - state['count'] += 1 - ui.progress(_('analyzing'), state['count'], total=len(repo)) - - for ctx in cmdutil.walkchangerevs(repo, m, opts, prep): - continue - - ui.progress(_('analyzing'), None) - - return rate - - -def churn(ui, repo, *pats, **opts): - '''histogram of changes to the repository - - This command will display a histogram representing the number - of changed lines or revisions, grouped according to the given - template. The default template will group changes by author. - The --dateformat option may be used to group the results by - date instead. - - Statistics are based on the number of changed lines, or - alternatively the number of matching revisions if the - --changesets option is specified. - - Examples:: - - # display count of changed lines for every committer - hg churn -t '{author|email}' - - # display daily activity graph - hg churn -f '%H' -s -c - - # display activity of developers by month - hg churn -f '%Y-%m' -s -c - - # display count of lines changed in every year - hg churn -f '%Y' -s - - It is possible to map alternate email addresses to a main address - by providing a file using the following format:: - - = - - Such a file may be specified with the --aliases option, otherwise - a .hgchurn file will be looked for in the working directory root. - ''' - def pad(s, l): - return (s + " " * l)[:l] - - amap = {} - aliases = opts.get('aliases') - if not aliases and os.path.exists(repo.wjoin('.hgchurn')): - aliases = repo.wjoin('.hgchurn') - if aliases: - for l in open(aliases, "r"): - try: - alias, actual = l.split('=' in l and '=' or None, 1) - amap[alias.strip()] = actual.strip() - except ValueError: - l = l.strip() - if l: - ui.warn(_("skipping malformed alias: %s\n" % l)) - continue - - rate = countrate(ui, repo, amap, *pats, **opts).items() - if not rate: - return - - sortkey = ((not opts.get('sort')) and (lambda x: -sum(x[1])) or None) - rate.sort(key=sortkey) - - # Be careful not to have a zero maxcount (issue833) - maxcount = float(max(sum(v) for k, v in rate)) or 1.0 - maxname = max(len(k) for k, v in rate) - - ttywidth = ui.termwidth() - ui.debug("assuming %i character terminal\n" % ttywidth) - width = ttywidth - maxname - 2 - 2 - 2 - - if opts.get('diffstat'): - width -= 15 - def format(name, diffstat): - added, removed = diffstat - return "%s %15s %s%s\n" % (pad(name, maxname), - '+%d/-%d' % (added, removed), - ui.label('+' * charnum(added), - 'diffstat.inserted'), - ui.label('-' * charnum(removed), - 'diffstat.deleted')) - else: - width -= 6 - def format(name, count): - return "%s %6d %s\n" % (pad(name, maxname), sum(count), - '*' * charnum(sum(count))) - - def charnum(count): - return int(round(count * width / maxcount)) - - for name, count in rate: - ui.write(format(name, count)) - - -cmdtable = { - "churn": - (churn, - [('r', 'rev', [], - _('count rate for the specified revision or range'), _('REV')), - ('d', 'date', '', - _('count rate for revisions matching date spec'), _('DATE')), - ('t', 'template', '{author|email}', - _('template to group changesets'), _('TEMPLATE')), - ('f', 'dateformat', '', - _('strftime-compatible format for grouping by date'), _('FORMAT')), - ('c', 'changesets', False, _('count rate by number of changesets')), - ('s', 'sort', False, _('sort by key (default: sort by count)')), - ('', 'diffstat', False, _('display added/removed lines separately')), - ('', 'aliases', '', - _('file with email aliases'), _('FILE')), - ] + commands.walkopts, - _("hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]")), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.pyo deleted file mode 100644 index 90d9a2d..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/churn.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.py deleted file mode 100644 index df78f8d..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.py +++ /dev/null @@ -1,319 +0,0 @@ -# color.py color output for the status and qseries commands -# -# Copyright (C) 2007 Kevin Christen -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -'''colorize output from some commands - -This extension modifies the status and resolve commands to add color to their -output to reflect file status, the qseries command to add color to reflect -patch status (applied, unapplied, missing), and to diff-related -commands to highlight additions, removals, diff headers, and trailing -whitespace. - -Other effects in addition to color, like bold and underlined text, are -also available. Effects are rendered with the ECMA-48 SGR control -function (aka ANSI escape codes). This module also provides the -render_text function, which can be used to add effects to any text. - -Default effects may be overridden from your configuration file:: - - [color] - status.modified = blue bold underline red_background - status.added = green bold - status.removed = red bold blue_background - status.deleted = cyan bold underline - status.unknown = magenta bold underline - status.ignored = black bold - - # 'none' turns off all effects - status.clean = none - status.copied = none - - qseries.applied = blue bold underline - qseries.unapplied = black bold - qseries.missing = red bold - - diff.diffline = bold - diff.extended = cyan bold - diff.file_a = red bold - diff.file_b = green bold - diff.hunk = magenta - diff.deleted = red - diff.inserted = green - diff.changed = white - diff.trailingwhitespace = bold red_background - - resolve.unresolved = red bold - resolve.resolved = green bold - - bookmarks.current = green - - branches.active = none - branches.closed = black bold - branches.current = green - branches.inactive = none - -The color extension will try to detect whether to use ANSI codes or -Win32 console APIs, unless it is made explicit:: - - [color] - mode = ansi - -Any value other than 'ansi', 'win32', or 'auto' will disable color. - -''' - -import os - -from mercurial import commands, dispatch, extensions, ui as uimod, util -from mercurial.i18n import _ - -# start and stop parameters for effects -_effects = {'none': 0, 'black': 30, 'red': 31, 'green': 32, 'yellow': 33, - 'blue': 34, 'magenta': 35, 'cyan': 36, 'white': 37, 'bold': 1, - 'italic': 3, 'underline': 4, 'inverse': 7, - 'black_background': 40, 'red_background': 41, - 'green_background': 42, 'yellow_background': 43, - 'blue_background': 44, 'purple_background': 45, - 'cyan_background': 46, 'white_background': 47} - -_styles = {'grep.match': 'red bold', - 'branches.active': 'none', - 'branches.closed': 'black bold', - 'branches.current': 'green', - 'branches.inactive': 'none', - 'diff.changed': 'white', - 'diff.deleted': 'red', - 'diff.diffline': 'bold', - 'diff.extended': 'cyan bold', - 'diff.file_a': 'red bold', - 'diff.file_b': 'green bold', - 'diff.hunk': 'magenta', - 'diff.inserted': 'green', - 'diff.trailingwhitespace': 'bold red_background', - 'diffstat.deleted': 'red', - 'diffstat.inserted': 'green', - 'log.changeset': 'yellow', - 'resolve.resolved': 'green bold', - 'resolve.unresolved': 'red bold', - 'status.added': 'green bold', - 'status.clean': 'none', - 'status.copied': 'none', - 'status.deleted': 'cyan bold underline', - 'status.ignored': 'black bold', - 'status.modified': 'blue bold', - 'status.removed': 'red bold', - 'status.unknown': 'magenta bold underline'} - - -def render_effects(text, effects): - 'Wrap text in commands to turn on each effect.' - if not text: - return text - start = [str(_effects[e]) for e in ['none'] + effects.split()] - start = '\033[' + ';'.join(start) + 'm' - stop = '\033[' + str(_effects['none']) + 'm' - return ''.join([start, text, stop]) - -def extstyles(): - for name, ext in extensions.extensions(): - _styles.update(getattr(ext, 'colortable', {})) - -def configstyles(ui): - for status, cfgeffects in ui.configitems('color'): - if '.' not in status: - continue - cfgeffects = ui.configlist('color', status) - if cfgeffects: - good = [] - for e in cfgeffects: - if e in _effects: - good.append(e) - else: - ui.warn(_("ignoring unknown color/effect %r " - "(configured in color.%s)\n") - % (e, status)) - _styles[status] = ' '.join(good) - -class colorui(uimod.ui): - def popbuffer(self, labeled=False): - if labeled: - return ''.join(self.label(a, label) for a, label - in self._buffers.pop()) - return ''.join(a for a, label in self._buffers.pop()) - - _colormode = 'ansi' - def write(self, *args, **opts): - label = opts.get('label', '') - if self._buffers: - self._buffers[-1].extend([(str(a), label) for a in args]) - elif self._colormode == 'win32': - for a in args: - win32print(a, super(colorui, self).write, **opts) - else: - return super(colorui, self).write( - *[self.label(str(a), label) for a in args], **opts) - - def write_err(self, *args, **opts): - label = opts.get('label', '') - if self._colormode == 'win32': - for a in args: - win32print(a, super(colorui, self).write_err, **opts) - else: - return super(colorui, self).write_err( - *[self.label(str(a), label) for a in args], **opts) - - def label(self, msg, label): - effects = [] - for l in label.split(): - s = _styles.get(l, '') - if s: - effects.append(s) - effects = ''.join(effects) - if effects: - return '\n'.join([render_effects(s, effects) - for s in msg.split('\n')]) - return msg - - -def uisetup(ui): - if ui.plain(): - return - mode = ui.config('color', 'mode', 'auto') - if mode == 'auto': - if os.name == 'nt' and 'TERM' not in os.environ: - # looks line a cmd.exe console, use win32 API or nothing - mode = w32effects and 'win32' or 'none' - else: - mode = 'ansi' - if mode == 'win32': - if w32effects is None: - # only warn if color.mode is explicitly set to win32 - ui.warn(_('win32console not found, please install pywin32\n')) - return - _effects.update(w32effects) - elif mode != 'ansi': - return - def colorcmd(orig, ui_, opts, cmd, cmdfunc): - coloropt = opts['color'] - auto = coloropt == 'auto' - always = util.parsebool(coloropt) - if (always or - (always is None and - (auto and (os.environ.get('TERM') != 'dumb' and ui_.formatted())))): - colorui._colormode = mode - colorui.__bases__ = (ui_.__class__,) - ui_.__class__ = colorui - extstyles() - configstyles(ui_) - return orig(ui_, opts, cmd, cmdfunc) - extensions.wrapfunction(dispatch, '_runcommand', colorcmd) - -def extsetup(ui): - commands.globalopts.append( - ('', 'color', 'auto', - # i18n: 'always', 'auto', and 'never' are keywords and should - # not be translated - _("when to colorize (boolean, always, auto, or never)"), - _('TYPE'))) - -try: - import re, pywintypes, win32console as win32c - - # http://msdn.microsoft.com/en-us/library/ms682088%28VS.85%29.aspx - w32effects = { - 'none': -1, - 'black': 0, - 'red': win32c.FOREGROUND_RED, - 'green': win32c.FOREGROUND_GREEN, - 'yellow': win32c.FOREGROUND_RED | win32c.FOREGROUND_GREEN, - 'blue': win32c.FOREGROUND_BLUE, - 'magenta': win32c.FOREGROUND_BLUE | win32c.FOREGROUND_RED, - 'cyan': win32c.FOREGROUND_BLUE | win32c.FOREGROUND_GREEN, - 'white': (win32c.FOREGROUND_RED | win32c.FOREGROUND_GREEN | - win32c.FOREGROUND_BLUE), - 'bold': win32c.FOREGROUND_INTENSITY, - 'black_background': 0x100, # unused value > 0x0f - 'red_background': win32c.BACKGROUND_RED, - 'green_background': win32c.BACKGROUND_GREEN, - 'yellow_background': win32c.BACKGROUND_RED | win32c.BACKGROUND_GREEN, - 'blue_background': win32c.BACKGROUND_BLUE, - 'purple_background': win32c.BACKGROUND_BLUE | win32c.BACKGROUND_RED, - 'cyan_background': win32c.BACKGROUND_BLUE | win32c.BACKGROUND_GREEN, - 'white_background': (win32c.BACKGROUND_RED | win32c.BACKGROUND_GREEN | - win32c.BACKGROUND_BLUE), - 'bold_background': win32c.BACKGROUND_INTENSITY, - 'underline': win32c.COMMON_LVB_UNDERSCORE, # double-byte charsets only - 'inverse': win32c.COMMON_LVB_REVERSE_VIDEO, # double-byte charsets only - } - - passthrough = set([win32c.FOREGROUND_INTENSITY, - win32c.BACKGROUND_INTENSITY, - win32c.COMMON_LVB_UNDERSCORE, - win32c.COMMON_LVB_REVERSE_VIDEO]) - - try: - stdout = win32c.GetStdHandle(win32c.STD_OUTPUT_HANDLE) - if stdout is None: - raise ImportError() - origattr = stdout.GetConsoleScreenBufferInfo()['Attributes'] - except pywintypes.error: - # stdout may be defined but not support - # GetConsoleScreenBufferInfo(), when called from subprocess or - # redirected. - raise ImportError() - ansire = re.compile('\033\[([^m]*)m([^\033]*)(.*)', re.MULTILINE | re.DOTALL) - - def win32print(text, orig, **opts): - label = opts.get('label', '') - attr = origattr - - def mapcolor(val, attr): - if val == -1: - return origattr - elif val in passthrough: - return attr | val - elif val > 0x0f: - return (val & 0x70) | (attr & 0x8f) - else: - return (val & 0x07) | (attr & 0xf8) - - # determine console attributes based on labels - for l in label.split(): - style = _styles.get(l, '') - for effect in style.split(): - attr = mapcolor(w32effects[effect], attr) - - # hack to ensure regexp finds data - if not text.startswith('\033['): - text = '\033[m' + text - - # Look for ANSI-like codes embedded in text - m = re.match(ansire, text) - while m: - for sattr in m.group(1).split(';'): - if sattr: - attr = mapcolor(int(sattr), attr) - stdout.SetConsoleTextAttribute(attr) - orig(m.group(2), **opts) - m = re.match(ansire, m.group(3)) - - # Explicity reset original attributes - stdout.SetConsoleTextAttribute(origattr) - -except ImportError: - w32effects = None diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.pyo deleted file mode 100644 index 2f131ee..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/color.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.py deleted file mode 100644 index be7aca5..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.py +++ /dev/null @@ -1,321 +0,0 @@ -# convert.py Foreign SCM converter -# -# Copyright 2005-2007 Matt Mackall -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''import revisions from foreign VCS repositories into Mercurial''' - -import convcmd -import cvsps -import subversion -from mercurial import commands -from mercurial.i18n import _ - -# Commands definition was moved elsewhere to ease demandload job. - -def convert(ui, src, dest=None, revmapfile=None, **opts): - """convert a foreign SCM repository to a Mercurial one. - - Accepted source formats [identifiers]: - - - Mercurial [hg] - - CVS [cvs] - - Darcs [darcs] - - git [git] - - Subversion [svn] - - Monotone [mtn] - - GNU Arch [gnuarch] - - Bazaar [bzr] - - Perforce [p4] - - Accepted destination formats [identifiers]: - - - Mercurial [hg] - - Subversion [svn] (history on branches is not preserved) - - If no revision is given, all revisions will be converted. - Otherwise, convert will only import up to the named revision - (given in a format understood by the source). - - If no destination directory name is specified, it defaults to the - basename of the source with ``-hg`` appended. If the destination - repository doesn't exist, it will be created. - - By default, all sources except Mercurial will use --branchsort. - Mercurial uses --sourcesort to preserve original revision numbers - order. Sort modes have the following effects: - - --branchsort convert from parent to child revision when possible, - which means branches are usually converted one after - the other. It generates more compact repositories. - - --datesort sort revisions by date. Converted repositories have - good-looking changelogs but are often an order of - magnitude larger than the same ones generated by - --branchsort. - - --sourcesort try to preserve source revisions order, only - supported by Mercurial sources. - - If isn't given, it will be put in a default location - (/.hg/shamap by default). The is a simple text file - that maps each source commit ID to the destination ID for that - revision, like so:: - - - - If the file doesn't exist, it's automatically created. It's - updated on each commit copied, so :hg:`convert` can be interrupted - and can be run repeatedly to copy new commits. - - The authormap is a simple text file that maps each source commit - author to a destination commit author. It is handy for source SCMs - that use unix logins to identify authors (eg: CVS). One line per - author mapping and the line format is:: - - source author = destination author - - Empty lines and lines starting with a ``#`` are ignored. - - The filemap is a file that allows filtering and remapping of files - and directories. Each line can contain one of the following - directives:: - - include path/to/file-or-dir - - exclude path/to/file-or-dir - - rename path/to/source path/to/destination - - Comment lines start with ``#``. A specified path matches if it - equals the full relative name of a file or one of its parent - directories. The ``include`` or ``exclude`` directive with the - longest matching path applies, so line order does not matter. - - The ``include`` directive causes a file, or all files under a - directory, to be included in the destination repository, and the - exclusion of all other files and directories not explicitly - included. The ``exclude`` directive causes files or directories to - be omitted. The ``rename`` directive renames a file or directory if - it is converted. To rename from a subdirectory into the root of - the repository, use ``.`` as the path to rename to. - - The splicemap is a file that allows insertion of synthetic - history, letting you specify the parents of a revision. This is - useful if you want to e.g. give a Subversion merge two parents, or - graft two disconnected series of history together. Each entry - contains a key, followed by a space, followed by one or two - comma-separated values:: - - key parent1, parent2 - - The key is the revision ID in the source - revision control system whose parents should be modified (same - format as a key in .hg/shamap). The values are the revision IDs - (in either the source or destination revision control system) that - should be used as the new parents for that node. For example, if - you have merged "release-1.0" into "trunk", then you should - specify the revision on "trunk" as the first parent and the one on - the "release-1.0" branch as the second. - - The branchmap is a file that allows you to rename a branch when it is - being brought in from whatever external repository. When used in - conjunction with a splicemap, it allows for a powerful combination - to help fix even the most badly mismanaged repositories and turn them - into nicely structured Mercurial repositories. The branchmap contains - lines of the form:: - - original_branch_name new_branch_name - - where "original_branch_name" is the name of the branch in the - source repository, and "new_branch_name" is the name of the branch - is the destination repository. No whitespace is allowed in the - branch names. This can be used to (for instance) move code in one - repository from "default" to a named branch. - - Mercurial Source - '''''''''''''''' - - --config convert.hg.ignoreerrors=False (boolean) - ignore integrity errors when reading. Use it to fix Mercurial - repositories with missing revlogs, by converting from and to - Mercurial. - --config convert.hg.saverev=False (boolean) - store original revision ID in changeset (forces target IDs to - change) - --config convert.hg.startrev=0 (hg revision identifier) - convert start revision and its descendants - - CVS Source - '''''''''' - - CVS source will use a sandbox (i.e. a checked-out copy) from CVS - to indicate the starting point of what will be converted. Direct - access to the repository files is not needed, unless of course the - repository is :local:. The conversion uses the top level directory - in the sandbox to find the CVS repository, and then uses CVS rlog - commands to find files to convert. This means that unless a - filemap is given, all files under the starting directory will be - converted, and that any directory reorganization in the CVS - sandbox is ignored. - - The options shown are the defaults. - - --config convert.cvsps.cache=True (boolean) - Set to False to disable remote log caching, for testing and - debugging purposes. - --config convert.cvsps.fuzz=60 (integer) - Specify the maximum time (in seconds) that is allowed between - commits with identical user and log message in a single - changeset. When very large files were checked in as part of a - changeset then the default may not be long enough. - --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}' - Specify a regular expression to which commit log messages are - matched. If a match occurs, then the conversion process will - insert a dummy revision merging the branch on which this log - message occurs to the branch indicated in the regex. - --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}' - Specify a regular expression to which commit log messages are - matched. If a match occurs, then the conversion process will - add the most recent revision on the branch indicated in the - regex as the second parent of the changeset. - --config hook.cvslog - Specify a Python function to be called at the end of gathering - the CVS log. The function is passed a list with the log entries, - and can modify the entries in-place, or add or delete them. - --config hook.cvschangesets - Specify a Python function to be called after the changesets - are calculated from the the CVS log. The function is passed - a list with the changeset entries, and can modify the changesets - in-place, or add or delete them. - - An additional "debugcvsps" Mercurial command allows the builtin - changeset merging code to be run without doing a conversion. Its - parameters and output are similar to that of cvsps 2.1. Please see - the command help for more details. - - Subversion Source - ''''''''''''''''' - - Subversion source detects classical trunk/branches/tags layouts. - By default, the supplied "svn://repo/path/" source URL is - converted as a single branch. If "svn://repo/path/trunk" exists it - replaces the default branch. If "svn://repo/path/branches" exists, - its subdirectories are listed as possible branches. If - "svn://repo/path/tags" exists, it is looked for tags referencing - converted branches. Default "trunk", "branches" and "tags" values - can be overridden with following options. Set them to paths - relative to the source URL, or leave them blank to disable auto - detection. - - --config convert.svn.branches=branches (directory name) - specify the directory containing branches - --config convert.svn.tags=tags (directory name) - specify the directory containing tags - --config convert.svn.trunk=trunk (directory name) - specify the name of the trunk branch - - Source history can be retrieved starting at a specific revision, - instead of being integrally converted. Only single branch - conversions are supported. - - --config convert.svn.startrev=0 (svn revision number) - specify start Subversion revision. - - Perforce Source - ''''''''''''''' - - The Perforce (P4) importer can be given a p4 depot path or a - client specification as source. It will convert all files in the - source to a flat Mercurial repository, ignoring labels, branches - and integrations. Note that when a depot path is given you then - usually should specify a target directory, because otherwise the - target may be named ...-hg. - - It is possible to limit the amount of source history to be - converted by specifying an initial Perforce revision. - - --config convert.p4.startrev=0 (perforce changelist number) - specify initial Perforce revision. - - Mercurial Destination - ''''''''''''''''''''' - - --config convert.hg.clonebranches=False (boolean) - dispatch source branches in separate clones. - --config convert.hg.tagsbranch=default (branch name) - tag revisions branch name - --config convert.hg.usebranchnames=True (boolean) - preserve branch names - - """ - return convcmd.convert(ui, src, dest, revmapfile, **opts) - -def debugsvnlog(ui, **opts): - return subversion.debugsvnlog(ui, **opts) - -def debugcvsps(ui, *args, **opts): - '''create changeset information from CVS - - This command is intended as a debugging tool for the CVS to - Mercurial converter, and can be used as a direct replacement for - cvsps. - - Hg debugcvsps reads the CVS rlog for current directory (or any - named directory) in the CVS repository, and converts the log to a - series of changesets based on matching commit log entries and - dates.''' - return cvsps.debugcvsps(ui, *args, **opts) - -commands.norepo += " convert debugsvnlog debugcvsps" - -cmdtable = { - "convert": - (convert, - [('', 'authors', '', - _('username mapping filename (DEPRECATED, use --authormap instead)'), - _('FILE')), - ('s', 'source-type', '', - _('source repository type'), _('TYPE')), - ('d', 'dest-type', '', - _('destination repository type'), _('TYPE')), - ('r', 'rev', '', - _('import up to target revision REV'), _('REV')), - ('A', 'authormap', '', - _('remap usernames using this file'), _('FILE')), - ('', 'filemap', '', - _('remap file names using contents of file'), _('FILE')), - ('', 'splicemap', '', - _('splice synthesized history into place'), _('FILE')), - ('', 'branchmap', '', - _('change branch names while converting'), _('FILE')), - ('', 'branchsort', None, _('try to sort changesets by branches')), - ('', 'datesort', None, _('try to sort changesets by date')), - ('', 'sourcesort', None, _('preserve source changesets order'))], - _('hg convert [OPTION]... SOURCE [DEST [REVMAP]]')), - "debugsvnlog": - (debugsvnlog, - [], - 'hg debugsvnlog'), - "debugcvsps": - (debugcvsps, - [ - # Main options shared with cvsps-2.1 - ('b', 'branches', [], _('only return changes on specified branches')), - ('p', 'prefix', '', _('prefix to remove from file names')), - ('r', 'revisions', [], - _('only return changes after or between specified tags')), - ('u', 'update-cache', None, _("update cvs log cache")), - ('x', 'new-cache', None, _("create new cvs log cache")), - ('z', 'fuzz', 60, _('set commit time fuzz in seconds')), - ('', 'root', '', _('specify cvsroot')), - # Options specific to builtin cvsps - ('', 'parents', '', _('show parent changesets')), - ('', 'ancestors', '', _('show current changeset in ancestor branches')), - # Options that are ignored for compatibility with cvsps-2.1 - ('A', 'cvs-direct', None, _('ignored for compatibility')), - ], - _('hg debugcvsps [OPTION]... [PATH]...')), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.pyo deleted file mode 100644 index 892b438..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/__init__.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.py deleted file mode 100644 index cc16258..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.py +++ /dev/null @@ -1,260 +0,0 @@ -# bzr.py - bzr support for the convert extension -# -# Copyright 2008, 2009 Marek Kubica and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -# This module is for handling 'bzr', that was formerly known as Bazaar-NG; -# it cannot access 'bar' repositories, but they were never used very much - -import os -from mercurial import demandimport -# these do not work with demandimport, blacklist -demandimport.ignore.extend([ - 'bzrlib.transactions', - 'bzrlib.urlutils', - 'ElementPath', - ]) - -from mercurial.i18n import _ -from mercurial import util -from common import NoRepo, commit, converter_source - -try: - # bazaar imports - from bzrlib import branch, revision, errors - from bzrlib.revisionspec import RevisionSpec -except ImportError: - pass - -supportedkinds = ('file', 'symlink') - -class bzr_source(converter_source): - """Reads Bazaar repositories by using the Bazaar Python libraries""" - - def __init__(self, ui, path, rev=None): - super(bzr_source, self).__init__(ui, path, rev=rev) - - if not os.path.exists(os.path.join(path, '.bzr')): - raise NoRepo(_('%s does not look like a Bazaar repository') - % path) - - try: - # access bzrlib stuff - branch - except NameError: - raise NoRepo(_('Bazaar modules could not be loaded')) - - path = os.path.abspath(path) - self._checkrepotype(path) - self.branch = branch.Branch.open(path) - self.sourcerepo = self.branch.repository - self._parentids = {} - - def _checkrepotype(self, path): - # Lightweight checkouts detection is informational but probably - # fragile at API level. It should not terminate the conversion. - try: - from bzrlib import bzrdir - dir = bzrdir.BzrDir.open_containing(path)[0] - try: - tree = dir.open_workingtree(recommend_upgrade=False) - branch = tree.branch - except (errors.NoWorkingTree, errors.NotLocalUrl): - tree = None - branch = dir.open_branch() - if (tree is not None and tree.bzrdir.root_transport.base != - branch.bzrdir.root_transport.base): - self.ui.warn(_('warning: lightweight checkouts may cause ' - 'conversion failures, try with a regular ' - 'branch instead.\n')) - except: - self.ui.note(_('bzr source type could not be determined\n')) - - def before(self): - """Before the conversion begins, acquire a read lock - for all the operations that might need it. Fortunately - read locks don't block other reads or writes to the - repository, so this shouldn't have any impact on the usage of - the source repository. - - The alternative would be locking on every operation that - needs locks (there are currently two: getting the file and - getting the parent map) and releasing immediately after, - but this approach can take even 40% longer.""" - self.sourcerepo.lock_read() - - def after(self): - self.sourcerepo.unlock() - - def getheads(self): - if not self.rev: - return [self.branch.last_revision()] - try: - r = RevisionSpec.from_string(self.rev) - info = r.in_history(self.branch) - except errors.BzrError: - raise util.Abort(_('%s is not a valid revision in current branch') - % self.rev) - return [info.rev_id] - - def getfile(self, name, rev): - revtree = self.sourcerepo.revision_tree(rev) - fileid = revtree.path2id(name.decode(self.encoding or 'utf-8')) - kind = None - if fileid is not None: - kind = revtree.kind(fileid) - if kind not in supportedkinds: - # the file is not available anymore - was deleted - raise IOError(_('%s is not available in %s anymore') % - (name, rev)) - mode = self._modecache[(name, rev)] - if kind == 'symlink': - target = revtree.get_symlink_target(fileid) - if target is None: - raise util.Abort(_('%s.%s symlink has no target') - % (name, rev)) - return target, mode - else: - sio = revtree.get_file(fileid) - return sio.read(), mode - - def getchanges(self, version): - # set up caches: modecache and revtree - self._modecache = {} - self._revtree = self.sourcerepo.revision_tree(version) - # get the parentids from the cache - parentids = self._parentids.pop(version) - # only diff against first parent id - prevtree = self.sourcerepo.revision_tree(parentids[0]) - return self._gettreechanges(self._revtree, prevtree) - - def getcommit(self, version): - rev = self.sourcerepo.get_revision(version) - # populate parent id cache - if not rev.parent_ids: - parents = [] - self._parentids[version] = (revision.NULL_REVISION,) - else: - parents = self._filterghosts(rev.parent_ids) - self._parentids[version] = parents - - return commit(parents=parents, - date='%d %d' % (rev.timestamp, -rev.timezone), - author=self.recode(rev.committer), - # bzr returns bytestrings or unicode, depending on the content - desc=self.recode(rev.message), - rev=version) - - def gettags(self): - if not self.branch.supports_tags(): - return {} - tagdict = self.branch.tags.get_tag_dict() - bytetags = {} - for name, rev in tagdict.iteritems(): - bytetags[self.recode(name)] = rev - return bytetags - - def getchangedfiles(self, rev, i): - self._modecache = {} - curtree = self.sourcerepo.revision_tree(rev) - if i is not None: - parentid = self._parentids[rev][i] - else: - # no parent id, get the empty revision - parentid = revision.NULL_REVISION - - prevtree = self.sourcerepo.revision_tree(parentid) - changes = [e[0] for e in self._gettreechanges(curtree, prevtree)[0]] - return changes - - def _gettreechanges(self, current, origin): - revid = current._revision_id - changes = [] - renames = {} - for (fileid, paths, changed_content, versioned, parent, name, - kind, executable) in current.iter_changes(origin): - - if paths[0] == u'' or paths[1] == u'': - # ignore changes to tree root - continue - - # bazaar tracks directories, mercurial does not, so - # we have to rename the directory contents - if kind[1] == 'directory': - if kind[0] not in (None, 'directory'): - # Replacing 'something' with a directory, record it - # so it can be removed. - changes.append((self.recode(paths[0]), revid)) - - if None not in paths and paths[0] != paths[1]: - # neither an add nor an delete - a move - # rename all directory contents manually - subdir = origin.inventory.path2id(paths[0]) - # get all child-entries of the directory - for name, entry in origin.inventory.iter_entries(subdir): - # hg does not track directory renames - if entry.kind == 'directory': - continue - frompath = self.recode(paths[0] + '/' + name) - topath = self.recode(paths[1] + '/' + name) - # register the files as changed - changes.append((frompath, revid)) - changes.append((topath, revid)) - # add to mode cache - mode = ((entry.executable and 'x') - or (entry.kind == 'symlink' and 's') - or '') - self._modecache[(topath, revid)] = mode - # register the change as move - renames[topath] = frompath - - # no futher changes, go to the next change - continue - - # we got unicode paths, need to convert them - path, topath = [self.recode(part) for part in paths] - - if topath is None: - # file deleted - changes.append((path, revid)) - continue - - # renamed - if path and path != topath: - renames[topath] = path - changes.append((path, revid)) - - # populate the mode cache - kind, executable = [e[1] for e in (kind, executable)] - mode = ((executable and 'x') or (kind == 'symlink' and 'l') - or '') - self._modecache[(topath, revid)] = mode - changes.append((topath, revid)) - - return changes, renames - - def _filterghosts(self, ids): - """Filters out ghost revisions which hg does not support, see - - """ - parentmap = self.sourcerepo.get_parent_map(ids) - parents = tuple([parent for parent in ids if parent in parentmap]) - return parents - - def recode(self, s, encoding=None): - """This version of recode tries to encode unicode to bytecode, - and preferably using the UTF-8 codec. - Other types than Unicode are silently returned, this is by - intention, e.g. the None-type is not going to be encoded but instead - just passed through - """ - if not encoding: - encoding = self.encoding or 'utf-8' - - if isinstance(s, unicode): - return s.encode(encoding) - else: - # leave it alone - return s diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.pyo deleted file mode 100644 index ab47e99..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/bzr.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.py deleted file mode 100644 index fb3865f..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.py +++ /dev/null @@ -1,389 +0,0 @@ -# common.py - common code for the convert extension -# -# Copyright 2005-2009 Matt Mackall and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import base64, errno -import os -import cPickle as pickle -from mercurial import util -from mercurial.i18n import _ - -def encodeargs(args): - def encodearg(s): - lines = base64.encodestring(s) - lines = [l.splitlines()[0] for l in lines] - return ''.join(lines) - - s = pickle.dumps(args) - return encodearg(s) - -def decodeargs(s): - s = base64.decodestring(s) - return pickle.loads(s) - -class MissingTool(Exception): - pass - -def checktool(exe, name=None, abort=True): - name = name or exe - if not util.find_exe(exe): - exc = abort and util.Abort or MissingTool - raise exc(_('cannot find required "%s" tool') % name) - -class NoRepo(Exception): - pass - -SKIPREV = 'SKIP' - -class commit(object): - def __init__(self, author, date, desc, parents, branch=None, rev=None, - extra={}, sortkey=None): - self.author = author or 'unknown' - self.date = date or '0 0' - self.desc = desc - self.parents = parents - self.branch = branch - self.rev = rev - self.extra = extra - self.sortkey = sortkey - -class converter_source(object): - """Conversion source interface""" - - def __init__(self, ui, path=None, rev=None): - """Initialize conversion source (or raise NoRepo("message") - exception if path is not a valid repository)""" - self.ui = ui - self.path = path - self.rev = rev - - self.encoding = 'utf-8' - - def before(self): - pass - - def after(self): - pass - - def setrevmap(self, revmap): - """set the map of already-converted revisions""" - pass - - def getheads(self): - """Return a list of this repository's heads""" - raise NotImplementedError() - - def getfile(self, name, rev): - """Return a pair (data, mode) where data is the file content - as a string and mode one of '', 'x' or 'l'. rev is the - identifier returned by a previous call to getchanges(). Raise - IOError to indicate that name was deleted in rev. - """ - raise NotImplementedError() - - def getchanges(self, version): - """Returns a tuple of (files, copies). - - files is a sorted list of (filename, id) tuples for all files - changed between version and its first parent returned by - getcommit(). id is the source revision id of the file. - - copies is a dictionary of dest: source - """ - raise NotImplementedError() - - def getcommit(self, version): - """Return the commit object for version""" - raise NotImplementedError() - - def gettags(self): - """Return the tags as a dictionary of name: revision - - Tag names must be UTF-8 strings. - """ - raise NotImplementedError() - - def recode(self, s, encoding=None): - if not encoding: - encoding = self.encoding or 'utf-8' - - if isinstance(s, unicode): - return s.encode("utf-8") - try: - return s.decode(encoding).encode("utf-8") - except: - try: - return s.decode("latin-1").encode("utf-8") - except: - return s.decode(encoding, "replace").encode("utf-8") - - def getchangedfiles(self, rev, i): - """Return the files changed by rev compared to parent[i]. - - i is an index selecting one of the parents of rev. The return - value should be the list of files that are different in rev and - this parent. - - If rev has no parents, i is None. - - This function is only needed to support --filemap - """ - raise NotImplementedError() - - def converted(self, rev, sinkrev): - '''Notify the source that a revision has been converted.''' - pass - - def hasnativeorder(self): - """Return true if this source has a meaningful, native revision - order. For instance, Mercurial revisions are store sequentially - while there is no such global ordering with Darcs. - """ - return False - - def lookuprev(self, rev): - """If rev is a meaningful revision reference in source, return - the referenced identifier in the same format used by getcommit(). - return None otherwise. - """ - return None - -class converter_sink(object): - """Conversion sink (target) interface""" - - def __init__(self, ui, path): - """Initialize conversion sink (or raise NoRepo("message") - exception if path is not a valid repository) - - created is a list of paths to remove if a fatal error occurs - later""" - self.ui = ui - self.path = path - self.created = [] - - def getheads(self): - """Return a list of this repository's heads""" - raise NotImplementedError() - - def revmapfile(self): - """Path to a file that will contain lines - source_rev_id sink_rev_id - mapping equivalent revision identifiers for each system.""" - raise NotImplementedError() - - def authorfile(self): - """Path to a file that will contain lines - srcauthor=dstauthor - mapping equivalent authors identifiers for each system.""" - return None - - def putcommit(self, files, copies, parents, commit, source, revmap): - """Create a revision with all changed files listed in 'files' - and having listed parents. 'commit' is a commit object - containing at a minimum the author, date, and message for this - changeset. 'files' is a list of (path, version) tuples, - 'copies' is a dictionary mapping destinations to sources, - 'source' is the source repository, and 'revmap' is a mapfile - of source revisions to converted revisions. Only getfile() and - lookuprev() should be called on 'source'. - - Note that the sink repository is not told to update itself to - a particular revision (or even what that revision would be) - before it receives the file data. - """ - raise NotImplementedError() - - def puttags(self, tags): - """Put tags into sink. - - tags: {tagname: sink_rev_id, ...} where tagname is an UTF-8 string. - Return a pair (tag_revision, tag_parent_revision), or (None, None) - if nothing was changed. - """ - raise NotImplementedError() - - def setbranch(self, branch, pbranches): - """Set the current branch name. Called before the first putcommit - on the branch. - branch: branch name for subsequent commits - pbranches: (converted parent revision, parent branch) tuples""" - pass - - def setfilemapmode(self, active): - """Tell the destination that we're using a filemap - - Some converter_sources (svn in particular) can claim that a file - was changed in a revision, even if there was no change. This method - tells the destination that we're using a filemap and that it should - filter empty revisions. - """ - pass - - def before(self): - pass - - def after(self): - pass - - -class commandline(object): - def __init__(self, ui, command): - self.ui = ui - self.command = command - - def prerun(self): - pass - - def postrun(self): - pass - - def _cmdline(self, cmd, *args, **kwargs): - cmdline = [self.command, cmd] + list(args) - for k, v in kwargs.iteritems(): - if len(k) == 1: - cmdline.append('-' + k) - else: - cmdline.append('--' + k.replace('_', '-')) - try: - if len(k) == 1: - cmdline.append('' + v) - else: - cmdline[-1] += '=' + v - except TypeError: - pass - cmdline = [util.shellquote(arg) for arg in cmdline] - if not self.ui.debugflag: - cmdline += ['2>', util.nulldev] - cmdline += ['<', util.nulldev] - cmdline = ' '.join(cmdline) - return cmdline - - def _run(self, cmd, *args, **kwargs): - cmdline = self._cmdline(cmd, *args, **kwargs) - self.ui.debug('running: %s\n' % (cmdline,)) - self.prerun() - try: - return util.popen(cmdline) - finally: - self.postrun() - - def run(self, cmd, *args, **kwargs): - fp = self._run(cmd, *args, **kwargs) - output = fp.read() - self.ui.debug(output) - return output, fp.close() - - def runlines(self, cmd, *args, **kwargs): - fp = self._run(cmd, *args, **kwargs) - output = fp.readlines() - self.ui.debug(''.join(output)) - return output, fp.close() - - def checkexit(self, status, output=''): - if status: - if output: - self.ui.warn(_('%s error:\n') % self.command) - self.ui.warn(output) - msg = util.explain_exit(status)[0] - raise util.Abort('%s %s' % (self.command, msg)) - - def run0(self, cmd, *args, **kwargs): - output, status = self.run(cmd, *args, **kwargs) - self.checkexit(status, output) - return output - - def runlines0(self, cmd, *args, **kwargs): - output, status = self.runlines(cmd, *args, **kwargs) - self.checkexit(status, ''.join(output)) - return output - - def getargmax(self): - if '_argmax' in self.__dict__: - return self._argmax - - # POSIX requires at least 4096 bytes for ARG_MAX - self._argmax = 4096 - try: - self._argmax = os.sysconf("SC_ARG_MAX") - except: - pass - - # Windows shells impose their own limits on command line length, - # down to 2047 bytes for cmd.exe under Windows NT/2k and 2500 bytes - # for older 4nt.exe. See http://support.microsoft.com/kb/830473 for - # details about cmd.exe limitations. - - # Since ARG_MAX is for command line _and_ environment, lower our limit - # (and make happy Windows shells while doing this). - - self._argmax = self._argmax / 2 - 1 - return self._argmax - - def limit_arglist(self, arglist, cmd, *args, **kwargs): - limit = self.getargmax() - len(self._cmdline(cmd, *args, **kwargs)) - bytes = 0 - fl = [] - for fn in arglist: - b = len(fn) + 3 - if bytes + b < limit or len(fl) == 0: - fl.append(fn) - bytes += b - else: - yield fl - fl = [fn] - bytes = b - if fl: - yield fl - - def xargs(self, arglist, cmd, *args, **kwargs): - for l in self.limit_arglist(arglist, cmd, *args, **kwargs): - self.run0(cmd, *(list(args) + l), **kwargs) - -class mapfile(dict): - def __init__(self, ui, path): - super(mapfile, self).__init__() - self.ui = ui - self.path = path - self.fp = None - self.order = [] - self._read() - - def _read(self): - if not self.path: - return - try: - fp = open(self.path, 'r') - except IOError, err: - if err.errno != errno.ENOENT: - raise - return - for i, line in enumerate(fp): - try: - key, value = line.splitlines()[0].rsplit(' ', 1) - except ValueError: - raise util.Abort( - _('syntax error in %s(%d): key/value pair expected') - % (self.path, i + 1)) - if key not in self: - self.order.append(key) - super(mapfile, self).__setitem__(key, value) - fp.close() - - def __setitem__(self, key, value): - if self.fp is None: - try: - self.fp = open(self.path, 'a') - except IOError, err: - raise util.Abort(_('could not open map file %r: %s') % - (self.path, err.strerror)) - self.fp.write('%s %s\n' % (key, value)) - self.fp.flush() - super(mapfile, self).__setitem__(key, value) - - def close(self): - if self.fp: - self.fp.close() - self.fp = None diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.pyo deleted file mode 100644 index de20000..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/common.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.py deleted file mode 100644 index ac91b41..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.py +++ /dev/null @@ -1,434 +0,0 @@ -# convcmd - convert extension commands definition -# -# Copyright 2005-2007 Matt Mackall -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -from common import NoRepo, MissingTool, SKIPREV, mapfile -from cvs import convert_cvs -from darcs import darcs_source -from git import convert_git -from hg import mercurial_source, mercurial_sink -from subversion import svn_source, svn_sink -from monotone import monotone_source -from gnuarch import gnuarch_source -from bzr import bzr_source -from p4 import p4_source -import filemap - -import os, shutil -from mercurial import hg, util, encoding -from mercurial.i18n import _ - -orig_encoding = 'ascii' - -def recode(s): - if isinstance(s, unicode): - return s.encode(orig_encoding, 'replace') - else: - return s.decode('utf-8').encode(orig_encoding, 'replace') - -source_converters = [ - ('cvs', convert_cvs, 'branchsort'), - ('git', convert_git, 'branchsort'), - ('svn', svn_source, 'branchsort'), - ('hg', mercurial_source, 'sourcesort'), - ('darcs', darcs_source, 'branchsort'), - ('mtn', monotone_source, 'branchsort'), - ('gnuarch', gnuarch_source, 'branchsort'), - ('bzr', bzr_source, 'branchsort'), - ('p4', p4_source, 'branchsort'), - ] - -sink_converters = [ - ('hg', mercurial_sink), - ('svn', svn_sink), - ] - -def convertsource(ui, path, type, rev): - exceptions = [] - if type and type not in [s[0] for s in source_converters]: - raise util.Abort(_('%s: invalid source repository type') % type) - for name, source, sortmode in source_converters: - try: - if not type or name == type: - return source(ui, path, rev), sortmode - except (NoRepo, MissingTool), inst: - exceptions.append(inst) - if not ui.quiet: - for inst in exceptions: - ui.write("%s\n" % inst) - raise util.Abort(_('%s: missing or unsupported repository') % path) - -def convertsink(ui, path, type): - if type and type not in [s[0] for s in sink_converters]: - raise util.Abort(_('%s: invalid destination repository type') % type) - for name, sink in sink_converters: - try: - if not type or name == type: - return sink(ui, path) - except NoRepo, inst: - ui.note(_("convert: %s\n") % inst) - raise util.Abort(_('%s: unknown repository type') % path) - -class progresssource(object): - def __init__(self, ui, source, filecount): - self.ui = ui - self.source = source - self.filecount = filecount - self.retrieved = 0 - - def getfile(self, file, rev): - self.retrieved += 1 - self.ui.progress(_('getting files'), self.retrieved, - item=file, total=self.filecount) - return self.source.getfile(file, rev) - - def lookuprev(self, rev): - return self.source.lookuprev(rev) - - def close(self): - self.ui.progress(_('getting files'), None) - -class converter(object): - def __init__(self, ui, source, dest, revmapfile, opts): - - self.source = source - self.dest = dest - self.ui = ui - self.opts = opts - self.commitcache = {} - self.authors = {} - self.authorfile = None - - # Record converted revisions persistently: maps source revision - # ID to target revision ID (both strings). (This is how - # incremental conversions work.) - self.map = mapfile(ui, revmapfile) - - # Read first the dst author map if any - authorfile = self.dest.authorfile() - if authorfile and os.path.exists(authorfile): - self.readauthormap(authorfile) - # Extend/Override with new author map if necessary - if opts.get('authormap'): - self.readauthormap(opts.get('authormap')) - self.authorfile = self.dest.authorfile() - - self.splicemap = mapfile(ui, opts.get('splicemap')) - self.branchmap = mapfile(ui, opts.get('branchmap')) - - def walktree(self, heads): - '''Return a mapping that identifies the uncommitted parents of every - uncommitted changeset.''' - visit = heads - known = set() - parents = {} - while visit: - n = visit.pop(0) - if n in known or n in self.map: - continue - known.add(n) - self.ui.progress(_('scanning'), len(known), unit=_('revisions')) - commit = self.cachecommit(n) - parents[n] = [] - for p in commit.parents: - parents[n].append(p) - visit.append(p) - self.ui.progress(_('scanning'), None) - - return parents - - def toposort(self, parents, sortmode): - '''Return an ordering such that every uncommitted changeset is - preceeded by all its uncommitted ancestors.''' - - def mapchildren(parents): - """Return a (children, roots) tuple where 'children' maps parent - revision identifiers to children ones, and 'roots' is the list of - revisions without parents. 'parents' must be a mapping of revision - identifier to its parents ones. - """ - visit = parents.keys() - seen = set() - children = {} - roots = [] - - while visit: - n = visit.pop(0) - if n in seen: - continue - seen.add(n) - # Ensure that nodes without parents are present in the - # 'children' mapping. - children.setdefault(n, []) - hasparent = False - for p in parents[n]: - if not p in self.map: - visit.append(p) - hasparent = True - children.setdefault(p, []).append(n) - if not hasparent: - roots.append(n) - - return children, roots - - # Sort functions are supposed to take a list of revisions which - # can be converted immediately and pick one - - def makebranchsorter(): - """If the previously converted revision has a child in the - eligible revisions list, pick it. Return the list head - otherwise. Branch sort attempts to minimize branch - switching, which is harmful for Mercurial backend - compression. - """ - prev = [None] - def picknext(nodes): - next = nodes[0] - for n in nodes: - if prev[0] in parents[n]: - next = n - break - prev[0] = next - return next - return picknext - - def makesourcesorter(): - """Source specific sort.""" - keyfn = lambda n: self.commitcache[n].sortkey - def picknext(nodes): - return sorted(nodes, key=keyfn)[0] - return picknext - - def makedatesorter(): - """Sort revisions by date.""" - dates = {} - def getdate(n): - if n not in dates: - dates[n] = util.parsedate(self.commitcache[n].date) - return dates[n] - - def picknext(nodes): - return min([(getdate(n), n) for n in nodes])[1] - - return picknext - - if sortmode == 'branchsort': - picknext = makebranchsorter() - elif sortmode == 'datesort': - picknext = makedatesorter() - elif sortmode == 'sourcesort': - picknext = makesourcesorter() - else: - raise util.Abort(_('unknown sort mode: %s') % sortmode) - - children, actives = mapchildren(parents) - - s = [] - pendings = {} - while actives: - n = picknext(actives) - actives.remove(n) - s.append(n) - - # Update dependents list - for c in children.get(n, []): - if c not in pendings: - pendings[c] = [p for p in parents[c] if p not in self.map] - try: - pendings[c].remove(n) - except ValueError: - raise util.Abort(_('cycle detected between %s and %s') - % (recode(c), recode(n))) - if not pendings[c]: - # Parents are converted, node is eligible - actives.insert(0, c) - pendings[c] = None - - if len(s) != len(parents): - raise util.Abort(_("not all revisions were sorted")) - - return s - - def writeauthormap(self): - authorfile = self.authorfile - if authorfile: - self.ui.status(_('Writing author map file %s\n') % authorfile) - ofile = open(authorfile, 'w+') - for author in self.authors: - ofile.write("%s=%s\n" % (author, self.authors[author])) - ofile.close() - - def readauthormap(self, authorfile): - afile = open(authorfile, 'r') - for line in afile: - - line = line.strip() - if not line or line.startswith('#'): - continue - - try: - srcauthor, dstauthor = line.split('=', 1) - except ValueError: - msg = _('Ignoring bad line in author map file %s: %s\n') - self.ui.warn(msg % (authorfile, line.rstrip())) - continue - - srcauthor = srcauthor.strip() - dstauthor = dstauthor.strip() - if self.authors.get(srcauthor) in (None, dstauthor): - msg = _('mapping author %s to %s\n') - self.ui.debug(msg % (srcauthor, dstauthor)) - self.authors[srcauthor] = dstauthor - continue - - m = _('overriding mapping for author %s, was %s, will be %s\n') - self.ui.status(m % (srcauthor, self.authors[srcauthor], dstauthor)) - - afile.close() - - def cachecommit(self, rev): - commit = self.source.getcommit(rev) - commit.author = self.authors.get(commit.author, commit.author) - commit.branch = self.branchmap.get(commit.branch, commit.branch) - self.commitcache[rev] = commit - return commit - - def copy(self, rev): - commit = self.commitcache[rev] - - changes = self.source.getchanges(rev) - if isinstance(changes, basestring): - if changes == SKIPREV: - dest = SKIPREV - else: - dest = self.map[changes] - self.map[rev] = dest - return - files, copies = changes - pbranches = [] - if commit.parents: - for prev in commit.parents: - if prev not in self.commitcache: - self.cachecommit(prev) - pbranches.append((self.map[prev], - self.commitcache[prev].branch)) - self.dest.setbranch(commit.branch, pbranches) - try: - parents = self.splicemap[rev].replace(',', ' ').split() - self.ui.status(_('spliced in %s as parents of %s\n') % - (parents, rev)) - parents = [self.map.get(p, p) for p in parents] - except KeyError: - parents = [b[0] for b in pbranches] - source = progresssource(self.ui, self.source, len(files)) - newnode = self.dest.putcommit(files, copies, parents, commit, - source, self.map) - source.close() - self.source.converted(rev, newnode) - self.map[rev] = newnode - - def convert(self, sortmode): - try: - self.source.before() - self.dest.before() - self.source.setrevmap(self.map) - self.ui.status(_("scanning source...\n")) - heads = self.source.getheads() - parents = self.walktree(heads) - self.ui.status(_("sorting...\n")) - t = self.toposort(parents, sortmode) - num = len(t) - c = None - - self.ui.status(_("converting...\n")) - for i, c in enumerate(t): - num -= 1 - desc = self.commitcache[c].desc - if "\n" in desc: - desc = desc.splitlines()[0] - # convert log message to local encoding without using - # tolocal() because the encoding.encoding convert() - # uses is 'utf-8' - self.ui.status("%d %s\n" % (num, recode(desc))) - self.ui.note(_("source: %s\n") % recode(c)) - self.ui.progress(_('converting'), i, unit=_('revisions'), - total=len(t)) - self.copy(c) - self.ui.progress(_('converting'), None) - - tags = self.source.gettags() - ctags = {} - for k in tags: - v = tags[k] - if self.map.get(v, SKIPREV) != SKIPREV: - ctags[k] = self.map[v] - - if c and ctags: - nrev, tagsparent = self.dest.puttags(ctags) - if nrev and tagsparent: - # write another hash correspondence to override the previous - # one so we don't end up with extra tag heads - tagsparents = [e for e in self.map.iteritems() - if e[1] == tagsparent] - if tagsparents: - self.map[tagsparents[0][0]] = nrev - - self.writeauthormap() - finally: - self.cleanup() - - def cleanup(self): - try: - self.dest.after() - finally: - self.source.after() - self.map.close() - -def convert(ui, src, dest=None, revmapfile=None, **opts): - global orig_encoding - orig_encoding = encoding.encoding - encoding.encoding = 'UTF-8' - - # support --authors as an alias for --authormap - if not opts.get('authormap'): - opts['authormap'] = opts.get('authors') - - if not dest: - dest = hg.defaultdest(src) + "-hg" - ui.status(_("assuming destination %s\n") % dest) - - destc = convertsink(ui, dest, opts.get('dest_type')) - - try: - srcc, defaultsort = convertsource(ui, src, opts.get('source_type'), - opts.get('rev')) - except Exception: - for path in destc.created: - shutil.rmtree(path, True) - raise - - sortmodes = ('branchsort', 'datesort', 'sourcesort') - sortmode = [m for m in sortmodes if opts.get(m)] - if len(sortmode) > 1: - raise util.Abort(_('more than one sort mode specified')) - sortmode = sortmode and sortmode[0] or defaultsort - if sortmode == 'sourcesort' and not srcc.hasnativeorder(): - raise util.Abort(_('--sourcesort is not supported by this data source')) - - fmap = opts.get('filemap') - if fmap: - srcc = filemap.filemap_source(ui, srcc, fmap) - destc.setfilemapmode(True) - - if not revmapfile: - try: - revmapfile = destc.revmapfile() - except: - revmapfile = os.path.join(destc, "map") - - c = converter(ui, srcc, destc, revmapfile, opts) - c.convert(sortmode) - diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.pyo deleted file mode 100644 index 15f040a..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/convcmd.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.py deleted file mode 100644 index 501fae2..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.py +++ /dev/null @@ -1,271 +0,0 @@ -# cvs.py: CVS conversion code inspired by hg-cvs-import and git-cvsimport -# -# Copyright 2005-2009 Matt Mackall and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import os, re, socket, errno -from cStringIO import StringIO -from mercurial import encoding, util -from mercurial.i18n import _ - -from common import NoRepo, commit, converter_source, checktool -import cvsps - -class convert_cvs(converter_source): - def __init__(self, ui, path, rev=None): - super(convert_cvs, self).__init__(ui, path, rev=rev) - - cvs = os.path.join(path, "CVS") - if not os.path.exists(cvs): - raise NoRepo(_("%s does not look like a CVS checkout") % path) - - checktool('cvs') - - self.changeset = None - self.files = {} - self.tags = {} - self.lastbranch = {} - self.socket = None - self.cvsroot = open(os.path.join(cvs, "Root")).read()[:-1] - self.cvsrepo = open(os.path.join(cvs, "Repository")).read()[:-1] - self.encoding = encoding.encoding - - self._connect() - - def _parse(self): - if self.changeset is not None: - return - self.changeset = {} - - maxrev = 0 - if self.rev: - # TODO: handle tags - try: - # patchset number? - maxrev = int(self.rev) - except ValueError: - raise util.Abort(_('revision %s is not a patchset number') - % self.rev) - - d = os.getcwd() - try: - os.chdir(self.path) - id = None - - cache = 'update' - if not self.ui.configbool('convert', 'cvsps.cache', True): - cache = None - db = cvsps.createlog(self.ui, cache=cache) - db = cvsps.createchangeset(self.ui, db, - fuzz=int(self.ui.config('convert', 'cvsps.fuzz', 60)), - mergeto=self.ui.config('convert', 'cvsps.mergeto', None), - mergefrom=self.ui.config('convert', 'cvsps.mergefrom', None)) - - for cs in db: - if maxrev and cs.id > maxrev: - break - id = str(cs.id) - cs.author = self.recode(cs.author) - self.lastbranch[cs.branch] = id - cs.comment = self.recode(cs.comment) - date = util.datestr(cs.date) - self.tags.update(dict.fromkeys(cs.tags, id)) - - files = {} - for f in cs.entries: - files[f.file] = "%s%s" % ('.'.join([str(x) - for x in f.revision]), - ['', '(DEAD)'][f.dead]) - - # add current commit to set - c = commit(author=cs.author, date=date, - parents=[str(p.id) for p in cs.parents], - desc=cs.comment, branch=cs.branch or '') - self.changeset[id] = c - self.files[id] = files - - self.heads = self.lastbranch.values() - finally: - os.chdir(d) - - def _connect(self): - root = self.cvsroot - conntype = None - user, host = None, None - cmd = ['cvs', 'server'] - - self.ui.status(_("connecting to %s\n") % root) - - if root.startswith(":pserver:"): - root = root[9:] - m = re.match(r'(?:(.*?)(?::(.*?))?@)?([^:\/]*)(?::(\d*))?(.*)', - root) - if m: - conntype = "pserver" - user, passw, serv, port, root = m.groups() - if not user: - user = "anonymous" - if not port: - port = 2401 - else: - port = int(port) - format0 = ":pserver:%s@%s:%s" % (user, serv, root) - format1 = ":pserver:%s@%s:%d%s" % (user, serv, port, root) - - if not passw: - passw = "A" - cvspass = os.path.expanduser("~/.cvspass") - try: - pf = open(cvspass) - for line in pf.read().splitlines(): - part1, part2 = line.split(' ', 1) - if part1 == '/1': - # /1 :pserver:user@example.com:2401/cvsroot/foo Ah 0: - data = fp.read(min(count, chunksize)) - if not data: - raise util.Abort(_("%d bytes missing from remote file") - % count) - count -= len(data) - output.write(data) - return output.getvalue() - - self._parse() - if rev.endswith("(DEAD)"): - raise IOError - - args = ("-N -P -kk -r %s --" % rev).split() - args.append(self.cvsrepo + '/' + name) - for x in args: - self.writep.write("Argument %s\n" % x) - self.writep.write("Directory .\n%s\nco\n" % self.realroot) - self.writep.flush() - - data = "" - mode = None - while 1: - line = self.readp.readline() - if line.startswith("Created ") or line.startswith("Updated "): - self.readp.readline() # path - self.readp.readline() # entries - mode = self.readp.readline()[:-1] - count = int(self.readp.readline()[:-1]) - data = chunkedread(self.readp, count) - elif line.startswith(" "): - data += line[1:] - elif line.startswith("M "): - pass - elif line.startswith("Mbinary "): - count = int(self.readp.readline()[:-1]) - data = chunkedread(self.readp, count) - else: - if line == "ok\n": - if mode is None: - raise util.Abort(_('malformed response from CVS')) - return (data, "x" in mode and "x" or "") - elif line.startswith("E "): - self.ui.warn(_("cvs server: %s\n") % line[2:]) - elif line.startswith("Remove"): - self.readp.readline() - else: - raise util.Abort(_("unknown CVS response: %s") % line) - - def getchanges(self, rev): - self._parse() - return sorted(self.files[rev].iteritems()), {} - - def getcommit(self, rev): - self._parse() - return self.changeset[rev] - - def gettags(self): - self._parse() - return self.tags - - def getchangedfiles(self, rev, i): - self._parse() - return sorted(self.files[rev]) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.pyo deleted file mode 100644 index d73fe3f..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvs.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.py deleted file mode 100644 index 1519d41..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.py +++ /dev/null @@ -1,847 +0,0 @@ -# Mercurial built-in replacement for cvsps. -# -# Copyright 2008, Frank Kingswood -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import os -import re -import cPickle as pickle -from mercurial import util -from mercurial.i18n import _ -from mercurial import hook - -class logentry(object): - '''Class logentry has the following attributes: - .author - author name as CVS knows it - .branch - name of branch this revision is on - .branches - revision tuple of branches starting at this revision - .comment - commit message - .date - the commit date as a (time, tz) tuple - .dead - true if file revision is dead - .file - Name of file - .lines - a tuple (+lines, -lines) or None - .parent - Previous revision of this entry - .rcs - name of file as returned from CVS - .revision - revision number as tuple - .tags - list of tags on the file - .synthetic - is this a synthetic "file ... added on ..." revision? - .mergepoint- the branch that has been merged from - (if present in rlog output) - .branchpoints- the branches that start at the current entry - ''' - def __init__(self, **entries): - self.synthetic = False - self.__dict__.update(entries) - - def __repr__(self): - return "<%s at 0x%x: %s %s>" % (self.__class__.__name__, - id(self), - self.file, - ".".join(map(str, self.revision))) - -class logerror(Exception): - pass - -def getrepopath(cvspath): - """Return the repository path from a CVS path. - - >>> getrepopath('/foo/bar') - '/foo/bar' - >>> getrepopath('c:/foo/bar') - 'c:/foo/bar' - >>> getrepopath(':pserver:10/foo/bar') - '/foo/bar' - >>> getrepopath(':pserver:10c:/foo/bar') - '/foo/bar' - >>> getrepopath(':pserver:/foo/bar') - '/foo/bar' - >>> getrepopath(':pserver:c:/foo/bar') - 'c:/foo/bar' - >>> getrepopath(':pserver:truc@foo.bar:/foo/bar') - '/foo/bar' - >>> getrepopath(':pserver:truc@foo.bar:c:/foo/bar') - 'c:/foo/bar' - """ - # According to CVS manual, CVS paths are expressed like: - # [:method:][[user][:password]@]hostname[:[port]]/path/to/repository - # - # Unfortunately, Windows absolute paths start with a drive letter - # like 'c:' making it harder to parse. Here we assume that drive - # letters are only one character long and any CVS component before - # the repository path is at least 2 characters long, and use this - # to disambiguate. - parts = cvspath.split(':') - if len(parts) == 1: - return parts[0] - # Here there is an ambiguous case if we have a port number - # immediately followed by a Windows driver letter. We assume this - # never happens and decide it must be CVS path component, - # therefore ignoring it. - if len(parts[-2]) > 1: - return parts[-1].lstrip('0123456789') - return parts[-2] + ':' + parts[-1] - -def createlog(ui, directory=None, root="", rlog=True, cache=None): - '''Collect the CVS rlog''' - - # Because we store many duplicate commit log messages, reusing strings - # saves a lot of memory and pickle storage space. - _scache = {} - def scache(s): - "return a shared version of a string" - return _scache.setdefault(s, s) - - ui.status(_('collecting CVS rlog\n')) - - log = [] # list of logentry objects containing the CVS state - - # patterns to match in CVS (r)log output, by state of use - re_00 = re.compile('RCS file: (.+)$') - re_01 = re.compile('cvs \\[r?log aborted\\]: (.+)$') - re_02 = re.compile('cvs (r?log|server): (.+)\n$') - re_03 = re.compile("(Cannot access.+CVSROOT)|" - "(can't create temporary directory.+)$") - re_10 = re.compile('Working file: (.+)$') - re_20 = re.compile('symbolic names:') - re_30 = re.compile('\t(.+): ([\\d.]+)$') - re_31 = re.compile('----------------------------$') - re_32 = re.compile('=======================================' - '======================================$') - re_50 = re.compile('revision ([\\d.]+)(\s+locked by:\s+.+;)?$') - re_60 = re.compile(r'date:\s+(.+);\s+author:\s+(.+);\s+state:\s+(.+?);' - r'(\s+lines:\s+(\+\d+)?\s+(-\d+)?;)?' - r'(.*mergepoint:\s+([^;]+);)?') - re_70 = re.compile('branches: (.+);$') - - file_added_re = re.compile(r'file [^/]+ was (initially )?added on branch') - - prefix = '' # leading path to strip of what we get from CVS - - if directory is None: - # Current working directory - - # Get the real directory in the repository - try: - prefix = open(os.path.join('CVS','Repository')).read().strip() - directory = prefix - if prefix == ".": - prefix = "" - except IOError: - raise logerror(_('not a CVS sandbox')) - - if prefix and not prefix.endswith(os.sep): - prefix += os.sep - - # Use the Root file in the sandbox, if it exists - try: - root = open(os.path.join('CVS','Root')).read().strip() - except IOError: - pass - - if not root: - root = os.environ.get('CVSROOT', '') - - # read log cache if one exists - oldlog = [] - date = None - - if cache: - cachedir = os.path.expanduser('~/.hg.cvsps') - if not os.path.exists(cachedir): - os.mkdir(cachedir) - - # The cvsps cache pickle needs a uniquified name, based on the - # repository location. The address may have all sort of nasties - # in it, slashes, colons and such. So here we take just the - # alphanumerics, concatenated in a way that does not mix up the - # various components, so that - # :pserver:user@server:/path - # and - # /pserver/user/server/path - # are mapped to different cache file names. - cachefile = root.split(":") + [directory, "cache"] - cachefile = ['-'.join(re.findall(r'\w+', s)) for s in cachefile if s] - cachefile = os.path.join(cachedir, - '.'.join([s for s in cachefile if s])) - - if cache == 'update': - try: - ui.note(_('reading cvs log cache %s\n') % cachefile) - oldlog = pickle.load(open(cachefile)) - ui.note(_('cache has %d log entries\n') % len(oldlog)) - except Exception, e: - ui.note(_('error reading cache: %r\n') % e) - - if oldlog: - date = oldlog[-1].date # last commit date as a (time,tz) tuple - date = util.datestr(date, '%Y/%m/%d %H:%M:%S %1%2') - - # build the CVS commandline - cmd = ['cvs', '-q'] - if root: - cmd.append('-d%s' % root) - p = util.normpath(getrepopath(root)) - if not p.endswith('/'): - p += '/' - if prefix: - # looks like normpath replaces "" by "." - prefix = p + util.normpath(prefix) - else: - prefix = p - cmd.append(['log', 'rlog'][rlog]) - if date: - # no space between option and date string - cmd.append('-d>%s' % date) - cmd.append(directory) - - # state machine begins here - tags = {} # dictionary of revisions on current file with their tags - branchmap = {} # mapping between branch names and revision numbers - state = 0 - store = False # set when a new record can be appended - - cmd = [util.shellquote(arg) for arg in cmd] - ui.note(_("running %s\n") % (' '.join(cmd))) - ui.debug("prefix=%r directory=%r root=%r\n" % (prefix, directory, root)) - - pfp = util.popen(' '.join(cmd)) - peek = pfp.readline() - while True: - line = peek - if line == '': - break - peek = pfp.readline() - if line.endswith('\n'): - line = line[:-1] - #ui.debug('state=%d line=%r\n' % (state, line)) - - if state == 0: - # initial state, consume input until we see 'RCS file' - match = re_00.match(line) - if match: - rcs = match.group(1) - tags = {} - if rlog: - filename = util.normpath(rcs[:-2]) - if filename.startswith(prefix): - filename = filename[len(prefix):] - if filename.startswith('/'): - filename = filename[1:] - if filename.startswith('Attic/'): - filename = filename[6:] - else: - filename = filename.replace('/Attic/', '/') - state = 2 - continue - state = 1 - continue - match = re_01.match(line) - if match: - raise logerror(match.group(1)) - match = re_02.match(line) - if match: - raise logerror(match.group(2)) - if re_03.match(line): - raise logerror(line) - - elif state == 1: - # expect 'Working file' (only when using log instead of rlog) - match = re_10.match(line) - assert match, _('RCS file must be followed by working file') - filename = util.normpath(match.group(1)) - state = 2 - - elif state == 2: - # expect 'symbolic names' - if re_20.match(line): - branchmap = {} - state = 3 - - elif state == 3: - # read the symbolic names and store as tags - match = re_30.match(line) - if match: - rev = [int(x) for x in match.group(2).split('.')] - - # Convert magic branch number to an odd-numbered one - revn = len(rev) - if revn > 3 and (revn % 2) == 0 and rev[-2] == 0: - rev = rev[:-2] + rev[-1:] - rev = tuple(rev) - - if rev not in tags: - tags[rev] = [] - tags[rev].append(match.group(1)) - branchmap[match.group(1)] = match.group(2) - - elif re_31.match(line): - state = 5 - elif re_32.match(line): - state = 0 - - elif state == 4: - # expecting '------' separator before first revision - if re_31.match(line): - state = 5 - else: - assert not re_32.match(line), _('must have at least ' - 'some revisions') - - elif state == 5: - # expecting revision number and possibly (ignored) lock indication - # we create the logentry here from values stored in states 0 to 4, - # as this state is re-entered for subsequent revisions of a file. - match = re_50.match(line) - assert match, _('expected revision number') - e = logentry(rcs=scache(rcs), file=scache(filename), - revision=tuple([int(x) for x in match.group(1).split('.')]), - branches=[], parent=None) - state = 6 - - elif state == 6: - # expecting date, author, state, lines changed - match = re_60.match(line) - assert match, _('revision must be followed by date line') - d = match.group(1) - if d[2] == '/': - # Y2K - d = '19' + d - - if len(d.split()) != 3: - # cvs log dates always in GMT - d = d + ' UTC' - e.date = util.parsedate(d, ['%y/%m/%d %H:%M:%S', - '%Y/%m/%d %H:%M:%S', - '%Y-%m-%d %H:%M:%S']) - e.author = scache(match.group(2)) - e.dead = match.group(3).lower() == 'dead' - - if match.group(5): - if match.group(6): - e.lines = (int(match.group(5)), int(match.group(6))) - else: - e.lines = (int(match.group(5)), 0) - elif match.group(6): - e.lines = (0, int(match.group(6))) - else: - e.lines = None - - if match.group(7): # cvsnt mergepoint - myrev = match.group(8).split('.') - if len(myrev) == 2: # head - e.mergepoint = 'HEAD' - else: - myrev = '.'.join(myrev[:-2] + ['0', myrev[-2]]) - branches = [b for b in branchmap if branchmap[b] == myrev] - assert len(branches) == 1, 'unknown branch: %s' % e.mergepoint - e.mergepoint = branches[0] - else: - e.mergepoint = None - e.comment = [] - state = 7 - - elif state == 7: - # read the revision numbers of branches that start at this revision - # or store the commit log message otherwise - m = re_70.match(line) - if m: - e.branches = [tuple([int(y) for y in x.strip().split('.')]) - for x in m.group(1).split(';')] - state = 8 - elif re_31.match(line) and re_50.match(peek): - state = 5 - store = True - elif re_32.match(line): - state = 0 - store = True - else: - e.comment.append(line) - - elif state == 8: - # store commit log message - if re_31.match(line): - state = 5 - store = True - elif re_32.match(line): - state = 0 - store = True - else: - e.comment.append(line) - - # When a file is added on a branch B1, CVS creates a synthetic - # dead trunk revision 1.1 so that the branch has a root. - # Likewise, if you merge such a file to a later branch B2 (one - # that already existed when the file was added on B1), CVS - # creates a synthetic dead revision 1.1.x.1 on B2. Don't drop - # these revisions now, but mark them synthetic so - # createchangeset() can take care of them. - if (store and - e.dead and - e.revision[-1] == 1 and # 1.1 or 1.1.x.1 - len(e.comment) == 1 and - file_added_re.match(e.comment[0])): - ui.debug('found synthetic revision in %s: %r\n' - % (e.rcs, e.comment[0])) - e.synthetic = True - - if store: - # clean up the results and save in the log. - store = False - e.tags = sorted([scache(x) for x in tags.get(e.revision, [])]) - e.comment = scache('\n'.join(e.comment)) - - revn = len(e.revision) - if revn > 3 and (revn % 2) == 0: - e.branch = tags.get(e.revision[:-1], [None])[0] - else: - e.branch = None - - # find the branches starting from this revision - branchpoints = set() - for branch, revision in branchmap.iteritems(): - revparts = tuple([int(i) for i in revision.split('.')]) - if len(revparts) < 2: # bad tags - continue - if revparts[-2] == 0 and revparts[-1] % 2 == 0: - # normal branch - if revparts[:-2] == e.revision: - branchpoints.add(branch) - elif revparts == (1, 1, 1): # vendor branch - if revparts in e.branches: - branchpoints.add(branch) - e.branchpoints = branchpoints - - log.append(e) - - if len(log) % 100 == 0: - ui.status(util.ellipsis('%d %s' % (len(log), e.file), 80)+'\n') - - log.sort(key=lambda x: (x.rcs, x.revision)) - - # find parent revisions of individual files - versions = {} - for e in log: - branch = e.revision[:-1] - p = versions.get((e.rcs, branch), None) - if p is None: - p = e.revision[:-2] - e.parent = p - versions[(e.rcs, branch)] = e.revision - - # update the log cache - if cache: - if log: - # join up the old and new logs - log.sort(key=lambda x: x.date) - - if oldlog and oldlog[-1].date >= log[0].date: - raise logerror(_('log cache overlaps with new log entries,' - ' re-run without cache.')) - - log = oldlog + log - - # write the new cachefile - ui.note(_('writing cvs log cache %s\n') % cachefile) - pickle.dump(log, open(cachefile, 'w')) - else: - log = oldlog - - ui.status(_('%d log entries\n') % len(log)) - - hook.hook(ui, None, "cvslog", True, log=log) - - return log - - -class changeset(object): - '''Class changeset has the following attributes: - .id - integer identifying this changeset (list index) - .author - author name as CVS knows it - .branch - name of branch this changeset is on, or None - .comment - commit message - .date - the commit date as a (time,tz) tuple - .entries - list of logentry objects in this changeset - .parents - list of one or two parent changesets - .tags - list of tags on this changeset - .synthetic - from synthetic revision "file ... added on branch ..." - .mergepoint- the branch that has been merged from - (if present in rlog output) - .branchpoints- the branches that start at the current entry - ''' - def __init__(self, **entries): - self.synthetic = False - self.__dict__.update(entries) - - def __repr__(self): - return "<%s at 0x%x: %s>" % (self.__class__.__name__, - id(self), - getattr(self, 'id', "(no id)")) - -def createchangeset(ui, log, fuzz=60, mergefrom=None, mergeto=None): - '''Convert log into changesets.''' - - ui.status(_('creating changesets\n')) - - # Merge changesets - - log.sort(key=lambda x: (x.comment, x.author, x.branch, x.date)) - - changesets = [] - files = set() - c = None - for i, e in enumerate(log): - - # Check if log entry belongs to the current changeset or not. - - # Since CVS is file centric, two different file revisions with - # different branchpoints should be treated as belonging to two - # different changesets (and the ordering is important and not - # honoured by cvsps at this point). - # - # Consider the following case: - # foo 1.1 branchpoints: [MYBRANCH] - # bar 1.1 branchpoints: [MYBRANCH, MYBRANCH2] - # - # Here foo is part only of MYBRANCH, but not MYBRANCH2, e.g. a - # later version of foo may be in MYBRANCH2, so foo should be the - # first changeset and bar the next and MYBRANCH and MYBRANCH2 - # should both start off of the bar changeset. No provisions are - # made to ensure that this is, in fact, what happens. - if not (c and - e.comment == c.comment and - e.author == c.author and - e.branch == c.branch and - (not hasattr(e, 'branchpoints') or - not hasattr (c, 'branchpoints') or - e.branchpoints == c.branchpoints) and - ((c.date[0] + c.date[1]) <= - (e.date[0] + e.date[1]) <= - (c.date[0] + c.date[1]) + fuzz) and - e.file not in files): - c = changeset(comment=e.comment, author=e.author, - branch=e.branch, date=e.date, entries=[], - mergepoint=getattr(e, 'mergepoint', None), - branchpoints=getattr(e, 'branchpoints', set())) - changesets.append(c) - files = set() - if len(changesets) % 100 == 0: - t = '%d %s' % (len(changesets), repr(e.comment)[1:-1]) - ui.status(util.ellipsis(t, 80) + '\n') - - c.entries.append(e) - files.add(e.file) - c.date = e.date # changeset date is date of latest commit in it - - # Mark synthetic changesets - - for c in changesets: - # Synthetic revisions always get their own changeset, because - # the log message includes the filename. E.g. if you add file3 - # and file4 on a branch, you get four log entries and three - # changesets: - # "File file3 was added on branch ..." (synthetic, 1 entry) - # "File file4 was added on branch ..." (synthetic, 1 entry) - # "Add file3 and file4 to fix ..." (real, 2 entries) - # Hence the check for 1 entry here. - c.synthetic = len(c.entries) == 1 and c.entries[0].synthetic - - # Sort files in each changeset - - for c in changesets: - def pathcompare(l, r): - 'Mimic cvsps sorting order' - l = l.split('/') - r = r.split('/') - nl = len(l) - nr = len(r) - n = min(nl, nr) - for i in range(n): - if i + 1 == nl and nl < nr: - return -1 - elif i + 1 == nr and nl > nr: - return +1 - elif l[i] < r[i]: - return -1 - elif l[i] > r[i]: - return +1 - return 0 - def entitycompare(l, r): - return pathcompare(l.file, r.file) - - c.entries.sort(entitycompare) - - # Sort changesets by date - - def cscmp(l, r): - d = sum(l.date) - sum(r.date) - if d: - return d - - # detect vendor branches and initial commits on a branch - le = {} - for e in l.entries: - le[e.rcs] = e.revision - re = {} - for e in r.entries: - re[e.rcs] = e.revision - - d = 0 - for e in l.entries: - if re.get(e.rcs, None) == e.parent: - assert not d - d = 1 - break - - for e in r.entries: - if le.get(e.rcs, None) == e.parent: - assert not d - d = -1 - break - - return d - - changesets.sort(cscmp) - - # Collect tags - - globaltags = {} - for c in changesets: - for e in c.entries: - for tag in e.tags: - # remember which is the latest changeset to have this tag - globaltags[tag] = c - - for c in changesets: - tags = set() - for e in c.entries: - tags.update(e.tags) - # remember tags only if this is the latest changeset to have it - c.tags = sorted(tag for tag in tags if globaltags[tag] is c) - - # Find parent changesets, handle {{mergetobranch BRANCHNAME}} - # by inserting dummy changesets with two parents, and handle - # {{mergefrombranch BRANCHNAME}} by setting two parents. - - if mergeto is None: - mergeto = r'{{mergetobranch ([-\w]+)}}' - if mergeto: - mergeto = re.compile(mergeto) - - if mergefrom is None: - mergefrom = r'{{mergefrombranch ([-\w]+)}}' - if mergefrom: - mergefrom = re.compile(mergefrom) - - versions = {} # changeset index where we saw any particular file version - branches = {} # changeset index where we saw a branch - n = len(changesets) - i = 0 - while i < n: - c = changesets[i] - - for f in c.entries: - versions[(f.rcs, f.revision)] = i - - p = None - if c.branch in branches: - p = branches[c.branch] - else: - # first changeset on a new branch - # the parent is a changeset with the branch in its - # branchpoints such that it is the latest possible - # commit without any intervening, unrelated commits. - - for candidate in xrange(i): - if c.branch not in changesets[candidate].branchpoints: - if p is not None: - break - continue - p = candidate - - c.parents = [] - if p is not None: - p = changesets[p] - - # Ensure no changeset has a synthetic changeset as a parent. - while p.synthetic: - assert len(p.parents) <= 1, \ - _('synthetic changeset cannot have multiple parents') - if p.parents: - p = p.parents[0] - else: - p = None - break - - if p is not None: - c.parents.append(p) - - if c.mergepoint: - if c.mergepoint == 'HEAD': - c.mergepoint = None - c.parents.append(changesets[branches[c.mergepoint]]) - - if mergefrom: - m = mergefrom.search(c.comment) - if m: - m = m.group(1) - if m == 'HEAD': - m = None - try: - candidate = changesets[branches[m]] - except KeyError: - ui.warn(_("warning: CVS commit message references " - "non-existent branch %r:\n%s\n") - % (m, c.comment)) - if m in branches and c.branch != m and not candidate.synthetic: - c.parents.append(candidate) - - if mergeto: - m = mergeto.search(c.comment) - if m: - try: - m = m.group(1) - if m == 'HEAD': - m = None - except: - m = None # if no group found then merge to HEAD - if m in branches and c.branch != m: - # insert empty changeset for merge - cc = changeset( - author=c.author, branch=m, date=c.date, - comment='convert-repo: CVS merge from branch %s' - % c.branch, - entries=[], tags=[], - parents=[changesets[branches[m]], c]) - changesets.insert(i + 1, cc) - branches[m] = i + 1 - - # adjust our loop counters now we have inserted a new entry - n += 1 - i += 2 - continue - - branches[c.branch] = i - i += 1 - - # Drop synthetic changesets (safe now that we have ensured no other - # changesets can have them as parents). - i = 0 - while i < len(changesets): - if changesets[i].synthetic: - del changesets[i] - else: - i += 1 - - # Number changesets - - for i, c in enumerate(changesets): - c.id = i + 1 - - ui.status(_('%d changeset entries\n') % len(changesets)) - - hook.hook(ui, None, "cvschangesets", True, changesets=changesets) - - return changesets - - -def debugcvsps(ui, *args, **opts): - '''Read CVS rlog for current directory or named path in - repository, and convert the log to changesets based on matching - commit log entries and dates. - ''' - if opts["new_cache"]: - cache = "write" - elif opts["update_cache"]: - cache = "update" - else: - cache = None - - revisions = opts["revisions"] - - try: - if args: - log = [] - for d in args: - log += createlog(ui, d, root=opts["root"], cache=cache) - else: - log = createlog(ui, root=opts["root"], cache=cache) - except logerror, e: - ui.write("%r\n"%e) - return - - changesets = createchangeset(ui, log, opts["fuzz"]) - del log - - # Print changesets (optionally filtered) - - off = len(revisions) - branches = {} # latest version number in each branch - ancestors = {} # parent branch - for cs in changesets: - - if opts["ancestors"]: - if cs.branch not in branches and cs.parents and cs.parents[0].id: - ancestors[cs.branch] = (changesets[cs.parents[0].id - 1].branch, - cs.parents[0].id) - branches[cs.branch] = cs.id - - # limit by branches - if opts["branches"] and (cs.branch or 'HEAD') not in opts["branches"]: - continue - - if not off: - # Note: trailing spaces on several lines here are needed to have - # bug-for-bug compatibility with cvsps. - ui.write('---------------------\n') - ui.write('PatchSet %d \n' % cs.id) - ui.write('Date: %s\n' % util.datestr(cs.date, - '%Y/%m/%d %H:%M:%S %1%2')) - ui.write('Author: %s\n' % cs.author) - ui.write('Branch: %s\n' % (cs.branch or 'HEAD')) - ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags) > 1], - ','.join(cs.tags) or '(none)')) - branchpoints = getattr(cs, 'branchpoints', None) - if branchpoints: - ui.write('Branchpoints: %s \n' % ', '.join(branchpoints)) - if opts["parents"] and cs.parents: - if len(cs.parents) > 1: - ui.write('Parents: %s\n' % - (','.join([str(p.id) for p in cs.parents]))) - else: - ui.write('Parent: %d\n' % cs.parents[0].id) - - if opts["ancestors"]: - b = cs.branch - r = [] - while b: - b, c = ancestors[b] - r.append('%s:%d:%d' % (b or "HEAD", c, branches[b])) - if r: - ui.write('Ancestors: %s\n' % (','.join(r))) - - ui.write('Log:\n') - ui.write('%s\n\n' % cs.comment) - ui.write('Members: \n') - for f in cs.entries: - fn = f.file - if fn.startswith(opts["prefix"]): - fn = fn[len(opts["prefix"]):] - ui.write('\t%s:%s->%s%s \n' % ( - fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL', - '.'.join([str(x) for x in f.revision]), - ['', '(DEAD)'][f.dead])) - ui.write('\n') - - # have we seen the start tag? - if revisions and off: - if revisions[0] == str(cs.id) or \ - revisions[0] in cs.tags: - off = False - - # see if we reached the end tag - if len(revisions) > 1 and not off: - if revisions[1] == str(cs.id) or \ - revisions[1] in cs.tags: - break diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.pyo deleted file mode 100644 index fdf6d44..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/cvsps.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.py deleted file mode 100644 index 9863eb8..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.py +++ /dev/null @@ -1,200 +0,0 @@ -# darcs.py - darcs support for the convert extension -# -# Copyright 2007-2009 Matt Mackall and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -from common import NoRepo, checktool, commandline, commit, converter_source -from mercurial.i18n import _ -from mercurial import encoding, util -import os, shutil, tempfile, re - -# The naming drift of ElementTree is fun! - -try: - from xml.etree.cElementTree import ElementTree, XMLParser -except ImportError: - try: - from xml.etree.ElementTree import ElementTree, XMLParser - except ImportError: - try: - from elementtree.cElementTree import ElementTree, XMLParser - except ImportError: - try: - from elementtree.ElementTree import ElementTree, XMLParser - except ImportError: - ElementTree = None - -class darcs_source(converter_source, commandline): - def __init__(self, ui, path, rev=None): - converter_source.__init__(self, ui, path, rev=rev) - commandline.__init__(self, ui, 'darcs') - - # check for _darcs, ElementTree so that we can easily skip - # test-convert-darcs if ElementTree is not around - if not os.path.exists(os.path.join(path, '_darcs')): - raise NoRepo(_("%s does not look like a darcs repository") % path) - - checktool('darcs') - version = self.run0('--version').splitlines()[0].strip() - if version < '2.1': - raise util.Abort(_('darcs version 2.1 or newer needed (found %r)') % - version) - - if ElementTree is None: - raise util.Abort(_("Python ElementTree module is not available")) - - self.path = os.path.realpath(path) - - self.lastrev = None - self.changes = {} - self.parents = {} - self.tags = {} - - # Check darcs repository format - format = self.format() - if format: - if format in ('darcs-1.0', 'hashed'): - raise NoRepo(_("%s repository format is unsupported, " - "please upgrade") % format) - else: - self.ui.warn(_('failed to detect repository format!')) - - def before(self): - self.tmppath = tempfile.mkdtemp( - prefix='convert-' + os.path.basename(self.path) + '-') - output, status = self.run('init', repodir=self.tmppath) - self.checkexit(status) - - tree = self.xml('changes', xml_output=True, summary=True, - repodir=self.path) - tagname = None - child = None - for elt in tree.findall('patch'): - node = elt.get('hash') - name = elt.findtext('name', '') - if name.startswith('TAG '): - tagname = name[4:].strip() - elif tagname is not None: - self.tags[tagname] = node - tagname = None - self.changes[node] = elt - self.parents[child] = [node] - child = node - self.parents[child] = [] - - def after(self): - self.ui.debug('cleaning up %s\n' % self.tmppath) - shutil.rmtree(self.tmppath, ignore_errors=True) - - def recode(self, s, encoding=None): - if isinstance(s, unicode): - # XMLParser returns unicode objects for anything it can't - # encode into ASCII. We convert them back to str to get - # recode's normal conversion behavior. - s = s.encode('latin-1') - return super(darcs_source, self).recode(s, encoding) - - def xml(self, cmd, **kwargs): - # NOTE: darcs is currently encoding agnostic and will print - # patch metadata byte-for-byte, even in the XML changelog. - etree = ElementTree() - # While we are decoding the XML as latin-1 to be as liberal as - # possible, etree will still raise an exception if any - # non-printable characters are in the XML changelog. - parser = XMLParser(encoding='latin-1') - fp = self._run(cmd, **kwargs) - etree.parse(fp, parser=parser) - self.checkexit(fp.close()) - return etree.getroot() - - def format(self): - output, status = self.run('show', 'repo', no_files=True, - repodir=self.path) - self.checkexit(status) - m = re.search(r'^\s*Format:\s*(.*)$', output, re.MULTILINE) - if not m: - return None - return ','.join(sorted(f.strip() for f in m.group(1).split(','))) - - def manifest(self): - man = [] - output, status = self.run('show', 'files', no_directories=True, - repodir=self.tmppath) - self.checkexit(status) - for line in output.split('\n'): - path = line[2:] - if path: - man.append(path) - return man - - def getheads(self): - return self.parents[None] - - def getcommit(self, rev): - elt = self.changes[rev] - date = util.strdate(elt.get('local_date'), '%a %b %d %H:%M:%S %Z %Y') - desc = elt.findtext('name') + '\n' + elt.findtext('comment', '') - # etree can return unicode objects for name, comment, and author, - # so recode() is used to ensure str objects are emitted. - return commit(author=self.recode(elt.get('author')), - date=util.datestr(date), - desc=self.recode(desc).strip(), - parents=self.parents[rev]) - - def pull(self, rev): - output, status = self.run('pull', self.path, all=True, - match='hash %s' % rev, - no_test=True, no_posthook=True, - external_merge='/bin/false', - repodir=self.tmppath) - if status: - if output.find('We have conflicts in') == -1: - self.checkexit(status, output) - output, status = self.run('revert', all=True, repodir=self.tmppath) - self.checkexit(status, output) - - def getchanges(self, rev): - copies = {} - changes = [] - man = None - for elt in self.changes[rev].find('summary').getchildren(): - if elt.tag in ('add_directory', 'remove_directory'): - continue - if elt.tag == 'move': - if man is None: - man = self.manifest() - source, dest = elt.get('from'), elt.get('to') - if source in man: - # File move - changes.append((source, rev)) - changes.append((dest, rev)) - copies[dest] = source - else: - # Directory move, deduce file moves from manifest - source = source + '/' - for f in man: - if not f.startswith(source): - continue - fdest = dest + '/' + f[len(source):] - changes.append((f, rev)) - changes.append((fdest, rev)) - copies[fdest] = f - else: - changes.append((elt.text.strip(), rev)) - self.pull(rev) - self.lastrev = rev - return sorted(changes), copies - - def getfile(self, name, rev): - if rev != self.lastrev: - raise util.Abort(_('internal calling inconsistency')) - path = os.path.join(self.tmppath, name) - data = open(path, 'rb').read() - mode = os.lstat(path).st_mode - mode = (mode & 0111) and 'x' or '' - return data, mode - - def gettags(self): - return self.tags diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.pyo deleted file mode 100644 index 78b7568..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/darcs.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.py deleted file mode 100644 index 1064642..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.py +++ /dev/null @@ -1,365 +0,0 @@ -# Copyright 2007 Bryan O'Sullivan -# Copyright 2007 Alexis S. L. Carvalho -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import shlex -from mercurial.i18n import _ -from mercurial import util -from common import SKIPREV, converter_source - -def rpairs(name): - e = len(name) - while e != -1: - yield name[:e], name[e + 1:] - e = name.rfind('/', 0, e) - yield '.', name - -class filemapper(object): - '''Map and filter filenames when importing. - A name can be mapped to itself, a new name, or None (omit from new - repository).''' - - def __init__(self, ui, path=None): - self.ui = ui - self.include = {} - self.exclude = {} - self.rename = {} - if path: - if self.parse(path): - raise util.Abort(_('errors in filemap')) - - def parse(self, path): - errs = 0 - def check(name, mapping, listname): - if not name: - self.ui.warn(_('%s:%d: path to %s is missing\n') % - (lex.infile, lex.lineno, listname)) - return 1 - if name in mapping: - self.ui.warn(_('%s:%d: %r already in %s list\n') % - (lex.infile, lex.lineno, name, listname)) - return 1 - if (name.startswith('/') or - name.endswith('/') or - '//' in name): - self.ui.warn(_('%s:%d: superfluous / in %s %r\n') % - (lex.infile, lex.lineno, listname, name)) - return 1 - return 0 - lex = shlex.shlex(open(path), path, True) - lex.wordchars += '!@#$%^&*()-=+[]{}|;:,./<>?' - cmd = lex.get_token() - while cmd: - if cmd == 'include': - name = lex.get_token() - errs += check(name, self.exclude, 'exclude') - self.include[name] = name - elif cmd == 'exclude': - name = lex.get_token() - errs += check(name, self.include, 'include') - errs += check(name, self.rename, 'rename') - self.exclude[name] = name - elif cmd == 'rename': - src = lex.get_token() - dest = lex.get_token() - errs += check(src, self.exclude, 'exclude') - self.rename[src] = dest - elif cmd == 'source': - errs += self.parse(lex.get_token()) - else: - self.ui.warn(_('%s:%d: unknown directive %r\n') % - (lex.infile, lex.lineno, cmd)) - errs += 1 - cmd = lex.get_token() - return errs - - def lookup(self, name, mapping): - for pre, suf in rpairs(name): - try: - return mapping[pre], pre, suf - except KeyError: - pass - return '', name, '' - - def __call__(self, name): - if self.include: - inc = self.lookup(name, self.include)[0] - else: - inc = name - if self.exclude: - exc = self.lookup(name, self.exclude)[0] - else: - exc = '' - if (not self.include and exc) or (len(inc) <= len(exc)): - return None - newpre, pre, suf = self.lookup(name, self.rename) - if newpre: - if newpre == '.': - return suf - if suf: - return newpre + '/' + suf - return newpre - return name - - def active(self): - return bool(self.include or self.exclude or self.rename) - -# This class does two additional things compared to a regular source: -# -# - Filter and rename files. This is mostly wrapped by the filemapper -# class above. We hide the original filename in the revision that is -# returned by getchanges to be able to find things later in getfile. -# -# - Return only revisions that matter for the files we're interested in. -# This involves rewriting the parents of the original revision to -# create a graph that is restricted to those revisions. -# -# This set of revisions includes not only revisions that directly -# touch files we're interested in, but also merges that merge two -# or more interesting revisions. - -class filemap_source(converter_source): - def __init__(self, ui, baseconverter, filemap): - super(filemap_source, self).__init__(ui) - self.base = baseconverter - self.filemapper = filemapper(ui, filemap) - self.commits = {} - # if a revision rev has parent p in the original revision graph, then - # rev will have parent self.parentmap[p] in the restricted graph. - self.parentmap = {} - # self.wantedancestors[rev] is the set of all ancestors of rev that - # are in the restricted graph. - self.wantedancestors = {} - self.convertedorder = None - self._rebuilt = False - self.origparents = {} - self.children = {} - self.seenchildren = {} - - def before(self): - self.base.before() - - def after(self): - self.base.after() - - def setrevmap(self, revmap): - # rebuild our state to make things restartable - # - # To avoid calling getcommit for every revision that has already - # been converted, we rebuild only the parentmap, delaying the - # rebuild of wantedancestors until we need it (i.e. until a - # merge). - # - # We assume the order argument lists the revisions in - # topological order, so that we can infer which revisions were - # wanted by previous runs. - self._rebuilt = not revmap - seen = {SKIPREV: SKIPREV} - dummyset = set() - converted = [] - for rev in revmap.order: - mapped = revmap[rev] - wanted = mapped not in seen - if wanted: - seen[mapped] = rev - self.parentmap[rev] = rev - else: - self.parentmap[rev] = seen[mapped] - self.wantedancestors[rev] = dummyset - arg = seen[mapped] - if arg == SKIPREV: - arg = None - converted.append((rev, wanted, arg)) - self.convertedorder = converted - return self.base.setrevmap(revmap) - - def rebuild(self): - if self._rebuilt: - return True - self._rebuilt = True - self.parentmap.clear() - self.wantedancestors.clear() - self.seenchildren.clear() - for rev, wanted, arg in self.convertedorder: - if rev not in self.origparents: - self.origparents[rev] = self.getcommit(rev).parents - if arg is not None: - self.children[arg] = self.children.get(arg, 0) + 1 - - for rev, wanted, arg in self.convertedorder: - parents = self.origparents[rev] - if wanted: - self.mark_wanted(rev, parents) - else: - self.mark_not_wanted(rev, arg) - self._discard(arg, *parents) - - return True - - def getheads(self): - return self.base.getheads() - - def getcommit(self, rev): - # We want to save a reference to the commit objects to be able - # to rewrite their parents later on. - c = self.commits[rev] = self.base.getcommit(rev) - for p in c.parents: - self.children[p] = self.children.get(p, 0) + 1 - return c - - def _discard(self, *revs): - for r in revs: - if r is None: - continue - self.seenchildren[r] = self.seenchildren.get(r, 0) + 1 - if self.seenchildren[r] == self.children[r]: - del self.wantedancestors[r] - del self.parentmap[r] - del self.seenchildren[r] - if self._rebuilt: - del self.children[r] - - def wanted(self, rev, i): - # Return True if we're directly interested in rev. - # - # i is an index selecting one of the parents of rev (if rev - # has no parents, i is None). getchangedfiles will give us - # the list of files that are different in rev and in the parent - # indicated by i. If we're interested in any of these files, - # we're interested in rev. - try: - files = self.base.getchangedfiles(rev, i) - except NotImplementedError: - raise util.Abort(_("source repository doesn't support --filemap")) - for f in files: - if self.filemapper(f): - return True - return False - - def mark_not_wanted(self, rev, p): - # Mark rev as not interesting and update data structures. - - if p is None: - # A root revision. Use SKIPREV to indicate that it doesn't - # map to any revision in the restricted graph. Put SKIPREV - # in the set of wanted ancestors to simplify code elsewhere - self.parentmap[rev] = SKIPREV - self.wantedancestors[rev] = set((SKIPREV,)) - return - - # Reuse the data from our parent. - self.parentmap[rev] = self.parentmap[p] - self.wantedancestors[rev] = self.wantedancestors[p] - - def mark_wanted(self, rev, parents): - # Mark rev ss wanted and update data structures. - - # rev will be in the restricted graph, so children of rev in - # the original graph should still have rev as a parent in the - # restricted graph. - self.parentmap[rev] = rev - - # The set of wanted ancestors of rev is the union of the sets - # of wanted ancestors of its parents. Plus rev itself. - wrev = set() - for p in parents: - wrev.update(self.wantedancestors[p]) - wrev.add(rev) - self.wantedancestors[rev] = wrev - - def getchanges(self, rev): - parents = self.commits[rev].parents - if len(parents) > 1: - self.rebuild() - - # To decide whether we're interested in rev we: - # - # - calculate what parents rev will have if it turns out we're - # interested in it. If it's going to have more than 1 parent, - # we're interested in it. - # - # - otherwise, we'll compare it with the single parent we found. - # If any of the files we're interested in is different in the - # the two revisions, we're interested in rev. - - # A parent p is interesting if its mapped version (self.parentmap[p]): - # - is not SKIPREV - # - is still not in the list of parents (we don't want duplicates) - # - is not an ancestor of the mapped versions of the other parents - mparents = [] - wp = None - for i, p1 in enumerate(parents): - mp1 = self.parentmap[p1] - if mp1 == SKIPREV or mp1 in mparents: - continue - for p2 in parents: - if p1 == p2 or mp1 == self.parentmap[p2]: - continue - if mp1 in self.wantedancestors[p2]: - break - else: - mparents.append(mp1) - wp = i - - if wp is None and parents: - wp = 0 - - self.origparents[rev] = parents - - closed = 'close' in self.commits[rev].extra - - if len(mparents) < 2 and not closed and not self.wanted(rev, wp): - # We don't want this revision. - # Update our state and tell the convert process to map this - # revision to the same revision its parent as mapped to. - p = None - if parents: - p = parents[wp] - self.mark_not_wanted(rev, p) - self.convertedorder.append((rev, False, p)) - self._discard(*parents) - return self.parentmap[rev] - - # We want this revision. - # Rewrite the parents of the commit object - self.commits[rev].parents = mparents - self.mark_wanted(rev, parents) - self.convertedorder.append((rev, True, None)) - self._discard(*parents) - - # Get the real changes and do the filtering/mapping. To be - # able to get the files later on in getfile, we hide the - # original filename in the rev part of the return value. - changes, copies = self.base.getchanges(rev) - newnames = {} - files = [] - for f, r in changes: - newf = self.filemapper(f) - if newf: - files.append((newf, (f, r))) - newnames[f] = newf - - ncopies = {} - for c in copies: - newc = self.filemapper(c) - if newc: - newsource = self.filemapper(copies[c]) - if newsource: - ncopies[newc] = newsource - - return files, ncopies - - def getfile(self, name, rev): - realname, realrev = rev - return self.base.getfile(realname, realrev) - - def gettags(self): - return self.base.gettags() - - def hasnativeorder(self): - return self.base.hasnativeorder() - - def lookuprev(self, rev): - return self.base.lookuprev(rev) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.pyo deleted file mode 100644 index 2ece523..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/filemap.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.py deleted file mode 100644 index e973031..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.py +++ /dev/null @@ -1,170 +0,0 @@ -# git.py - git support for the convert extension -# -# Copyright 2005-2009 Matt Mackall and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import os -from mercurial import util -from mercurial.node import hex, nullid -from mercurial.i18n import _ - -from common import NoRepo, commit, converter_source, checktool - -class convert_git(converter_source): - # Windows does not support GIT_DIR= construct while other systems - # cannot remove environment variable. Just assume none have - # both issues. - if hasattr(os, 'unsetenv'): - def gitopen(self, s): - prevgitdir = os.environ.get('GIT_DIR') - os.environ['GIT_DIR'] = self.path - try: - return util.popen(s, 'rb') - finally: - if prevgitdir is None: - del os.environ['GIT_DIR'] - else: - os.environ['GIT_DIR'] = prevgitdir - else: - def gitopen(self, s): - return util.popen('GIT_DIR=%s %s' % (self.path, s), 'rb') - - def gitread(self, s): - fh = self.gitopen(s) - data = fh.read() - return data, fh.close() - - def __init__(self, ui, path, rev=None): - super(convert_git, self).__init__(ui, path, rev=rev) - - if os.path.isdir(path + "/.git"): - path += "/.git" - if not os.path.exists(path + "/objects"): - raise NoRepo(_("%s does not look like a Git repository") % path) - - checktool('git', 'git') - - self.path = path - - def getheads(self): - if not self.rev: - heads, ret = self.gitread('git rev-parse --branches --remotes') - heads = heads.splitlines() - else: - heads, ret = self.gitread("git rev-parse --verify %s" % self.rev) - heads = [heads[:-1]] - if ret: - raise util.Abort(_('cannot retrieve git heads')) - return heads - - def catfile(self, rev, type): - if rev == hex(nullid): - raise IOError() - data, ret = self.gitread("git cat-file %s %s" % (type, rev)) - if ret: - raise util.Abort(_('cannot read %r object at %s') % (type, rev)) - return data - - def getfile(self, name, rev): - data = self.catfile(rev, "blob") - mode = self.modecache[(name, rev)] - return data, mode - - def getchanges(self, version): - self.modecache = {} - fh = self.gitopen("git diff-tree -z --root -m -r %s" % version) - changes = [] - seen = set() - entry = None - for l in fh.read().split('\x00'): - if not entry: - if not l.startswith(':'): - continue - entry = l - continue - f = l - if f not in seen: - seen.add(f) - entry = entry.split() - h = entry[3] - p = (entry[1] == "100755") - s = (entry[1] == "120000") - self.modecache[(f, h)] = (p and "x") or (s and "l") or "" - changes.append((f, h)) - entry = None - if fh.close(): - raise util.Abort(_('cannot read changes in %s') % version) - return (changes, {}) - - def getcommit(self, version): - c = self.catfile(version, "commit") # read the commit hash - end = c.find("\n\n") - message = c[end + 2:] - message = self.recode(message) - l = c[:end].splitlines() - parents = [] - author = committer = None - for e in l[1:]: - n, v = e.split(" ", 1) - if n == "author": - p = v.split() - tm, tz = p[-2:] - author = " ".join(p[:-2]) - if author[0] == "<": author = author[1:-1] - author = self.recode(author) - if n == "committer": - p = v.split() - tm, tz = p[-2:] - committer = " ".join(p[:-2]) - if committer[0] == "<": committer = committer[1:-1] - committer = self.recode(committer) - if n == "parent": - parents.append(v) - - if committer and committer != author: - message += "\ncommitter: %s\n" % committer - tzs, tzh, tzm = tz[-5:-4] + "1", tz[-4:-2], tz[-2:] - tz = -int(tzs) * (int(tzh) * 3600 + int(tzm)) - date = tm + " " + str(tz) - - c = commit(parents=parents, date=date, author=author, desc=message, - rev=version) - return c - - def gettags(self): - tags = {} - fh = self.gitopen('git ls-remote --tags "%s"' % self.path) - prefix = 'refs/tags/' - for line in fh: - line = line.strip() - if not line.endswith("^{}"): - continue - node, tag = line.split(None, 1) - if not tag.startswith(prefix): - continue - tag = tag[len(prefix):-3] - tags[tag] = node - if fh.close(): - raise util.Abort(_('cannot read tags from %s') % self.path) - - return tags - - def getchangedfiles(self, version, i): - changes = [] - if i is None: - fh = self.gitopen("git diff-tree --root -m -r %s" % version) - for l in fh: - if "\t" not in l: - continue - m, f = l[:-1].split("\t") - changes.append(f) - else: - fh = self.gitopen('git diff-tree --name-only --root -r %s "%s^%s" --' - % (version, version, i + 1)) - changes = [f.rstrip('\n') for f in fh] - if fh.close(): - raise util.Abort(_('cannot read changes in %s') % version) - - return changes diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.pyo deleted file mode 100644 index 3166318..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/git.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.py deleted file mode 100644 index 60cfede..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.py +++ /dev/null @@ -1,338 +0,0 @@ -# gnuarch.py - GNU Arch support for the convert extension -# -# Copyright 2008, 2009 Aleix Conchillo Flaque -# and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -from common import NoRepo, commandline, commit, converter_source -from mercurial.i18n import _ -from mercurial import encoding, util -import os, shutil, tempfile, stat -from email.Parser import Parser - -class gnuarch_source(converter_source, commandline): - - class gnuarch_rev(object): - def __init__(self, rev): - self.rev = rev - self.summary = '' - self.date = None - self.author = '' - self.continuationof = None - self.add_files = [] - self.mod_files = [] - self.del_files = [] - self.ren_files = {} - self.ren_dirs = {} - - def __init__(self, ui, path, rev=None): - super(gnuarch_source, self).__init__(ui, path, rev=rev) - - if not os.path.exists(os.path.join(path, '{arch}')): - raise NoRepo(_("%s does not look like a GNU Arch repository") - % path) - - # Could use checktool, but we want to check for baz or tla. - self.execmd = None - if util.find_exe('baz'): - self.execmd = 'baz' - else: - if util.find_exe('tla'): - self.execmd = 'tla' - else: - raise util.Abort(_('cannot find a GNU Arch tool')) - - commandline.__init__(self, ui, self.execmd) - - self.path = os.path.realpath(path) - self.tmppath = None - - self.treeversion = None - self.lastrev = None - self.changes = {} - self.parents = {} - self.tags = {} - self.catlogparser = Parser() - self.encoding = encoding.encoding - self.archives = [] - - def before(self): - # Get registered archives - self.archives = [i.rstrip('\n') - for i in self.runlines0('archives', '-n')] - - if self.execmd == 'tla': - output = self.run0('tree-version', self.path) - else: - output = self.run0('tree-version', '-d', self.path) - self.treeversion = output.strip() - - # Get name of temporary directory - version = self.treeversion.split('/') - self.tmppath = os.path.join(tempfile.gettempdir(), - 'hg-%s' % version[1]) - - # Generate parents dictionary - self.parents[None] = [] - treeversion = self.treeversion - child = None - while treeversion: - self.ui.status(_('analyzing tree version %s...\n') % treeversion) - - archive = treeversion.split('/')[0] - if archive not in self.archives: - self.ui.status(_('tree analysis stopped because it points to ' - 'an unregistered archive %s...\n') % archive) - break - - # Get the complete list of revisions for that tree version - output, status = self.runlines('revisions', '-r', '-f', treeversion) - self.checkexit(status, 'failed retrieveing revisions for %s' - % treeversion) - - # No new iteration unless a revision has a continuation-of header - treeversion = None - - for l in output: - rev = l.strip() - self.changes[rev] = self.gnuarch_rev(rev) - self.parents[rev] = [] - - # Read author, date and summary - catlog, status = self.run('cat-log', '-d', self.path, rev) - if status: - catlog = self.run0('cat-archive-log', rev) - self._parsecatlog(catlog, rev) - - # Populate the parents map - self.parents[child].append(rev) - - # Keep track of the current revision as the child of the next - # revision scanned - child = rev - - # Check if we have to follow the usual incremental history - # or if we have to 'jump' to a different treeversion given - # by the continuation-of header. - if self.changes[rev].continuationof: - treeversion = '--'.join( - self.changes[rev].continuationof.split('--')[:-1]) - break - - # If we reached a base-0 revision w/o any continuation-of - # header, it means the tree history ends here. - if rev[-6:] == 'base-0': - break - - def after(self): - self.ui.debug('cleaning up %s\n' % self.tmppath) - shutil.rmtree(self.tmppath, ignore_errors=True) - - def getheads(self): - return self.parents[None] - - def getfile(self, name, rev): - if rev != self.lastrev: - raise util.Abort(_('internal calling inconsistency')) - - # Raise IOError if necessary (i.e. deleted files). - if not os.path.lexists(os.path.join(self.tmppath, name)): - raise IOError - - return self._getfile(name, rev) - - def getchanges(self, rev): - self._update(rev) - changes = [] - copies = {} - - for f in self.changes[rev].add_files: - changes.append((f, rev)) - - for f in self.changes[rev].mod_files: - changes.append((f, rev)) - - for f in self.changes[rev].del_files: - changes.append((f, rev)) - - for src in self.changes[rev].ren_files: - to = self.changes[rev].ren_files[src] - changes.append((src, rev)) - changes.append((to, rev)) - copies[to] = src - - for src in self.changes[rev].ren_dirs: - to = self.changes[rev].ren_dirs[src] - chgs, cps = self._rendirchanges(src, to) - changes += [(f, rev) for f in chgs] - copies.update(cps) - - self.lastrev = rev - return sorted(set(changes)), copies - - def getcommit(self, rev): - changes = self.changes[rev] - return commit(author=changes.author, date=changes.date, - desc=changes.summary, parents=self.parents[rev], rev=rev) - - def gettags(self): - return self.tags - - def _execute(self, cmd, *args, **kwargs): - cmdline = [self.execmd, cmd] - cmdline += args - cmdline = [util.shellquote(arg) for arg in cmdline] - cmdline += ['>', util.nulldev, '2>', util.nulldev] - cmdline = util.quotecommand(' '.join(cmdline)) - self.ui.debug(cmdline, '\n') - return os.system(cmdline) - - def _update(self, rev): - self.ui.debug('applying revision %s...\n' % rev) - changeset, status = self.runlines('replay', '-d', self.tmppath, - rev) - if status: - # Something went wrong while merging (baz or tla - # issue?), get latest revision and try from there - shutil.rmtree(self.tmppath, ignore_errors=True) - self._obtainrevision(rev) - else: - old_rev = self.parents[rev][0] - self.ui.debug('computing changeset between %s and %s...\n' - % (old_rev, rev)) - self._parsechangeset(changeset, rev) - - def _getfile(self, name, rev): - mode = os.lstat(os.path.join(self.tmppath, name)).st_mode - if stat.S_ISLNK(mode): - data = os.readlink(os.path.join(self.tmppath, name)) - mode = mode and 'l' or '' - else: - data = open(os.path.join(self.tmppath, name), 'rb').read() - mode = (mode & 0111) and 'x' or '' - return data, mode - - def _exclude(self, name): - exclude = ['{arch}', '.arch-ids', '.arch-inventory'] - for exc in exclude: - if name.find(exc) != -1: - return True - return False - - def _readcontents(self, path): - files = [] - contents = os.listdir(path) - while len(contents) > 0: - c = contents.pop() - p = os.path.join(path, c) - # os.walk could be used, but here we avoid internal GNU - # Arch files and directories, thus saving a lot time. - if not self._exclude(p): - if os.path.isdir(p): - contents += [os.path.join(c, f) for f in os.listdir(p)] - else: - files.append(c) - return files - - def _rendirchanges(self, src, dest): - changes = [] - copies = {} - files = self._readcontents(os.path.join(self.tmppath, dest)) - for f in files: - s = os.path.join(src, f) - d = os.path.join(dest, f) - changes.append(s) - changes.append(d) - copies[d] = s - return changes, copies - - def _obtainrevision(self, rev): - self.ui.debug('obtaining revision %s...\n' % rev) - output = self._execute('get', rev, self.tmppath) - self.checkexit(output) - self.ui.debug('analyzing revision %s...\n' % rev) - files = self._readcontents(self.tmppath) - self.changes[rev].add_files += files - - def _stripbasepath(self, path): - if path.startswith('./'): - return path[2:] - return path - - def _parsecatlog(self, data, rev): - try: - catlog = self.catlogparser.parsestr(data) - - # Commit date - self.changes[rev].date = util.datestr( - util.strdate(catlog['Standard-date'], - '%Y-%m-%d %H:%M:%S')) - - # Commit author - self.changes[rev].author = self.recode(catlog['Creator']) - - # Commit description - self.changes[rev].summary = '\n\n'.join((catlog['Summary'], - catlog.get_payload())) - self.changes[rev].summary = self.recode(self.changes[rev].summary) - - # Commit revision origin when dealing with a branch or tag - if 'Continuation-of' in catlog: - self.changes[rev].continuationof = self.recode( - catlog['Continuation-of']) - except Exception: - raise util.Abort(_('could not parse cat-log of %s') % rev) - - def _parsechangeset(self, data, rev): - for l in data: - l = l.strip() - # Added file (ignore added directory) - if l.startswith('A') and not l.startswith('A/'): - file = self._stripbasepath(l[1:].strip()) - if not self._exclude(file): - self.changes[rev].add_files.append(file) - # Deleted file (ignore deleted directory) - elif l.startswith('D') and not l.startswith('D/'): - file = self._stripbasepath(l[1:].strip()) - if not self._exclude(file): - self.changes[rev].del_files.append(file) - # Modified binary file - elif l.startswith('Mb'): - file = self._stripbasepath(l[2:].strip()) - if not self._exclude(file): - self.changes[rev].mod_files.append(file) - # Modified link - elif l.startswith('M->'): - file = self._stripbasepath(l[3:].strip()) - if not self._exclude(file): - self.changes[rev].mod_files.append(file) - # Modified file - elif l.startswith('M'): - file = self._stripbasepath(l[1:].strip()) - if not self._exclude(file): - self.changes[rev].mod_files.append(file) - # Renamed file (or link) - elif l.startswith('=>'): - files = l[2:].strip().split(' ') - if len(files) == 1: - files = l[2:].strip().split('\t') - src = self._stripbasepath(files[0]) - dst = self._stripbasepath(files[1]) - if not self._exclude(src) and not self._exclude(dst): - self.changes[rev].ren_files[src] = dst - # Conversion from file to link or from link to file (modified) - elif l.startswith('ch'): - file = self._stripbasepath(l[2:].strip()) - if not self._exclude(file): - self.changes[rev].mod_files.append(file) - # Renamed directory - elif l.startswith('/>'): - dirs = l[2:].strip().split(' ') - if len(dirs) == 1: - dirs = l[2:].strip().split('\t') - src = self._stripbasepath(dirs[0]) - dst = self._stripbasepath(dirs[1]) - if not self._exclude(src) and not self._exclude(dst): - self.changes[rev].ren_dirs[src] = dst diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.pyo deleted file mode 100644 index 0e564ba..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/gnuarch.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.py deleted file mode 100644 index 183377d..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.py +++ /dev/null @@ -1,376 +0,0 @@ -# hg.py - hg backend for convert extension -# -# Copyright 2005-2009 Matt Mackall and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -# Notes for hg->hg conversion: -# -# * Old versions of Mercurial didn't trim the whitespace from the ends -# of commit messages, but new versions do. Changesets created by -# those older versions, then converted, may thus have different -# hashes for changesets that are otherwise identical. -# -# * Using "--config convert.hg.saverev=true" will make the source -# identifier to be stored in the converted revision. This will cause -# the converted revision to have a different identity than the -# source. - - -import os, time, cStringIO -from mercurial.i18n import _ -from mercurial.node import bin, hex, nullid -from mercurial import hg, util, context, error - -from common import NoRepo, commit, converter_source, converter_sink - -class mercurial_sink(converter_sink): - def __init__(self, ui, path): - converter_sink.__init__(self, ui, path) - self.branchnames = ui.configbool('convert', 'hg.usebranchnames', True) - self.clonebranches = ui.configbool('convert', 'hg.clonebranches', False) - self.tagsbranch = ui.config('convert', 'hg.tagsbranch', 'default') - self.lastbranch = None - if os.path.isdir(path) and len(os.listdir(path)) > 0: - try: - self.repo = hg.repository(self.ui, path) - if not self.repo.local(): - raise NoRepo(_('%s is not a local Mercurial repository') - % path) - except error.RepoError, err: - ui.traceback() - raise NoRepo(err.args[0]) - else: - try: - ui.status(_('initializing destination %s repository\n') % path) - self.repo = hg.repository(self.ui, path, create=True) - if not self.repo.local(): - raise NoRepo(_('%s is not a local Mercurial repository') - % path) - self.created.append(path) - except error.RepoError: - ui.traceback() - raise NoRepo(_("could not create hg repository %s as sink") - % path) - self.lock = None - self.wlock = None - self.filemapmode = False - - def before(self): - self.ui.debug('run hg sink pre-conversion action\n') - self.wlock = self.repo.wlock() - self.lock = self.repo.lock() - - def after(self): - self.ui.debug('run hg sink post-conversion action\n') - if self.lock: - self.lock.release() - if self.wlock: - self.wlock.release() - - def revmapfile(self): - return os.path.join(self.path, ".hg", "shamap") - - def authorfile(self): - return os.path.join(self.path, ".hg", "authormap") - - def getheads(self): - h = self.repo.changelog.heads() - return [hex(x) for x in h] - - def setbranch(self, branch, pbranches): - if not self.clonebranches: - return - - setbranch = (branch != self.lastbranch) - self.lastbranch = branch - if not branch: - branch = 'default' - pbranches = [(b[0], b[1] and b[1] or 'default') for b in pbranches] - pbranch = pbranches and pbranches[0][1] or 'default' - - branchpath = os.path.join(self.path, branch) - if setbranch: - self.after() - try: - self.repo = hg.repository(self.ui, branchpath) - except: - self.repo = hg.repository(self.ui, branchpath, create=True) - self.before() - - # pbranches may bring revisions from other branches (merge parents) - # Make sure we have them, or pull them. - missings = {} - for b in pbranches: - try: - self.repo.lookup(b[0]) - except: - missings.setdefault(b[1], []).append(b[0]) - - if missings: - self.after() - for pbranch, heads in missings.iteritems(): - pbranchpath = os.path.join(self.path, pbranch) - prepo = hg.repository(self.ui, pbranchpath) - self.ui.note(_('pulling from %s into %s\n') % (pbranch, branch)) - self.repo.pull(prepo, [prepo.lookup(h) for h in heads]) - self.before() - - def _rewritetags(self, source, revmap, data): - fp = cStringIO.StringIO() - for line in data.splitlines(): - s = line.split(' ', 1) - if len(s) != 2: - continue - revid = revmap.get(source.lookuprev(s[0])) - if not revid: - continue - fp.write('%s %s\n' % (revid, s[1])) - return fp.getvalue() - - def putcommit(self, files, copies, parents, commit, source, revmap): - - files = dict(files) - def getfilectx(repo, memctx, f): - v = files[f] - data, mode = source.getfile(f, v) - if f == '.hgtags': - data = self._rewritetags(source, revmap, data) - return context.memfilectx(f, data, 'l' in mode, 'x' in mode, - copies.get(f)) - - pl = [] - for p in parents: - if p not in pl: - pl.append(p) - parents = pl - nparents = len(parents) - if self.filemapmode and nparents == 1: - m1node = self.repo.changelog.read(bin(parents[0]))[0] - parent = parents[0] - - if len(parents) < 2: - parents.append(nullid) - if len(parents) < 2: - parents.append(nullid) - p2 = parents.pop(0) - - text = commit.desc - extra = commit.extra.copy() - if self.branchnames and commit.branch: - extra['branch'] = commit.branch - if commit.rev: - extra['convert_revision'] = commit.rev - - while parents: - p1 = p2 - p2 = parents.pop(0) - ctx = context.memctx(self.repo, (p1, p2), text, files.keys(), - getfilectx, commit.author, commit.date, extra) - self.repo.commitctx(ctx) - text = "(octopus merge fixup)\n" - p2 = hex(self.repo.changelog.tip()) - - if self.filemapmode and nparents == 1: - man = self.repo.manifest - mnode = self.repo.changelog.read(bin(p2))[0] - closed = 'close' in commit.extra - if not closed and not man.cmp(m1node, man.revision(mnode)): - self.ui.status(_("filtering out empty revision\n")) - self.repo.rollback() - return parent - return p2 - - def puttags(self, tags): - try: - parentctx = self.repo[self.tagsbranch] - tagparent = parentctx.node() - except error.RepoError: - parentctx = None - tagparent = nullid - - try: - oldlines = sorted(parentctx['.hgtags'].data().splitlines(True)) - except: - oldlines = [] - - newlines = sorted([("%s %s\n" % (tags[tag], tag)) for tag in tags]) - if newlines == oldlines: - return None, None - data = "".join(newlines) - def getfilectx(repo, memctx, f): - return context.memfilectx(f, data, False, False, None) - - self.ui.status(_("updating tags\n")) - date = "%s 0" % int(time.mktime(time.gmtime())) - extra = {'branch': self.tagsbranch} - ctx = context.memctx(self.repo, (tagparent, None), "update tags", - [".hgtags"], getfilectx, "convert-repo", date, - extra) - self.repo.commitctx(ctx) - return hex(self.repo.changelog.tip()), hex(tagparent) - - def setfilemapmode(self, active): - self.filemapmode = active - -class mercurial_source(converter_source): - def __init__(self, ui, path, rev=None): - converter_source.__init__(self, ui, path, rev) - self.ignoreerrors = ui.configbool('convert', 'hg.ignoreerrors', False) - self.ignored = set() - self.saverev = ui.configbool('convert', 'hg.saverev', False) - try: - self.repo = hg.repository(self.ui, path) - # try to provoke an exception if this isn't really a hg - # repo, but some other bogus compatible-looking url - if not self.repo.local(): - raise error.RepoError() - except error.RepoError: - ui.traceback() - raise NoRepo(_("%s is not a local Mercurial repository") % path) - self.lastrev = None - self.lastctx = None - self._changescache = None - self.convertfp = None - # Restrict converted revisions to startrev descendants - startnode = ui.config('convert', 'hg.startrev') - if startnode is not None: - try: - startnode = self.repo.lookup(startnode) - except error.RepoError: - raise util.Abort(_('%s is not a valid start revision') - % startnode) - startrev = self.repo.changelog.rev(startnode) - children = {startnode: 1} - for rev in self.repo.changelog.descendants(startrev): - children[self.repo.changelog.node(rev)] = 1 - self.keep = children.__contains__ - else: - self.keep = util.always - - def changectx(self, rev): - if self.lastrev != rev: - self.lastctx = self.repo[rev] - self.lastrev = rev - return self.lastctx - - def parents(self, ctx): - return [p for p in ctx.parents() if p and self.keep(p.node())] - - def getheads(self): - if self.rev: - heads = [self.repo[self.rev].node()] - else: - heads = self.repo.heads() - return [hex(h) for h in heads if self.keep(h)] - - def getfile(self, name, rev): - try: - fctx = self.changectx(rev)[name] - return fctx.data(), fctx.flags() - except error.LookupError, err: - raise IOError(err) - - def getchanges(self, rev): - ctx = self.changectx(rev) - parents = self.parents(ctx) - if not parents: - files = sorted(ctx.manifest()) - if self.ignoreerrors: - # calling getcopies() is a simple way to detect missing - # revlogs and populate self.ignored - self.getcopies(ctx, parents, files) - return [(f, rev) for f in files if f not in self.ignored], {} - if self._changescache and self._changescache[0] == rev: - m, a, r = self._changescache[1] - else: - m, a, r = self.repo.status(parents[0].node(), ctx.node())[:3] - # getcopies() detects missing revlogs early, run it before - # filtering the changes. - copies = self.getcopies(ctx, parents, m + a) - changes = [(name, rev) for name in m + a + r - if name not in self.ignored] - return sorted(changes), copies - - def getcopies(self, ctx, parents, files): - copies = {} - for name in files: - if name in self.ignored: - continue - try: - copysource, copynode = ctx.filectx(name).renamed() - if copysource in self.ignored or not self.keep(copynode): - continue - # Ignore copy sources not in parent revisions - found = False - for p in parents: - if copysource in p: - found = True - break - if not found: - continue - copies[name] = copysource - except TypeError: - pass - except error.LookupError, e: - if not self.ignoreerrors: - raise - self.ignored.add(name) - self.ui.warn(_('ignoring: %s\n') % e) - return copies - - def getcommit(self, rev): - ctx = self.changectx(rev) - parents = [p.hex() for p in self.parents(ctx)] - if self.saverev: - crev = rev - else: - crev = None - return commit(author=ctx.user(), date=util.datestr(ctx.date()), - desc=ctx.description(), rev=crev, parents=parents, - branch=ctx.branch(), extra=ctx.extra(), - sortkey=ctx.rev()) - - def gettags(self): - tags = [t for t in self.repo.tagslist() if t[0] != 'tip'] - return dict([(name, hex(node)) for name, node in tags - if self.keep(node)]) - - def getchangedfiles(self, rev, i): - ctx = self.changectx(rev) - parents = self.parents(ctx) - if not parents and i is None: - i = 0 - changes = [], ctx.manifest().keys(), [] - else: - i = i or 0 - changes = self.repo.status(parents[i].node(), ctx.node())[:3] - changes = [[f for f in l if f not in self.ignored] for l in changes] - - if i == 0: - self._changescache = (rev, changes) - - return changes[0] + changes[1] + changes[2] - - def converted(self, rev, destrev): - if self.convertfp is None: - self.convertfp = open(os.path.join(self.path, '.hg', 'shamap'), - 'a') - self.convertfp.write('%s %s\n' % (destrev, rev)) - self.convertfp.flush() - - def before(self): - self.ui.debug('run hg source pre-conversion action\n') - - def after(self): - self.ui.debug('run hg source post-conversion action\n') - - def hasnativeorder(self): - return True - - def lookuprev(self, rev): - try: - return hex(self.repo.lookup(rev)) - except error.RepoError: - return None diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.pyo deleted file mode 100644 index 633af5e..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/hg.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.py deleted file mode 100644 index 151ddc5..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.py +++ /dev/null @@ -1,227 +0,0 @@ -# monotone.py - monotone support for the convert extension -# -# Copyright 2008, 2009 Mikkel Fahnoe Jorgensen and -# others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -import os, re -from mercurial import util -from common import NoRepo, commit, converter_source, checktool -from common import commandline -from mercurial.i18n import _ - -class monotone_source(converter_source, commandline): - def __init__(self, ui, path=None, rev=None): - converter_source.__init__(self, ui, path, rev) - commandline.__init__(self, ui, 'mtn') - - self.ui = ui - self.path = path - - norepo = NoRepo(_("%s does not look like a monotone repository") - % path) - if not os.path.exists(os.path.join(path, '_MTN')): - # Could be a monotone repository (SQLite db file) - try: - header = file(path, 'rb').read(16) - except: - header = '' - if header != 'SQLite format 3\x00': - raise norepo - - # regular expressions for parsing monotone output - space = r'\s*' - name = r'\s+"((?:\\"|[^"])*)"\s*' - value = name - revision = r'\s+\[(\w+)\]\s*' - lines = r'(?:.|\n)+' - - self.dir_re = re.compile(space + "dir" + name) - self.file_re = re.compile(space + "file" + name + - "content" + revision) - self.add_file_re = re.compile(space + "add_file" + name + - "content" + revision) - self.patch_re = re.compile(space + "patch" + name + - "from" + revision + "to" + revision) - self.rename_re = re.compile(space + "rename" + name + "to" + name) - self.delete_re = re.compile(space + "delete" + name) - self.tag_re = re.compile(space + "tag" + name + "revision" + - revision) - self.cert_re = re.compile(lines + space + "name" + name + - "value" + value) - - attr = space + "file" + lines + space + "attr" + space - self.attr_execute_re = re.compile(attr + '"mtn:execute"' + - space + '"true"') - - # cached data - self.manifest_rev = None - self.manifest = None - self.files = None - self.dirs = None - - checktool('mtn', abort=False) - - # test if there are any revisions - self.rev = None - try: - self.getheads() - except: - raise norepo - self.rev = rev - - def mtnrun(self, *args, **kwargs): - kwargs['d'] = self.path - return self.run0('automate', *args, **kwargs) - - def mtnloadmanifest(self, rev): - if self.manifest_rev == rev: - return - self.manifest = self.mtnrun("get_manifest_of", rev).split("\n\n") - self.manifest_rev = rev - self.files = {} - self.dirs = {} - - for e in self.manifest: - m = self.file_re.match(e) - if m: - attr = "" - name = m.group(1) - node = m.group(2) - if self.attr_execute_re.match(e): - attr += "x" - self.files[name] = (node, attr) - m = self.dir_re.match(e) - if m: - self.dirs[m.group(1)] = True - - def mtnisfile(self, name, rev): - # a non-file could be a directory or a deleted or renamed file - self.mtnloadmanifest(rev) - return name in self.files - - def mtnisdir(self, name, rev): - self.mtnloadmanifest(rev) - return name in self.dirs - - def mtngetcerts(self, rev): - certs = {"author":"", "date":"", - "changelog":"", "branch":""} - certlist = self.mtnrun("certs", rev) - # mtn < 0.45: - # key "test@selenic.com" - # mtn >= 0.45: - # key [ff58a7ffb771907c4ff68995eada1c4da068d328] - certlist = re.split('\n\n key ["\[]', certlist) - for e in certlist: - m = self.cert_re.match(e) - if m: - name, value = m.groups() - value = value.replace(r'\"', '"') - value = value.replace(r'\\', '\\') - certs[name] = value - # Monotone may have subsecond dates: 2005-02-05T09:39:12.364306 - # and all times are stored in UTC - certs["date"] = certs["date"].split('.')[0] + " UTC" - return certs - - # implement the converter_source interface: - - def getheads(self): - if not self.rev: - return self.mtnrun("leaves").splitlines() - else: - return [self.rev] - - def getchanges(self, rev): - #revision = self.mtncmd("get_revision %s" % rev).split("\n\n") - revision = self.mtnrun("get_revision", rev).split("\n\n") - files = {} - ignoremove = {} - renameddirs = [] - copies = {} - for e in revision: - m = self.add_file_re.match(e) - if m: - files[m.group(1)] = rev - ignoremove[m.group(1)] = rev - m = self.patch_re.match(e) - if m: - files[m.group(1)] = rev - # Delete/rename is handled later when the convert engine - # discovers an IOError exception from getfile, - # but only if we add the "from" file to the list of changes. - m = self.delete_re.match(e) - if m: - files[m.group(1)] = rev - m = self.rename_re.match(e) - if m: - toname = m.group(2) - fromname = m.group(1) - if self.mtnisfile(toname, rev): - ignoremove[toname] = 1 - copies[toname] = fromname - files[toname] = rev - files[fromname] = rev - elif self.mtnisdir(toname, rev): - renameddirs.append((fromname, toname)) - - # Directory renames can be handled only once we have recorded - # all new files - for fromdir, todir in renameddirs: - renamed = {} - for tofile in self.files: - if tofile in ignoremove: - continue - if tofile.startswith(todir + '/'): - renamed[tofile] = fromdir + tofile[len(todir):] - # Avoid chained moves like: - # d1(/a) => d3/d1(/a) - # d2 => d3 - ignoremove[tofile] = 1 - for tofile, fromfile in renamed.items(): - self.ui.debug (_("copying file in renamed directory " - "from '%s' to '%s'") - % (fromfile, tofile), '\n') - files[tofile] = rev - copies[tofile] = fromfile - for fromfile in renamed.values(): - files[fromfile] = rev - - return (files.items(), copies) - - def getfile(self, name, rev): - if not self.mtnisfile(name, rev): - raise IOError() # file was deleted or renamed - try: - data = self.mtnrun("get_file_of", name, r=rev) - except: - raise IOError() # file was deleted or renamed - self.mtnloadmanifest(rev) - node, attr = self.files.get(name, (None, "")) - return data, attr - - def getcommit(self, rev): - certs = self.mtngetcerts(rev) - return commit( - author=certs["author"], - date=util.datestr(util.strdate(certs["date"], "%Y-%m-%dT%H:%M:%S")), - desc=certs["changelog"], - rev=rev, - parents=self.mtnrun("parents", rev).splitlines(), - branch=certs["branch"]) - - def gettags(self): - tags = {} - for e in self.mtnrun("tags").split("\n\n"): - m = self.tag_re.match(e) - if m: - tags[m.group(1)] = m.group(2) - return tags - - def getchangedfiles(self, rev, i): - # This function is only needed to support --filemap - # ... and we don't support that - raise NotImplementedError() diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.pyo deleted file mode 100644 index b51d266..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/monotone.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.py deleted file mode 100644 index 5d640ad..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.py +++ /dev/null @@ -1,202 +0,0 @@ -# Perforce source for convert extension. -# -# Copyright 2009, Frank Kingswood -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -from mercurial import util -from mercurial.i18n import _ - -from common import commit, converter_source, checktool, NoRepo -import marshal -import re - -def loaditer(f): - "Yield the dictionary objects generated by p4" - try: - while True: - d = marshal.load(f) - if not d: - break - yield d - except EOFError: - pass - -class p4_source(converter_source): - def __init__(self, ui, path, rev=None): - super(p4_source, self).__init__(ui, path, rev=rev) - - if "/" in path and not path.startswith('//'): - raise NoRepo(_('%s does not look like a P4 repository') % path) - - checktool('p4', abort=False) - - self.p4changes = {} - self.heads = {} - self.changeset = {} - self.files = {} - self.tags = {} - self.lastbranch = {} - self.parent = {} - self.encoding = "latin_1" - self.depotname = {} # mapping from local name to depot name - self.re_type = re.compile( - "([a-z]+)?(text|binary|symlink|apple|resource|unicode|utf\d+)" - "(\+\w+)?$") - self.re_keywords = re.compile( - r"\$(Id|Header|Date|DateTime|Change|File|Revision|Author)" - r":[^$\n]*\$") - self.re_keywords_old = re.compile("\$(Id|Header):[^$\n]*\$") - - self._parse(ui, path) - - def _parse_view(self, path): - "Read changes affecting the path" - cmd = 'p4 -G changes -s submitted %s' % util.shellquote(path) - stdout = util.popen(cmd, mode='rb') - for d in loaditer(stdout): - c = d.get("change", None) - if c: - self.p4changes[c] = True - - def _parse(self, ui, path): - "Prepare list of P4 filenames and revisions to import" - ui.status(_('reading p4 views\n')) - - # read client spec or view - if "/" in path: - self._parse_view(path) - if path.startswith("//") and path.endswith("/..."): - views = {path[:-3]:""} - else: - views = {"//": ""} - else: - cmd = 'p4 -G client -o %s' % util.shellquote(path) - clientspec = marshal.load(util.popen(cmd, mode='rb')) - - views = {} - for client in clientspec: - if client.startswith("View"): - sview, cview = clientspec[client].split() - self._parse_view(sview) - if sview.endswith("...") and cview.endswith("..."): - sview = sview[:-3] - cview = cview[:-3] - cview = cview[2:] - cview = cview[cview.find("/") + 1:] - views[sview] = cview - - # list of changes that affect our source files - self.p4changes = self.p4changes.keys() - self.p4changes.sort(key=int) - - # list with depot pathnames, longest first - vieworder = views.keys() - vieworder.sort(key=len, reverse=True) - - # handle revision limiting - startrev = self.ui.config('convert', 'p4.startrev', default=0) - self.p4changes = [x for x in self.p4changes - if ((not startrev or int(x) >= int(startrev)) and - (not self.rev or int(x) <= int(self.rev)))] - - # now read the full changelists to get the list of file revisions - ui.status(_('collecting p4 changelists\n')) - lastid = None - for change in self.p4changes: - cmd = "p4 -G describe -s %s" % change - stdout = util.popen(cmd, mode='rb') - d = marshal.load(stdout) - desc = self.recode(d["desc"]) - shortdesc = desc.split("\n", 1)[0] - t = '%s %s' % (d["change"], repr(shortdesc)[1:-1]) - ui.status(util.ellipsis(t, 80) + '\n') - - if lastid: - parents = [lastid] - else: - parents = [] - - date = (int(d["time"]), 0) # timezone not set - c = commit(author=self.recode(d["user"]), date=util.datestr(date), - parents=parents, desc=desc, branch='', - extra={"p4": change}) - - files = [] - i = 0 - while ("depotFile%d" % i) in d and ("rev%d" % i) in d: - oldname = d["depotFile%d" % i] - filename = None - for v in vieworder: - if oldname.startswith(v): - filename = views[v] + oldname[len(v):] - break - if filename: - files.append((filename, d["rev%d" % i])) - self.depotname[filename] = oldname - i += 1 - self.changeset[change] = c - self.files[change] = files - lastid = change - - if lastid: - self.heads = [lastid] - - def getheads(self): - return self.heads - - def getfile(self, name, rev): - cmd = 'p4 -G print %s' \ - % util.shellquote("%s#%s" % (self.depotname[name], rev)) - stdout = util.popen(cmd, mode='rb') - - mode = None - contents = "" - keywords = None - - for d in loaditer(stdout): - code = d["code"] - data = d.get("data") - - if code == "error": - raise IOError(d["generic"], data) - - elif code == "stat": - p4type = self.re_type.match(d["type"]) - if p4type: - mode = "" - flags = (p4type.group(1) or "") + (p4type.group(3) or "") - if "x" in flags: - mode = "x" - if p4type.group(2) == "symlink": - mode = "l" - if "ko" in flags: - keywords = self.re_keywords_old - elif "k" in flags: - keywords = self.re_keywords - - elif code == "text" or code == "binary": - contents += data - - if mode is None: - raise IOError(0, "bad stat") - - if keywords: - contents = keywords.sub("$\\1$", contents) - if mode == "l" and contents.endswith("\n"): - contents = contents[:-1] - - return contents, mode - - def getchanges(self, rev): - return self.files[rev], {} - - def getcommit(self, rev): - return self.changeset[rev] - - def gettags(self): - return self.tags - - def getchangedfiles(self, rev, i): - return sorted([x[0] for x in self.files[rev]]) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.pyo deleted file mode 100644 index 45f1e2a..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/p4.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.py deleted file mode 100644 index f2d26ad..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.py +++ /dev/null @@ -1,1168 +0,0 @@ -# Subversion 1.4/1.5 Python API backend -# -# Copyright(C) 2007 Daniel Holth et al - -import os -import re -import sys -import cPickle as pickle -import tempfile -import urllib -import urllib2 - -from mercurial import strutil, util, encoding -from mercurial.i18n import _ - -# Subversion stuff. Works best with very recent Python SVN bindings -# e.g. SVN 1.5 or backports. Thanks to the bzr folks for enhancing -# these bindings. - -from cStringIO import StringIO - -from common import NoRepo, MissingTool, commit, encodeargs, decodeargs -from common import commandline, converter_source, converter_sink, mapfile - -try: - from svn.core import SubversionException, Pool - import svn - import svn.client - import svn.core - import svn.ra - import svn.delta - import transport - import warnings - warnings.filterwarnings('ignore', - module='svn.core', - category=DeprecationWarning) - -except ImportError: - pass - -class SvnPathNotFound(Exception): - pass - -def geturl(path): - try: - return svn.client.url_from_path(svn.core.svn_path_canonicalize(path)) - except SubversionException: - pass - if os.path.isdir(path): - path = os.path.normpath(os.path.abspath(path)) - if os.name == 'nt': - path = '/' + util.normpath(path) - # Module URL is later compared with the repository URL returned - # by svn API, which is UTF-8. - path = encoding.tolocal(path) - return 'file://%s' % urllib.quote(path) - return path - -def optrev(number): - optrev = svn.core.svn_opt_revision_t() - optrev.kind = svn.core.svn_opt_revision_number - optrev.value.number = number - return optrev - -class changedpath(object): - def __init__(self, p): - self.copyfrom_path = p.copyfrom_path - self.copyfrom_rev = p.copyfrom_rev - self.action = p.action - -def get_log_child(fp, url, paths, start, end, limit=0, discover_changed_paths=True, - strict_node_history=False): - protocol = -1 - def receiver(orig_paths, revnum, author, date, message, pool): - if orig_paths is not None: - for k, v in orig_paths.iteritems(): - orig_paths[k] = changedpath(v) - pickle.dump((orig_paths, revnum, author, date, message), - fp, protocol) - - try: - # Use an ra of our own so that our parent can consume - # our results without confusing the server. - t = transport.SvnRaTransport(url=url) - svn.ra.get_log(t.ra, paths, start, end, limit, - discover_changed_paths, - strict_node_history, - receiver) - except SubversionException, (inst, num): - pickle.dump(num, fp, protocol) - except IOError: - # Caller may interrupt the iteration - pickle.dump(None, fp, protocol) - else: - pickle.dump(None, fp, protocol) - fp.close() - # With large history, cleanup process goes crazy and suddenly - # consumes *huge* amount of memory. The output file being closed, - # there is no need for clean termination. - os._exit(0) - -def debugsvnlog(ui, **opts): - """Fetch SVN log in a subprocess and channel them back to parent to - avoid memory collection issues. - """ - util.set_binary(sys.stdin) - util.set_binary(sys.stdout) - args = decodeargs(sys.stdin.read()) - get_log_child(sys.stdout, *args) - -class logstream(object): - """Interruptible revision log iterator.""" - def __init__(self, stdout): - self._stdout = stdout - - def __iter__(self): - while True: - try: - entry = pickle.load(self._stdout) - except EOFError: - raise util.Abort(_('Mercurial failed to run itself, check' - ' hg executable is in PATH')) - try: - orig_paths, revnum, author, date, message = entry - except: - if entry is None: - break - raise SubversionException("child raised exception", entry) - yield entry - - def close(self): - if self._stdout: - self._stdout.close() - self._stdout = None - - -# Check to see if the given path is a local Subversion repo. Verify this by -# looking for several svn-specific files and directories in the given -# directory. -def filecheck(ui, path, proto): - for x in ('locks', 'hooks', 'format', 'db'): - if not os.path.exists(os.path.join(path, x)): - return False - return True - -# Check to see if a given path is the root of an svn repo over http. We verify -# this by requesting a version-controlled URL we know can't exist and looking -# for the svn-specific "not found" XML. -def httpcheck(ui, path, proto): - try: - opener = urllib2.build_opener() - rsp = opener.open('%s://%s/!svn/ver/0/.svn' % (proto, path)) - data = rsp.read() - except urllib2.HTTPError, inst: - if inst.code != 404: - # Except for 404 we cannot know for sure this is not an svn repo - ui.warn(_('svn: cannot probe remote repository, assume it could ' - 'be a subversion repository. Use --source-type if you ' - 'know better.\n')) - return True - data = inst.fp.read() - except: - # Could be urllib2.URLError if the URL is invalid or anything else. - return False - return '' in data - -protomap = {'http': httpcheck, - 'https': httpcheck, - 'file': filecheck, - } -def issvnurl(ui, url): - try: - proto, path = url.split('://', 1) - if proto == 'file': - path = urllib.url2pathname(path) - except ValueError: - proto = 'file' - path = os.path.abspath(url) - if proto == 'file': - path = path.replace(os.sep, '/') - check = protomap.get(proto, lambda *args: False) - while '/' in path: - if check(ui, path, proto): - return True - path = path.rsplit('/', 1)[0] - return False - -# SVN conversion code stolen from bzr-svn and tailor -# -# Subversion looks like a versioned filesystem, branches structures -# are defined by conventions and not enforced by the tool. First, -# we define the potential branches (modules) as "trunk" and "branches" -# children directories. Revisions are then identified by their -# module and revision number (and a repository identifier). -# -# The revision graph is really a tree (or a forest). By default, a -# revision parent is the previous revision in the same module. If the -# module directory is copied/moved from another module then the -# revision is the module root and its parent the source revision in -# the parent module. A revision has at most one parent. -# -class svn_source(converter_source): - def __init__(self, ui, url, rev=None): - super(svn_source, self).__init__(ui, url, rev=rev) - - if not (url.startswith('svn://') or url.startswith('svn+ssh://') or - (os.path.exists(url) and - os.path.exists(os.path.join(url, '.svn'))) or - issvnurl(ui, url)): - raise NoRepo(_("%s does not look like a Subversion repository") - % url) - - try: - SubversionException - except NameError: - raise MissingTool(_('Subversion python bindings could not be loaded')) - - try: - version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR - if version < (1, 4): - raise MissingTool(_('Subversion python bindings %d.%d found, ' - '1.4 or later required') % version) - except AttributeError: - raise MissingTool(_('Subversion python bindings are too old, 1.4 ' - 'or later required')) - - self.lastrevs = {} - - latest = None - try: - # Support file://path@rev syntax. Useful e.g. to convert - # deleted branches. - at = url.rfind('@') - if at >= 0: - latest = int(url[at + 1:]) - url = url[:at] - except ValueError: - pass - self.url = geturl(url) - self.encoding = 'UTF-8' # Subversion is always nominal UTF-8 - try: - self.transport = transport.SvnRaTransport(url=self.url) - self.ra = self.transport.ra - self.ctx = self.transport.client - self.baseurl = svn.ra.get_repos_root(self.ra) - # Module is either empty or a repository path starting with - # a slash and not ending with a slash. - self.module = urllib.unquote(self.url[len(self.baseurl):]) - self.prevmodule = None - self.rootmodule = self.module - self.commits = {} - self.paths = {} - self.uuid = svn.ra.get_uuid(self.ra) - except SubversionException: - ui.traceback() - raise NoRepo(_("%s does not look like a Subversion repository") - % self.url) - - if rev: - try: - latest = int(rev) - except ValueError: - raise util.Abort(_('svn: revision %s is not an integer') % rev) - - self.startrev = self.ui.config('convert', 'svn.startrev', default=0) - try: - self.startrev = int(self.startrev) - if self.startrev < 0: - self.startrev = 0 - except ValueError: - raise util.Abort(_('svn: start revision %s is not an integer') - % self.startrev) - - self.head = self.latest(self.module, latest) - if not self.head: - raise util.Abort(_('no revision found in module %s') - % self.module) - self.last_changed = self.revnum(self.head) - - self._changescache = None - - if os.path.exists(os.path.join(url, '.svn/entries')): - self.wc = url - else: - self.wc = None - self.convertfp = None - - def setrevmap(self, revmap): - lastrevs = {} - for revid in revmap.iterkeys(): - uuid, module, revnum = self.revsplit(revid) - lastrevnum = lastrevs.setdefault(module, revnum) - if revnum > lastrevnum: - lastrevs[module] = revnum - self.lastrevs = lastrevs - - def exists(self, path, optrev): - try: - svn.client.ls(self.url.rstrip('/') + '/' + urllib.quote(path), - optrev, False, self.ctx) - return True - except SubversionException: - return False - - def getheads(self): - - def isdir(path, revnum): - kind = self._checkpath(path, revnum) - return kind == svn.core.svn_node_dir - - def getcfgpath(name, rev): - cfgpath = self.ui.config('convert', 'svn.' + name) - if cfgpath is not None and cfgpath.strip() == '': - return None - path = (cfgpath or name).strip('/') - if not self.exists(path, rev): - if cfgpath: - raise util.Abort(_('expected %s to be at %r, but not found') - % (name, path)) - return None - self.ui.note(_('found %s at %r\n') % (name, path)) - return path - - rev = optrev(self.last_changed) - oldmodule = '' - trunk = getcfgpath('trunk', rev) - self.tags = getcfgpath('tags', rev) - branches = getcfgpath('branches', rev) - - # If the project has a trunk or branches, we will extract heads - # from them. We keep the project root otherwise. - if trunk: - oldmodule = self.module or '' - self.module += '/' + trunk - self.head = self.latest(self.module, self.last_changed) - if not self.head: - raise util.Abort(_('no revision found in module %s') - % self.module) - - # First head in the list is the module's head - self.heads = [self.head] - if self.tags is not None: - self.tags = '%s/%s' % (oldmodule , (self.tags or 'tags')) - - # Check if branches bring a few more heads to the list - if branches: - rpath = self.url.strip('/') - branchnames = svn.client.ls(rpath + '/' + urllib.quote(branches), - rev, False, self.ctx) - for branch in branchnames.keys(): - module = '%s/%s/%s' % (oldmodule, branches, branch) - if not isdir(module, self.last_changed): - continue - brevid = self.latest(module, self.last_changed) - if not brevid: - self.ui.note(_('ignoring empty branch %s\n') % branch) - continue - self.ui.note(_('found branch %s at %d\n') % - (branch, self.revnum(brevid))) - self.heads.append(brevid) - - if self.startrev and self.heads: - if len(self.heads) > 1: - raise util.Abort(_('svn: start revision is not supported ' - 'with more than one branch')) - revnum = self.revnum(self.heads[0]) - if revnum < self.startrev: - raise util.Abort( - _('svn: no revision found after start revision %d') - % self.startrev) - - return self.heads - - def getchanges(self, rev): - if self._changescache and self._changescache[0] == rev: - return self._changescache[1] - self._changescache = None - (paths, parents) = self.paths[rev] - if parents: - files, self.removed, copies = self.expandpaths(rev, paths, parents) - else: - # Perform a full checkout on roots - uuid, module, revnum = self.revsplit(rev) - entries = svn.client.ls(self.baseurl + urllib.quote(module), - optrev(revnum), True, self.ctx) - files = [n for n, e in entries.iteritems() - if e.kind == svn.core.svn_node_file] - copies = {} - self.removed = set() - - files.sort() - files = zip(files, [rev] * len(files)) - - # caller caches the result, so free it here to release memory - del self.paths[rev] - return (files, copies) - - def getchangedfiles(self, rev, i): - changes = self.getchanges(rev) - self._changescache = (rev, changes) - return [f[0] for f in changes[0]] - - def getcommit(self, rev): - if rev not in self.commits: - uuid, module, revnum = self.revsplit(rev) - self.module = module - self.reparent(module) - # We assume that: - # - requests for revisions after "stop" come from the - # revision graph backward traversal. Cache all of them - # down to stop, they will be used eventually. - # - requests for revisions before "stop" come to get - # isolated branches parents. Just fetch what is needed. - stop = self.lastrevs.get(module, 0) - if revnum < stop: - stop = revnum + 1 - self._fetch_revisions(revnum, stop) - commit = self.commits[rev] - # caller caches the result, so free it here to release memory - del self.commits[rev] - return commit - - def gettags(self): - tags = {} - if self.tags is None: - return tags - - # svn tags are just a convention, project branches left in a - # 'tags' directory. There is no other relationship than - # ancestry, which is expensive to discover and makes them hard - # to update incrementally. Worse, past revisions may be - # referenced by tags far away in the future, requiring a deep - # history traversal on every calculation. Current code - # performs a single backward traversal, tracking moves within - # the tags directory (tag renaming) and recording a new tag - # everytime a project is copied from outside the tags - # directory. It also lists deleted tags, this behaviour may - # change in the future. - pendings = [] - tagspath = self.tags - start = svn.ra.get_latest_revnum(self.ra) - stream = self._getlog([self.tags], start, self.startrev) - try: - for entry in stream: - origpaths, revnum, author, date, message = entry - copies = [(e.copyfrom_path, e.copyfrom_rev, p) for p, e - in origpaths.iteritems() if e.copyfrom_path] - # Apply moves/copies from more specific to general - copies.sort(reverse=True) - - srctagspath = tagspath - if copies and copies[-1][2] == tagspath: - # Track tags directory moves - srctagspath = copies.pop()[0] - - for source, sourcerev, dest in copies: - if not dest.startswith(tagspath + '/'): - continue - for tag in pendings: - if tag[0].startswith(dest): - tagpath = source + tag[0][len(dest):] - tag[:2] = [tagpath, sourcerev] - break - else: - pendings.append([source, sourcerev, dest]) - - # Filter out tags with children coming from different - # parts of the repository like: - # /tags/tag.1 (from /trunk:10) - # /tags/tag.1/foo (from /branches/foo:12) - # Here/tags/tag.1 discarded as well as its children. - # It happens with tools like cvs2svn. Such tags cannot - # be represented in mercurial. - addeds = dict((p, e.copyfrom_path) for p, e - in origpaths.iteritems() - if e.action == 'A' and e.copyfrom_path) - badroots = set() - for destroot in addeds: - for source, sourcerev, dest in pendings: - if (not dest.startswith(destroot + '/') - or source.startswith(addeds[destroot] + '/')): - continue - badroots.add(destroot) - break - - for badroot in badroots: - pendings = [p for p in pendings if p[2] != badroot - and not p[2].startswith(badroot + '/')] - - # Tell tag renamings from tag creations - remainings = [] - for source, sourcerev, dest in pendings: - tagname = dest.split('/')[-1] - if source.startswith(srctagspath): - remainings.append([source, sourcerev, tagname]) - continue - if tagname in tags: - # Keep the latest tag value - continue - # From revision may be fake, get one with changes - try: - tagid = self.latest(source, sourcerev) - if tagid and tagname not in tags: - tags[tagname] = tagid - except SvnPathNotFound: - # It happens when we are following directories - # we assumed were copied with their parents - # but were really created in the tag - # directory. - pass - pendings = remainings - tagspath = srctagspath - finally: - stream.close() - return tags - - def converted(self, rev, destrev): - if not self.wc: - return - if self.convertfp is None: - self.convertfp = open(os.path.join(self.wc, '.svn', 'hg-shamap'), - 'a') - self.convertfp.write('%s %d\n' % (destrev, self.revnum(rev))) - self.convertfp.flush() - - def revid(self, revnum, module=None): - return 'svn:%s%s@%s' % (self.uuid, module or self.module, revnum) - - def revnum(self, rev): - return int(rev.split('@')[-1]) - - def revsplit(self, rev): - url, revnum = rev.rsplit('@', 1) - revnum = int(revnum) - parts = url.split('/', 1) - uuid = parts.pop(0)[4:] - mod = '' - if parts: - mod = '/' + parts[0] - return uuid, mod, revnum - - def latest(self, path, stop=0): - """Find the latest revid affecting path, up to stop. It may return - a revision in a different module, since a branch may be moved without - a change being reported. Return None if computed module does not - belong to rootmodule subtree. - """ - if not path.startswith(self.rootmodule): - # Requests on foreign branches may be forbidden at server level - self.ui.debug('ignoring foreign branch %r\n' % path) - return None - - if not stop: - stop = svn.ra.get_latest_revnum(self.ra) - try: - prevmodule = self.reparent('') - dirent = svn.ra.stat(self.ra, path.strip('/'), stop) - self.reparent(prevmodule) - except SubversionException: - dirent = None - if not dirent: - raise SvnPathNotFound(_('%s not found up to revision %d') - % (path, stop)) - - # stat() gives us the previous revision on this line of - # development, but it might be in *another module*. Fetch the - # log and detect renames down to the latest revision. - stream = self._getlog([path], stop, dirent.created_rev) - try: - for entry in stream: - paths, revnum, author, date, message = entry - if revnum <= dirent.created_rev: - break - - for p in paths: - if not path.startswith(p) or not paths[p].copyfrom_path: - continue - newpath = paths[p].copyfrom_path + path[len(p):] - self.ui.debug("branch renamed from %s to %s at %d\n" % - (path, newpath, revnum)) - path = newpath - break - finally: - stream.close() - - if not path.startswith(self.rootmodule): - self.ui.debug('ignoring foreign branch %r\n' % path) - return None - return self.revid(dirent.created_rev, path) - - def reparent(self, module): - """Reparent the svn transport and return the previous parent.""" - if self.prevmodule == module: - return module - svnurl = self.baseurl + urllib.quote(module) - prevmodule = self.prevmodule - if prevmodule is None: - prevmodule = '' - self.ui.debug("reparent to %s\n" % svnurl) - svn.ra.reparent(self.ra, svnurl) - self.prevmodule = module - return prevmodule - - def expandpaths(self, rev, paths, parents): - changed, removed = set(), set() - copies = {} - - new_module, revnum = self.revsplit(rev)[1:] - if new_module != self.module: - self.module = new_module - self.reparent(self.module) - - for i, (path, ent) in enumerate(paths): - self.ui.progress(_('scanning paths'), i, item=path, - total=len(paths)) - entrypath = self.getrelpath(path) - - kind = self._checkpath(entrypath, revnum) - if kind == svn.core.svn_node_file: - changed.add(self.recode(entrypath)) - if not ent.copyfrom_path or not parents: - continue - # Copy sources not in parent revisions cannot be - # represented, ignore their origin for now - pmodule, prevnum = self.revsplit(parents[0])[1:] - if ent.copyfrom_rev < prevnum: - continue - copyfrom_path = self.getrelpath(ent.copyfrom_path, pmodule) - if not copyfrom_path: - continue - self.ui.debug("copied to %s from %s@%s\n" % - (entrypath, copyfrom_path, ent.copyfrom_rev)) - copies[self.recode(entrypath)] = self.recode(copyfrom_path) - elif kind == 0: # gone, but had better be a deleted *file* - self.ui.debug("gone from %s\n" % ent.copyfrom_rev) - pmodule, prevnum = self.revsplit(parents[0])[1:] - parentpath = pmodule + "/" + entrypath - fromkind = self._checkpath(entrypath, prevnum, pmodule) - - if fromkind == svn.core.svn_node_file: - removed.add(self.recode(entrypath)) - elif fromkind == svn.core.svn_node_dir: - oroot = parentpath.strip('/') - nroot = path.strip('/') - children = self._iterfiles(oroot, prevnum) - for childpath in children: - childpath = childpath.replace(oroot, nroot) - childpath = self.getrelpath("/" + childpath, pmodule) - if childpath: - removed.add(self.recode(childpath)) - else: - self.ui.debug('unknown path in revision %d: %s\n' % \ - (revnum, path)) - elif kind == svn.core.svn_node_dir: - if ent.action == 'M': - # If the directory just had a prop change, - # then we shouldn't need to look for its children. - continue - if ent.action == 'R' and parents: - # If a directory is replacing a file, mark the previous - # file as deleted - pmodule, prevnum = self.revsplit(parents[0])[1:] - pkind = self._checkpath(entrypath, prevnum, pmodule) - if pkind == svn.core.svn_node_file: - removed.add(self.recode(entrypath)) - elif pkind == svn.core.svn_node_dir: - # We do not know what files were kept or removed, - # mark them all as changed. - for childpath in self._iterfiles(pmodule, prevnum): - childpath = self.getrelpath("/" + childpath) - if childpath: - changed.add(self.recode(childpath)) - - for childpath in self._iterfiles(path, revnum): - childpath = self.getrelpath("/" + childpath) - if childpath: - changed.add(self.recode(childpath)) - - # Handle directory copies - if not ent.copyfrom_path or not parents: - continue - # Copy sources not in parent revisions cannot be - # represented, ignore their origin for now - pmodule, prevnum = self.revsplit(parents[0])[1:] - if ent.copyfrom_rev < prevnum: - continue - copyfrompath = self.getrelpath(ent.copyfrom_path, pmodule) - if not copyfrompath: - continue - self.ui.debug("mark %s came from %s:%d\n" - % (path, copyfrompath, ent.copyfrom_rev)) - children = self._iterfiles(ent.copyfrom_path, ent.copyfrom_rev) - for childpath in children: - childpath = self.getrelpath("/" + childpath, pmodule) - if not childpath: - continue - copytopath = path + childpath[len(copyfrompath):] - copytopath = self.getrelpath(copytopath) - copies[self.recode(copytopath)] = self.recode(childpath) - - self.ui.progress(_('scanning paths'), None) - changed.update(removed) - return (list(changed), removed, copies) - - def _fetch_revisions(self, from_revnum, to_revnum): - if from_revnum < to_revnum: - from_revnum, to_revnum = to_revnum, from_revnum - - self.child_cset = None - - def parselogentry(orig_paths, revnum, author, date, message): - """Return the parsed commit object or None, and True if - the revision is a branch root. - """ - self.ui.debug("parsing revision %d (%d changes)\n" % - (revnum, len(orig_paths))) - - branched = False - rev = self.revid(revnum) - # branch log might return entries for a parent we already have - - if rev in self.commits or revnum < to_revnum: - return None, branched - - parents = [] - # check whether this revision is the start of a branch or part - # of a branch renaming - orig_paths = sorted(orig_paths.iteritems()) - root_paths = [(p, e) for p, e in orig_paths - if self.module.startswith(p)] - if root_paths: - path, ent = root_paths[-1] - if ent.copyfrom_path: - branched = True - newpath = ent.copyfrom_path + self.module[len(path):] - # ent.copyfrom_rev may not be the actual last revision - previd = self.latest(newpath, ent.copyfrom_rev) - if previd is not None: - prevmodule, prevnum = self.revsplit(previd)[1:] - if prevnum >= self.startrev: - parents = [previd] - self.ui.note( - _('found parent of branch %s at %d: %s\n') % - (self.module, prevnum, prevmodule)) - else: - self.ui.debug("no copyfrom path, don't know what to do.\n") - - paths = [] - # filter out unrelated paths - for path, ent in orig_paths: - if self.getrelpath(path) is None: - continue - paths.append((path, ent)) - - # Example SVN datetime. Includes microseconds. - # ISO-8601 conformant - # '2007-01-04T17:35:00.902377Z' - date = util.parsedate(date[:19] + " UTC", ["%Y-%m-%dT%H:%M:%S"]) - - log = message and self.recode(message) or '' - author = author and self.recode(author) or '' - try: - branch = self.module.split("/")[-1] - if branch == 'trunk': - branch = '' - except IndexError: - branch = None - - cset = commit(author=author, - date=util.datestr(date), - desc=log, - parents=parents, - branch=branch, - rev=rev) - - self.commits[rev] = cset - # The parents list is *shared* among self.paths and the - # commit object. Both will be updated below. - self.paths[rev] = (paths, cset.parents) - if self.child_cset and not self.child_cset.parents: - self.child_cset.parents[:] = [rev] - self.child_cset = cset - return cset, branched - - self.ui.note(_('fetching revision log for "%s" from %d to %d\n') % - (self.module, from_revnum, to_revnum)) - - try: - firstcset = None - lastonbranch = False - stream = self._getlog([self.module], from_revnum, to_revnum) - try: - for entry in stream: - paths, revnum, author, date, message = entry - if revnum < self.startrev: - lastonbranch = True - break - if not paths: - self.ui.debug('revision %d has no entries\n' % revnum) - # If we ever leave the loop on an empty - # revision, do not try to get a parent branch - lastonbranch = lastonbranch or revnum == 0 - continue - cset, lastonbranch = parselogentry(paths, revnum, author, - date, message) - if cset: - firstcset = cset - if lastonbranch: - break - finally: - stream.close() - - if not lastonbranch and firstcset and not firstcset.parents: - # The first revision of the sequence (the last fetched one) - # has invalid parents if not a branch root. Find the parent - # revision now, if any. - try: - firstrevnum = self.revnum(firstcset.rev) - if firstrevnum > 1: - latest = self.latest(self.module, firstrevnum - 1) - if latest: - firstcset.parents.append(latest) - except SvnPathNotFound: - pass - except SubversionException, (inst, num): - if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION: - raise util.Abort(_('svn: branch has no revision %s') % to_revnum) - raise - - def getfile(self, file, rev): - # TODO: ra.get_file transmits the whole file instead of diffs. - if file in self.removed: - raise IOError() - mode = '' - try: - new_module, revnum = self.revsplit(rev)[1:] - if self.module != new_module: - self.module = new_module - self.reparent(self.module) - io = StringIO() - info = svn.ra.get_file(self.ra, file, revnum, io) - data = io.getvalue() - # ra.get_files() seems to keep a reference on the input buffer - # preventing collection. Release it explicitely. - io.close() - if isinstance(info, list): - info = info[-1] - mode = ("svn:executable" in info) and 'x' or '' - mode = ("svn:special" in info) and 'l' or mode - except SubversionException, e: - notfound = (svn.core.SVN_ERR_FS_NOT_FOUND, - svn.core.SVN_ERR_RA_DAV_PATH_NOT_FOUND) - if e.apr_err in notfound: # File not found - raise IOError() - raise - if mode == 'l': - link_prefix = "link " - if data.startswith(link_prefix): - data = data[len(link_prefix):] - return data, mode - - def _iterfiles(self, path, revnum): - """Enumerate all files in path at revnum, recursively.""" - path = path.strip('/') - pool = Pool() - rpath = '/'.join([self.baseurl, urllib.quote(path)]).strip('/') - entries = svn.client.ls(rpath, optrev(revnum), True, self.ctx, pool) - return ((path + '/' + p) for p, e in entries.iteritems() - if e.kind == svn.core.svn_node_file) - - def getrelpath(self, path, module=None): - if module is None: - module = self.module - # Given the repository url of this wc, say - # "http://server/plone/CMFPlone/branches/Plone-2_0-branch" - # extract the "entry" portion (a relative path) from what - # svn log --xml says, ie - # "/CMFPlone/branches/Plone-2_0-branch/tests/PloneTestCase.py" - # that is to say "tests/PloneTestCase.py" - if path.startswith(module): - relative = path.rstrip('/')[len(module):] - if relative.startswith('/'): - return relative[1:] - elif relative == '': - return relative - - # The path is outside our tracked tree... - self.ui.debug('%r is not under %r, ignoring\n' % (path, module)) - return None - - def _checkpath(self, path, revnum, module=None): - if module is not None: - prevmodule = self.reparent('') - path = module + '/' + path - try: - # ra.check_path does not like leading slashes very much, it leads - # to PROPFIND subversion errors - return svn.ra.check_path(self.ra, path.strip('/'), revnum) - finally: - if module is not None: - self.reparent(prevmodule) - - def _getlog(self, paths, start, end, limit=0, discover_changed_paths=True, - strict_node_history=False): - # Normalize path names, svn >= 1.5 only wants paths relative to - # supplied URL - relpaths = [] - for p in paths: - if not p.startswith('/'): - p = self.module + '/' + p - relpaths.append(p.strip('/')) - args = [self.baseurl, relpaths, start, end, limit, discover_changed_paths, - strict_node_history] - arg = encodeargs(args) - hgexe = util.hgexecutable() - cmd = '%s debugsvnlog' % util.shellquote(hgexe) - stdin, stdout = util.popen2(cmd) - stdin.write(arg) - try: - stdin.close() - except IOError: - raise util.Abort(_('Mercurial failed to run itself, check' - ' hg executable is in PATH')) - return logstream(stdout) - -pre_revprop_change = '''#!/bin/sh - -REPOS="$1" -REV="$2" -USER="$3" -PROPNAME="$4" -ACTION="$5" - -if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi -if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi -if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi - -echo "Changing prohibited revision property" >&2 -exit 1 -''' - -class svn_sink(converter_sink, commandline): - commit_re = re.compile(r'Committed revision (\d+).', re.M) - - def prerun(self): - if self.wc: - os.chdir(self.wc) - - def postrun(self): - if self.wc: - os.chdir(self.cwd) - - def join(self, name): - return os.path.join(self.wc, '.svn', name) - - def revmapfile(self): - return self.join('hg-shamap') - - def authorfile(self): - return self.join('hg-authormap') - - def __init__(self, ui, path): - converter_sink.__init__(self, ui, path) - commandline.__init__(self, ui, 'svn') - self.delete = [] - self.setexec = [] - self.delexec = [] - self.copies = [] - self.wc = None - self.cwd = os.getcwd() - - path = os.path.realpath(path) - - created = False - if os.path.isfile(os.path.join(path, '.svn', 'entries')): - self.wc = path - self.run0('update') - else: - wcpath = os.path.join(os.getcwd(), os.path.basename(path) + '-wc') - - if os.path.isdir(os.path.dirname(path)): - if not os.path.exists(os.path.join(path, 'db', 'fs-type')): - ui.status(_('initializing svn repository %r\n') % - os.path.basename(path)) - commandline(ui, 'svnadmin').run0('create', path) - created = path - path = util.normpath(path) - if not path.startswith('/'): - path = '/' + path - path = 'file://' + path - - ui.status(_('initializing svn working copy %r\n') - % os.path.basename(wcpath)) - self.run0('checkout', path, wcpath) - - self.wc = wcpath - self.opener = util.opener(self.wc) - self.wopener = util.opener(self.wc) - self.childmap = mapfile(ui, self.join('hg-childmap')) - self.is_exec = util.checkexec(self.wc) and util.is_exec or None - - if created: - hook = os.path.join(created, 'hooks', 'pre-revprop-change') - fp = open(hook, 'w') - fp.write(pre_revprop_change) - fp.close() - util.set_flags(hook, False, True) - - xport = transport.SvnRaTransport(url=geturl(path)) - self.uuid = svn.ra.get_uuid(xport.ra) - - def wjoin(self, *names): - return os.path.join(self.wc, *names) - - def putfile(self, filename, flags, data): - if 'l' in flags: - self.wopener.symlink(data, filename) - else: - try: - if os.path.islink(self.wjoin(filename)): - os.unlink(filename) - except OSError: - pass - self.wopener(filename, 'w').write(data) - - if self.is_exec: - was_exec = self.is_exec(self.wjoin(filename)) - else: - # On filesystems not supporting execute-bit, there is no way - # to know if it is set but asking subversion. Setting it - # systematically is just as expensive and much simpler. - was_exec = 'x' not in flags - - util.set_flags(self.wjoin(filename), False, 'x' in flags) - if was_exec: - if 'x' not in flags: - self.delexec.append(filename) - else: - if 'x' in flags: - self.setexec.append(filename) - - def _copyfile(self, source, dest): - # SVN's copy command pukes if the destination file exists, but - # our copyfile method expects to record a copy that has - # already occurred. Cross the semantic gap. - wdest = self.wjoin(dest) - exists = os.path.lexists(wdest) - if exists: - fd, tempname = tempfile.mkstemp( - prefix='hg-copy-', dir=os.path.dirname(wdest)) - os.close(fd) - os.unlink(tempname) - os.rename(wdest, tempname) - try: - self.run0('copy', source, dest) - finally: - if exists: - try: - os.unlink(wdest) - except OSError: - pass - os.rename(tempname, wdest) - - def dirs_of(self, files): - dirs = set() - for f in files: - if os.path.isdir(self.wjoin(f)): - dirs.add(f) - for i in strutil.rfindall(f, '/'): - dirs.add(f[:i]) - return dirs - - def add_dirs(self, files): - add_dirs = [d for d in sorted(self.dirs_of(files)) - if not os.path.exists(self.wjoin(d, '.svn', 'entries'))] - if add_dirs: - self.xargs(add_dirs, 'add', non_recursive=True, quiet=True) - return add_dirs - - def add_files(self, files): - if files: - self.xargs(files, 'add', quiet=True) - return files - - def tidy_dirs(self, names): - deleted = [] - for d in sorted(self.dirs_of(names), reverse=True): - wd = self.wjoin(d) - if os.listdir(wd) == '.svn': - self.run0('delete', d) - deleted.append(d) - return deleted - - def addchild(self, parent, child): - self.childmap[parent] = child - - def revid(self, rev): - return u"svn:%s@%s" % (self.uuid, rev) - - def putcommit(self, files, copies, parents, commit, source, revmap): - # Apply changes to working copy - for f, v in files: - try: - data, mode = source.getfile(f, v) - except IOError: - self.delete.append(f) - else: - self.putfile(f, mode, data) - if f in copies: - self.copies.append([copies[f], f]) - files = [f[0] for f in files] - - for parent in parents: - try: - return self.revid(self.childmap[parent]) - except KeyError: - pass - entries = set(self.delete) - files = frozenset(files) - entries.update(self.add_dirs(files.difference(entries))) - if self.copies: - for s, d in self.copies: - self._copyfile(s, d) - self.copies = [] - if self.delete: - self.xargs(self.delete, 'delete') - self.delete = [] - entries.update(self.add_files(files.difference(entries))) - entries.update(self.tidy_dirs(entries)) - if self.delexec: - self.xargs(self.delexec, 'propdel', 'svn:executable') - self.delexec = [] - if self.setexec: - self.xargs(self.setexec, 'propset', 'svn:executable', '*') - self.setexec = [] - - fd, messagefile = tempfile.mkstemp(prefix='hg-convert-') - fp = os.fdopen(fd, 'w') - fp.write(commit.desc) - fp.close() - try: - output = self.run0('commit', - username=util.shortuser(commit.author), - file=messagefile, - encoding='utf-8') - try: - rev = self.commit_re.search(output).group(1) - except AttributeError: - if not files: - return parents[0] - self.ui.warn(_('unexpected svn output:\n')) - self.ui.warn(output) - raise util.Abort(_('unable to cope with svn output')) - if commit.rev: - self.run('propset', 'hg:convert-rev', commit.rev, - revprop=True, revision=rev) - if commit.branch and commit.branch != 'default': - self.run('propset', 'hg:convert-branch', commit.branch, - revprop=True, revision=rev) - for parent in parents: - self.addchild(parent, rev) - return self.revid(rev) - finally: - os.unlink(messagefile) - - def puttags(self, tags): - self.ui.warn(_('writing Subversion tags is not yet implemented\n')) - return None, None diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.pyo deleted file mode 100644 index df675f8..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/subversion.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.py deleted file mode 100644 index db68ede..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.py +++ /dev/null @@ -1,128 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (C) 2007 Daniel Holth -# This is a stripped-down version of the original bzr-svn transport.py, -# Copyright (C) 2006 Jelmer Vernooij - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -from svn.core import SubversionException, Pool -import svn.ra -import svn.client -import svn.core - -# Some older versions of the Python bindings need to be -# explicitly initialized. But what we want to do probably -# won't work worth a darn against those libraries anyway! -svn.ra.initialize() - -svn_config = svn.core.svn_config_get_config(None) - - -def _create_auth_baton(pool): - """Create a Subversion authentication baton. """ - import svn.client - # Give the client context baton a suite of authentication - # providers.h - providers = [ - svn.client.get_simple_provider(pool), - svn.client.get_username_provider(pool), - svn.client.get_ssl_client_cert_file_provider(pool), - svn.client.get_ssl_client_cert_pw_file_provider(pool), - svn.client.get_ssl_server_trust_file_provider(pool), - ] - # Platform-dependant authentication methods - getprovider = getattr(svn.core, 'svn_auth_get_platform_specific_provider', - None) - if getprovider: - # Available in svn >= 1.6 - for name in ('gnome_keyring', 'keychain', 'kwallet', 'windows'): - for type in ('simple', 'ssl_client_cert_pw', 'ssl_server_trust'): - p = getprovider(name, type, pool) - if p: - providers.append(p) - else: - if hasattr(svn.client, 'get_windows_simple_provider'): - providers.append(svn.client.get_windows_simple_provider(pool)) - - return svn.core.svn_auth_open(providers, pool) - -class NotBranchError(SubversionException): - pass - -class SvnRaTransport(object): - """ - Open an ra connection to a Subversion repository. - """ - def __init__(self, url="", ra=None): - self.pool = Pool() - self.svn_url = url - self.username = '' - self.password = '' - - # Only Subversion 1.4 has reparent() - if ra is None or not hasattr(svn.ra, 'reparent'): - self.client = svn.client.create_context(self.pool) - ab = _create_auth_baton(self.pool) - if False: - svn.core.svn_auth_set_parameter( - ab, svn.core.SVN_AUTH_PARAM_DEFAULT_USERNAME, self.username) - svn.core.svn_auth_set_parameter( - ab, svn.core.SVN_AUTH_PARAM_DEFAULT_PASSWORD, self.password) - self.client.auth_baton = ab - self.client.config = svn_config - try: - self.ra = svn.client.open_ra_session( - self.svn_url.encode('utf8'), - self.client, self.pool) - except SubversionException, (inst, num): - if num in (svn.core.SVN_ERR_RA_ILLEGAL_URL, - svn.core.SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED, - svn.core.SVN_ERR_BAD_URL): - raise NotBranchError(url) - raise - else: - self.ra = ra - svn.ra.reparent(self.ra, self.svn_url.encode('utf8')) - - class Reporter(object): - def __init__(self, reporter_data): - self._reporter, self._baton = reporter_data - - def set_path(self, path, revnum, start_empty, lock_token, pool=None): - svn.ra.reporter2_invoke_set_path(self._reporter, self._baton, - path, revnum, start_empty, lock_token, pool) - - def delete_path(self, path, pool=None): - svn.ra.reporter2_invoke_delete_path(self._reporter, self._baton, - path, pool) - - def link_path(self, path, url, revision, start_empty, lock_token, - pool=None): - svn.ra.reporter2_invoke_link_path(self._reporter, self._baton, - path, url, revision, start_empty, lock_token, - pool) - - def finish_report(self, pool=None): - svn.ra.reporter2_invoke_finish_report(self._reporter, - self._baton, pool) - - def abort_report(self, pool=None): - svn.ra.reporter2_invoke_abort_report(self._reporter, - self._baton, pool) - - def do_update(self, revnum, path, *args, **kwargs): - return self.Reporter(svn.ra.do_update(self.ra, revnum, path, - *args, **kwargs)) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.pyo deleted file mode 100644 index ee1d3d1..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/convert/transport.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.py deleted file mode 100644 index 88294a7..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.py +++ /dev/null @@ -1,272 +0,0 @@ -"""automatically manage newlines in repository files - -This extension allows you to manage the type of line endings (CRLF or -LF) that are used in the repository and in the local working -directory. That way you can get CRLF line endings on Windows and LF on -Unix/Mac, thereby letting everybody use their OS native line endings. - -The extension reads its configuration from a versioned ``.hgeol`` -configuration file every time you run an ``hg`` command. The -``.hgeol`` file use the same syntax as all other Mercurial -configuration files. It uses two sections, ``[patterns]`` and -``[repository]``. - -The ``[patterns]`` section specifies how line endings should be -converted between the working copy and the repository. The format is -specified by a file pattern. The first match is used, so put more -specific patterns first. The available line endings are ``LF``, -``CRLF``, and ``BIN``. - -Files with the declared format of ``CRLF`` or ``LF`` are always -checked out and stored in the repository in that format and files -declared to be binary (``BIN``) are left unchanged. Additionally, -``native`` is an alias for checking out in the platform's default line -ending: ``LF`` on Unix (including Mac OS X) and ``CRLF`` on -Windows. Note that ``BIN`` (do nothing to line endings) is Mercurial's -default behaviour; it is only needed if you need to override a later, -more general pattern. - -The optional ``[repository]`` section specifies the line endings to -use for files stored in the repository. It has a single setting, -``native``, which determines the storage line endings for files -declared as ``native`` in the ``[patterns]`` section. It can be set to -``LF`` or ``CRLF``. The default is ``LF``. For example, this means -that on Windows, files configured as ``native`` (``CRLF`` by default) -will be converted to ``LF`` when stored in the repository. Files -declared as ``LF``, ``CRLF``, or ``BIN`` in the ``[patterns]`` section -are always stored as-is in the repository. - -Example versioned ``.hgeol`` file:: - - [patterns] - **.py = native - **.vcproj = CRLF - **.txt = native - Makefile = LF - **.jpg = BIN - - [repository] - native = LF - -.. note:: - The rules will first apply when files are touched in the working - copy, e.g. by updating to null and back to tip to touch all files. - -The extension uses an optional ``[eol]`` section in your hgrc file -(not the ``.hgeol`` file) for settings that control the overall -behavior. There are two settings: - -- ``eol.native`` (default ``os.linesep``) can be set to ``LF`` or - ``CRLF`` to override the default interpretation of ``native`` for - checkout. This can be used with :hg:`archive` on Unix, say, to - generate an archive where files have line endings for Windows. - -- ``eol.only-consistent`` (default True) can be set to False to make - the extension convert files with inconsistent EOLs. Inconsistent - means that there is both ``CRLF`` and ``LF`` present in the file. - Such files are normally not touched under the assumption that they - have mixed EOLs on purpose. - -The ``win32text.forbid*`` hooks provided by the win32text extension -have been unified into a single hook named ``eol.hook``. The hook will -lookup the expected line endings from the ``.hgeol`` file, which means -you must migrate to a ``.hgeol`` file first before using the hook. - -See :hg:`help patterns` for more information about the glob patterns -used. -""" - -from mercurial.i18n import _ -from mercurial import util, config, extensions, match -import re, os - -# Matches a lone LF, i.e., one that is not part of CRLF. -singlelf = re.compile('(^|[^\r])\n') -# Matches a single EOL which can either be a CRLF where repeated CR -# are removed or a LF. We do not care about old Machintosh files, so a -# stray CR is an error. -eolre = re.compile('\r*\n') - - -def inconsistenteol(data): - return '\r\n' in data and singlelf.search(data) - -def tolf(s, params, ui, **kwargs): - """Filter to convert to LF EOLs.""" - if util.binary(s): - return s - if ui.configbool('eol', 'only-consistent', True) and inconsistenteol(s): - return s - return eolre.sub('\n', s) - -def tocrlf(s, params, ui, **kwargs): - """Filter to convert to CRLF EOLs.""" - if util.binary(s): - return s - if ui.configbool('eol', 'only-consistent', True) and inconsistenteol(s): - return s - return eolre.sub('\r\n', s) - -def isbinary(s, params): - """Filter to do nothing with the file.""" - return s - -filters = { - 'to-lf': tolf, - 'to-crlf': tocrlf, - 'is-binary': isbinary, -} - - -def hook(ui, repo, node, hooktype, **kwargs): - """verify that files have expected EOLs""" - files = set() - for rev in xrange(repo[node].rev(), len(repo)): - files.update(repo[rev].files()) - tip = repo['tip'] - for f in files: - if f not in tip: - continue - for pattern, target in ui.configitems('encode'): - if match.match(repo.root, '', [pattern])(f): - data = tip[f].data() - if target == "to-lf" and "\r\n" in data: - raise util.Abort(_("%s should not have CRLF line endings") - % f) - elif target == "to-crlf" and singlelf.search(data): - raise util.Abort(_("%s should not have LF line endings") - % f) - - -def preupdate(ui, repo, hooktype, parent1, parent2): - #print "preupdate for %s: %s -> %s" % (repo.root, parent1, parent2) - repo.readhgeol(parent1) - return False - -def uisetup(ui): - ui.setconfig('hooks', 'preupdate.eol', preupdate) - -def extsetup(ui): - try: - extensions.find('win32text') - raise util.Abort(_("the eol extension is incompatible with the " - "win32text extension")) - except KeyError: - pass - - -def reposetup(ui, repo): - uisetup(repo.ui) - #print "reposetup for", repo.root - - if not repo.local(): - return - for name, fn in filters.iteritems(): - repo.adddatafilter(name, fn) - - ui.setconfig('patch', 'eol', 'auto') - - class eolrepo(repo.__class__): - - _decode = {'LF': 'to-lf', 'CRLF': 'to-crlf', 'BIN': 'is-binary'} - _encode = {'LF': 'to-lf', 'CRLF': 'to-crlf', 'BIN': 'is-binary'} - - def readhgeol(self, node=None, data=None): - if data is None: - try: - if node is None: - data = self.wfile('.hgeol').read() - else: - data = self[node]['.hgeol'].data() - except (IOError, LookupError): - return None - - if self.ui.config('eol', 'native', os.linesep) in ('LF', '\n'): - self._decode['NATIVE'] = 'to-lf' - else: - self._decode['NATIVE'] = 'to-crlf' - - eol = config.config() - # Our files should not be touched. The pattern must be - # inserted first override a '** = native' pattern. - eol.set('patterns', '.hg*', 'BIN') - # We can then parse the user's patterns. - eol.parse('.hgeol', data) - - if eol.get('repository', 'native') == 'CRLF': - self._encode['NATIVE'] = 'to-crlf' - else: - self._encode['NATIVE'] = 'to-lf' - - for pattern, style in eol.items('patterns'): - key = style.upper() - try: - self.ui.setconfig('decode', pattern, self._decode[key]) - self.ui.setconfig('encode', pattern, self._encode[key]) - except KeyError: - self.ui.warn(_("ignoring unknown EOL style '%s' from %s\n") - % (style, eol.source('patterns', pattern))) - - include = [] - exclude = [] - for pattern, style in eol.items('patterns'): - key = style.upper() - if key == 'BIN': - exclude.append(pattern) - else: - include.append(pattern) - - # This will match the files for which we need to care - # about inconsistent newlines. - return match.match(self.root, '', [], include, exclude) - - def _hgcleardirstate(self): - self._eolfile = self.readhgeol() or self.readhgeol('tip') - - if not self._eolfile: - self._eolfile = util.never - return - - try: - cachemtime = os.path.getmtime(self.join("eol.cache")) - except OSError: - cachemtime = 0 - - try: - eolmtime = os.path.getmtime(self.wjoin(".hgeol")) - except OSError: - eolmtime = 0 - - if eolmtime > cachemtime: - ui.debug("eol: detected change in .hgeol\n") - # TODO: we could introduce a method for this in dirstate. - wlock = None - try: - wlock = self.wlock() - for f, e in self.dirstate._map.iteritems(): - self.dirstate._map[f] = (e[0], e[1], -1, 0) - self.dirstate._dirty = True - # Touch the cache to update mtime. TODO: are we sure this - # always enought to update the mtime, or should we write a - # bit to the file? - self.opener("eol.cache", "w").close() - finally: - if wlock is not None: - wlock.release() - - def commitctx(self, ctx, error=False): - for f in sorted(ctx.added() + ctx.modified()): - if not self._eolfile(f): - continue - data = ctx[f].data() - if util.binary(data): - # We should not abort here, since the user should - # be able to say "** = native" to automatically - # have all non-binary files taken care of. - continue - if inconsistenteol(data): - raise util.Abort(_("inconsistent newline style " - "in %s\n" % f)) - return super(eolrepo, self).commitctx(ctx, error) - repo.__class__ = eolrepo - repo._hgcleardirstate() diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.pyo deleted file mode 100644 index cd15b4f..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/eol.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.py deleted file mode 100644 index 5cf9f03..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.py +++ /dev/null @@ -1,325 +0,0 @@ -# extdiff.py - external diff program support for mercurial -# -# Copyright 2006 Vadim Gelfer -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''command to allow external programs to compare revisions - -The extdiff Mercurial extension allows you to use external programs -to compare revisions, or revision with working directory. The external -diff programs are called with a configurable set of options and two -non-option arguments: paths to directories containing snapshots of -files to compare. - -The extdiff extension also allows to configure new diff commands, so -you do not need to type :hg:`extdiff -p kdiff3` always. :: - - [extdiff] - # add new command that runs GNU diff(1) in 'context diff' mode - cdiff = gdiff -Nprc5 - ## or the old way: - #cmd.cdiff = gdiff - #opts.cdiff = -Nprc5 - - # add new command called vdiff, runs kdiff3 - vdiff = kdiff3 - - # add new command called meld, runs meld (no need to name twice) - meld = - - # add new command called vimdiff, runs gvimdiff with DirDiff plugin - # (see http://www.vim.org/scripts/script.php?script_id=102) Non - # English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in - # your .vimrc - vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)' - -Tool arguments can include variables that are expanded at runtime:: - - $parent1, $plabel1 - filename, descriptive label of first parent - $child, $clabel - filename, descriptive label of child revision - $parent2, $plabel2 - filename, descriptive label of second parent - $parent is an alias for $parent1. - -The extdiff extension will look in your [diff-tools] and [merge-tools] -sections for diff tool arguments, when none are specified in [extdiff]. - -:: - - [extdiff] - kdiff3 = - - [diff-tools] - kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child - -You can use -I/-X and list of file or directory names like normal -:hg:`diff` command. The extdiff extension makes snapshots of only -needed files, so running the external diff program will actually be -pretty fast (at least faster than having to compare the entire tree). -''' - -from mercurial.i18n import _ -from mercurial.node import short, nullid -from mercurial import cmdutil, util, commands, encoding -import os, shlex, shutil, tempfile, re - -def snapshot(ui, repo, files, node, tmproot): - '''snapshot files as of some revision - if not using snapshot, -I/-X does not work and recursive diff - in tools like kdiff3 and meld displays too many files.''' - dirname = os.path.basename(repo.root) - if dirname == "": - dirname = "root" - if node is not None: - dirname = '%s.%s' % (dirname, short(node)) - base = os.path.join(tmproot, dirname) - os.mkdir(base) - if node is not None: - ui.note(_('making snapshot of %d files from rev %s\n') % - (len(files), short(node))) - else: - ui.note(_('making snapshot of %d files from working directory\n') % - (len(files))) - wopener = util.opener(base) - fns_and_mtime = [] - ctx = repo[node] - for fn in files: - wfn = util.pconvert(fn) - if not wfn in ctx: - # File doesn't exist; could be a bogus modify - continue - ui.note(' %s\n' % wfn) - dest = os.path.join(base, wfn) - fctx = ctx[wfn] - data = repo.wwritedata(wfn, fctx.data()) - if 'l' in fctx.flags(): - wopener.symlink(data, wfn) - else: - wopener(wfn, 'w').write(data) - if 'x' in fctx.flags(): - util.set_flags(dest, False, True) - if node is None: - fns_and_mtime.append((dest, repo.wjoin(fn), os.path.getmtime(dest))) - return dirname, fns_and_mtime - -def dodiff(ui, repo, diffcmd, diffopts, pats, opts): - '''Do the actuall diff: - - - copy to a temp structure if diffing 2 internal revisions - - copy to a temp structure if diffing working revision with - another one and more than 1 file is changed - - just invoke the diff for a single file in the working dir - ''' - - revs = opts.get('rev') - change = opts.get('change') - args = ' '.join(diffopts) - do3way = '$parent2' in args - - if revs and change: - msg = _('cannot specify --rev and --change at the same time') - raise util.Abort(msg) - elif change: - node2 = repo.lookup(change) - node1a, node1b = repo.changelog.parents(node2) - else: - node1a, node2 = cmdutil.revpair(repo, revs) - if not revs: - node1b = repo.dirstate.parents()[1] - else: - node1b = nullid - - # Disable 3-way merge if there is only one parent - if do3way: - if node1b == nullid: - do3way = False - - matcher = cmdutil.match(repo, pats, opts) - mod_a, add_a, rem_a = map(set, repo.status(node1a, node2, matcher)[:3]) - if do3way: - mod_b, add_b, rem_b = map(set, repo.status(node1b, node2, matcher)[:3]) - else: - mod_b, add_b, rem_b = set(), set(), set() - modadd = mod_a | add_a | mod_b | add_b - common = modadd | rem_a | rem_b - if not common: - return 0 - - tmproot = tempfile.mkdtemp(prefix='extdiff.') - try: - # Always make a copy of node1a (and node1b, if applicable) - dir1a_files = mod_a | rem_a | ((mod_b | add_b) - add_a) - dir1a = snapshot(ui, repo, dir1a_files, node1a, tmproot)[0] - rev1a = '@%d' % repo[node1a].rev() - if do3way: - dir1b_files = mod_b | rem_b | ((mod_a | add_a) - add_b) - dir1b = snapshot(ui, repo, dir1b_files, node1b, tmproot)[0] - rev1b = '@%d' % repo[node1b].rev() - else: - dir1b = None - rev1b = '' - - fns_and_mtime = [] - - # If node2 in not the wc or there is >1 change, copy it - dir2root = '' - rev2 = '' - if node2: - dir2 = snapshot(ui, repo, modadd, node2, tmproot)[0] - rev2 = '@%d' % repo[node2].rev() - elif len(common) > 1: - #we only actually need to get the files to copy back to - #the working dir in this case (because the other cases - #are: diffing 2 revisions or single file -- in which case - #the file is already directly passed to the diff tool). - dir2, fns_and_mtime = snapshot(ui, repo, modadd, None, tmproot) - else: - # This lets the diff tool open the changed file directly - dir2 = '' - dir2root = repo.root - - label1a = rev1a - label1b = rev1b - label2 = rev2 - - # If only one change, diff the files instead of the directories - # Handle bogus modifies correctly by checking if the files exist - if len(common) == 1: - common_file = util.localpath(common.pop()) - dir1a = os.path.join(dir1a, common_file) - label1a = common_file + rev1a - if not os.path.isfile(os.path.join(tmproot, dir1a)): - dir1a = os.devnull - if do3way: - dir1b = os.path.join(dir1b, common_file) - label1b = common_file + rev1b - if not os.path.isfile(os.path.join(tmproot, dir1b)): - dir1b = os.devnull - dir2 = os.path.join(dir2root, dir2, common_file) - label2 = common_file + rev2 - - # Function to quote file/dir names in the argument string. - # When not operating in 3-way mode, an empty string is - # returned for parent2 - replace = dict(parent=dir1a, parent1=dir1a, parent2=dir1b, - plabel1=label1a, plabel2=label1b, - clabel=label2, child=dir2) - def quote(match): - key = match.group()[1:] - if not do3way and key == 'parent2': - return '' - return util.shellquote(replace[key]) - - # Match parent2 first, so 'parent1?' will match both parent1 and parent - regex = '\$(parent2|parent1?|child|plabel1|plabel2|clabel)' - if not do3way and not re.search(regex, args): - args += ' $parent1 $child' - args = re.sub(regex, quote, args) - cmdline = util.shellquote(diffcmd) + ' ' + args - - ui.debug('running %r in %s\n' % (cmdline, tmproot)) - util.system(cmdline, cwd=tmproot) - - for copy_fn, working_fn, mtime in fns_and_mtime: - if os.path.getmtime(copy_fn) != mtime: - ui.debug('file changed while diffing. ' - 'Overwriting: %s (src: %s)\n' % (working_fn, copy_fn)) - util.copyfile(copy_fn, working_fn) - - return 1 - finally: - ui.note(_('cleaning up temp directory\n')) - shutil.rmtree(tmproot) - -def extdiff(ui, repo, *pats, **opts): - '''use external program to diff repository (or selected files) - - Show differences between revisions for the specified files, using - an external program. The default program used is diff, with - default options "-Npru". - - To select a different program, use the -p/--program option. The - program will be passed the names of two directories to compare. To - pass additional options to the program, use -o/--option. These - will be passed before the names of the directories to compare. - - When two revision arguments are given, then changes are shown - between those revisions. If only one revision is specified then - that revision is compared to the working directory, and, when no - revisions are specified, the working directory files are compared - to its parent.''' - program = opts.get('program') - option = opts.get('option') - if not program: - program = 'diff' - option = option or ['-Npru'] - return dodiff(ui, repo, program, option, pats, opts) - -cmdtable = { - "extdiff": - (extdiff, - [('p', 'program', '', - _('comparison program to run'), _('CMD')), - ('o', 'option', [], - _('pass option to comparison program'), _('OPT')), - ('r', 'rev', [], - _('revision'), _('REV')), - ('c', 'change', '', - _('change made by revision'), _('REV')), - ] + commands.walkopts, - _('hg extdiff [OPT]... [FILE]...')), - } - -def uisetup(ui): - for cmd, path in ui.configitems('extdiff'): - if cmd.startswith('cmd.'): - cmd = cmd[4:] - if not path: - path = cmd - diffopts = ui.config('extdiff', 'opts.' + cmd, '') - diffopts = diffopts and [diffopts] or [] - elif cmd.startswith('opts.'): - continue - else: - # command = path opts - if path: - diffopts = shlex.split(path) - path = diffopts.pop(0) - else: - path, diffopts = cmd, [] - # look for diff arguments in [diff-tools] then [merge-tools] - if diffopts == []: - args = ui.config('diff-tools', cmd+'.diffargs') or \ - ui.config('merge-tools', cmd+'.diffargs') - if args: - diffopts = shlex.split(args) - def save(cmd, path, diffopts): - '''use closure to save diff command to use''' - def mydiff(ui, repo, *pats, **opts): - return dodiff(ui, repo, path, diffopts + opts['option'], - pats, opts) - doc = _('''\ -use %(path)s to diff repository (or selected files) - - Show differences between revisions for the specified files, using - the %(path)s program. - - When two revision arguments are given, then changes are shown - between those revisions. If only one revision is specified then - that revision is compared to the working directory, and, when no - revisions are specified, the working directory files are compared - to its parent.\ -''') % dict(path=util.uirepr(path)) - - # We must translate the docstring right away since it is - # used as a format string. The string will unfortunately - # be translated again in commands.helpcmd and this will - # fail when the docstring contains non-ASCII characters. - # Decoding the string to a Unicode string here (using the - # right encoding) prevents that. - mydiff.__doc__ = doc.decode(encoding.encoding) - return mydiff - cmdtable[cmd] = (save(cmd, path, diffopts), - cmdtable['extdiff'][1][1:], - _('hg %s [OPTION]... [FILE]...') % cmd) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.pyo deleted file mode 100644 index 008d690..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/extdiff.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.py deleted file mode 100644 index b8e765f..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.py +++ /dev/null @@ -1,152 +0,0 @@ -# fetch.py - pull and merge remote changes -# -# Copyright 2006 Vadim Gelfer -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''pull, update and merge in one command''' - -from mercurial.i18n import _ -from mercurial.node import nullid, short -from mercurial import commands, cmdutil, hg, util, url, error -from mercurial.lock import release - -def fetch(ui, repo, source='default', **opts): - '''pull changes from a remote repository, merge new changes if needed. - - This finds all changes from the repository at the specified path - or URL and adds them to the local repository. - - If the pulled changes add a new branch head, the head is - automatically merged, and the result of the merge is committed. - Otherwise, the working directory is updated to include the new - changes. - - When a merge occurs, the newly pulled changes are assumed to be - "authoritative". The head of the new changes is used as the first - parent, with local changes as the second. To switch the merge - order, use --switch-parent. - - See :hg:`help dates` for a list of formats valid for -d/--date. - - Returns 0 on success. - ''' - - date = opts.get('date') - if date: - opts['date'] = util.parsedate(date) - - parent, p2 = repo.dirstate.parents() - branch = repo.dirstate.branch() - branchnode = repo.branchtags().get(branch) - if parent != branchnode: - raise util.Abort(_('working dir not at branch tip ' - '(use "hg update" to check out branch tip)')) - - if p2 != nullid: - raise util.Abort(_('outstanding uncommitted merge')) - - wlock = lock = None - try: - wlock = repo.wlock() - lock = repo.lock() - mod, add, rem, del_ = repo.status()[:4] - - if mod or add or rem: - raise util.Abort(_('outstanding uncommitted changes')) - if del_: - raise util.Abort(_('working directory is missing some files')) - bheads = repo.branchheads(branch) - bheads = [head for head in bheads if len(repo[head].children()) == 0] - if len(bheads) > 1: - raise util.Abort(_('multiple heads in this branch ' - '(use "hg heads ." and "hg merge" to merge)')) - - other = hg.repository(hg.remoteui(repo, opts), - ui.expandpath(source)) - ui.status(_('pulling from %s\n') % - url.hidepassword(ui.expandpath(source))) - revs = None - if opts['rev']: - try: - revs = [other.lookup(rev) for rev in opts['rev']] - except error.CapabilityError: - err = _("Other repository doesn't support revision lookup, " - "so a rev cannot be specified.") - raise util.Abort(err) - - # Are there any changes at all? - modheads = repo.pull(other, heads=revs) - if modheads == 0: - return 0 - - # Is this a simple fast-forward along the current branch? - newheads = repo.branchheads(branch) - newchildren = repo.changelog.nodesbetween([parent], newheads)[2] - if len(newheads) == 1: - if newchildren[0] != parent: - return hg.clean(repo, newchildren[0]) - else: - return 0 - - # Are there more than one additional branch heads? - newchildren = [n for n in newchildren if n != parent] - newparent = parent - if newchildren: - newparent = newchildren[0] - hg.clean(repo, newparent) - newheads = [n for n in newheads if n != newparent] - if len(newheads) > 1: - ui.status(_('not merging with %d other new branch heads ' - '(use "hg heads ." and "hg merge" to merge them)\n') % - (len(newheads) - 1)) - return 1 - - # Otherwise, let's merge. - err = False - if newheads: - # By default, we consider the repository we're pulling - # *from* as authoritative, so we merge our changes into - # theirs. - if opts['switch_parent']: - firstparent, secondparent = newparent, newheads[0] - else: - firstparent, secondparent = newheads[0], newparent - ui.status(_('updating to %d:%s\n') % - (repo.changelog.rev(firstparent), - short(firstparent))) - hg.clean(repo, firstparent) - ui.status(_('merging with %d:%s\n') % - (repo.changelog.rev(secondparent), short(secondparent))) - err = hg.merge(repo, secondparent, remind=False) - - if not err: - # we don't translate commit messages - message = (cmdutil.logmessage(opts) or - ('Automated merge with %s' % - url.removeauth(other.url()))) - editor = cmdutil.commiteditor - if opts.get('force_editor') or opts.get('edit'): - editor = cmdutil.commitforceeditor - n = repo.commit(message, opts['user'], opts['date'], editor=editor) - ui.status(_('new changeset %d:%s merges remote changes ' - 'with local\n') % (repo.changelog.rev(n), - short(n))) - - return err - - finally: - release(lock, wlock) - -cmdtable = { - 'fetch': - (fetch, - [('r', 'rev', [], - _('a specific revision you would like to pull'), _('REV')), - ('e', 'edit', None, _('edit commit message')), - ('', 'force-editor', None, _('edit commit message (DEPRECATED)')), - ('', 'switch-parent', None, _('switch parents when merging')), - ] + commands.commitopts + commands.commitopts2 + commands.remoteopts, - _('hg fetch [SOURCE]')), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.pyo deleted file mode 100644 index c8529ef..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/fetch.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py deleted file mode 100644 index b13ec1e..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py +++ /dev/null @@ -1,288 +0,0 @@ -# Copyright 2005, 2006 Benoit Boissinot -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''commands to sign and verify changesets''' - -import os, tempfile, binascii -from mercurial import util, commands, match -from mercurial import node as hgnode -from mercurial.i18n import _ - -class gpg(object): - def __init__(self, path, key=None): - self.path = path - self.key = (key and " --local-user \"%s\"" % key) or "" - - def sign(self, data): - gpgcmd = "%s --sign --detach-sign%s" % (self.path, self.key) - return util.filter(data, gpgcmd) - - def verify(self, data, sig): - """ returns of the good and bad signatures""" - sigfile = datafile = None - try: - # create temporary files - fd, sigfile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".sig") - fp = os.fdopen(fd, 'wb') - fp.write(sig) - fp.close() - fd, datafile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".txt") - fp = os.fdopen(fd, 'wb') - fp.write(data) - fp.close() - gpgcmd = ("%s --logger-fd 1 --status-fd 1 --verify " - "\"%s\" \"%s\"" % (self.path, sigfile, datafile)) - ret = util.filter("", gpgcmd) - finally: - for f in (sigfile, datafile): - try: - if f: - os.unlink(f) - except: - pass - keys = [] - key, fingerprint = None, None - err = "" - for l in ret.splitlines(): - # see DETAILS in the gnupg documentation - # filter the logger output - if not l.startswith("[GNUPG:]"): - continue - l = l[9:] - if l.startswith("ERRSIG"): - err = _("error while verifying signature") - break - elif l.startswith("VALIDSIG"): - # fingerprint of the primary key - fingerprint = l.split()[10] - elif (l.startswith("GOODSIG") or - l.startswith("EXPSIG") or - l.startswith("EXPKEYSIG") or - l.startswith("BADSIG")): - if key is not None: - keys.append(key + [fingerprint]) - key = l.split(" ", 2) - fingerprint = None - if err: - return err, [] - if key is not None: - keys.append(key + [fingerprint]) - return err, keys - -def newgpg(ui, **opts): - """create a new gpg instance""" - gpgpath = ui.config("gpg", "cmd", "gpg") - gpgkey = opts.get('key') - if not gpgkey: - gpgkey = ui.config("gpg", "key", None) - return gpg(gpgpath, gpgkey) - -def sigwalk(repo): - """ - walk over every sigs, yields a couple - ((node, version, sig), (filename, linenumber)) - """ - def parsefile(fileiter, context): - ln = 1 - for l in fileiter: - if not l: - continue - yield (l.split(" ", 2), (context, ln)) - ln += 1 - - # read the heads - fl = repo.file(".hgsigs") - for r in reversed(fl.heads()): - fn = ".hgsigs|%s" % hgnode.short(r) - for item in parsefile(fl.read(r).splitlines(), fn): - yield item - try: - # read local signatures - fn = "localsigs" - for item in parsefile(repo.opener(fn), fn): - yield item - except IOError: - pass - -def getkeys(ui, repo, mygpg, sigdata, context): - """get the keys who signed a data""" - fn, ln = context - node, version, sig = sigdata - prefix = "%s:%d" % (fn, ln) - node = hgnode.bin(node) - - data = node2txt(repo, node, version) - sig = binascii.a2b_base64(sig) - err, keys = mygpg.verify(data, sig) - if err: - ui.warn("%s:%d %s\n" % (fn, ln , err)) - return None - - validkeys = [] - # warn for expired key and/or sigs - for key in keys: - if key[0] == "BADSIG": - ui.write(_("%s Bad signature from \"%s\"\n") % (prefix, key[2])) - continue - if key[0] == "EXPSIG": - ui.write(_("%s Note: Signature has expired" - " (signed by: \"%s\")\n") % (prefix, key[2])) - elif key[0] == "EXPKEYSIG": - ui.write(_("%s Note: This key has expired" - " (signed by: \"%s\")\n") % (prefix, key[2])) - validkeys.append((key[1], key[2], key[3])) - return validkeys - -def sigs(ui, repo): - """list signed changesets""" - mygpg = newgpg(ui) - revs = {} - - for data, context in sigwalk(repo): - node, version, sig = data - fn, ln = context - try: - n = repo.lookup(node) - except KeyError: - ui.warn(_("%s:%d node does not exist\n") % (fn, ln)) - continue - r = repo.changelog.rev(n) - keys = getkeys(ui, repo, mygpg, data, context) - if not keys: - continue - revs.setdefault(r, []) - revs[r].extend(keys) - for rev in sorted(revs, reverse=True): - for k in revs[rev]: - r = "%5d:%s" % (rev, hgnode.hex(repo.changelog.node(rev))) - ui.write("%-30s %s\n" % (keystr(ui, k), r)) - -def check(ui, repo, rev): - """verify all the signatures there may be for a particular revision""" - mygpg = newgpg(ui) - rev = repo.lookup(rev) - hexrev = hgnode.hex(rev) - keys = [] - - for data, context in sigwalk(repo): - node, version, sig = data - if node == hexrev: - k = getkeys(ui, repo, mygpg, data, context) - if k: - keys.extend(k) - - if not keys: - ui.write(_("No valid signature for %s\n") % hgnode.short(rev)) - return - - # print summary - ui.write("%s is signed by:\n" % hgnode.short(rev)) - for key in keys: - ui.write(" %s\n" % keystr(ui, key)) - -def keystr(ui, key): - """associate a string to a key (username, comment)""" - keyid, user, fingerprint = key - comment = ui.config("gpg", fingerprint, None) - if comment: - return "%s (%s)" % (user, comment) - else: - return user - -def sign(ui, repo, *revs, **opts): - """add a signature for the current or given revision - - If no revision is given, the parent of the working directory is used, - or tip if no revision is checked out. - - See :hg:`help dates` for a list of formats valid for -d/--date. - """ - - mygpg = newgpg(ui, **opts) - sigver = "0" - sigmessage = "" - - date = opts.get('date') - if date: - opts['date'] = util.parsedate(date) - - if revs: - nodes = [repo.lookup(n) for n in revs] - else: - nodes = [node for node in repo.dirstate.parents() - if node != hgnode.nullid] - if len(nodes) > 1: - raise util.Abort(_('uncommitted merge - please provide a ' - 'specific revision')) - if not nodes: - nodes = [repo.changelog.tip()] - - for n in nodes: - hexnode = hgnode.hex(n) - ui.write(_("Signing %d:%s\n") % (repo.changelog.rev(n), - hgnode.short(n))) - # build data - data = node2txt(repo, n, sigver) - sig = mygpg.sign(data) - if not sig: - raise util.Abort(_("error while signing")) - sig = binascii.b2a_base64(sig) - sig = sig.replace("\n", "") - sigmessage += "%s %s %s\n" % (hexnode, sigver, sig) - - # write it - if opts['local']: - repo.opener("localsigs", "ab").write(sigmessage) - return - - msigs = match.exact(repo.root, '', ['.hgsigs']) - s = repo.status(match=msigs, unknown=True, ignored=True)[:6] - if util.any(s) and not opts["force"]: - raise util.Abort(_("working copy of .hgsigs is changed " - "(please commit .hgsigs manually " - "or use --force)")) - - repo.wfile(".hgsigs", "ab").write(sigmessage) - - if '.hgsigs' not in repo.dirstate: - repo[None].add([".hgsigs"]) - - if opts["no_commit"]: - return - - message = opts['message'] - if not message: - # we don't translate commit messages - message = "\n".join(["Added signature for changeset %s" - % hgnode.short(n) - for n in nodes]) - try: - repo.commit(message, opts['user'], opts['date'], match=msigs) - except ValueError, inst: - raise util.Abort(str(inst)) - -def node2txt(repo, node, ver): - """map a manifest into some text""" - if ver == "0": - return "%s\n" % hgnode.hex(node) - else: - raise util.Abort(_("unknown signature version")) - -cmdtable = { - "sign": - (sign, - [('l', 'local', None, _('make the signature local')), - ('f', 'force', None, _('sign even if the sigfile is modified')), - ('', 'no-commit', None, _('do not commit the sigfile after signing')), - ('k', 'key', '', - _('the key id to sign with'), _('ID')), - ('m', 'message', '', - _('commit message'), _('TEXT')), - ] + commands.commitopts2, - _('hg sign [OPTION]... [REVISION]...')), - "sigcheck": (check, [], _('hg sigcheck REVISION')), - "sigs": (sigs, [], _('hg sigs')), -} - diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.pyo deleted file mode 100644 index 3d5d415..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.py deleted file mode 100644 index a8eb805..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.py +++ /dev/null @@ -1,337 +0,0 @@ -# ASCII graph log extension for Mercurial -# -# Copyright 2007 Joel Rosdahl -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''command to view revision graphs from a shell - -This extension adds a --graph option to the incoming, outgoing and log -commands. When this options is given, an ASCII representation of the -revision graph is also shown. -''' - -import os -from mercurial.cmdutil import revrange, show_changeset -from mercurial.commands import templateopts -from mercurial.i18n import _ -from mercurial.node import nullrev -from mercurial import cmdutil, commands, extensions -from mercurial import hg, util, graphmod - -ASCIIDATA = 'ASC' - -def asciiedges(seen, rev, parents): - """adds edge info to changelog DAG walk suitable for ascii()""" - if rev not in seen: - seen.append(rev) - nodeidx = seen.index(rev) - - knownparents = [] - newparents = [] - for parent in parents: - if parent in seen: - knownparents.append(parent) - else: - newparents.append(parent) - - ncols = len(seen) - seen[nodeidx:nodeidx + 1] = newparents - edges = [(nodeidx, seen.index(p)) for p in knownparents] - - if len(newparents) > 0: - edges.append((nodeidx, nodeidx)) - if len(newparents) > 1: - edges.append((nodeidx, nodeidx + 1)) - - nmorecols = len(seen) - ncols - return nodeidx, edges, ncols, nmorecols - -def fix_long_right_edges(edges): - for (i, (start, end)) in enumerate(edges): - if end > start: - edges[i] = (start, end + 1) - -def get_nodeline_edges_tail( - node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail): - if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0: - # Still going in the same non-vertical direction. - if n_columns_diff == -1: - start = max(node_index + 1, p_node_index) - tail = ["|", " "] * (start - node_index - 1) - tail.extend(["/", " "] * (n_columns - start)) - return tail - else: - return ["\\", " "] * (n_columns - node_index - 1) - else: - return ["|", " "] * (n_columns - node_index - 1) - -def draw_edges(edges, nodeline, interline): - for (start, end) in edges: - if start == end + 1: - interline[2 * end + 1] = "/" - elif start == end - 1: - interline[2 * start + 1] = "\\" - elif start == end: - interline[2 * start] = "|" - else: - nodeline[2 * end] = "+" - if start > end: - (start, end) = (end, start) - for i in range(2 * start + 1, 2 * end): - if nodeline[i] != "+": - nodeline[i] = "-" - -def get_padding_line(ni, n_columns, edges): - line = [] - line.extend(["|", " "] * ni) - if (ni, ni - 1) in edges or (ni, ni) in edges: - # (ni, ni - 1) (ni, ni) - # | | | | | | | | - # +---o | | o---+ - # | | c | | c | | - # | |/ / | |/ / - # | | | | | | - c = "|" - else: - c = " " - line.extend([c, " "]) - line.extend(["|", " "] * (n_columns - ni - 1)) - return line - -def asciistate(): - """returns the initial value for the "state" argument to ascii()""" - return [0, 0] - -def ascii(ui, state, type, char, text, coldata): - """prints an ASCII graph of the DAG - - takes the following arguments (one call per node in the graph): - - - ui to write to - - Somewhere to keep the needed state in (init to asciistate()) - - Column of the current node in the set of ongoing edges. - - Type indicator of node data == ASCIIDATA. - - Payload: (char, lines): - - Character to use as node's symbol. - - List of lines to display as the node's text. - - Edges; a list of (col, next_col) indicating the edges between - the current node and its parents. - - Number of columns (ongoing edges) in the current revision. - - The difference between the number of columns (ongoing edges) - in the next revision and the number of columns (ongoing edges) - in the current revision. That is: -1 means one column removed; - 0 means no columns added or removed; 1 means one column added. - """ - - idx, edges, ncols, coldiff = coldata - assert -2 < coldiff < 2 - if coldiff == -1: - # Transform - # - # | | | | | | - # o | | into o---+ - # |X / |/ / - # | | | | - fix_long_right_edges(edges) - - # add_padding_line says whether to rewrite - # - # | | | | | | | | - # | o---+ into | o---+ - # | / / | | | # <--- padding line - # o | | | / / - # o | | - add_padding_line = (len(text) > 2 and coldiff == -1 and - [x for (x, y) in edges if x + 1 < y]) - - # fix_nodeline_tail says whether to rewrite - # - # | | o | | | | o | | - # | | |/ / | | |/ / - # | o | | into | o / / # <--- fixed nodeline tail - # | |/ / | |/ / - # o | | o | | - fix_nodeline_tail = len(text) <= 2 and not add_padding_line - - # nodeline is the line containing the node character (typically o) - nodeline = ["|", " "] * idx - nodeline.extend([char, " "]) - - nodeline.extend( - get_nodeline_edges_tail(idx, state[1], ncols, coldiff, - state[0], fix_nodeline_tail)) - - # shift_interline is the line containing the non-vertical - # edges between this entry and the next - shift_interline = ["|", " "] * idx - if coldiff == -1: - n_spaces = 1 - edge_ch = "/" - elif coldiff == 0: - n_spaces = 2 - edge_ch = "|" - else: - n_spaces = 3 - edge_ch = "\\" - shift_interline.extend(n_spaces * [" "]) - shift_interline.extend([edge_ch, " "] * (ncols - idx - 1)) - - # draw edges from the current node to its parents - draw_edges(edges, nodeline, shift_interline) - - # lines is the list of all graph lines to print - lines = [nodeline] - if add_padding_line: - lines.append(get_padding_line(idx, ncols, edges)) - lines.append(shift_interline) - - # make sure that there are as many graph lines as there are - # log strings - while len(text) < len(lines): - text.append("") - if len(lines) < len(text): - extra_interline = ["|", " "] * (ncols + coldiff) - while len(lines) < len(text): - lines.append(extra_interline) - - # print lines - indentation_level = max(ncols, ncols + coldiff) - for (line, logstr) in zip(lines, text): - ln = "%-*s %s" % (2 * indentation_level, "".join(line), logstr) - ui.write(ln.rstrip() + '\n') - - # ... and start over - state[0] = coldiff - state[1] = idx - -def get_revs(repo, rev_opt): - if rev_opt: - revs = revrange(repo, rev_opt) - if len(revs) == 0: - return (nullrev, nullrev) - return (max(revs), min(revs)) - else: - return (len(repo) - 1, 0) - -def check_unsupported_flags(opts): - for op in ["follow", "follow_first", "date", "copies", "keyword", "remove", - "only_merges", "user", "branch", "only_branch", "prune", - "newest_first", "no_merges", "include", "exclude"]: - if op in opts and opts[op]: - raise util.Abort(_("--graph option is incompatible with --%s") - % op.replace("_", "-")) - -def generate(ui, dag, displayer, showparents, edgefn): - seen, state = [], asciistate() - for rev, type, ctx, parents in dag: - char = ctx.node() in showparents and '@' or 'o' - displayer.show(ctx) - lines = displayer.hunk.pop(rev).split('\n')[:-1] - displayer.flush(rev) - ascii(ui, state, type, char, lines, edgefn(seen, rev, parents)) - displayer.close() - -def graphlog(ui, repo, path=None, **opts): - """show revision history alongside an ASCII revision graph - - Print a revision history alongside a revision graph drawn with - ASCII characters. - - Nodes printed as an @ character are parents of the working - directory. - """ - - check_unsupported_flags(opts) - limit = cmdutil.loglimit(opts) - start, stop = get_revs(repo, opts["rev"]) - if start == nullrev: - return - - if path: - path = util.canonpath(repo.root, os.getcwd(), path) - if path: # could be reset in canonpath - revdag = graphmod.filerevs(repo, path, start, stop, limit) - else: - if limit is not None: - stop = max(stop, start - limit + 1) - revdag = graphmod.revisions(repo, start, stop) - - displayer = show_changeset(ui, repo, opts, buffered=True) - showparents = [ctx.node() for ctx in repo[None].parents()] - generate(ui, revdag, displayer, showparents, asciiedges) - -def graphrevs(repo, nodes, opts): - limit = cmdutil.loglimit(opts) - nodes.reverse() - if limit is not None: - nodes = nodes[:limit] - return graphmod.nodes(repo, nodes) - -def goutgoing(ui, repo, dest=None, **opts): - """show the outgoing changesets alongside an ASCII revision graph - - Print the outgoing changesets alongside a revision graph drawn with - ASCII characters. - - Nodes printed as an @ character are parents of the working - directory. - """ - - check_unsupported_flags(opts) - o = hg._outgoing(ui, repo, dest, opts) - if o is None: - return - - revdag = graphrevs(repo, o, opts) - displayer = show_changeset(ui, repo, opts, buffered=True) - showparents = [ctx.node() for ctx in repo[None].parents()] - generate(ui, revdag, displayer, showparents, asciiedges) - -def gincoming(ui, repo, source="default", **opts): - """show the incoming changesets alongside an ASCII revision graph - - Print the incoming changesets alongside a revision graph drawn with - ASCII characters. - - Nodes printed as an @ character are parents of the working - directory. - """ - def subreporecurse(): - return 1 - - check_unsupported_flags(opts) - def display(other, chlist, displayer): - revdag = graphrevs(other, chlist, opts) - showparents = [ctx.node() for ctx in repo[None].parents()] - generate(ui, revdag, displayer, showparents, asciiedges) - - hg._incoming(display, subreporecurse, ui, repo, source, opts, buffered=True) - -def uisetup(ui): - '''Initialize the extension.''' - _wrapcmd(ui, 'log', commands.table, graphlog) - _wrapcmd(ui, 'incoming', commands.table, gincoming) - _wrapcmd(ui, 'outgoing', commands.table, goutgoing) - -def _wrapcmd(ui, cmd, table, wrapfn): - '''wrap the command''' - def graph(orig, *args, **kwargs): - if kwargs['graph']: - return wrapfn(*args, **kwargs) - return orig(*args, **kwargs) - entry = extensions.wrapcommand(table, cmd, graph) - entry[1].append(('G', 'graph', None, _("show the revision DAG"))) - -cmdtable = { - "glog": - (graphlog, - [('l', 'limit', '', - _('limit number of changes displayed'), _('NUM')), - ('p', 'patch', False, _('show patch')), - ('r', 'rev', [], - _('show the specified revision or range'), _('REV')), - ] + templateopts, - _('hg glog [OPTION]... [FILE]')), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.pyo deleted file mode 100644 index 2edc5f3..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/graphlog.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.py deleted file mode 100644 index 4e72680..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.py +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright (C) 2007-8 Brendan Cully -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -"""hooks for integrating with the CIA.vc notification service - -This is meant to be run as a changegroup or incoming hook. To -configure it, set the following options in your hgrc:: - - [cia] - # your registered CIA user name - user = foo - # the name of the project in CIA - project = foo - # the module (subproject) (optional) - #module = foo - # Append a diffstat to the log message (optional) - #diffstat = False - # Template to use for log messages (optional) - #template = {desc}\\n{baseurl}/rev/{node}-- {diffstat} - # Style to use (optional) - #style = foo - # The URL of the CIA notification service (optional) - # You can use mailto: URLs to send by email, eg - # mailto:cia@cia.vc - # Make sure to set email.from if you do this. - #url = http://cia.vc/ - # print message instead of sending it (optional) - #test = False - - [hooks] - # one of these: - changegroup.cia = python:hgcia.hook - #incoming.cia = python:hgcia.hook - - [web] - # If you want hyperlinks (optional) - baseurl = http://server/path/to/repo -""" - -from mercurial.i18n import _ -from mercurial.node import bin, short -from mercurial import cmdutil, patch, templater, util, mail -import email.Parser - -import xmlrpclib -from xml.sax import saxutils - -socket_timeout = 30 # seconds -try: - # set a timeout for the socket so you don't have to wait so looooong - # when cia.vc is having problems. requires python >= 2.3: - import socket - socket.setdefaulttimeout(socket_timeout) -except: - pass - -HGCIA_VERSION = '0.1' -HGCIA_URL = 'http://hg.kublai.com/mercurial/hgcia' - - -class ciamsg(object): - """ A CIA message """ - def __init__(self, cia, ctx): - self.cia = cia - self.ctx = ctx - self.url = self.cia.url - - def fileelem(self, path, uri, action): - if uri: - uri = ' uri=%s' % saxutils.quoteattr(uri) - return '%s' % ( - uri, saxutils.quoteattr(action), saxutils.escape(path)) - - def fileelems(self): - n = self.ctx.node() - f = self.cia.repo.status(self.ctx.parents()[0].node(), n) - url = self.url or '' - elems = [] - for path in f[0]: - uri = '%s/diff/%s/%s' % (url, short(n), path) - elems.append(self.fileelem(path, url and uri, 'modify')) - for path in f[1]: - # TODO: copy/rename ? - uri = '%s/file/%s/%s' % (url, short(n), path) - elems.append(self.fileelem(path, url and uri, 'add')) - for path in f[2]: - elems.append(self.fileelem(path, '', 'remove')) - - return '\n'.join(elems) - - def sourceelem(self, project, module=None, branch=None): - msg = ['', '%s' % saxutils.escape(project)] - if module: - msg.append('%s' % saxutils.escape(module)) - if branch: - msg.append('%s' % saxutils.escape(branch)) - msg.append('') - - return '\n'.join(msg) - - def diffstat(self): - class patchbuf(object): - def __init__(self): - self.lines = [] - # diffstat is stupid - self.name = 'cia' - def write(self, data): - self.lines.append(data) - def close(self): - pass - - n = self.ctx.node() - pbuf = patchbuf() - cmdutil.export(self.cia.repo, [n], fp=pbuf) - return patch.diffstat(pbuf.lines) or '' - - def logmsg(self): - diffstat = self.cia.diffstat and self.diffstat() or '' - self.cia.ui.pushbuffer() - self.cia.templater.show(self.ctx, changes=self.ctx.changeset(), - url=self.cia.url, diffstat=diffstat) - return self.cia.ui.popbuffer() - - def xml(self): - n = short(self.ctx.node()) - src = self.sourceelem(self.cia.project, module=self.cia.module, - branch=self.ctx.branch()) - # unix timestamp - dt = self.ctx.date() - timestamp = dt[0] - - author = saxutils.escape(self.ctx.user()) - rev = '%d:%s' % (self.ctx.rev(), n) - log = saxutils.escape(self.logmsg()) - - url = self.url and '%s/rev/%s' % (saxutils.escape(self.url), - n) or '' - - msg = """ - - - Mercurial (hgcia) - %s - %s - %s - - %s - - - %s - %s - %s - %s - %s - - - %d - -""" % \ - (HGCIA_VERSION, saxutils.escape(HGCIA_URL), - saxutils.escape(self.cia.user), src, author, rev, log, url, - self.fileelems(), timestamp) - - return msg - - -class hgcia(object): - """ CIA notification class """ - - deftemplate = '{desc}' - dstemplate = '{desc}\n-- \n{diffstat}' - - def __init__(self, ui, repo): - self.ui = ui - self.repo = repo - - self.ciaurl = self.ui.config('cia', 'url', 'http://cia.vc') - self.user = self.ui.config('cia', 'user') - self.project = self.ui.config('cia', 'project') - self.module = self.ui.config('cia', 'module') - self.diffstat = self.ui.configbool('cia', 'diffstat') - self.emailfrom = self.ui.config('email', 'from') - self.dryrun = self.ui.configbool('cia', 'test') - self.url = self.ui.config('web', 'baseurl') - - style = self.ui.config('cia', 'style') - template = self.ui.config('cia', 'template') - if not template: - template = self.diffstat and self.dstemplate or self.deftemplate - template = templater.parsestring(template, quoted=False) - t = cmdutil.changeset_templater(self.ui, self.repo, False, None, - style, False) - t.use_template(template) - self.templater = t - - def sendrpc(self, msg): - srv = xmlrpclib.Server(self.ciaurl) - res = srv.hub.deliver(msg) - if res is not True: - raise util.Abort(_('%s returned an error: %s') % - (self.ciaurl, res)) - - def sendemail(self, address, data): - p = email.Parser.Parser() - msg = p.parsestr(data) - msg['Date'] = util.datestr(format="%a, %d %b %Y %H:%M:%S %1%2") - msg['To'] = address - msg['From'] = self.emailfrom - msg['Subject'] = 'DeliverXML' - msg['Content-type'] = 'text/xml' - msgtext = msg.as_string() - - self.ui.status(_('hgcia: sending update to %s\n') % address) - mail.sendmail(self.ui, util.email(self.emailfrom), - [address], msgtext) - - -def hook(ui, repo, hooktype, node=None, url=None, **kwargs): - """ send CIA notification """ - def sendmsg(cia, ctx): - msg = ciamsg(cia, ctx).xml() - if cia.dryrun: - ui.write(msg) - elif cia.ciaurl.startswith('mailto:'): - if not cia.emailfrom: - raise util.Abort(_('email.from must be defined when ' - 'sending by email')) - cia.sendemail(cia.ciaurl[7:], msg) - else: - cia.sendrpc(msg) - - n = bin(node) - cia = hgcia(ui, repo) - if not cia.user: - ui.debug('cia: no user specified') - return - if not cia.project: - ui.debug('cia: no project specified') - return - if hooktype == 'changegroup': - start = repo.changelog.rev(n) - end = len(repo.changelog) - for rev in xrange(start, end): - n = repo.changelog.node(rev) - ctx = repo.changectx(n) - sendmsg(cia, ctx) - else: - ctx = repo.changectx(n) - sendmsg(cia, ctx) diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.pyo deleted file mode 100644 index 2c5a2ee..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgcia.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.py deleted file mode 100644 index e8aae47..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.py +++ /dev/null @@ -1,348 +0,0 @@ -# Minimal support for git commands on an hg repository -# -# Copyright 2005, 2006 Chris Mason -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''browse the repository in a graphical way - -The hgk extension allows browsing the history of a repository in a -graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not -distributed with Mercurial.) - -hgk consists of two parts: a Tcl script that does the displaying and -querying of information, and an extension to Mercurial named hgk.py, -which provides hooks for hgk to get information. hgk can be found in -the contrib directory, and the extension is shipped in the hgext -repository, and needs to be enabled. - -The :hg:`view` command will launch the hgk Tcl script. For this command -to work, hgk must be in your search path. Alternately, you can specify -the path to hgk in your configuration file:: - - [hgk] - path=/location/of/hgk - -hgk can make use of the extdiff extension to visualize revisions. -Assuming you had already configured extdiff vdiff command, just add:: - - [hgk] - vdiff=vdiff - -Revisions context menu will now display additional entries to fire -vdiff on hovered and selected revisions. -''' - -import os -from mercurial import commands, util, patch, revlog, cmdutil -from mercurial.node import nullid, nullrev, short -from mercurial.i18n import _ - -def difftree(ui, repo, node1=None, node2=None, *files, **opts): - """diff trees from two commits""" - def __difftree(repo, node1, node2, files=[]): - assert node2 is not None - mmap = repo[node1].manifest() - mmap2 = repo[node2].manifest() - m = cmdutil.match(repo, files) - modified, added, removed = repo.status(node1, node2, m)[:3] - empty = short(nullid) - - for f in modified: - # TODO get file permissions - ui.write(":100664 100664 %s %s M\t%s\t%s\n" % - (short(mmap[f]), short(mmap2[f]), f, f)) - for f in added: - ui.write(":000000 100664 %s %s N\t%s\t%s\n" % - (empty, short(mmap2[f]), f, f)) - for f in removed: - ui.write(":100664 000000 %s %s D\t%s\t%s\n" % - (short(mmap[f]), empty, f, f)) - ## - - while True: - if opts['stdin']: - try: - line = raw_input().split(' ') - node1 = line[0] - if len(line) > 1: - node2 = line[1] - else: - node2 = None - except EOFError: - break - node1 = repo.lookup(node1) - if node2: - node2 = repo.lookup(node2) - else: - node2 = node1 - node1 = repo.changelog.parents(node1)[0] - if opts['patch']: - if opts['pretty']: - catcommit(ui, repo, node2, "") - m = cmdutil.match(repo, files) - chunks = patch.diff(repo, node1, node2, match=m, - opts=patch.diffopts(ui, {'git': True})) - for chunk in chunks: - ui.write(chunk) - else: - __difftree(repo, node1, node2, files=files) - if not opts['stdin']: - break - -def catcommit(ui, repo, n, prefix, ctx=None): - nlprefix = '\n' + prefix - if ctx is None: - ctx = repo[n] - ui.write("tree %s\n" % short(ctx.changeset()[0])) # use ctx.node() instead ?? - for p in ctx.parents(): - ui.write("parent %s\n" % p) - - date = ctx.date() - description = ctx.description().replace("\0", "") - lines = description.splitlines() - if lines and lines[-1].startswith('committer:'): - committer = lines[-1].split(': ')[1].rstrip() - else: - committer = ctx.user() - - ui.write("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1])) - ui.write("committer %s %s %s\n" % (committer, int(date[0]), date[1])) - ui.write("revision %d\n" % ctx.rev()) - ui.write("branch %s\n\n" % ctx.branch()) - - if prefix != "": - ui.write("%s%s\n" % (prefix, description.replace('\n', nlprefix).strip())) - else: - ui.write(description + "\n") - if prefix: - ui.write('\0') - -def base(ui, repo, node1, node2): - """output common ancestor information""" - node1 = repo.lookup(node1) - node2 = repo.lookup(node2) - n = repo.changelog.ancestor(node1, node2) - ui.write(short(n) + "\n") - -def catfile(ui, repo, type=None, r=None, **opts): - """cat a specific revision""" - # in stdin mode, every line except the commit is prefixed with two - # spaces. This way the our caller can find the commit without magic - # strings - # - prefix = "" - if opts['stdin']: - try: - (type, r) = raw_input().split(' ') - prefix = " " - except EOFError: - return - - else: - if not type or not r: - ui.warn(_("cat-file: type or revision not supplied\n")) - commands.help_(ui, 'cat-file') - - while r: - if type != "commit": - ui.warn(_("aborting hg cat-file only understands commits\n")) - return 1 - n = repo.lookup(r) - catcommit(ui, repo, n, prefix) - if opts['stdin']: - try: - (type, r) = raw_input().split(' ') - except EOFError: - break - else: - break - -# git rev-tree is a confusing thing. You can supply a number of -# commit sha1s on the command line, and it walks the commit history -# telling you which commits are reachable from the supplied ones via -# a bitmask based on arg position. -# you can specify a commit to stop at by starting the sha1 with ^ -def revtree(ui, args, repo, full="tree", maxnr=0, parents=False): - def chlogwalk(): - count = len(repo) - i = count - l = [0] * 100 - chunk = 100 - while True: - if chunk > i: - chunk = i - i = 0 - else: - i -= chunk - - for x in xrange(chunk): - if i + x >= count: - l[chunk - x:] = [0] * (chunk - x) - break - if full != None: - l[x] = repo[i + x] - l[x].changeset() # force reading - else: - l[x] = 1 - for x in xrange(chunk - 1, -1, -1): - if l[x] != 0: - yield (i + x, full != None and l[x] or None) - if i == 0: - break - - # calculate and return the reachability bitmask for sha - def is_reachable(ar, reachable, sha): - if len(ar) == 0: - return 1 - mask = 0 - for i in xrange(len(ar)): - if sha in reachable[i]: - mask |= 1 << i - - return mask - - reachable = [] - stop_sha1 = [] - want_sha1 = [] - count = 0 - - # figure out which commits they are asking for and which ones they - # want us to stop on - for i, arg in enumerate(args): - if arg.startswith('^'): - s = repo.lookup(arg[1:]) - stop_sha1.append(s) - want_sha1.append(s) - elif arg != 'HEAD': - want_sha1.append(repo.lookup(arg)) - - # calculate the graph for the supplied commits - for i, n in enumerate(want_sha1): - reachable.append(set()) - visit = [n] - reachable[i].add(n) - while visit: - n = visit.pop(0) - if n in stop_sha1: - continue - for p in repo.changelog.parents(n): - if p not in reachable[i]: - reachable[i].add(p) - visit.append(p) - if p in stop_sha1: - continue - - # walk the repository looking for commits that are in our - # reachability graph - for i, ctx in chlogwalk(): - n = repo.changelog.node(i) - mask = is_reachable(want_sha1, reachable, n) - if mask: - parentstr = "" - if parents: - pp = repo.changelog.parents(n) - if pp[0] != nullid: - parentstr += " " + short(pp[0]) - if pp[1] != nullid: - parentstr += " " + short(pp[1]) - if not full: - ui.write("%s%s\n" % (short(n), parentstr)) - elif full == "commit": - ui.write("%s%s\n" % (short(n), parentstr)) - catcommit(ui, repo, n, ' ', ctx) - else: - (p1, p2) = repo.changelog.parents(n) - (h, h1, h2) = map(short, (n, p1, p2)) - (i1, i2) = map(repo.changelog.rev, (p1, p2)) - - date = ctx.date()[0] - ui.write("%s %s:%s" % (date, h, mask)) - mask = is_reachable(want_sha1, reachable, p1) - if i1 != nullrev and mask > 0: - ui.write("%s:%s " % (h1, mask)), - mask = is_reachable(want_sha1, reachable, p2) - if i2 != nullrev and mask > 0: - ui.write("%s:%s " % (h2, mask)) - ui.write("\n") - if maxnr and count >= maxnr: - break - count += 1 - -def revparse(ui, repo, *revs, **opts): - """parse given revisions""" - def revstr(rev): - if rev == 'HEAD': - rev = 'tip' - return revlog.hex(repo.lookup(rev)) - - for r in revs: - revrange = r.split(':', 1) - ui.write('%s\n' % revstr(revrange[0])) - if len(revrange) == 2: - ui.write('^%s\n' % revstr(revrange[1])) - -# git rev-list tries to order things by date, and has the ability to stop -# at a given commit without walking the whole repo. TODO add the stop -# parameter -def revlist(ui, repo, *revs, **opts): - """print revisions""" - if opts['header']: - full = "commit" - else: - full = None - copy = [x for x in revs] - revtree(ui, copy, repo, full, opts['max_count'], opts['parents']) - -def config(ui, repo, **opts): - """print extension options""" - def writeopt(name, value): - ui.write('k=%s\nv=%s\n' % (name, value)) - - writeopt('vdiff', ui.config('hgk', 'vdiff', '')) - - -def view(ui, repo, *etc, **opts): - "start interactive history viewer" - os.chdir(repo.root) - optstr = ' '.join(['--%s %s' % (k, v) for k, v in opts.iteritems() if v]) - cmd = ui.config("hgk", "path", "hgk") + " %s %s" % (optstr, " ".join(etc)) - ui.debug("running %s\n" % cmd) - util.system(cmd) - -cmdtable = { - "^view": - (view, - [('l', 'limit', '', - _('limit number of changes displayed'), _('NUM'))], - _('hg view [-l LIMIT] [REVRANGE]')), - "debug-diff-tree": - (difftree, - [('p', 'patch', None, _('generate patch')), - ('r', 'recursive', None, _('recursive')), - ('P', 'pretty', None, _('pretty')), - ('s', 'stdin', None, _('stdin')), - ('C', 'copy', None, _('detect copies')), - ('S', 'search', "", _('search'))], - _('hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]...')), - "debug-cat-file": - (catfile, - [('s', 'stdin', None, _('stdin'))], - _('hg debug-cat-file [OPTION]... TYPE FILE')), - "debug-config": - (config, [], _('hg debug-config')), - "debug-merge-base": - (base, [], _('hg debug-merge-base REV REV')), - "debug-rev-parse": - (revparse, - [('', 'default', '', _('ignored'))], - _('hg debug-rev-parse REV')), - "debug-rev-list": - (revlist, - [('H', 'header', None, _('header')), - ('t', 'topo-order', None, _('topo-order')), - ('p', 'parents', None, _('parents')), - ('n', 'max-count', 0, _('max-count'))], - _('hg debug-rev-list [OPTION]... REV...')), -} diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.pyo b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.pyo deleted file mode 100644 index 97aa394..0000000 Binary files a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/hgk.pyo and /dev/null differ diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/__init__.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/__init__.py deleted file mode 100644 index 55e3c18..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/highlight/__init__.py +++ /dev/null @@ -1,61 +0,0 @@ -# highlight - syntax highlighting in hgweb, based on Pygments -# -# Copyright 2008, 2009 Patrick Mezard and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. -# -# The original module was split in an interface and an implementation -# file to defer pygments loading and speedup extension setup. - -"""syntax highlighting for hgweb (requires Pygments) - -It depends on the Pygments syntax highlighting library: -http://pygments.org/ - -There is a single configuration option:: - - [web] - pygments_style = - {% endif %} -{% endblock %} - -{% block extrahead %} -{{ block.super }} -{{ media.js }} -{% if action_form %}{% if actions_on_top or actions_on_bottom %} - -{% endif %}{% endif %} -{% endblock %} - -{% block bodyclass %}change-list{% endblock %} - -{% if not is_popup %} - {% block breadcrumbs %} - - {% endblock %} -{% endif %} - -{% block coltype %}flex{% endblock %} - -{% block content %} -
- {% block object-tools %} - {% if has_add_permission %} - - {% endif %} - {% endblock %} - {% if cl.formset.errors %} -

- {% blocktrans count cl.formset.errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} -

- {{ cl.formset.non_form_errors }} - {% endif %} -
- {% block search %}{% search_form cl %}{% endblock %} - {% block date_hierarchy %}{% date_hierarchy cl %}{% endblock %} - - {% block filters %} - {% if cl.has_filters %} -
-

{% trans 'Filter' %}

- {% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %} -
- {% endif %} - {% endblock %} - -
{% csrf_token %} - {% if cl.formset %} - {{ cl.formset.management_form }} - {% endif %} - - {% block result_list %} - {% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %} - {% result_list cl %} - {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %} - {% endblock %} - {% block pagination %}{% pagination cl %}{% endblock %} -
-
-
-{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/change_list_results.html b/parts/django/django/contrib/admin/templates/admin/change_list_results.html deleted file mode 100644 index dea027c..0000000 --- a/parts/django/django/contrib/admin/templates/admin/change_list_results.html +++ /dev/null @@ -1,22 +0,0 @@ -{% if result_hidden_fields %} -
{# DIV for HTML validation #} -{% for item in result_hidden_fields %}{{ item }}{% endfor %} -
-{% endif %} -{% if results %} - - - -{% for header in result_headers %} -{% if header.sortable %}{% endif %} -{{ header.text|capfirst }} -{% if header.sortable %}{% endif %}{% endfor %} - - - -{% for result in results %} -{% for item in result %}{{ item }}{% endfor %} -{% endfor %} - -
-{% endif %} diff --git a/parts/django/django/contrib/admin/templates/admin/date_hierarchy.html b/parts/django/django/contrib/admin/templates/admin/date_hierarchy.html deleted file mode 100644 index 0058510..0000000 --- a/parts/django/django/contrib/admin/templates/admin/date_hierarchy.html +++ /dev/null @@ -1,10 +0,0 @@ -{% if show %} -
-
-
-{% endif %} diff --git a/parts/django/django/contrib/admin/templates/admin/delete_confirmation.html b/parts/django/django/contrib/admin/templates/admin/delete_confirmation.html deleted file mode 100644 index 65e73c9..0000000 --- a/parts/django/django/contrib/admin/templates/admin/delete_confirmation.html +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -{% if perms_lacking %} -

{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}

-
    - {% for obj in perms_lacking %} -
  • {{ obj }}
  • - {% endfor %} -
-{% else %} -

{% blocktrans with object as escaped_object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktrans %}

-
    {{ deleted_objects|unordered_list }}
-
{% csrf_token %} -
- - -
-
-{% endif %} -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/delete_selected_confirmation.html b/parts/django/django/contrib/admin/templates/admin/delete_selected_confirmation.html deleted file mode 100644 index 4aa610e..0000000 --- a/parts/django/django/contrib/admin/templates/admin/delete_selected_confirmation.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -{% if perms_lacking %} -

{% blocktrans %}Deleting the {{ object_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}

-
    - {% for obj in perms_lacking %} -
  • {{ obj }}
  • - {% endfor %} -
-{% else %} -

{% blocktrans %}Are you sure you want to delete the selected {{ object_name }} objects? All of the following objects and their related items will be deleted:{% endblocktrans %}

- {% for deletable_object in deletable_objects %} -
    {{ deletable_object|unordered_list }}
- {% endfor %} -
{% csrf_token %} -
- {% for obj in queryset %} - - {% endfor %} - - - -
-
-{% endif %} -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/edit_inline/stacked.html b/parts/django/django/contrib/admin/templates/admin/edit_inline/stacked.html deleted file mode 100644 index f1e338f..0000000 --- a/parts/django/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ /dev/null @@ -1,82 +0,0 @@ -{% load i18n adminmedia %} -
-

{{ inline_admin_formset.opts.verbose_name_plural|title }}

-{{ inline_admin_formset.formset.management_form }} -{{ inline_admin_formset.formset.non_form_errors }} - -{% for inline_admin_form in inline_admin_formset %}
-

{{ inline_admin_formset.opts.verbose_name|title }}: {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% else %}#{{ forloop.counter }}{% endif %} - {% if inline_admin_form.show_url %}{% trans "View on site" %}{% endif %} - {% if inline_admin_formset.formset.can_delete and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}{% endif %} -

- {% if inline_admin_form.form.non_field_errors %}{{ inline_admin_form.form.non_field_errors }}{% endif %} - {% for fieldset in inline_admin_form %} - {% include "admin/includes/fieldset.html" %} - {% endfor %} - {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} - {{ inline_admin_form.fk_field.field }} -
{% endfor %} -
- - diff --git a/parts/django/django/contrib/admin/templates/admin/edit_inline/tabular.html b/parts/django/django/contrib/admin/templates/admin/edit_inline/tabular.html deleted file mode 100644 index a5b1a89..0000000 --- a/parts/django/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ /dev/null @@ -1,128 +0,0 @@ -{% load i18n adminmedia %} -
- -
- - diff --git a/parts/django/django/contrib/admin/templates/admin/filter.html b/parts/django/django/contrib/admin/templates/admin/filter.html deleted file mode 100644 index 9ef69ff..0000000 --- a/parts/django/django/contrib/admin/templates/admin/filter.html +++ /dev/null @@ -1,8 +0,0 @@ -{% load i18n %} -

{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}

- diff --git a/parts/django/django/contrib/admin/templates/admin/includes/fieldset.html b/parts/django/django/contrib/admin/templates/admin/includes/fieldset.html deleted file mode 100644 index addfd08..0000000 --- a/parts/django/django/contrib/admin/templates/admin/includes/fieldset.html +++ /dev/null @@ -1,29 +0,0 @@ -
- {% if fieldset.name %}

{{ fieldset.name }}

{% endif %} - {% if fieldset.description %} -
{{ fieldset.description|safe }}
- {% endif %} - {% for line in fieldset %} -
- {% if line.fields|length_is:'1' %}{{ line.errors }}{% endif %} - {% for field in line %} - - {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %} - {% if field.is_checkbox %} - {{ field.field }}{{ field.label_tag }} - {% else %} - {{ field.label_tag }} - {% if field.is_readonly %} -

{{ field.contents }}

- {% else %} - {{ field.field }} - {% endif %} - {% endif %} - {% if field.field.field.help_text %} -

{{ field.field.field.help_text|safe }}

- {% endif %} -
- {% endfor %} - - {% endfor %} -
diff --git a/parts/django/django/contrib/admin/templates/admin/index.html b/parts/django/django/contrib/admin/templates/admin/index.html deleted file mode 100644 index 772474b..0000000 --- a/parts/django/django/contrib/admin/templates/admin/index.html +++ /dev/null @@ -1,80 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block extrastyle %}{{ block.super }}{% endblock %} - -{% block coltype %}colMS{% endblock %} - -{% block bodyclass %}dashboard{% endblock %} - -{% block breadcrumbs %}{% endblock %} - -{% block content %} -
- -{% if app_list %} - {% for app in app_list %} -
- - - {% for model in app.models %} - - {% if model.perms.change %} - - {% else %} - - {% endif %} - - {% if model.perms.add %} - - {% else %} - - {% endif %} - - {% if model.perms.change %} - - {% else %} - - {% endif %} - - {% endfor %} -
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{{ model.name }}{{ model.name }}{% trans 'Add' %} {% trans 'Change' %} 
-
- {% endfor %} -{% else %} -

{% trans "You don't have permission to edit anything." %}

-{% endif %} -
-{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/invalid_setup.html b/parts/django/django/contrib/admin/templates/admin/invalid_setup.html deleted file mode 100644 index f09b316..0000000 --- a/parts/django/django/contrib/admin/templates/admin/invalid_setup.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block content %} -

{% trans "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." %}

-{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/login.html b/parts/django/django/contrib/admin/templates/admin/login.html deleted file mode 100644 index 876c4b0..0000000 --- a/parts/django/django/contrib/admin/templates/admin/login.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block extrastyle %}{% load adminmedia %}{{ block.super }}{% endblock %} - -{% block bodyclass %}login{% endblock %} - -{% block content_title %}{% endblock %} - -{% block breadcrumbs %}{% endblock %} - -{% block content %} -{% if error_message %} -

{{ error_message }}

-{% endif %} -
-
{% csrf_token %} -
- -
-
- - -
-
- -
-
- - -
-{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/object_history.html b/parts/django/django/contrib/admin/templates/admin/object_history.html deleted file mode 100644 index 5ae7847..0000000 --- a/parts/django/django/contrib/admin/templates/admin/object_history.html +++ /dev/null @@ -1,42 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %} - -{% endblock %} - -{% block content %} -
-
- -{% if action_list %} - - - - - - - - - - {% for action in action_list %} - - - - - - {% endfor %} - -
{% trans 'Date/time' %}{% trans 'User' %}{% trans 'Action' %}
{{ action.action_time|date:"DATETIME_FORMAT" }}{{ action.user.username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}{{ action.change_message }}
-{% else %} -

{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}

-{% endif %} -
-
-{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/admin/pagination.html b/parts/django/django/contrib/admin/templates/admin/pagination.html deleted file mode 100644 index 3588132..0000000 --- a/parts/django/django/contrib/admin/templates/admin/pagination.html +++ /dev/null @@ -1,12 +0,0 @@ -{% load admin_list %} -{% load i18n %} -

-{% if pagination_required %} -{% for i in page_range %} - {% paginator_number cl i %} -{% endfor %} -{% endif %} -{{ cl.result_count }} {% ifequal cl.result_count 1 %}{{ cl.opts.verbose_name }}{% else %}{{ cl.opts.verbose_name_plural }}{% endifequal %} -{% if show_all_url %}  {% trans 'Show all' %}{% endif %} -{% if cl.formset and cl.result_count %}{% endif %} -

diff --git a/parts/django/django/contrib/admin/templates/admin/prepopulated_fields_js.html b/parts/django/django/contrib/admin/templates/admin/prepopulated_fields_js.html deleted file mode 100644 index 43ef5ba..0000000 --- a/parts/django/django/contrib/admin/templates/admin/prepopulated_fields_js.html +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/parts/django/django/contrib/admin/templates/admin/search_form.html b/parts/django/django/contrib/admin/templates/admin/search_form.html deleted file mode 100644 index 4133cb8..0000000 --- a/parts/django/django/contrib/admin/templates/admin/search_form.html +++ /dev/null @@ -1,18 +0,0 @@ -{% load adminmedia %} -{% load i18n %} -{% if cl.search_fields %} -
- -{% endif %} diff --git a/parts/django/django/contrib/admin/templates/admin/submit_line.html b/parts/django/django/contrib/admin/templates/admin/submit_line.html deleted file mode 100644 index 8bb5d27..0000000 --- a/parts/django/django/contrib/admin/templates/admin/submit_line.html +++ /dev/null @@ -1,8 +0,0 @@ -{% load i18n %} -
-{% if show_save %}{% endif %} -{% if show_delete_link %}{% endif %} -{% if show_save_as_new %}{%endif%} -{% if show_save_and_add_another %}{% endif %} -{% if show_save_and_continue %}{% endif %} -
diff --git a/parts/django/django/contrib/admin/templates/registration/logged_out.html b/parts/django/django/contrib/admin/templates/registration/logged_out.html deleted file mode 100644 index d339ef0..0000000 --- a/parts/django/django/contrib/admin/templates/registration/logged_out.html +++ /dev/null @@ -1,12 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block content %} - -

{% trans "Thanks for spending some quality time with the Web site today." %}

- -

{% trans 'Log in again' %}

- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_change_done.html b/parts/django/django/contrib/admin/templates/registration/password_change_done.html deleted file mode 100644 index f7c2ceb..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_change_done.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block userlinks %}{% url django-admindocs-docroot as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %}{% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans 'Password change successful' %}{% endblock %} - -{% block content %} - -

{% trans 'Password change successful' %}

- -

{% trans 'Your password was changed.' %}

- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_change_form.html b/parts/django/django/contrib/admin/templates/registration/password_change_form.html deleted file mode 100644 index f5c1ca5..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_change_form.html +++ /dev/null @@ -1,50 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n adminmedia %} -{% block extrastyle %}{{ block.super }}{% endblock %} -{% block userlinks %}{% url django-admindocs-docroot as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %} {% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans 'Password change' %}{% endblock %} - -{% block content %}
- -
{% csrf_token %} -
-{% if form.errors %} -

- {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} -

-{% endif %} - -

{% trans 'Password change' %}

- -

{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}

- -
- -
- {{ form.old_password.errors }} - {{ form.old_password }} -
- -
- {{ form.new_password1.errors }} - {{ form.new_password1 }} -
- -
-{{ form.new_password2.errors }} - {{ form.new_password2 }} -
- -
- -
- -
- - -
-
- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_reset_complete.html b/parts/django/django/contrib/admin/templates/registration/password_reset_complete.html deleted file mode 100644 index fceb167..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_reset_complete.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans 'Password reset complete' %}{% endblock %} - -{% block content %} - -

{% trans 'Password reset complete' %}

- -

{% trans "Your password has been set. You may go ahead and log in now." %}

- -

{% trans 'Log in' %}

- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_reset_confirm.html b/parts/django/django/contrib/admin/templates/registration/password_reset_confirm.html deleted file mode 100644 index df9cf1b..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_reset_confirm.html +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans 'Password reset' %}{% endblock %} - -{% block content %} - -{% if validlink %} - -

{% trans 'Enter new password' %}

- -

{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}

- -
{% csrf_token %} -{{ form.new_password1.errors }} -

{{ form.new_password1 }}

-{{ form.new_password2.errors }} -

{{ form.new_password2 }}

-

-
- -{% else %} - -

{% trans 'Password reset unsuccessful' %}

- -

{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}

- -{% endif %} - -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_reset_done.html b/parts/django/django/contrib/admin/templates/registration/password_reset_done.html deleted file mode 100644 index e223bdb..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_reset_done.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans 'Password reset successful' %}{% endblock %} - -{% block content %} - -

{% trans 'Password reset successful' %}

- -

{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}

- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_reset_email.html b/parts/django/django/contrib/admin/templates/registration/password_reset_email.html deleted file mode 100644 index 77fe4c2..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_reset_email.html +++ /dev/null @@ -1,15 +0,0 @@ -{% load i18n %}{% autoescape off %} -{% trans "You're receiving this e-mail because you requested a password reset" %} -{% blocktrans %}for your user account at {{ site_name }}{% endblocktrans %}. - -{% trans "Please go to the following page and choose a new password:" %} -{% block reset_link %} -{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid token=token %} -{% endblock %} -{% trans "Your username, in case you've forgotten:" %} {{ user.username }} - -{% trans "Thanks for using our site!" %} - -{% blocktrans %}The {{ site_name }} team{% endblocktrans %} - -{% endautoescape %} diff --git a/parts/django/django/contrib/admin/templates/registration/password_reset_form.html b/parts/django/django/contrib/admin/templates/registration/password_reset_form.html deleted file mode 100644 index d3a1284..0000000 --- a/parts/django/django/contrib/admin/templates/registration/password_reset_form.html +++ /dev/null @@ -1,19 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} - -{% block breadcrumbs %}{% endblock %} - -{% block title %}{% trans "Password reset" %}{% endblock %} - -{% block content %} - -

{% trans "Password reset" %}

- -

{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}

- -
{% csrf_token %} -{{ form.email.errors }} -

{{ form.email }}

-
- -{% endblock %} diff --git a/parts/django/django/contrib/admin/templatetags/__init__.py b/parts/django/django/contrib/admin/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/parts/django/django/contrib/admin/templatetags/admin_list.py b/parts/django/django/contrib/admin/templatetags/admin_list.py deleted file mode 100644 index c05af0b..0000000 --- a/parts/django/django/contrib/admin/templatetags/admin_list.py +++ /dev/null @@ -1,304 +0,0 @@ -import datetime - -from django.conf import settings -from django.contrib.admin.util import lookup_field, display_for_field, label_for_field -from django.contrib.admin.views.main import ALL_VAR, EMPTY_CHANGELIST_VALUE -from django.contrib.admin.views.main import ORDER_VAR, ORDER_TYPE_VAR, PAGE_VAR, SEARCH_VAR -from django.core.exceptions import ObjectDoesNotExist -from django.db import models -from django.forms.forms import pretty_name -from django.utils import formats -from django.utils.html import escape, conditional_escape -from django.utils.safestring import mark_safe -from django.utils.text import capfirst -from django.utils.translation import ugettext as _ -from django.utils.encoding import smart_unicode, force_unicode -from django.template import Library - - -register = Library() - -DOT = '.' - -def paginator_number(cl,i): - """ - Generates an individual page index link in a paginated list. - """ - if i == DOT: - return u'... ' - elif i == cl.page_num: - return mark_safe(u'%d ' % (i+1)) - else: - return mark_safe(u'%d ' % (escape(cl.get_query_string({PAGE_VAR: i})), (i == cl.paginator.num_pages-1 and ' class="end"' or ''), i+1)) -paginator_number = register.simple_tag(paginator_number) - -def pagination(cl): - """ - Generates the series of links to the pages in a paginated list. - """ - paginator, page_num = cl.paginator, cl.page_num - - pagination_required = (not cl.show_all or not cl.can_show_all) and cl.multi_page - if not pagination_required: - page_range = [] - else: - ON_EACH_SIDE = 3 - ON_ENDS = 2 - - # If there are 10 or fewer pages, display links to every page. - # Otherwise, do some fancy - if paginator.num_pages <= 10: - page_range = range(paginator.num_pages) - else: - # Insert "smart" pagination links, so that there are always ON_ENDS - # links at either end of the list of pages, and there are always - # ON_EACH_SIDE links at either end of the "current page" link. - page_range = [] - if page_num > (ON_EACH_SIDE + ON_ENDS): - page_range.extend(range(0, ON_EACH_SIDE - 1)) - page_range.append(DOT) - page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1)) - else: - page_range.extend(range(0, page_num + 1)) - if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1): - page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1)) - page_range.append(DOT) - page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages)) - else: - page_range.extend(range(page_num + 1, paginator.num_pages)) - - need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page - return { - 'cl': cl, - 'pagination_required': pagination_required, - 'show_all_url': need_show_all_link and cl.get_query_string({ALL_VAR: ''}), - 'page_range': page_range, - 'ALL_VAR': ALL_VAR, - '1': 1, - } -pagination = register.inclusion_tag('admin/pagination.html')(pagination) - -def result_headers(cl): - """ - Generates the list column headers. - """ - lookup_opts = cl.lookup_opts - - for i, field_name in enumerate(cl.list_display): - header, attr = label_for_field(field_name, cl.model, - model_admin = cl.model_admin, - return_attr = True - ) - if attr: - # if the field is the action checkbox: no sorting and special class - if field_name == 'action_checkbox': - yield { - "text": header, - "class_attrib": mark_safe(' class="action-checkbox-column"') - } - continue - - # It is a non-field, but perhaps one that is sortable - admin_order_field = getattr(attr, "admin_order_field", None) - if not admin_order_field: - yield {"text": header} - continue - - # So this _is_ a sortable non-field. Go to the yield - # after the else clause. - else: - admin_order_field = None - - th_classes = [] - new_order_type = 'asc' - if field_name == cl.order_field or admin_order_field == cl.order_field: - th_classes.append('sorted %sending' % cl.order_type.lower()) - new_order_type = {'asc': 'desc', 'desc': 'asc'}[cl.order_type.lower()] - - yield { - "text": header, - "sortable": True, - "url": cl.get_query_string({ORDER_VAR: i, ORDER_TYPE_VAR: new_order_type}), - "class_attrib": mark_safe(th_classes and ' class="%s"' % ' '.join(th_classes) or '') - } - -def _boolean_icon(field_val): - BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'} - return mark_safe(u'%s' % (settings.ADMIN_MEDIA_PREFIX, BOOLEAN_MAPPING[field_val], field_val)) - -def items_for_result(cl, result, form): - """ - Generates the actual list of data. - """ - first = True - pk = cl.lookup_opts.pk.attname - for field_name in cl.list_display: - row_class = '' - try: - f, attr, value = lookup_field(field_name, result, cl.model_admin) - except (AttributeError, ObjectDoesNotExist): - result_repr = EMPTY_CHANGELIST_VALUE - else: - if f is None: - allow_tags = getattr(attr, 'allow_tags', False) - boolean = getattr(attr, 'boolean', False) - if boolean: - allow_tags = True - result_repr = _boolean_icon(value) - else: - result_repr = smart_unicode(value) - # Strip HTML tags in the resulting text, except if the - # function has an "allow_tags" attribute set to True. - if not allow_tags: - result_repr = escape(result_repr) - else: - result_repr = mark_safe(result_repr) - else: - if value is None: - result_repr = EMPTY_CHANGELIST_VALUE - if isinstance(f.rel, models.ManyToOneRel): - result_repr = escape(getattr(result, f.name)) - else: - result_repr = display_for_field(value, f) - if isinstance(f, models.DateField) or isinstance(f, models.TimeField): - row_class = ' class="nowrap"' - if force_unicode(result_repr) == '': - result_repr = mark_safe(' ') - # If list_display_links not defined, add the link tag to the first field - if (first and not cl.list_display_links) or field_name in cl.list_display_links: - table_tag = {True:'th', False:'td'}[first] - first = False - url = cl.url_for_result(result) - # Convert the pk to something that can be used in Javascript. - # Problem cases are long ints (23L) and non-ASCII strings. - if cl.to_field: - attr = str(cl.to_field) - else: - attr = pk - value = result.serializable_value(attr) - result_id = repr(force_unicode(value))[1:] - yield mark_safe(u'<%s%s>%s' % \ - (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag)) - else: - # By default the fields come from ModelAdmin.list_editable, but if we pull - # the fields out of the form instead of list_editable custom admins - # can provide fields on a per request basis - if form and field_name in form.fields: - bf = form[field_name] - result_repr = mark_safe(force_unicode(bf.errors) + force_unicode(bf)) - else: - result_repr = conditional_escape(result_repr) - yield mark_safe(u'%s' % (row_class, result_repr)) - if form and not form[cl.model._meta.pk.name].is_hidden: - yield mark_safe(u'%s' % force_unicode(form[cl.model._meta.pk.name])) - -def results(cl): - if cl.formset: - for res, form in zip(cl.result_list, cl.formset.forms): - yield list(items_for_result(cl, res, form)) - else: - for res in cl.result_list: - yield list(items_for_result(cl, res, None)) - -def result_hidden_fields(cl): - if cl.formset: - for res, form in zip(cl.result_list, cl.formset.forms): - if form[cl.model._meta.pk.name].is_hidden: - yield mark_safe(force_unicode(form[cl.model._meta.pk.name])) - -def result_list(cl): - """ - Displays the headers and data list together - """ - return {'cl': cl, - 'result_hidden_fields': list(result_hidden_fields(cl)), - 'result_headers': list(result_headers(cl)), - 'results': list(results(cl))} -result_list = register.inclusion_tag("admin/change_list_results.html")(result_list) - -def date_hierarchy(cl): - """ - Displays the date hierarchy for date drill-down functionality. - """ - if cl.date_hierarchy: - field_name = cl.date_hierarchy - year_field = '%s__year' % field_name - month_field = '%s__month' % field_name - day_field = '%s__day' % field_name - field_generic = '%s__' % field_name - year_lookup = cl.params.get(year_field) - month_lookup = cl.params.get(month_field) - day_lookup = cl.params.get(day_field) - - link = lambda d: cl.get_query_string(d, [field_generic]) - - if year_lookup and month_lookup and day_lookup: - day = datetime.date(int(year_lookup), int(month_lookup), int(day_lookup)) - return { - 'show': True, - 'back': { - 'link': link({year_field: year_lookup, month_field: month_lookup}), - 'title': capfirst(formats.date_format(day, 'YEAR_MONTH_FORMAT')) - }, - 'choices': [{'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT'))}] - } - elif year_lookup and month_lookup: - days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}).dates(field_name, 'day') - return { - 'show': True, - 'back': { - 'link': link({year_field: year_lookup}), - 'title': year_lookup - }, - 'choices': [{ - 'link': link({year_field: year_lookup, month_field: month_lookup, day_field: day.day}), - 'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT')) - } for day in days] - } - elif year_lookup: - months = cl.query_set.filter(**{year_field: year_lookup}).dates(field_name, 'month') - return { - 'show' : True, - 'back': { - 'link' : link({}), - 'title': _('All dates') - }, - 'choices': [{ - 'link': link({year_field: year_lookup, month_field: month.month}), - 'title': capfirst(formats.date_format(month, 'YEAR_MONTH_FORMAT')) - } for month in months] - } - else: - years = cl.query_set.dates(field_name, 'year') - return { - 'show': True, - 'choices': [{ - 'link': link({year_field: str(year.year)}), - 'title': str(year.year), - } for year in years] - } -date_hierarchy = register.inclusion_tag('admin/date_hierarchy.html')(date_hierarchy) - -def search_form(cl): - """ - Displays a search form for searching the list. - """ - return { - 'cl': cl, - 'show_result_count': cl.result_count != cl.full_result_count, - 'search_var': SEARCH_VAR - } -search_form = register.inclusion_tag('admin/search_form.html')(search_form) - -def admin_list_filter(cl, spec): - return {'title': spec.title(), 'choices' : list(spec.choices(cl))} -admin_list_filter = register.inclusion_tag('admin/filter.html')(admin_list_filter) - -def admin_actions(context): - """ - Track the number of times the action field has been rendered on the page, - so we know which value to use. - """ - context['action_index'] = context.get('action_index', -1) + 1 - return context -admin_actions = register.inclusion_tag("admin/actions.html", takes_context=True)(admin_actions) diff --git a/parts/django/django/contrib/admin/templatetags/admin_modify.py b/parts/django/django/contrib/admin/templatetags/admin_modify.py deleted file mode 100644 index fe88043..0000000 --- a/parts/django/django/contrib/admin/templatetags/admin_modify.py +++ /dev/null @@ -1,42 +0,0 @@ -from django import template - -register = template.Library() - -def prepopulated_fields_js(context): - """ - Creates a list of prepopulated_fields that should render Javascript for - the prepopulated fields for both the admin form and inlines. - """ - prepopulated_fields = [] - if context['add'] and 'adminform' in context: - prepopulated_fields.extend(context['adminform'].prepopulated_fields) - if 'inline_admin_formsets' in context: - for inline_admin_formset in context['inline_admin_formsets']: - for inline_admin_form in inline_admin_formset: - if inline_admin_form.original is None: - prepopulated_fields.extend(inline_admin_form.prepopulated_fields) - context.update({'prepopulated_fields': prepopulated_fields}) - return context -prepopulated_fields_js = register.inclusion_tag('admin/prepopulated_fields_js.html', takes_context=True)(prepopulated_fields_js) - -def submit_row(context): - """ - Displays the row of buttons for delete and save. - """ - opts = context['opts'] - change = context['change'] - is_popup = context['is_popup'] - save_as = context['save_as'] - return { - 'onclick_attrib': (opts.get_ordered_objects() and change - and 'onclick="submitOrderForm();"' or ''), - 'show_delete_link': (not is_popup and context['has_delete_permission'] - and (change or context['show_delete'])), - 'show_save_as_new': not is_popup and change and save_as, - 'show_save_and_add_another': context['has_add_permission'] and - not is_popup and (not save_as or context['add']), - 'show_save_and_continue': not is_popup and context['has_change_permission'], - 'is_popup': is_popup, - 'show_save': True - } -submit_row = register.inclusion_tag('admin/submit_line.html', takes_context=True)(submit_row) diff --git a/parts/django/django/contrib/admin/templatetags/adminmedia.py b/parts/django/django/contrib/admin/templatetags/adminmedia.py deleted file mode 100644 index 5429810..0000000 --- a/parts/django/django/contrib/admin/templatetags/adminmedia.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.template import Library -from django.utils.encoding import iri_to_uri - -register = Library() - -def admin_media_prefix(): - """ - Returns the string contained in the setting ADMIN_MEDIA_PREFIX. - """ - try: - from django.conf import settings - except ImportError: - return '' - return iri_to_uri(settings.ADMIN_MEDIA_PREFIX) -admin_media_prefix = register.simple_tag(admin_media_prefix) diff --git a/parts/django/django/contrib/admin/templatetags/log.py b/parts/django/django/contrib/admin/templatetags/log.py deleted file mode 100644 index 663830b..0000000 --- a/parts/django/django/contrib/admin/templatetags/log.py +++ /dev/null @@ -1,57 +0,0 @@ -from django import template -from django.contrib.admin.models import LogEntry - -register = template.Library() - -class AdminLogNode(template.Node): - def __init__(self, limit, varname, user): - self.limit, self.varname, self.user = limit, varname, user - - def __repr__(self): - return "" - - def render(self, context): - if self.user is None: - context[self.varname] = LogEntry.objects.all().select_related('content_type', 'user')[:self.limit] - else: - user_id = self.user - if not user_id.isdigit(): - user_id = context[self.user].id - context[self.varname] = LogEntry.objects.filter(user__id__exact=user_id).select_related('content_type', 'user')[:self.limit] - return '' - -class DoGetAdminLog: - """ - Populates a template variable with the admin log for the given criteria. - - Usage:: - - {% get_admin_log [limit] as [varname] for_user [context_var_containing_user_obj] %} - - Examples:: - - {% get_admin_log 10 as admin_log for_user 23 %} - {% get_admin_log 10 as admin_log for_user user %} - {% get_admin_log 10 as admin_log %} - - Note that ``context_var_containing_user_obj`` can be a hard-coded integer - (user ID) or the name of a template context variable containing the user - object whose ID you want. - """ - def __init__(self, tag_name): - self.tag_name = tag_name - - def __call__(self, parser, token): - tokens = token.contents.split() - if len(tokens) < 4: - raise template.TemplateSyntaxError("'%s' statements require two arguments" % self.tag_name) - if not tokens[1].isdigit(): - raise template.TemplateSyntaxError("First argument in '%s' must be an integer" % self.tag_name) - if tokens[2] != 'as': - raise template.TemplateSyntaxError("Second argument in '%s' must be 'as'" % self.tag_name) - if len(tokens) > 4: - if tokens[4] != 'for_user': - raise template.TemplateSyntaxError("Fourth argument in '%s' must be 'for_user'" % self.tag_name) - return AdminLogNode(limit=tokens[1], varname=tokens[3], user=(len(tokens) > 5 and tokens[5] or None)) - -register.tag('get_admin_log', DoGetAdminLog('get_admin_log')) diff --git a/parts/django/django/contrib/admin/util.py b/parts/django/django/contrib/admin/util.py deleted file mode 100644 index 792d0b6..0000000 --- a/parts/django/django/contrib/admin/util.py +++ /dev/null @@ -1,340 +0,0 @@ -from django.core.exceptions import ObjectDoesNotExist -from django.db import models -from django.db.models.related import RelatedObject -from django.forms.forms import pretty_name -from django.utils import formats -from django.utils.html import escape -from django.utils.safestring import mark_safe -from django.utils.text import capfirst -from django.utils.encoding import force_unicode, smart_unicode, smart_str -from django.utils.translation import ungettext, ugettext as _ -from django.core.urlresolvers import reverse, NoReverseMatch -from django.utils.datastructures import SortedDict - -def quote(s): - """ - Ensure that primary key values do not confuse the admin URLs by escaping - any '/', '_' and ':' characters. Similar to urllib.quote, except that the - quoting is slightly different so that it doesn't get automatically - unquoted by the Web browser. - """ - if not isinstance(s, basestring): - return s - res = list(s) - for i in range(len(res)): - c = res[i] - if c in """:/_#?;@&=+$,"<>%\\""": - res[i] = '_%02X' % ord(c) - return ''.join(res) - -def unquote(s): - """ - Undo the effects of quote(). Based heavily on urllib.unquote(). - """ - mychr = chr - myatoi = int - list = s.split('_') - res = [list[0]] - myappend = res.append - del list[0] - for item in list: - if item[1:2]: - try: - myappend(mychr(myatoi(item[:2], 16)) + item[2:]) - except ValueError: - myappend('_' + item) - else: - myappend('_' + item) - return "".join(res) - -def flatten_fieldsets(fieldsets): - """Returns a list of field names from an admin fieldsets structure.""" - field_names = [] - for name, opts in fieldsets: - for field in opts['fields']: - # type checking feels dirty, but it seems like the best way here - if type(field) == tuple: - field_names.extend(field) - else: - field_names.append(field) - return field_names - -def _format_callback(obj, user, admin_site, levels_to_root, perms_needed): - has_admin = obj.__class__ in admin_site._registry - opts = obj._meta - try: - admin_url = reverse('%s:%s_%s_change' - % (admin_site.name, - opts.app_label, - opts.object_name.lower()), - None, (quote(obj._get_pk_val()),)) - except NoReverseMatch: - admin_url = '%s%s/%s/%s/' % ('../'*levels_to_root, - opts.app_label, - opts.object_name.lower(), - quote(obj._get_pk_val())) - if has_admin: - p = '%s.%s' % (opts.app_label, - opts.get_delete_permission()) - if not user.has_perm(p): - perms_needed.add(opts.verbose_name) - # Display a link to the admin page. - return mark_safe(u'%s: %s' % - (escape(capfirst(opts.verbose_name)), - admin_url, - escape(obj))) - else: - # Don't display link to edit, because it either has no - # admin or is edited inline. - return u'%s: %s' % (capfirst(opts.verbose_name), - force_unicode(obj)) - -def get_deleted_objects(objs, opts, user, admin_site, levels_to_root=4): - """ - Find all objects related to ``objs`` that should also be - deleted. ``objs`` should be an iterable of objects. - - Returns a nested list of strings suitable for display in the - template with the ``unordered_list`` filter. - - `levels_to_root` defines the number of directories (../) to reach - the admin root path. In a change_view this is 4, in a change_list - view 2. - - This is for backwards compatibility since the options.delete_selected - method uses this function also from a change_list view. - This will not be used if we can reverse the URL. - """ - collector = NestedObjects() - for obj in objs: - # TODO using a private model API! - obj._collect_sub_objects(collector) - - perms_needed = set() - - to_delete = collector.nested(_format_callback, - user=user, - admin_site=admin_site, - levels_to_root=levels_to_root, - perms_needed=perms_needed) - - return to_delete, perms_needed - - -class NestedObjects(object): - """ - A directed acyclic graph collection that exposes the add() API - expected by Model._collect_sub_objects and can present its data as - a nested list of objects. - - """ - def __init__(self): - # Use object keys of the form (model, pk) because actual model - # objects may not be unique - - # maps object key to list of child keys - self.children = SortedDict() - - # maps object key to parent key - self.parents = SortedDict() - - # maps object key to actual object - self.seen = SortedDict() - - def add(self, model, pk, obj, - parent_model=None, parent_obj=None, nullable=False): - """ - Add item ``obj`` to the graph. Returns True (and does nothing) - if the item has been seen already. - - The ``parent_obj`` argument must already exist in the graph; if - not, it's ignored (but ``obj`` is still added with no - parent). In any case, Model._collect_sub_objects (for whom - this API exists) will never pass a parent that hasn't already - been added itself. - - These restrictions in combination ensure the graph will remain - acyclic (but can have multiple roots). - - ``model``, ``pk``, and ``parent_model`` arguments are ignored - in favor of the appropriate lookups on ``obj`` and - ``parent_obj``; unlike CollectedObjects, we can't maintain - independence from the knowledge that we're operating on model - instances, and we don't want to allow for inconsistency. - - ``nullable`` arg is ignored: it doesn't affect how the tree of - collected objects should be nested for display. - """ - model, pk = type(obj), obj._get_pk_val() - - # auto-created M2M models don't interest us - if model._meta.auto_created: - return True - - key = model, pk - - if key in self.seen: - return True - self.seen.setdefault(key, obj) - - if parent_obj is not None: - parent_model, parent_pk = (type(parent_obj), - parent_obj._get_pk_val()) - parent_key = (parent_model, parent_pk) - if parent_key in self.seen: - self.children.setdefault(parent_key, list()).append(key) - self.parents.setdefault(key, parent_key) - - def _nested(self, key, format_callback=None, **kwargs): - obj = self.seen[key] - if format_callback: - ret = [format_callback(obj, **kwargs)] - else: - ret = [obj] - - children = [] - for child in self.children.get(key, ()): - children.extend(self._nested(child, format_callback, **kwargs)) - if children: - ret.append(children) - - return ret - - def nested(self, format_callback=None, **kwargs): - """ - Return the graph as a nested list. - - Passes **kwargs back to the format_callback as kwargs. - - """ - roots = [] - for key in self.seen.keys(): - if key not in self.parents: - roots.extend(self._nested(key, format_callback, **kwargs)) - return roots - - -def model_format_dict(obj): - """ - Return a `dict` with keys 'verbose_name' and 'verbose_name_plural', - typically for use with string formatting. - - `obj` may be a `Model` instance, `Model` subclass, or `QuerySet` instance. - - """ - if isinstance(obj, (models.Model, models.base.ModelBase)): - opts = obj._meta - elif isinstance(obj, models.query.QuerySet): - opts = obj.model._meta - else: - opts = obj - return { - 'verbose_name': force_unicode(opts.verbose_name), - 'verbose_name_plural': force_unicode(opts.verbose_name_plural) - } - -def model_ngettext(obj, n=None): - """ - Return the appropriate `verbose_name` or `verbose_name_plural` value for - `obj` depending on the count `n`. - - `obj` may be a `Model` instance, `Model` subclass, or `QuerySet` instance. - If `obj` is a `QuerySet` instance, `n` is optional and the length of the - `QuerySet` is used. - - """ - if isinstance(obj, models.query.QuerySet): - if n is None: - n = obj.count() - obj = obj.model - d = model_format_dict(obj) - singular, plural = d["verbose_name"], d["verbose_name_plural"] - return ungettext(singular, plural, n or 0) - -def lookup_field(name, obj, model_admin=None): - opts = obj._meta - try: - f = opts.get_field(name) - except models.FieldDoesNotExist: - # For non-field values, the value is either a method, property or - # returned via a callable. - if callable(name): - attr = name - value = attr(obj) - elif (model_admin is not None and hasattr(model_admin, name) and - not name == '__str__' and not name == '__unicode__'): - attr = getattr(model_admin, name) - value = attr(obj) - else: - attr = getattr(obj, name) - if callable(attr): - value = attr() - else: - value = attr - f = None - else: - attr = None - value = getattr(obj, name) - return f, attr, value - -def label_for_field(name, model, model_admin=None, return_attr=False): - attr = None - try: - field = model._meta.get_field_by_name(name)[0] - if isinstance(field, RelatedObject): - label = field.opts.verbose_name - else: - label = field.verbose_name - except models.FieldDoesNotExist: - if name == "__unicode__": - label = force_unicode(model._meta.verbose_name) - elif name == "__str__": - label = smart_str(model._meta.verbose_name) - else: - if callable(name): - attr = name - elif model_admin is not None and hasattr(model_admin, name): - attr = getattr(model_admin, name) - elif hasattr(model, name): - attr = getattr(model, name) - else: - message = "Unable to lookup '%s' on %s" % (name, model._meta.object_name) - if model_admin: - message += " or %s" % (model_admin.__name__,) - raise AttributeError(message) - - if hasattr(attr, "short_description"): - label = attr.short_description - elif callable(attr): - if attr.__name__ == "": - label = "--" - else: - label = pretty_name(attr.__name__) - else: - label = pretty_name(name) - if return_attr: - return (label, attr) - else: - return label - - -def display_for_field(value, field): - from django.contrib.admin.templatetags.admin_list import _boolean_icon - from django.contrib.admin.views.main import EMPTY_CHANGELIST_VALUE - - if field.flatchoices: - return dict(field.flatchoices).get(value, EMPTY_CHANGELIST_VALUE) - # NullBooleanField needs special-case null-handling, so it comes - # before the general null test. - elif isinstance(field, models.BooleanField) or isinstance(field, models.NullBooleanField): - return _boolean_icon(value) - elif value is None: - return EMPTY_CHANGELIST_VALUE - elif isinstance(field, models.DateField) or isinstance(field, models.TimeField): - return formats.localize(value) - elif isinstance(field, models.DecimalField): - return formats.number_format(value, field.decimal_places) - elif isinstance(field, models.FloatField): - return formats.number_format(value) - else: - return smart_unicode(value) diff --git a/parts/django/django/contrib/admin/validation.py b/parts/django/django/contrib/admin/validation.py deleted file mode 100644 index bee2891..0000000 --- a/parts/django/django/contrib/admin/validation.py +++ /dev/null @@ -1,379 +0,0 @@ -from django.core.exceptions import ImproperlyConfigured -from django.db import models -from django.forms.models import (BaseModelForm, BaseModelFormSet, fields_for_model, - _get_foreign_key) -from django.contrib.admin.options import flatten_fieldsets, BaseModelAdmin -from django.contrib.admin.options import HORIZONTAL, VERTICAL -from django.contrib.admin.util import lookup_field - - -__all__ = ['validate'] - -def validate(cls, model): - """ - Does basic ModelAdmin option validation. Calls custom validation - classmethod in the end if it is provided in cls. The signature of the - custom validation classmethod should be: def validate(cls, model). - """ - # Before we can introspect models, they need to be fully loaded so that - # inter-relations are set up correctly. We force that here. - models.get_apps() - - opts = model._meta - validate_base(cls, model) - - # list_display - if hasattr(cls, 'list_display'): - check_isseq(cls, 'list_display', cls.list_display) - for idx, field in enumerate(cls.list_display): - if not callable(field): - if not hasattr(cls, field): - if not hasattr(model, field): - try: - opts.get_field(field) - except models.FieldDoesNotExist: - raise ImproperlyConfigured("%s.list_display[%d], %r is not a callable or an attribute of %r or found in the model %r." - % (cls.__name__, idx, field, cls.__name__, model._meta.object_name)) - else: - # getattr(model, field) could be an X_RelatedObjectsDescriptor - f = fetch_attr(cls, model, opts, "list_display[%d]" % idx, field) - if isinstance(f, models.ManyToManyField): - raise ImproperlyConfigured("'%s.list_display[%d]', '%s' is a ManyToManyField which is not supported." - % (cls.__name__, idx, field)) - - # list_display_links - if hasattr(cls, 'list_display_links'): - check_isseq(cls, 'list_display_links', cls.list_display_links) - for idx, field in enumerate(cls.list_display_links): - fetch_attr(cls, model, opts, 'list_display_links[%d]' % idx, field) - if field not in cls.list_display: - raise ImproperlyConfigured("'%s.list_display_links[%d]'" - "refers to '%s' which is not defined in 'list_display'." - % (cls.__name__, idx, field)) - - # list_filter - if hasattr(cls, 'list_filter'): - check_isseq(cls, 'list_filter', cls.list_filter) - for idx, field in enumerate(cls.list_filter): - get_field(cls, model, opts, 'list_filter[%d]' % idx, field) - - # list_per_page = 100 - if hasattr(cls, 'list_per_page') and not isinstance(cls.list_per_page, int): - raise ImproperlyConfigured("'%s.list_per_page' should be a integer." - % cls.__name__) - - # list_editable - if hasattr(cls, 'list_editable') and cls.list_editable: - check_isseq(cls, 'list_editable', cls.list_editable) - for idx, field_name in enumerate(cls.list_editable): - try: - field = opts.get_field_by_name(field_name)[0] - except models.FieldDoesNotExist: - raise ImproperlyConfigured("'%s.list_editable[%d]' refers to a " - "field, '%s', not defined on %s." - % (cls.__name__, idx, field_name, model.__name__)) - if field_name not in cls.list_display: - raise ImproperlyConfigured("'%s.list_editable[%d]' refers to " - "'%s' which is not defined in 'list_display'." - % (cls.__name__, idx, field_name)) - if field_name in cls.list_display_links: - raise ImproperlyConfigured("'%s' cannot be in both '%s.list_editable'" - " and '%s.list_display_links'" - % (field_name, cls.__name__, cls.__name__)) - if not cls.list_display_links and cls.list_display[0] in cls.list_editable: - raise ImproperlyConfigured("'%s.list_editable[%d]' refers to" - " the first field in list_display, '%s', which can't be" - " used unless list_display_links is set." - % (cls.__name__, idx, cls.list_display[0])) - if not field.editable: - raise ImproperlyConfigured("'%s.list_editable[%d]' refers to a " - "field, '%s', which isn't editable through the admin." - % (cls.__name__, idx, field_name)) - - # search_fields = () - if hasattr(cls, 'search_fields'): - check_isseq(cls, 'search_fields', cls.search_fields) - - # date_hierarchy = None - if cls.date_hierarchy: - f = get_field(cls, model, opts, 'date_hierarchy', cls.date_hierarchy) - if not isinstance(f, (models.DateField, models.DateTimeField)): - raise ImproperlyConfigured("'%s.date_hierarchy is " - "neither an instance of DateField nor DateTimeField." - % cls.__name__) - - # ordering = None - if cls.ordering: - check_isseq(cls, 'ordering', cls.ordering) - for idx, field in enumerate(cls.ordering): - if field == '?' and len(cls.ordering) != 1: - raise ImproperlyConfigured("'%s.ordering' has the random " - "ordering marker '?', but contains other fields as " - "well. Please either remove '?' or the other fields." - % cls.__name__) - if field == '?': - continue - if field.startswith('-'): - field = field[1:] - # Skip ordering in the format field1__field2 (FIXME: checking - # this format would be nice, but it's a little fiddly). - if '__' in field: - continue - get_field(cls, model, opts, 'ordering[%d]' % idx, field) - - if hasattr(cls, "readonly_fields"): - check_isseq(cls, "readonly_fields", cls.readonly_fields) - for idx, field in enumerate(cls.readonly_fields): - if not callable(field): - if not hasattr(cls, field): - if not hasattr(model, field): - try: - opts.get_field(field) - except models.FieldDoesNotExist: - raise ImproperlyConfigured("%s.readonly_fields[%d], %r is not a callable or an attribute of %r or found in the model %r." - % (cls.__name__, idx, field, cls.__name__, model._meta.object_name)) - - # list_select_related = False - # save_as = False - # save_on_top = False - for attr in ('list_select_related', 'save_as', 'save_on_top'): - if not isinstance(getattr(cls, attr), bool): - raise ImproperlyConfigured("'%s.%s' should be a boolean." - % (cls.__name__, attr)) - - - # inlines = [] - if hasattr(cls, 'inlines'): - check_isseq(cls, 'inlines', cls.inlines) - for idx, inline in enumerate(cls.inlines): - if not issubclass(inline, BaseModelAdmin): - raise ImproperlyConfigured("'%s.inlines[%d]' does not inherit " - "from BaseModelAdmin." % (cls.__name__, idx)) - if not inline.model: - raise ImproperlyConfigured("'model' is a required attribute " - "of '%s.inlines[%d]'." % (cls.__name__, idx)) - if not issubclass(inline.model, models.Model): - raise ImproperlyConfigured("'%s.inlines[%d].model' does not " - "inherit from models.Model." % (cls.__name__, idx)) - validate_base(inline, inline.model) - validate_inline(inline, cls, model) - -def validate_inline(cls, parent, parent_model): - - # model is already verified to exist and be a Model - if cls.fk_name: # default value is None - f = get_field(cls, cls.model, cls.model._meta, 'fk_name', cls.fk_name) - if not isinstance(f, models.ForeignKey): - raise ImproperlyConfigured("'%s.fk_name is not an instance of " - "models.ForeignKey." % cls.__name__) - - fk = _get_foreign_key(parent_model, cls.model, fk_name=cls.fk_name, can_fail=True) - - # extra = 3 - if not isinstance(getattr(cls, 'extra'), int): - raise ImproperlyConfigured("'%s.extra' should be a integer." - % cls.__name__) - - # max_num = None - max_num = getattr(cls, 'max_num', None) - if max_num is not None and not isinstance(max_num, int): - raise ImproperlyConfigured("'%s.max_num' should be an integer or None (default)." - % cls.__name__) - - # formset - if hasattr(cls, 'formset') and not issubclass(cls.formset, BaseModelFormSet): - raise ImproperlyConfigured("'%s.formset' does not inherit from " - "BaseModelFormSet." % cls.__name__) - - # exclude - if hasattr(cls, 'exclude') and cls.exclude: - if fk and fk.name in cls.exclude: - raise ImproperlyConfigured("%s cannot exclude the field " - "'%s' - this is the foreign key to the parent model " - "%s." % (cls.__name__, fk.name, parent_model.__name__)) - -def validate_base(cls, model): - opts = model._meta - - # raw_id_fields - if hasattr(cls, 'raw_id_fields'): - check_isseq(cls, 'raw_id_fields', cls.raw_id_fields) - for idx, field in enumerate(cls.raw_id_fields): - f = get_field(cls, model, opts, 'raw_id_fields', field) - if not isinstance(f, (models.ForeignKey, models.ManyToManyField)): - raise ImproperlyConfigured("'%s.raw_id_fields[%d]', '%s' must " - "be either a ForeignKey or ManyToManyField." - % (cls.__name__, idx, field)) - - # fields - if cls.fields: # default value is None - check_isseq(cls, 'fields', cls.fields) - for field in cls.fields: - if field in cls.readonly_fields: - # Stuff can be put in fields that isn't actually a model field - # if it's in readonly_fields, readonly_fields will handle the - # validation of such things. - continue - check_formfield(cls, model, opts, 'fields', field) - try: - f = opts.get_field(field) - except models.FieldDoesNotExist: - # If we can't find a field on the model that matches, - # it could be an extra field on the form. - continue - if isinstance(f, models.ManyToManyField) and not f.rel.through._meta.auto_created: - raise ImproperlyConfigured("'%s.fields' can't include the ManyToManyField " - "field '%s' because '%s' manually specifies " - "a 'through' model." % (cls.__name__, field, field)) - if cls.fieldsets: - raise ImproperlyConfigured('Both fieldsets and fields are specified in %s.' % cls.__name__) - if len(cls.fields) > len(set(cls.fields)): - raise ImproperlyConfigured('There are duplicate field(s) in %s.fields' % cls.__name__) - - # fieldsets - if cls.fieldsets: # default value is None - check_isseq(cls, 'fieldsets', cls.fieldsets) - for idx, fieldset in enumerate(cls.fieldsets): - check_isseq(cls, 'fieldsets[%d]' % idx, fieldset) - if len(fieldset) != 2: - raise ImproperlyConfigured("'%s.fieldsets[%d]' does not " - "have exactly two elements." % (cls.__name__, idx)) - check_isdict(cls, 'fieldsets[%d][1]' % idx, fieldset[1]) - if 'fields' not in fieldset[1]: - raise ImproperlyConfigured("'fields' key is required in " - "%s.fieldsets[%d][1] field options dict." - % (cls.__name__, idx)) - for fields in fieldset[1]['fields']: - # The entry in fields might be a tuple. If it is a standalone - # field, make it into a tuple to make processing easier. - if type(fields) != tuple: - fields = (fields,) - for field in fields: - if field in cls.readonly_fields: - # Stuff can be put in fields that isn't actually a - # model field if it's in readonly_fields, - # readonly_fields will handle the validation of such - # things. - continue - check_formfield(cls, model, opts, "fieldsets[%d][1]['fields']" % idx, field) - try: - f = opts.get_field(field) - if isinstance(f, models.ManyToManyField) and not f.rel.through._meta.auto_created: - raise ImproperlyConfigured("'%s.fieldsets[%d][1]['fields']' " - "can't include the ManyToManyField field '%s' because " - "'%s' manually specifies a 'through' model." % ( - cls.__name__, idx, field, field)) - except models.FieldDoesNotExist: - # If we can't find a field on the model that matches, - # it could be an extra field on the form. - pass - flattened_fieldsets = flatten_fieldsets(cls.fieldsets) - if len(flattened_fieldsets) > len(set(flattened_fieldsets)): - raise ImproperlyConfigured('There are duplicate field(s) in %s.fieldsets' % cls.__name__) - - # exclude - if cls.exclude: # default value is None - check_isseq(cls, 'exclude', cls.exclude) - for field in cls.exclude: - check_formfield(cls, model, opts, 'exclude', field) - try: - f = opts.get_field(field) - except models.FieldDoesNotExist: - # If we can't find a field on the model that matches, - # it could be an extra field on the form. - continue - if len(cls.exclude) > len(set(cls.exclude)): - raise ImproperlyConfigured('There are duplicate field(s) in %s.exclude' % cls.__name__) - - # form - if hasattr(cls, 'form') and not issubclass(cls.form, BaseModelForm): - raise ImproperlyConfigured("%s.form does not inherit from " - "BaseModelForm." % cls.__name__) - - # filter_vertical - if hasattr(cls, 'filter_vertical'): - check_isseq(cls, 'filter_vertical', cls.filter_vertical) - for idx, field in enumerate(cls.filter_vertical): - f = get_field(cls, model, opts, 'filter_vertical', field) - if not isinstance(f, models.ManyToManyField): - raise ImproperlyConfigured("'%s.filter_vertical[%d]' must be " - "a ManyToManyField." % (cls.__name__, idx)) - - # filter_horizontal - if hasattr(cls, 'filter_horizontal'): - check_isseq(cls, 'filter_horizontal', cls.filter_horizontal) - for idx, field in enumerate(cls.filter_horizontal): - f = get_field(cls, model, opts, 'filter_horizontal', field) - if not isinstance(f, models.ManyToManyField): - raise ImproperlyConfigured("'%s.filter_horizontal[%d]' must be " - "a ManyToManyField." % (cls.__name__, idx)) - - # radio_fields - if hasattr(cls, 'radio_fields'): - check_isdict(cls, 'radio_fields', cls.radio_fields) - for field, val in cls.radio_fields.items(): - f = get_field(cls, model, opts, 'radio_fields', field) - if not (isinstance(f, models.ForeignKey) or f.choices): - raise ImproperlyConfigured("'%s.radio_fields['%s']' " - "is neither an instance of ForeignKey nor does " - "have choices set." % (cls.__name__, field)) - if not val in (HORIZONTAL, VERTICAL): - raise ImproperlyConfigured("'%s.radio_fields['%s']' " - "is neither admin.HORIZONTAL nor admin.VERTICAL." - % (cls.__name__, field)) - - # prepopulated_fields - if hasattr(cls, 'prepopulated_fields'): - check_isdict(cls, 'prepopulated_fields', cls.prepopulated_fields) - for field, val in cls.prepopulated_fields.items(): - f = get_field(cls, model, opts, 'prepopulated_fields', field) - if isinstance(f, (models.DateTimeField, models.ForeignKey, - models.ManyToManyField)): - raise ImproperlyConfigured("'%s.prepopulated_fields['%s']' " - "is either a DateTimeField, ForeignKey or " - "ManyToManyField. This isn't allowed." - % (cls.__name__, field)) - check_isseq(cls, "prepopulated_fields['%s']" % field, val) - for idx, f in enumerate(val): - get_field(cls, model, opts, "prepopulated_fields['%s'][%d]" % (field, idx), f) - -def check_isseq(cls, label, obj): - if not isinstance(obj, (list, tuple)): - raise ImproperlyConfigured("'%s.%s' must be a list or tuple." % (cls.__name__, label)) - -def check_isdict(cls, label, obj): - if not isinstance(obj, dict): - raise ImproperlyConfigured("'%s.%s' must be a dictionary." % (cls.__name__, label)) - -def get_field(cls, model, opts, label, field): - try: - return opts.get_field(field) - except models.FieldDoesNotExist: - raise ImproperlyConfigured("'%s.%s' refers to field '%s' that is missing from model '%s'." - % (cls.__name__, label, field, model.__name__)) - -def check_formfield(cls, model, opts, label, field): - if getattr(cls.form, 'base_fields', None): - try: - cls.form.base_fields[field] - except KeyError: - raise ImproperlyConfigured("'%s.%s' refers to field '%s' that " - "is missing from the form." % (cls.__name__, label, field)) - else: - fields = fields_for_model(model) - try: - fields[field] - except KeyError: - raise ImproperlyConfigured("'%s.%s' refers to field '%s' that " - "is missing from the form." % (cls.__name__, label, field)) - -def fetch_attr(cls, model, opts, label, field): - try: - return opts.get_field(field) - except models.FieldDoesNotExist: - pass - try: - return getattr(model, field) - except AttributeError: - raise ImproperlyConfigured("'%s.%s' refers to '%s' that is neither a field, method or property of model '%s'." - % (cls.__name__, label, field, model.__name__)) diff --git a/parts/django/django/contrib/admin/views/__init__.py b/parts/django/django/contrib/admin/views/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/parts/django/django/contrib/admin/views/decorators.py b/parts/django/django/contrib/admin/views/decorators.py deleted file mode 100644 index 82184fc..0000000 --- a/parts/django/django/contrib/admin/views/decorators.py +++ /dev/null @@ -1,73 +0,0 @@ -import base64 -try: - from functools import wraps -except ImportError: - from django.utils.functional import wraps # Python 2.4 fallback. - -from django import http, template -from django.conf import settings -from django.contrib.auth.models import User -from django.contrib.auth import authenticate, login -from django.shortcuts import render_to_response -from django.utils.translation import ugettext_lazy, ugettext as _ - -ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.") -LOGIN_FORM_KEY = 'this_is_the_login_form' - -def _display_login_form(request, error_message=''): - request.session.set_test_cookie() - return render_to_response('admin/login.html', { - 'title': _('Log in'), - 'app_path': request.get_full_path(), - 'error_message': error_message - }, context_instance=template.RequestContext(request)) - -def staff_member_required(view_func): - """ - Decorator for views that checks that the user is logged in and is a staff - member, displaying the login page if necessary. - """ - def _checklogin(request, *args, **kwargs): - if request.user.is_active and request.user.is_staff: - # The user is valid. Continue to the admin page. - return view_func(request, *args, **kwargs) - - assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - - # If this isn't already the login page, display it. - if LOGIN_FORM_KEY not in request.POST: - if request.POST: - message = _("Please log in again, because your session has expired.") - else: - message = "" - return _display_login_form(request, message) - - # Check that the user accepts cookies. - if not request.session.test_cookie_worked(): - message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.") - return _display_login_form(request, message) - else: - request.session.delete_test_cookie() - - # Check the password. - username = request.POST.get('username', None) - password = request.POST.get('password', None) - user = authenticate(username=username, password=password) - if user is None: - message = ERROR_MESSAGE - if '@' in username: - # Mistakenly entered e-mail address instead of username? Look it up. - users = list(User.objects.filter(email=username)) - if len(users) == 1 and users[0].check_password(password): - message = _("Your e-mail address is not your username. Try '%s' instead.") % users[0].username - return _display_login_form(request, message) - - # The user data is correct; log in the user in and continue. - else: - if user.is_active and user.is_staff: - login(request, user) - return http.HttpResponseRedirect(request.get_full_path()) - else: - return _display_login_form(request, ERROR_MESSAGE) - - return wraps(view_func)(_checklogin) diff --git a/parts/django/django/contrib/admin/views/main.py b/parts/django/django/contrib/admin/views/main.py deleted file mode 100644 index 4303a65..0000000 --- a/parts/django/django/contrib/admin/views/main.py +++ /dev/null @@ -1,251 +0,0 @@ -from django.contrib.admin.filterspecs import FilterSpec -from django.contrib.admin.options import IncorrectLookupParameters -from django.contrib.admin.util import quote -from django.core.exceptions import SuspiciousOperation -from django.core.paginator import Paginator, InvalidPage -from django.db import models -from django.db.models.query import QuerySet -from django.utils.encoding import force_unicode, smart_str -from django.utils.translation import ugettext -from django.utils.http import urlencode -import operator - -# The system will display a "Show all" link on the change list only if the -# total result count is less than or equal to this setting. -MAX_SHOW_ALL_ALLOWED = 200 - -# Changelist settings -ALL_VAR = 'all' -ORDER_VAR = 'o' -ORDER_TYPE_VAR = 'ot' -PAGE_VAR = 'p' -SEARCH_VAR = 'q' -TO_FIELD_VAR = 't' -IS_POPUP_VAR = 'pop' -ERROR_FLAG = 'e' - -# Text to display within change-list table cells if the value is blank. -EMPTY_CHANGELIST_VALUE = '(None)' - -class ChangeList(object): - def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, list_select_related, list_per_page, list_editable, model_admin): - self.model = model - self.opts = model._meta - self.lookup_opts = self.opts - self.root_query_set = model_admin.queryset(request) - self.list_display = list_display - self.list_display_links = list_display_links - self.list_filter = list_filter - self.date_hierarchy = date_hierarchy - self.search_fields = search_fields - self.list_select_related = list_select_related - self.list_per_page = list_per_page - self.list_editable = list_editable - self.model_admin = model_admin - - # Get search parameters from the query string. - try: - self.page_num = int(request.GET.get(PAGE_VAR, 0)) - except ValueError: - self.page_num = 0 - self.show_all = ALL_VAR in request.GET - self.is_popup = IS_POPUP_VAR in request.GET - self.to_field = request.GET.get(TO_FIELD_VAR) - self.params = dict(request.GET.items()) - if PAGE_VAR in self.params: - del self.params[PAGE_VAR] - if TO_FIELD_VAR in self.params: - del self.params[TO_FIELD_VAR] - if ERROR_FLAG in self.params: - del self.params[ERROR_FLAG] - - self.order_field, self.order_type = self.get_ordering() - self.query = request.GET.get(SEARCH_VAR, '') - self.query_set = self.get_query_set() - self.get_results(request) - self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name)) - self.filter_specs, self.has_filters = self.get_filters(request) - self.pk_attname = self.lookup_opts.pk.attname - - def get_filters(self, request): - filter_specs = [] - if self.list_filter: - filter_fields = [self.lookup_opts.get_field(field_name) for field_name in self.list_filter] - for f in filter_fields: - spec = FilterSpec.create(f, request, self.params, self.model, self.model_admin) - if spec and spec.has_output(): - filter_specs.append(spec) - return filter_specs, bool(filter_specs) - - def get_query_string(self, new_params=None, remove=None): - if new_params is None: new_params = {} - if remove is None: remove = [] - p = self.params.copy() - for r in remove: - for k in p.keys(): - if k.startswith(r): - del p[k] - for k, v in new_params.items(): - if v is None: - if k in p: - del p[k] - else: - p[k] = v - return '?%s' % urlencode(p) - - def get_results(self, request): - paginator = Paginator(self.query_set, self.list_per_page) - # Get the number of objects, with admin filters applied. - result_count = paginator.count - - # Get the total number of objects, with no admin filters applied. - # Perform a slight optimization: Check to see whether any filters were - # given. If not, use paginator.hits to calculate the number of objects, - # because we've already done paginator.hits and the value is cached. - if not self.query_set.query.where: - full_result_count = result_count - else: - full_result_count = self.root_query_set.count() - - can_show_all = result_count <= MAX_SHOW_ALL_ALLOWED - multi_page = result_count > self.list_per_page - - # Get the list of objects to display on this page. - if (self.show_all and can_show_all) or not multi_page: - result_list = self.query_set._clone() - else: - try: - result_list = paginator.page(self.page_num+1).object_list - except InvalidPage: - raise IncorrectLookupParameters - - self.result_count = result_count - self.full_result_count = full_result_count - self.result_list = result_list - self.can_show_all = can_show_all - self.multi_page = multi_page - self.paginator = paginator - - def get_ordering(self): - lookup_opts, params = self.lookup_opts, self.params - # For ordering, first check the "ordering" parameter in the admin - # options, then check the object's default ordering. If neither of - # those exist, order descending by ID by default. Finally, look for - # manually-specified ordering from the query string. - ordering = self.model_admin.ordering or lookup_opts.ordering or ['-' + lookup_opts.pk.name] - - if ordering[0].startswith('-'): - order_field, order_type = ordering[0][1:], 'desc' - else: - order_field, order_type = ordering[0], 'asc' - if ORDER_VAR in params: - try: - field_name = self.list_display[int(params[ORDER_VAR])] - try: - f = lookup_opts.get_field(field_name) - except models.FieldDoesNotExist: - # See whether field_name is a name of a non-field - # that allows sorting. - try: - if callable(field_name): - attr = field_name - elif hasattr(self.model_admin, field_name): - attr = getattr(self.model_admin, field_name) - else: - attr = getattr(self.model, field_name) - order_field = attr.admin_order_field - except AttributeError: - pass - else: - order_field = f.name - except (IndexError, ValueError): - pass # Invalid ordering specified. Just use the default. - if ORDER_TYPE_VAR in params and params[ORDER_TYPE_VAR] in ('asc', 'desc'): - order_type = params[ORDER_TYPE_VAR] - return order_field, order_type - - def get_query_set(self): - qs = self.root_query_set - lookup_params = self.params.copy() # a dictionary of the query string - for i in (ALL_VAR, ORDER_VAR, ORDER_TYPE_VAR, SEARCH_VAR, IS_POPUP_VAR): - if i in lookup_params: - del lookup_params[i] - for key, value in lookup_params.items(): - if not isinstance(key, str): - # 'key' will be used as a keyword argument later, so Python - # requires it to be a string. - del lookup_params[key] - lookup_params[smart_str(key)] = value - - # if key ends with __in, split parameter into separate values - if key.endswith('__in'): - lookup_params[key] = value.split(',') - - # if key ends with __isnull, special case '' and false - if key.endswith('__isnull'): - if value.lower() in ('', 'false'): - lookup_params[key] = False - else: - lookup_params[key] = True - - if not self.model_admin.lookup_allowed(key): - raise SuspiciousOperation( - "Filtering by %s not allowed" % key - ) - - # Apply lookup parameters from the query string. - try: - qs = qs.filter(**lookup_params) - # Naked except! Because we don't have any other way of validating "params". - # They might be invalid if the keyword arguments are incorrect, or if the - # values are not in the correct type, so we might get FieldError, ValueError, - # ValicationError, or ? from a custom field that raises yet something else - # when handed impossible data. - except: - raise IncorrectLookupParameters - - # Use select_related() if one of the list_display options is a field - # with a relationship and the provided queryset doesn't already have - # select_related defined. - if not qs.query.select_related: - if self.list_select_related: - qs = qs.select_related() - else: - for field_name in self.list_display: - try: - f = self.lookup_opts.get_field(field_name) - except models.FieldDoesNotExist: - pass - else: - if isinstance(f.rel, models.ManyToOneRel): - qs = qs.select_related() - break - - # Set ordering. - if self.order_field: - qs = qs.order_by('%s%s' % ((self.order_type == 'desc' and '-' or ''), self.order_field)) - - # Apply keyword searches. - def construct_search(field_name): - if field_name.startswith('^'): - return "%s__istartswith" % field_name[1:] - elif field_name.startswith('='): - return "%s__iexact" % field_name[1:] - elif field_name.startswith('@'): - return "%s__search" % field_name[1:] - else: - return "%s__icontains" % field_name - - if self.search_fields and self.query: - for bit in self.query.split(): - or_queries = [models.Q(**{construct_search(str(field_name)): bit}) for field_name in self.search_fields] - qs = qs.filter(reduce(operator.or_, or_queries)) - for field_name in self.search_fields: - if '__' in field_name: - qs = qs.distinct() - break - - return qs - - def url_for_result(self, result): - return "%s/" % quote(getattr(result, self.pk_attname)) diff --git a/parts/django/django/contrib/admin/widgets.py b/parts/django/django/contrib/admin/widgets.py deleted file mode 100644 index e8cbd1d..0000000 --- a/parts/django/django/contrib/admin/widgets.py +++ /dev/null @@ -1,293 +0,0 @@ -""" -Form Widget classes specific to the Django admin site. -""" - -import django.utils.copycompat as copy - -from django import forms -from django.forms.widgets import RadioFieldRenderer -from django.forms.util import flatatt -from django.utils.html import escape -from django.utils.text import truncate_words -from django.utils.translation import ugettext as _ -from django.utils.safestring import mark_safe -from django.utils.encoding import force_unicode -from django.conf import settings -from django.core.urlresolvers import reverse, NoReverseMatch - -class FilteredSelectMultiple(forms.SelectMultiple): - """ - A SelectMultiple with a JavaScript filter interface. - - Note that the resulting JavaScript assumes that the jsi18n - catalog has been loaded in the page - """ - class Media: - js = (settings.ADMIN_MEDIA_PREFIX + "js/core.js", - settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js", - settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js") - - def __init__(self, verbose_name, is_stacked, attrs=None, choices=()): - self.verbose_name = verbose_name - self.is_stacked = is_stacked - super(FilteredSelectMultiple, self).__init__(attrs, choices) - - def render(self, name, value, attrs=None, choices=()): - if attrs is None: attrs = {} - attrs['class'] = 'selectfilter' - if self.is_stacked: attrs['class'] += 'stacked' - output = [super(FilteredSelectMultiple, self).render(name, value, attrs, choices)] - output.append(u'\n' % \ - (name, self.verbose_name.replace('"', '\\"'), int(self.is_stacked), settings.ADMIN_MEDIA_PREFIX)) - return mark_safe(u''.join(output)) - -class AdminDateWidget(forms.DateInput): - class Media: - js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js", - settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js") - - def __init__(self, attrs={}, format=None): - super(AdminDateWidget, self).__init__(attrs={'class': 'vDateField', 'size': '10'}, format=format) - -class AdminTimeWidget(forms.TimeInput): - class Media: - js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js", - settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js") - - def __init__(self, attrs={}, format=None): - super(AdminTimeWidget, self).__init__(attrs={'class': 'vTimeField', 'size': '8'}, format=format) - -class AdminSplitDateTime(forms.SplitDateTimeWidget): - """ - A SplitDateTime Widget that has some admin-specific styling. - """ - def __init__(self, attrs=None): - widgets = [AdminDateWidget, AdminTimeWidget] - # Note that we're calling MultiWidget, not SplitDateTimeWidget, because - # we want to define widgets. - forms.MultiWidget.__init__(self, widgets, attrs) - - def format_output(self, rendered_widgets): - return mark_safe(u'

%s %s
%s %s

' % \ - (_('Date:'), rendered_widgets[0], _('Time:'), rendered_widgets[1])) - -class AdminRadioFieldRenderer(RadioFieldRenderer): - def render(self): - """Outputs a
    for this set of radio fields.""" - return mark_safe(u'\n%s\n
' % ( - flatatt(self.attrs), - u'\n'.join([u'
  • %s
  • ' % force_unicode(w) for w in self])) - ) - -class AdminRadioSelect(forms.RadioSelect): - renderer = AdminRadioFieldRenderer - -class AdminFileWidget(forms.FileInput): - """ - A FileField Widget that shows its current value if it has one. - """ - def __init__(self, attrs={}): - super(AdminFileWidget, self).__init__(attrs) - - def render(self, name, value, attrs=None): - output = [] - if value and hasattr(value, "url"): - output.append('%s %s
    %s ' % \ - (_('Currently:'), value.url, value, _('Change:'))) - output.append(super(AdminFileWidget, self).render(name, value, attrs)) - return mark_safe(u''.join(output)) - -class ForeignKeyRawIdWidget(forms.TextInput): - """ - A Widget for displaying ForeignKeys in the "raw_id" interface rather than - in a box. - """ - def render(self, name, value, attrs=None): - if attrs is None: - attrs = {} - attrs['class'] = 'vManyToManyRawIdAdminField' - if value: - value = ','.join([force_unicode(v) for v in value]) - else: - value = '' - return super(ManyToManyRawIdWidget, self).render(name, value, attrs) - - def url_parameters(self): - return self.base_url_parameters() - - def label_for_value(self, value): - return '' - - def value_from_datadict(self, data, files, name): - value = data.get(name, None) - if value and ',' in value: - return data[name].split(',') - if value: - return [value] - return None - - def _has_changed(self, initial, data): - if initial is None: - initial = [] - if data is None: - data = [] - if len(initial) != len(data): - return True - for pk1, pk2 in zip(initial, data): - if force_unicode(pk1) != force_unicode(pk2): - return True - return False - -class RelatedFieldWidgetWrapper(forms.Widget): - """ - This class is a wrapper to a given widget to add the add icon for the - admin interface. - """ - def __init__(self, widget, rel, admin_site): - self.is_hidden = widget.is_hidden - self.needs_multipart_form = widget.needs_multipart_form - self.attrs = widget.attrs - self.choices = widget.choices - self.widget = widget - self.rel = rel - # so we can check if the related object is registered with this AdminSite - self.admin_site = admin_site - - def __deepcopy__(self, memo): - obj = copy.copy(self) - obj.widget = copy.deepcopy(self.widget, memo) - obj.attrs = self.widget.attrs - memo[id(self)] = obj - return obj - - def _media(self): - return self.widget.media - media = property(_media) - - def render(self, name, value, *args, **kwargs): - rel_to = self.rel.to - info = (rel_to._meta.app_label, rel_to._meta.object_name.lower()) - try: - related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name) - except NoReverseMatch: - info = (self.admin_site.root_path, rel_to._meta.app_label, rel_to._meta.object_name.lower()) - related_url = '%s%s/%s/add/' % info - self.widget.choices = self.choices - output = [self.widget.render(name, value, *args, **kwargs)] - if rel_to in self.admin_site._registry: # If the related object has an admin interface: - # TODO: "id_" is hard-coded here. This should instead use the correct - # API to determine the ID dynamically. - output.append(u' ' % \ - (related_url, name)) - output.append(u'%s' % (settings.ADMIN_MEDIA_PREFIX, _('Add Another'))) - return mark_safe(u''.join(output)) - - def build_attrs(self, extra_attrs=None, **kwargs): - "Helper function for building an attribute dictionary." - self.attrs = self.widget.build_attrs(extra_attrs=None, **kwargs) - return self.attrs - - def value_from_datadict(self, data, files, name): - return self.widget.value_from_datadict(data, files, name) - - def _has_changed(self, initial, data): - return self.widget._has_changed(initial, data) - - def id_for_label(self, id_): - return self.widget.id_for_label(id_) - -class AdminTextareaWidget(forms.Textarea): - def __init__(self, attrs=None): - final_attrs = {'class': 'vLargeTextField'} - if attrs is not None: - final_attrs.update(attrs) - super(AdminTextareaWidget, self).__init__(attrs=final_attrs) - -class AdminTextInputWidget(forms.TextInput): - def __init__(self, attrs=None): - final_attrs = {'class': 'vTextField'} - if attrs is not None: - final_attrs.update(attrs) - super(AdminTextInputWidget, self).__init__(attrs=final_attrs) - -class AdminURLFieldWidget(forms.TextInput): - def __init__(self, attrs=None): - final_attrs = {'class': 'vURLField'} - if attrs is not None: - final_attrs.update(attrs) - super(AdminURLFieldWidget, self).__init__(attrs=final_attrs) - -class AdminIntegerFieldWidget(forms.TextInput): - def __init__(self, attrs=None): - final_attrs = {'class': 'vIntegerField'} - if attrs is not None: - final_attrs.update(attrs) - super(AdminIntegerFieldWidget, self).__init__(attrs=final_attrs) - -class AdminCommaSeparatedIntegerFieldWidget(forms.TextInput): - def __init__(self, attrs=None): - final_attrs = {'class': 'vCommaSeparatedIntegerField'} - if attrs is not None: - final_attrs.update(attrs) - super(AdminCommaSeparatedIntegerFieldWidget, self).__init__(attrs=final_attrs) diff --git a/parts/django/django/contrib/admindocs/__init__.py b/parts/django/django/contrib/admindocs/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/parts/django/django/contrib/admindocs/models.py b/parts/django/django/contrib/admindocs/models.py deleted file mode 100644 index a9f813a..0000000 --- a/parts/django/django/contrib/admindocs/models.py +++ /dev/null @@ -1 +0,0 @@ -# Empty models.py to allow for specifying admindocs as a test label. diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/bookmarklets.html b/parts/django/django/contrib/admindocs/templates/admin_doc/bookmarklets.html deleted file mode 100644 index 6447529..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/bookmarklets.html +++ /dev/null @@ -1,31 +0,0 @@ -{% extends "admin/base_site.html" %} - -{% block breadcrumbs %}{% load i18n %}{% endblock %} -{% block title %}{% trans "Documentation bookmarklets" %}{% endblock %} - -{% block content %} - -{% blocktrans %} -

    To install bookmarklets, drag the link to your bookmarks -toolbar, or right-click the link and add it to your bookmarks. Now you can -select the bookmarklet from any page in the site. Note that some of these -bookmarklets require you to be viewing the site from a computer designated -as "internal" (talk to your system administrator if you aren't sure if -your computer is "internal").

    -{% endblocktrans %} - -
    -

    {% trans "Documentation for this page" %}

    -

    {% trans "Jumps you from any page to the documentation for the view that generates that page." %}

    - -

    {% trans "Show object ID" %}

    -

    {% trans "Shows the content-type and unique ID for pages that represent a single object." %}

    - -

    {% trans "Edit this object (current window)" %}

    -

    {% trans "Jumps to the admin page for pages that represent a single object." %}

    - -

    {% trans "Edit this object (new window)" %}

    -

    {% trans "As above, but opens the admin page in a new window." %}

    -
    - -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/index.html b/parts/django/django/contrib/admindocs/templates/admin_doc/index.html deleted file mode 100644 index a8b21c3..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/index.html +++ /dev/null @@ -1,28 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block breadcrumbs %}{% endblock %} -{% block title %}Documentation{% endblock %} - -{% block content %} - -

    Documentation

    - -
    -

    Tags

    -

    List of all the template tags and their functions.

    - -

    Filters

    -

    Filters are actions which can be applied to variables in a template to alter the output.

    - -

    Models

    -

    Models are descriptions of all the objects in the system and their associated fields. Each model has a list of fields which can be accessed as template variables.

    - -

    Views

    -

    Each page on the public site is generated by a view. The view defines which template is used to generate the page and which objects are available to that template.

    - -

    Bookmarklets

    -

    Tools for your browser to quickly access admin functionality.

    -
    - -{% endblock %} - diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/missing_docutils.html b/parts/django/django/contrib/admindocs/templates/admin_doc/missing_docutils.html deleted file mode 100644 index 97c9d47..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/missing_docutils.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block breadcrumbs %}{% endblock %} -{% block title %}Please install docutils{% endblock %} - -{% block content %} - -

    Documentation

    - -
    -

    The admin documentation system requires Python's docutils library.

    - -

    Please ask your administrators to install docutils.

    -
    - -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/model_detail.html b/parts/django/django/contrib/admindocs/templates/admin_doc/model_detail.html deleted file mode 100644 index 828df18..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/model_detail.html +++ /dev/null @@ -1,46 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block extrahead %} -{{ block.super }} - -{% endblock %} - -{% block breadcrumbs %}{% endblock %} - -{% block title %}Model: {{ name }}{% endblock %} - -{% block content %} -
    -

    {{ summary }}

    - -{% if description %} -

    {% filter linebreaksbr %}{% trans description %}{% endfilter %}

    -{% endif %} - -
    - - - - - - - - - -{% for field in fields|dictsort:"name" %} - - - - - -{% endfor %} - -
    FieldTypeDescription
    {{ field.name }}{{ field.data_type }}{{ field.verbose }}{% if field.help_text %} - {{ field.help_text|safe }}{% endif %}
    -
    - -

    ‹ Back to Models Documentation

    -
    -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/model_index.html b/parts/django/django/contrib/admindocs/templates/admin_doc/model_index.html deleted file mode 100644 index 47c94c0..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/model_index.html +++ /dev/null @@ -1,44 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block coltype %}colSM{% endblock %} -{% block breadcrumbs %}{% endblock %} - -{% block title %}Models{% endblock %} - -{% block content %} - -

    Model documentation

    - -{% regroup models by app_label as grouped_models %} - -
    -{% for group in grouped_models %} -
    -

    {{ group.grouper|capfirst }}

    - - -{% for model in group.list %} - - - -{% endfor %} -
    {{ model.object_name }}
    -
    -{% endfor %} - -
    -{% endblock %} - -{% block sidebar %} - -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/template_detail.html b/parts/django/django/contrib/admindocs/templates/admin_doc/template_detail.html deleted file mode 100644 index c04dedc..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/template_detail.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block breadcrumbs %}{% endblock %} - -{% block title %}Template: {{ name }}{% endblock %} - -{% block content %} -

    Template: "{{ name }}"

    - -{% regroup templates|dictsort:"site_id" by site as templates_by_site %} -{% for group in templates_by_site %} -

    Search path for template "{{ name }}" on {{ group.grouper }}:

    -
      - {% for template in group.list|dictsort:"order" %} -
    1. {{ template.file }}{% if not template.exists %} (does not exist){% endif %}
    2. - {% endfor %} -
    -{% endfor %} - -

    ‹ Back to Documentation

    -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/template_filter_index.html b/parts/django/django/contrib/admindocs/templates/admin_doc/template_filter_index.html deleted file mode 100644 index 7470762..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/template_filter_index.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block coltype %}colSM{% endblock %} -{% block breadcrumbs %}{% endblock %} -{% block title %}Template filters{% endblock %} - -{% block content %} - -

    Template filter documentation

    - -
    -{% regroup filters|dictsort:"library" by library as filter_libraries %} -{% for library in filter_libraries %} -
    -

    {% firstof library.grouper "Built-in filters" %}

    - {% if library.grouper %}

    To use these filters, put {% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %} in your template before using the filter.


    {% endif %} - {% for filter in library.list|dictsort:"name" %} -

    {{ filter.name }}

    -

    {{ filter.title }}

    -

    {{ filter.body }}

    - {% if not forloop.last %}
    {% endif %} - {% endfor %} -
    -{% endfor %} -
    - -{% endblock %} - -{% block sidebar %} - - - -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/template_tag_index.html b/parts/django/django/contrib/admindocs/templates/admin_doc/template_tag_index.html deleted file mode 100644 index 774130b..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/template_tag_index.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block coltype %}colSM{% endblock %} -{% block breadcrumbs %}{% endblock %} -{% block title %}Template tags{% endblock %} - -{% block content %} - -

    Template tag documentation

    - -
    -{% regroup tags|dictsort:"library" by library as tag_libraries %} -{% for library in tag_libraries %} -
    -

    {% firstof library.grouper "Built-in tags" %}

    - {% if library.grouper %}

    To use these tags, put {% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %} in your template before using the tag.


    {% endif %} - {% for tag in library.list|dictsort:"name" %} -

    {{ tag.name }}

    -

    {{ tag.title }}

    -

    {{ tag.body }}

    - {% if not forloop.last %}
    {% endif %} - {% endfor %} -
    -{% endfor %} -
    - -{% endblock %} - -{% block sidebar %} - - - -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/view_detail.html b/parts/django/django/contrib/admindocs/templates/admin_doc/view_detail.html deleted file mode 100644 index d7415ab..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/view_detail.html +++ /dev/null @@ -1,25 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block breadcrumbs %}{% endblock %} -{% block title %}View: {{ name }}{% endblock %} - -{% block content %} - -

    {{ name }}

    - -

    {{ summary }}

    - -

    {{ body }}

    - -{% if meta.Context %} -

    Context:

    -

    {{ meta.Context }}

    -{% endif %} - -{% if meta.Templates %} -

    Templates:

    -

    {{ meta.Templates }}

    -{% endif %} - -

    ‹ Back to Views Documentation

    -{% endblock %} diff --git a/parts/django/django/contrib/admindocs/templates/admin_doc/view_index.html b/parts/django/django/contrib/admindocs/templates/admin_doc/view_index.html deleted file mode 100644 index 6b10fa6..0000000 --- a/parts/django/django/contrib/admindocs/templates/admin_doc/view_index.html +++ /dev/null @@ -1,43 +0,0 @@ -{% extends "admin/base_site.html" %} -{% load i18n %} -{% block coltype %}colSM{% endblock %} -{% block breadcrumbs %}{% endblock %} -{% block title %}Views{% endblock %} - -{% block content %} - -

    View documentation

    - -{% regroup views|dictsort:"site_id" by site as views_by_site %} - - - -
    - -{% for site_views in views_by_site %} -
    -

    Views by URL on {{ site_views.grouper.name }}

    - -{% for view in site_views.list|dictsort:"url" %} -{% ifchanged %} -

    {{ view.url }}

    -

    View function: {{ view.module }}.{{ view.name }}

    -

    {{ view.title }}

    -
    -{% endifchanged %} -{% endfor %} -
    -{% endfor %} -
    -{% endblock %} - - diff --git a/parts/django/django/contrib/admindocs/tests/__init__.py b/parts/django/django/contrib/admindocs/tests/__init__.py deleted file mode 100644 index b4526c6..0000000 --- a/parts/django/django/contrib/admindocs/tests/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -import unittest -import fields -from django.contrib.admindocs import views -from django.db.models import fields as builtin_fields - - -class TestFieldType(unittest.TestCase): - def setUp(self): - pass - - def test_field_name(self): - self.assertRaises(AttributeError, - views.get_readable_field_data_type, "NotAField" - ) - - def test_builtin_fields(self): - self.assertEqual( - views.get_readable_field_data_type(builtin_fields.BooleanField()), - u'Boolean (Either True or False)' - ) - - def test_custom_fields(self): - self.assertEqual( - views.get_readable_field_data_type(fields.CustomField()), - u'A custom field type' - ) - self.assertEqual( - views.get_readable_field_data_type(fields.DescriptionLackingField()), - u'Field of type: DescriptionLackingField' - ) diff --git a/parts/django/django/contrib/admindocs/tests/fields.py b/parts/django/django/contrib/admindocs/tests/fields.py deleted file mode 100644 index e59498a..0000000 --- a/parts/django/django/contrib/admindocs/tests/fields.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.db import models - -class CustomField(models.Field): - description = "A custom field type" - -class DescriptionLackingField(models.Field): - pass diff --git a/parts/django/django/contrib/admindocs/urls.py b/parts/django/django/contrib/admindocs/urls.py deleted file mode 100644 index 57edb56..0000000 --- a/parts/django/django/contrib/admindocs/urls.py +++ /dev/null @@ -1,41 +0,0 @@ -from django.conf.urls.defaults import * -from django.contrib.admindocs import views - -urlpatterns = patterns('', - url('^$', - views.doc_index, - name='django-admindocs-docroot' - ), - url('^bookmarklets/$', - views.bookmarklets, - name='django-admindocs-bookmarklets' - ), - url('^tags/$', - views.template_tag_index, - name='django-admindocs-tags' - ), - url('^filters/$', - views.template_filter_index, - name='django-admindocs-filters' - ), - url('^views/$', - views.view_index, - name='django-admindocs-views-index' - ), - url('^views/(?P[^/]+)/$', - views.view_detail, - name='django-admindocs-views-detail' - ), - url('^models/$', - views.model_index, - name='django-admindocs-models-index' - ), - url('^models/(?P[^\.]+)\.(?P[^/]+)/$', - views.model_detail, - name='django-admindocs-models-detail' - ), - url('^templates/(?P