You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2014/01/10 19:19:56 UTC
[32/32] git commit: PEP8 cleanup
PEP8 cleanup
Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/c93733ac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/c93733ac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/c93733ac
Branch: refs/heads/master
Commit: c93733acb492b4c9238ac8ec32136bb95f1a87d9
Parents: 37ecc5e
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Fri Jan 10 18:18:51 2014 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Fri Jan 10 18:18:51 2014 +0000
----------------------------------------------------------------------
Allura/allura/app.py | 97 +-
Allura/allura/command/base.py | 21 +-
Allura/allura/command/create_neighborhood.py | 23 +-
.../allura/command/create_trove_categories.py | 2770 ++++++++++++------
Allura/allura/command/reclone_repo.py | 14 +-
Allura/allura/command/script.py | 17 +-
.../allura/command/set_neighborhood_features.py | 31 +-
Allura/allura/command/show_models.py | 101 +-
Allura/allura/command/smtp_server.py | 6 +-
Allura/allura/command/taskd.py | 40 +-
Allura/allura/command/taskd_cleanup.py | 52 +-
Allura/allura/config/app_cfg.py | 3 +-
Allura/allura/config/environment.py | 3 +-
Allura/allura/config/middleware.py | 37 +-
Allura/allura/config/resources.py | 1 +
Allura/allura/controllers/attachments.py | 12 +-
Allura/allura/controllers/auth.py | 146 +-
Allura/allura/controllers/base.py | 2 +
.../allura/controllers/basetest_project_root.py | 30 +-
Allura/allura/controllers/discuss.py | 147 +-
Allura/allura/controllers/feed.py | 11 +-
Allura/allura/controllers/project.py | 203 +-
Allura/allura/controllers/repository.py | 136 +-
Allura/allura/controllers/rest.py | 44 +-
Allura/allura/controllers/root.py | 23 +-
Allura/allura/controllers/search.py | 34 +-
Allura/allura/controllers/site_admin.py | 81 +-
Allura/allura/controllers/static.py | 2 +-
Allura/allura/controllers/task.py | 4 +-
Allura/allura/controllers/template.py | 3 +-
Allura/allura/controllers/trovecategories.py | 66 +-
Allura/allura/eventslistener.py | 10 +-
Allura/allura/ext/admin/admin_main.py | 279 +-
Allura/allura/ext/admin/widgets.py | 80 +-
Allura/allura/ext/project_home/project_main.py | 22 +-
Allura/allura/ext/search/search_main.py | 24 +-
Allura/allura/ext/user_profile/user_main.py | 20 +-
Allura/allura/lib/AsciiDammit.py | 267 +-
Allura/allura/lib/app_globals.py | 82 +-
Allura/allura/lib/async.py | 2 +
Allura/allura/lib/base.py | 8 +-
Allura/allura/lib/custom_middleware.py | 66 +-
Allura/allura/lib/decorators.py | 27 +-
Allura/allura/lib/exceptions.py | 77 +-
Allura/allura/lib/gravatar.py | 12 +-
Allura/allura/lib/helpers.py | 166 +-
Allura/allura/lib/macro.py | 137 +-
Allura/allura/lib/mail_util.py | 45 +-
Allura/allura/lib/markdown_extensions.py | 123 +-
Allura/allura/lib/oid_helper.py | 13 +-
Allura/allura/lib/package_path_loader.py | 24 +-
Allura/allura/lib/patches.py | 20 +-
Allura/allura/lib/plugin.py | 182 +-
Allura/allura/lib/repository.py | 99 +-
Allura/allura/lib/rest_api.py | 56 +-
Allura/allura/lib/search.py | 42 +-
Allura/allura/lib/security.py | 78 +-
Allura/allura/lib/solr.py | 5 +-
Allura/allura/lib/spam/__init__.py | 2 +
Allura/allura/lib/spam/akismetfilter.py | 18 +-
Allura/allura/lib/spam/mollomfilter.py | 7 +-
Allura/allura/lib/stats.py | 9 +-
Allura/allura/lib/utils.py | 94 +-
Allura/allura/lib/validators.py | 91 +-
Allura/allura/lib/widgets/analytics.py | 5 +-
Allura/allura/lib/widgets/auth_widgets.py | 19 +-
Allura/allura/lib/widgets/discuss.py | 213 +-
Allura/allura/lib/widgets/form_fields.py | 165 +-
Allura/allura/lib/widgets/forms.py | 274 +-
Allura/allura/lib/widgets/macros.py | 33 +-
Allura/allura/lib/widgets/oauth_widgets.py | 20 +-
Allura/allura/lib/widgets/project_list.py | 19 +-
Allura/allura/lib/widgets/repo.py | 39 +-
Allura/allura/lib/widgets/search.py | 14 +-
Allura/allura/lib/widgets/subscriptions.py | 50 +-
Allura/allura/lib/widgets/user_profile.py | 3 +-
Allura/allura/lib/zarkov_helpers.py | 12 +-
Allura/allura/model/artifact.py | 186 +-
Allura/allura/model/attachments.py | 19 +-
Allura/allura/model/auth.py | 332 ++-
Allura/allura/model/discuss.py | 87 +-
Allura/allura/model/filesystem.py | 53 +-
Allura/allura/model/index.py | 71 +-
Allura/allura/model/monq_model.py | 46 +-
Allura/allura/model/neighborhood.py | 77 +-
Allura/allura/model/notification.py | 265 +-
Allura/allura/model/oauth.py | 47 +-
Allura/allura/model/openid_model.py | 28 +-
Allura/allura/model/project.py | 322 +-
Allura/allura/model/repo.py | 168 +-
Allura/allura/model/repo_refresh.py | 208 +-
Allura/allura/model/repository.py | 217 +-
Allura/allura/model/session.py | 27 +-
Allura/allura/model/stats.py | 184 +-
Allura/allura/model/timeline.py | 14 +-
Allura/allura/model/types.py | 10 +-
Allura/allura/scripts/refresh_last_commits.py | 78 +-
Allura/allura/scripts/refreshrepo.py | 121 +-
Allura/allura/scripts/scripttask.py | 4 +-
Allura/allura/scripts/trac_export.py | 60 +-
Allura/allura/scripts/update_checkout_url.py | 5 +-
Allura/allura/tasks/admin_tasks.py | 4 +-
Allura/allura/tasks/event_tasks.py | 2 +-
Allura/allura/tasks/export_tasks.py | 21 +-
Allura/allura/tasks/index_tasks.py | 11 +-
Allura/allura/tasks/mail_tasks.py | 46 +-
Allura/allura/tasks/notification_tasks.py | 1 +
Allura/allura/tasks/repo_tasks.py | 45 +-
Allura/allura/tests/__init__.py | 2 +
Allura/allura/tests/decorators.py | 10 +-
Allura/allura/tests/functional/__init__.py | 2 +-
Allura/allura/tests/functional/test_admin.py | 764 ++---
Allura/allura/tests/functional/test_auth.py | 854 +++---
Allura/allura/tests/functional/test_discuss.py | 134 +-
Allura/allura/tests/functional/test_feeds.py | 29 +-
Allura/allura/tests/functional/test_gravatar.py | 3 +-
Allura/allura/tests/functional/test_home.py | 23 +-
.../tests/functional/test_neighborhood.py | 297 +-
Allura/allura/tests/functional/test_rest.py | 76 +-
.../tests/functional/test_rest_api_tickets.py | 9 +-
Allura/allura/tests/functional/test_root.py | 82 +-
Allura/allura/tests/functional/test_search.py | 1 -
.../allura/tests/functional/test_site_admin.py | 32 +-
Allura/allura/tests/functional/test_static.py | 1 +
.../tests/functional/test_user_profile.py | 45 +-
Allura/allura/tests/model/test_artifact.py | 35 +-
Allura/allura/tests/model/test_auth.py | 57 +-
Allura/allura/tests/model/test_discussion.py | 67 +-
Allura/allura/tests/model/test_filesystem.py | 29 +-
Allura/allura/tests/model/test_monq.py | 4 +-
Allura/allura/tests/model/test_neighborhood.py | 5 +-
Allura/allura/tests/model/test_notification.py | 189 +-
Allura/allura/tests/model/test_openid.py | 17 +-
Allura/allura/tests/model/test_project.py | 17 +-
Allura/allura/tests/model/test_repo.py | 411 +--
Allura/allura/tests/test_app.py | 15 +-
Allura/allura/tests/test_commands.py | 152 +-
Allura/allura/tests/test_decorators.py | 1 +
Allura/allura/tests/test_diff.py | 4 +-
Allura/allura/tests/test_dispatch.py | 6 +-
Allura/allura/tests/test_globals.py | 149 +-
Allura/allura/tests/test_helpers.py | 125 +-
Allura/allura/tests/test_mail_util.py | 69 +-
Allura/allura/tests/test_markdown.py | 37 +-
Allura/allura/tests/test_plugin.py | 24 +-
Allura/allura/tests/test_scripttask.py | 2 +
Allura/allura/tests/test_security.py | 59 +-
Allura/allura/tests/test_tasks.py | 78 +-
Allura/allura/tests/test_utils.py | 24 +-
Allura/allura/tests/test_validators.py | 14 +-
Allura/allura/tests/test_zarkov_helpers.py | 26 +-
Allura/allura/tests/unit/__init__.py | 1 +
.../test_discussion_moderation_controller.py | 10 +-
Allura/allura/tests/unit/factories.py | 3 +-
Allura/allura/tests/unit/patches.py | 1 -
Allura/allura/tests/unit/spam/test_akismet.py | 46 +-
Allura/allura/tests/unit/spam/test_mollom.py | 30 +-
.../allura/tests/unit/spam/test_spam_filter.py | 2 +
Allura/allura/tests/unit/test_app.py | 1 -
.../allura/tests/unit/test_helpers/test_ago.py | 8 +-
.../tests/unit/test_helpers/test_set_context.py | 13 +-
Allura/allura/tests/unit/test_mixins.py | 4 +-
.../tests/unit/test_package_path_loader.py | 130 +-
Allura/allura/tests/unit/test_project.py | 12 +-
Allura/allura/tests/unit/test_repo.py | 45 +-
Allura/allura/tests/unit/test_session.py | 9 +-
Allura/allura/tests/unit/test_sitemapentry.py | 1 +
Allura/allura/tests/unit/test_solr.py | 33 +-
Allura/allura/websetup/__init__.py | 1 +
Allura/allura/websetup/bootstrap.py | 101 +-
Allura/allura/websetup/schema.py | 5 +-
Allura/docs/conf.py | 18 +-
Allura/ez_setup/__init__.py | 67 +-
Allura/ldap-setup.py | 25 +-
Allura/ldap-userconfig.py | 3 +
Allura/setup.py | 16 +-
Allura/test-light.py | 7 +-
AlluraTest/alluratest/controller.py | 37 +-
AlluraTest/alluratest/test_syntax.py | 26 +-
AlluraTest/alluratest/validation.py | 34 +-
AlluraTest/setup.py | 8 +-
ForgeActivity/forgeactivity/config/resources.py | 1 +
ForgeActivity/forgeactivity/main.py | 79 +-
.../forgeactivity/tests/functional/test_root.py | 59 +-
ForgeActivity/forgeactivity/widgets/follow.py | 4 +-
ForgeActivity/setup.py | 3 +-
ForgeBlog/forgeblog/command/base.py | 1 +
ForgeBlog/forgeblog/command/rssfeeds.py | 37 +-
ForgeBlog/forgeblog/main.py | 69 +-
ForgeBlog/forgeblog/model/blog.py | 74 +-
.../forgeblog/tests/functional/test_rest.py | 57 +-
.../forgeblog/tests/functional/test_root.py | 11 +-
ForgeBlog/forgeblog/tests/test_app.py | 9 +-
ForgeBlog/forgeblog/tests/test_commands.py | 53 +-
ForgeBlog/forgeblog/tests/test_roles.py | 3 +
ForgeBlog/forgeblog/tests/unit/__init__.py | 10 +-
.../forgeblog/tests/unit/test_blog_post.py | 7 +-
ForgeBlog/forgeblog/widgets.py | 31 +-
ForgeBlog/setup.py | 6 +-
ForgeChat/forgechat/command.py | 38 +-
ForgeChat/forgechat/main.py | 46 +-
ForgeChat/forgechat/model/chat.py | 15 +-
ForgeChat/setup.py | 6 +-
.../forgediscussion/controllers/forum.py | 42 +-
.../forgediscussion/controllers/root.py | 64 +-
ForgeDiscussion/forgediscussion/forum_main.py | 106 +-
.../forgediscussion/import_support.py | 44 +-
ForgeDiscussion/forgediscussion/model/forum.py | 73 +-
ForgeDiscussion/forgediscussion/tasks.py | 2 +
.../tests/functional/test_forum.py | 329 ++-
.../tests/functional/test_forum_admin.py | 168 +-
.../tests/functional/test_import.py | 43 +-
.../tests/functional/test_rest.py | 21 +-
.../forgediscussion/tests/test_app.py | 14 +-
.../forgediscussion/tests/test_forum_roles.py | 3 +
ForgeDiscussion/forgediscussion/utils.py | 30 +-
.../forgediscussion/widgets/admin.py | 40 +-
.../forgediscussion/widgets/forum_widgets.py | 167 +-
ForgeDiscussion/setup.py | 6 +-
ForgeGit/forgegit/git_main.py | 26 +-
ForgeGit/forgegit/model/git_repo.py | 162 +-
ForgeGit/forgegit/tests/__init__.py | 2 +-
ForgeGit/forgegit/tests/functional/test_auth.py | 7 +-
.../tests/functional/test_controllers.py | 135 +-
.../forgegit/tests/model/test_repository.py | 242 +-
ForgeGit/forgegit/tests/test_git_app.py | 1 +
ForgeGit/forgegit/tests/test_tasks.py | 4 +-
ForgeGit/setup.py | 6 +-
ForgeImporters/docs/conf.py | 18 +-
ForgeImporters/forgeimporters/base.py | 110 +-
ForgeImporters/forgeimporters/forge/__init__.py | 1 -
ForgeImporters/forgeimporters/forge/tracker.py | 146 +-
.../forgeimporters/github/__init__.py | 33 +-
ForgeImporters/forgeimporters/github/code.py | 48 +-
ForgeImporters/forgeimporters/github/project.py | 10 +-
.../forgeimporters/github/tests/test_code.py | 62 +-
.../forgeimporters/github/tests/test_tracker.py | 18 +-
.../forgeimporters/github/tests/test_wiki.py | 82 +-
ForgeImporters/forgeimporters/github/tracker.py | 98 +-
ForgeImporters/forgeimporters/github/utils.py | 8 +-
ForgeImporters/forgeimporters/github/wiki.py | 95 +-
.../forgeimporters/google/__init__.py | 140 +-
ForgeImporters/forgeimporters/google/code.py | 68 +-
ForgeImporters/forgeimporters/google/project.py | 1 +
.../forgeimporters/google/tests/__init__.py | 1 -
.../forgeimporters/google/tests/test_code.py | 72 +-
ForgeImporters/forgeimporters/google/tracker.py | 128 +-
.../forgeimporters/tests/forge/__init__.py | 1 -
.../forgeimporters/tests/forge/test_tracker.py | 367 +--
.../forgeimporters/tests/github/__init__.py | 1 -
.../tests/github/functional/__init__.py | 1 -
.../tests/github/functional/test_github.py | 13 +-
.../tests/github/test_extractor.py | 20 +-
.../forgeimporters/tests/github/test_tracker.py | 136 +-
.../forgeimporters/tests/google/__init__.py | 1 -
.../tests/google/functional/__init__.py | 1 -
.../tests/google/functional/test_tracker.py | 358 +--
.../tests/google/test_extractor.py | 387 +--
.../forgeimporters/tests/google/test_tracker.py | 322 +-
.../forgeimporters/tests/test_base.py | 141 +-
ForgeImporters/forgeimporters/trac/__init__.py | 1 -
ForgeImporters/forgeimporters/trac/project.py | 1 +
.../forgeimporters/trac/tests/__init__.py | 1 -
.../forgeimporters/trac/tests/test_tickets.py | 163 +-
ForgeImporters/forgeimporters/trac/tickets.py | 96 +-
ForgeLink/forgelink/link_main.py | 32 +-
.../forgelink/tests/functional/test_rest.py | 16 +-
.../forgelink/tests/functional/test_root.py | 2 +-
ForgeLink/setup.py | 6 +-
ForgeSVN/forgesvn/controllers.py | 4 +-
ForgeSVN/forgesvn/model/svn.py | 239 +-
ForgeSVN/forgesvn/svn_main.py | 42 +-
ForgeSVN/forgesvn/tests/__init__.py | 2 +-
ForgeSVN/forgesvn/tests/functional/test_auth.py | 8 +-
.../tests/functional/test_controllers.py | 38 +-
.../forgesvn/tests/model/test_repository.py | 276 +-
.../tests/model/test_svnimplementation.py | 28 +-
ForgeSVN/forgesvn/tests/test_svn_app.py | 1 +
ForgeSVN/forgesvn/tests/test_tasks.py | 6 +-
ForgeSVN/setup.py | 6 +-
ForgeShortUrl/forgeshorturl/main.py | 11 +-
ForgeShortUrl/forgeshorturl/model/shorturl.py | 12 +-
.../forgeshorturl/tests/functional/test.py | 29 +-
.../forgeshorturl/widgets/short_url.py | 8 +-
.../forgetracker/command/fix_discussion.py | 20 +-
ForgeTracker/forgetracker/config/resources.py | 3 +-
ForgeTracker/forgetracker/import_support.py | 59 +-
ForgeTracker/forgetracker/model/ticket.py | 365 ++-
ForgeTracker/forgetracker/plugins.py | 1 -
.../forgetracker/scripts/import_tracker.py | 63 +-
.../tests/command/test_fix_discussion.py | 7 +-
.../tests/functional/test_import.py | 52 +-
.../forgetracker/tests/functional/test_rest.py | 82 +-
.../forgetracker/tests/functional/test_root.py | 1021 ++++---
ForgeTracker/forgetracker/tests/test_app.py | 10 +-
.../forgetracker/tests/test_tracker_roles.py | 4 +
.../forgetracker/tests/unit/__init__.py | 10 +-
.../tests/unit/test_globals_model.py | 23 +-
.../tests/unit/test_milestone_controller.py | 3 +-
.../tests/unit/test_root_controller.py | 7 +-
.../unit/test_ticket_custom_fields_form.py | 6 +-
.../forgetracker/tests/unit/test_ticket_form.py | 2 +-
.../tests/unit/test_ticket_model.py | 85 +-
ForgeTracker/forgetracker/tracker_main.py | 488 +--
ForgeTracker/forgetracker/widgets/admin.py | 21 +-
.../forgetracker/widgets/admin_custom_fields.py | 77 +-
ForgeTracker/forgetracker/widgets/bin_form.py | 14 +-
.../forgetracker/widgets/ticket_form.py | 65 +-
.../forgetracker/widgets/ticket_search.py | 30 +-
ForgeTracker/setup.py | 6 +-
ForgeUserStats/forgeuserstats/__init__.py | 1 -
.../forgeuserstats/controllers/__init__.py | 1 -
.../forgeuserstats/controllers/userstats.py | 76 +-
ForgeUserStats/forgeuserstats/main.py | 36 +-
ForgeUserStats/forgeuserstats/model/__init__.py | 1 -
ForgeUserStats/forgeuserstats/model/stats.py | 16 +-
ForgeUserStats/forgeuserstats/tests/__init__.py | 1 -
.../forgeuserstats/tests/test_model.py | 172 +-
.../forgeuserstats/tests/test_stats.py | 93 +-
.../forgeuserstats/widgets/__init__.py | 1 -
ForgeUserStats/forgeuserstats/widgets/forms.py | 10 +-
ForgeUserStats/setup.py | 6 +-
ForgeWiki/forgewiki/converters.py | 4 +-
ForgeWiki/forgewiki/model/wiki.py | 78 +-
.../scripts/wiki2markdown/extractors.py | 10 +-
.../forgewiki/scripts/wiki2markdown/loaders.py | 16 +-
.../scripts/wiki2markdown/wiki2markdown.py | 56 +-
.../scripts/wiki_from_trac/__init__.py | 2 +-
.../scripts/wiki_from_trac/extractors.py | 9 +-
.../forgewiki/scripts/wiki_from_trac/loaders.py | 6 +-
.../scripts/wiki_from_trac/wiki_from_trac.py | 39 +-
.../forgewiki/tests/functional/test_rest.py | 15 +-
.../forgewiki/tests/functional/test_root.py | 339 ++-
ForgeWiki/forgewiki/tests/test_app.py | 9 +-
ForgeWiki/forgewiki/tests/test_wiki2markdown.py | 18 +-
ForgeWiki/forgewiki/tests/test_wiki_roles.py | 4 +
ForgeWiki/forgewiki/widgets/wiki.py | 6 +-
ForgeWiki/forgewiki/wiki_main.py | 164 +-
ForgeWiki/setup.py | 6 +-
NoWarnings/nowarnings.py | 1 +
fuse/accessfs.py | 53 +-
run_tests | 31 +-
scripts/add_user_to_group.py | 14 +-
scripts/allura_import.py | 52 +-
scripts/changelog.py | 9 +-
scripts/create-allura-sitemap.py | 16 +-
scripts/git-hooks/for-the-remote-repo/update | 46 +-
.../git-hooks/for-your-local-repo/commit-msg | 5 +-
scripts/git-mr | 29 +-
scripts/import_trove_categories.py | 11 +-
scripts/migrations/000-fix-tracker-fields.py | 16 +-
scripts/migrations/001-restore-labels.py | 31 +-
.../002-fix-tracker-thread-subjects.py | 10 +-
scripts/migrations/003-migrate_project_roles.py | 3 +-
.../004-make-attachments-polymorphic.py | 1 +
...005-remove_duplicate_ticket_notifications.py | 15 +-
scripts/migrations/006-migrate-artifact-refs.py | 5 +-
scripts/migrations/007-update-acls.py | 64 +-
.../migrations/008-remove-forumpost-subject.py | 1 +
scripts/migrations/010-fix-home-permissions.py | 31 +-
scripts/migrations/011-fix-subroles.py | 33 +-
scripts/migrations/012-uninstall-home.py | 38 +-
scripts/migrations/013-update-ordinals.py | 10 +-
.../015-add-neighborhood_id-to-blog-posts.py | 3 +-
scripts/migrations/018-add-svn-checkout-url.py | 2 +-
.../migrations/020-remove-wiki-title-slashes.py | 1 +
.../migrations/022-change-anon-display-name.py | 3 +-
.../024-migrate-custom-profile-text.py | 19 +-
scripts/migrations/025-add-is-nbhd-project.py | 7 +-
scripts/migrations/026-install-activity-tool.py | 1 +
.../027-change-ticket-write-permissions.py | 5 +-
scripts/migrations/028-remove-svn-trees.py | 4 +-
scripts/new_ticket.py | 15 +-
scripts/open_relay.py | 11 +-
scripts/perf/benchmark-scm.py | 53 +-
scripts/perf/call_count.py | 23 +-
scripts/perf/md_perf.py | 19 +-
scripts/perf/sstress.py | 10 +-
scripts/perf/test_git_lcd.py | 2 +-
scripts/prep-scm-sandbox.py | 20 +-
scripts/project-import.py | 131 +-
scripts/publicize-neighborhood.py | 22 +-
scripts/recover-user-databases.py | 11 +-
scripts/rethumb.py | 42 +-
scripts/scrub-allura-data.py | 20 +-
scripts/setup-scm-server.py | 10 +-
scripts/teamforge-import.py | 327 ++-
scripts/test-branches-against-tickets.py | 52 +-
scripts/tracker-rip.py | 59 +-
scripts/wiki-copy.py | 28 +-
scripts/wiki-export.py | 2 +-
scripts/wiki-post.py | 18 +-
392 files changed, 15707 insertions(+), 10378 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index 85673c5..29acf12 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -46,9 +46,11 @@ config = ConfigProxy(common_suffix='forgemail.domain')
class ConfigOption(object):
+
"""Definition of a configuration option for an :class:`Application`.
"""
+
def __init__(self, name, ming_type, default, label=None):
"""Create a new ConfigOption.
@@ -67,14 +69,16 @@ class ConfigOption(object):
class SitemapEntry(object):
+
"""A labeled URL, which may optionally have
:class:`children <SitemapEntry>`.
Used for generating trees of links.
"""
+
def __init__(self, label, url=None, children=None, className=None,
- ui_icon=None, small=None, tool_name=None, matching_urls=None):
+ ui_icon=None, small=None, tool_name=None, matching_urls=None):
"""Create a new SitemapEntry.
"""
@@ -112,7 +116,8 @@ class SitemapEntry(object):
l = ['<SitemapEntry ']
l.append(' label=%r' % self.label)
l.append(' url=%r' % self.url)
- l.append(' children=%s' % repr(self.children).replace('\n', '\n '))
+ l.append(' children=%s' %
+ repr(self.children).replace('\n', '\n '))
l.append('>')
return '\n'.join(l)
@@ -130,12 +135,12 @@ class SitemapEntry(object):
if url is not None:
url = basejoin(app.url, url)
return SitemapEntry(lbl, url, [
- ch.bind_app(app) for ch in self.children],
- className=self.className,
- ui_icon=self.ui_icon,
- small=self.small,
- tool_name=self.tool_name,
- matching_urls=self.matching_urls)
+ ch.bind_app(app) for ch in self.children],
+ className=self.className,
+ ui_icon=self.ui_icon,
+ small=self.small,
+ tool_name=self.tool_name,
+ matching_urls=self.matching_urls)
def extend(self, sitemap_entries):
"""Extend our children with ``sitemap_entries``.
@@ -167,6 +172,7 @@ class SitemapEntry(object):
class Application(object):
+
"""
The base Allura pluggable application
@@ -239,9 +245,9 @@ class Application(object):
ordinal = 0
hidden = False
icons = {
- 24:'images/admin_24.png',
- 32:'images/admin_32.png',
- 48:'images/admin_48.png'
+ 24: 'images/admin_24.png',
+ 32: 'images/admin_32.png',
+ 48: 'images/admin_48.png'
}
def __init__(self, project, app_config_object):
@@ -331,7 +337,8 @@ class Application(object):
:rtype: bool
"""
- tools_list = [tool.tool_name.lower() for tool in self.project.app_configs]
+ tools_list = [tool.tool_name.lower()
+ for tool in self.project.app_configs]
return tools_list.count(self.config.tool_name.lower()) < self.max_instances
@classmethod
@@ -349,7 +356,7 @@ class Application(object):
"""
re = (h.re_relaxed_tool_mount_point if cls.relaxed_mount_points
- else h.re_tool_mount_point)
+ else h.re_tool_mount_point)
return re.match(mount_point)
@classmethod
@@ -373,7 +380,7 @@ class Application(object):
if resource:
resource_path = os.path.join('nf', resource)
url = (g.forge_static(resource) if cls.has_resource(resource_path)
- else g.theme_href(resource))
+ else g.theme_href(resource))
return url
@classmethod
@@ -430,10 +437,10 @@ class Application(object):
"""
if user and user != model.User.anonymous():
model.Mailbox.subscribe(
- type='direct',
- user_id=user._id,
- project_id=self.project._id,
- app_config_id=self.config._id)
+ type='direct',
+ user_id=user._id,
+ project_id=self.project._id,
+ app_config_id=self.config._id)
@classmethod
def default_options(cls):
@@ -460,13 +467,14 @@ class Application(object):
def uninstall(self, project=None, project_id=None):
'Whatever logic is required to tear down a tool'
- if project_id is None: project_id = project._id
+ if project_id is None:
+ project_id = project._id
# De-index all the artifacts belonging to this tool in one fell swoop
g.solr.delete(q='project_id_s:"%s" AND mount_point_s:"%s"' % (
- project_id, self.config.options['mount_point']))
+ project_id, self.config.options['mount_point']))
for d in model.Discussion.query.find({
- 'project_id':project_id,
- 'app_config_id':self.config._id}):
+ 'project_id': project_id,
+ 'app_config_id': self.config._id}):
d.delete()
self.config.delete()
session(self.config).flush()
@@ -526,13 +534,17 @@ class Application(object):
:return: a list of :class:`SitemapEntries <allura.app.SitemapEntry>`
"""
- admin_url = c.project.url()+'admin/'+self.config.options.mount_point+'/'
+ admin_url = c.project.url() + 'admin/' + \
+ self.config.options.mount_point + '/'
links = []
if self.permissions and has_access(c.project, 'admin')():
- links.append(SitemapEntry('Permissions', admin_url + 'permissions'))
+ links.append(
+ SitemapEntry('Permissions', admin_url + 'permissions'))
if force_options or len(self.config_options) > 3:
- links.append(SitemapEntry('Options', admin_url + 'options', className='admin_modal'))
- links.append(SitemapEntry('Label', admin_url + 'edit_label', className='admin_modal'))
+ links.append(
+ SitemapEntry('Options', admin_url + 'options', className='admin_modal'))
+ links.append(
+ SitemapEntry('Label', admin_url + 'edit_label', className='admin_modal'))
return links
def handle_message(self, topic, message):
@@ -571,7 +583,8 @@ class Application(object):
fp = StringIO(message['payload'])
self.AttachmentClass.save_attachment(
message['filename'], fp,
- content_type=message.get('content_type', 'application/octet-stream'),
+ content_type=message.get(
+ 'content_type', 'application/octet-stream'),
discussion_id=thd.discussion_id,
thread_id=thd._id,
post_id=message_id,
@@ -580,16 +593,19 @@ class Application(object):
# Handle duplicates
post = self.PostClass.query.get(_id=message_id)
if post:
- log.info('Existing message_id %s found - saving this as text attachment' % message_id)
+ log.info(
+ 'Existing message_id %s found - saving this as text attachment' %
+ message_id)
fp = StringIO(message['payload'])
post.attach(
'alternate', fp,
- content_type=message.get('content_type', 'application/octet-stream'),
+ content_type=message.get(
+ 'content_type', 'application/octet-stream'),
discussion_id=thd.discussion_id,
thread_id=thd._id,
post_id=message_id)
else:
- text=message['payload'] or '--no text body--'
+ text = message['payload'] or '--no text body--'
post = thd.post(
message_id=message_id,
parent_id=parent_id,
@@ -607,6 +623,7 @@ class Application(object):
class DefaultAdminController(BaseController):
+
"""Provides basic admin functionality for an :class:`Application`.
To add more admin functionality for your Application, extend this
@@ -619,6 +636,7 @@ class DefaultAdminController(BaseController):
self.admin = MyAdminController(self)
"""
+
def __init__(self, app):
"""Instantiate this controller for an :class:`app <Application>`.
@@ -642,7 +660,8 @@ class DefaultAdminController(BaseController):
user = model.User.by_username(username)
if not user:
return dict(error='User "%s" not found' % username)
- ace = model.ACE.deny(model.ProjectRole.by_user(user, upsert=True)._id, perm, reason)
+ ace = model.ACE.deny(
+ model.ProjectRole.by_user(user, upsert=True)._id, perm, reason)
if not model.ACL.contains(ace, self.app.acl):
self.app.acl.append(ace)
return dict(user_id=str(user._id), username=user.username, reason=reason)
@@ -744,7 +763,8 @@ class DefaultAdminController(BaseController):
redirect('..')
for opt in self.app.config_options:
if opt in Application.config_options:
- continue # skip base options (mount_point, mount_label, ordinal)
+ # skip base options (mount_point, mount_label, ordinal)
+ continue
val = kw.get(opt.name, '')
if opt.ming_type == bool:
val = asbool(val or False)
@@ -778,15 +798,16 @@ class DefaultAdminController(BaseController):
del_group_ids = []
group_ids = args.get('value', [])
if isinstance(new_group_ids, basestring):
- new_group_ids = [ new_group_ids ]
+ new_group_ids = [new_group_ids]
if isinstance(group_ids, basestring):
- group_ids = [ group_ids ]
+ group_ids = [group_ids]
for acl in old_acl:
if (acl['permission'] == perm) and (str(acl['role_id']) not in group_ids) and acl['access'] != model.ACE.DENY:
del_group_ids.append(str(acl['role_id']))
- get_role = lambda _id: model.ProjectRole.query.get(_id=ObjectId(_id))
+ get_role = lambda _id: model.ProjectRole.query.get(
+ _id=ObjectId(_id))
groups = map(get_role, group_ids)
new_groups = map(get_role, new_group_ids)
del_groups = map(get_role, del_group_ids)
@@ -794,8 +815,10 @@ class DefaultAdminController(BaseController):
if new_groups or del_groups:
model.AuditLog.log('updated "%s" permission: "%s" => "%s" for %s' % (
perm,
- ', '.join(map(lambda role: role.name, groups+del_groups)),
- ', '.join(map(lambda role: role.name, groups+new_groups)),
+ ', '.join(
+ map(lambda role: role.name, groups + del_groups)),
+ ', '.join(
+ map(lambda role: role.name, groups + new_groups)),
self.app.config.options['mount_point']))
role_ids = map(ObjectId, group_ids + new_group_ids)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/command/base.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/base.py b/Allura/allura/command/base.py
index e7849f3..427362c 100644
--- a/Allura/allura/command/base.py
+++ b/Allura/allura/command/base.py
@@ -35,6 +35,7 @@ from allura.lib.helpers import iter_entry_points
log = None
+
@task
def run_command(command, args):
"""Run paster command asynchronously"""
@@ -49,7 +50,10 @@ def run_command(command, args):
raise Exception("Error parsing args: '%s'" % args)
return command.run(arg_list)
-class EmptyClass(object): pass
+
+class EmptyClass(object):
+ pass
+
class Command(command.Command):
min_args = 1
@@ -58,6 +62,7 @@ class Command(command.Command):
group_name = 'Allura'
class __metaclass__(type):
+
@property
def __doc__(cls):
return cls.parser.format_help()
@@ -84,17 +89,20 @@ class Command(command.Command):
def basic_setup(self):
global log, M
if self.args[0]:
- # Probably being called from the command line - load the config file
- self.config = conf = appconfig('config:%s' % self.args[0],relative_to=os.getcwd())
+ # Probably being called from the command line - load the config
+ # file
+ self.config = conf = appconfig('config:%s' %
+ self.args[0], relative_to=os.getcwd())
# ... logging does not understand section#subsection syntax
logging_config = self.args[0].split('#')[0]
- logging.config.fileConfig(logging_config, disable_existing_loggers=False)
+ logging.config.fileConfig(
+ logging_config, disable_existing_loggers=False)
log = logging.getLogger('allura.command')
log.info('Initialize command with config %r', self.args[0])
load_environment(conf.global_conf, conf.local_conf)
self.setup_globals()
from allura import model
- M=model
+ M = model
ming.configure(**conf)
if asbool(conf.get('activitystream.recording.enabled', False)):
activitystream.configure(**conf)
@@ -114,7 +122,8 @@ class Command(command.Command):
self.registry.prepare()
self.registry.register(pylons.tmpl_context, EmptyClass())
self.registry.register(pylons.app_globals, self.globals)
- self.registry.register(allura.credentials, allura.lib.security.Credentials())
+ self.registry.register(
+ allura.credentials, allura.lib.security.Credentials())
pylons.tmpl_context.queued_messages = None
def teardown_globals(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/command/create_neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/create_neighborhood.py b/Allura/allura/command/create_neighborhood.py
index 14e9e14..db79bb0 100644
--- a/Allura/allura/command/create_neighborhood.py
+++ b/Allura/allura/command/create_neighborhood.py
@@ -23,31 +23,32 @@ from bson import ObjectId
from allura import model as M
from allura.lib import plugin, exceptions
+
class CreateNeighborhoodCommand(base.Command):
- min_args=3
- max_args=None
+ min_args = 3
+ max_args = None
usage = '<ini file> <neighborhood_shortname> <admin1> [<admin2>...]'
summary = 'Create a new neighborhood with the listed admins'
parser = base.Command.standard_parser(verbose=True)
def command(self):
self.basic_setup()
- admins = [ M.User.by_username(un) for un in self.args[2:] ]
+ admins = [M.User.by_username(un) for un in self.args[2:]]
shortname = self.args[1]
n = M.Neighborhood(
name=shortname,
url_prefix='/' + shortname + '/',
- features=dict(private_projects = False,
- max_projects = 500,
- css = 'none',
- google_analytics = False))
+ features=dict(private_projects=False,
+ max_projects=500,
+ css='none',
+ google_analytics=False))
project_reg = plugin.ProjectRegistrationProvider.get()
project_reg.register_neighborhood_project(n, admins)
class UpdateNeighborhoodCommand(base.Command):
- min_args=3
- max_args=None
+ min_args = 3
+ max_args = None
usage = '<ini file> <neighborhood> <home_tool_active>'
summary = 'Activate Home application for neighborhood\r\n' \
'\t<neighborhood> - the neighborhood name or _id\r\n' \
@@ -64,8 +65,8 @@ class UpdateNeighborhoodCommand(base.Command):
if not nb:
nb = M.Neighborhood.query.get(_id=ObjectId(shortname))
if nb is None:
- raise exceptions.NoSuchNeighborhoodError("The neighborhood %s " \
- "could not be found in the database" % shortname)
+ raise exceptions.NoSuchNeighborhoodError("The neighborhood %s "
+ "could not be found in the database" % shortname)
tool_value = self.args[2].lower()
if tool_value[:1] == "t":
home_tool_active = True