Merge ~cjwatson/launchpad:it-is-the-future into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 7087f941e1ea2d9a67903a515bb5183cff894243
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:it-is-the-future
Merge into: launchpad:master
Diff against target: 10335 lines (+2/-1612)
789 files modified
database/replication/helpers.py (+0/-2)
database/replication/preamble.py (+0/-2)
database/replication/walblock.py (+0/-2)
database/schema/emptytables.py (+0/-2)
database/schema/fti.py (+0/-2)
database/schema/online_fti_updater.py (+0/-2)
lib/contrib/glock.py (+0/-2)
lib/launchpad_loggerhead/revision.py (+0/-2)
lib/launchpad_loggerhead/testing.py (+0/-2)
lib/launchpad_loggerhead/wsgi.py (+0/-2)
lib/lp/answers/browser/tests/test_breadcrumbs.py (+0/-2)
lib/lp/answers/browser/tests/test_menus.py (+0/-2)
lib/lp/answers/browser/tests/test_question.py (+0/-2)
lib/lp/answers/browser/tests/test_questionmessages.py (+0/-2)
lib/lp/answers/browser/tests/test_questionsubscription_views.py (+0/-2)
lib/lp/answers/browser/tests/test_questiontarget.py (+0/-2)
lib/lp/answers/browser/tests/test_views.py (+0/-2)
lib/lp/answers/model/questionsubscription.py (+0/-2)
lib/lp/answers/model/tests/test_question.py (+0/-2)
lib/lp/answers/model/tests/test_questionsubscription.py (+0/-2)
lib/lp/answers/testing.py (+0/-2)
lib/lp/answers/tests/test_doc.py (+0/-2)
lib/lp/answers/tests/test_faq.py (+0/-2)
lib/lp/answers/tests/test_faq_webservice.py (+0/-2)
lib/lp/answers/tests/test_faqtarget.py (+0/-2)
lib/lp/answers/tests/test_publisher.py (+0/-2)
lib/lp/answers/tests/test_question.py (+0/-2)
lib/lp/answers/tests/test_question_notifications.py (+0/-2)
lib/lp/answers/tests/test_question_webservice.py (+0/-2)
lib/lp/answers/tests/test_question_workflow.py (+0/-2)
lib/lp/answers/tests/test_questionjob.py (+0/-2)
lib/lp/answers/tests/test_questiontarget.py (+0/-2)
lib/lp/answers/tests/test_vocabulary.py (+0/-2)
lib/lp/app/browser/stringformatter.py (+0/-2)
lib/lp/app/browser/tales.py (+0/-2)
lib/lp/app/browser/tests/test_views.py (+0/-2)
lib/lp/app/validators/__init__.py (+0/-2)
lib/lp/app/validators/attachment.py (+0/-2)
lib/lp/app/validators/cve.py (+0/-2)
lib/lp/app/validators/email.py (+0/-2)
lib/lp/app/validators/name.py (+0/-2)
lib/lp/app/validators/path.py (+0/-2)
lib/lp/app/validators/tests/test_path.py (+0/-2)
lib/lp/app/validators/tests/test_validation.py (+0/-2)
lib/lp/app/validators/url.py (+0/-2)
lib/lp/app/validators/username.py (+0/-2)
lib/lp/app/validators/validation.py (+0/-2)
lib/lp/app/validators/version.py (+0/-2)
lib/lp/app/widgets/tests/test_launchpadtarget.py (+0/-2)
lib/lp/archivepublisher/meta_data.py (+0/-2)
lib/lp/archivepublisher/run_parts.py (+0/-2)
lib/lp/archivepublisher/scripts/copy_signingkeys.py (+0/-2)
lib/lp/archivepublisher/scripts/sync_signingkeys.py (+0/-2)
lib/lp/archivepublisher/signing.py (+0/-2)
lib/lp/archivepublisher/static_translations.py (+0/-2)
lib/lp/archivepublisher/tests/__init__.py (+0/-2)
lib/lp/archivepublisher/tests/test_archivegpgsigningkey.py (+0/-2)
lib/lp/archivepublisher/tests/test_config.py (+0/-2)
lib/lp/archivepublisher/tests/test_copy_signingkeys.py (+0/-2)
lib/lp/archivepublisher/tests/test_customupload.py (+0/-2)
lib/lp/archivepublisher/tests/test_ddtp_tarball.py (+0/-2)
lib/lp/archivepublisher/tests/test_deathrow.py (+0/-2)
lib/lp/archivepublisher/tests/test_debian_installer.py (+0/-2)
lib/lp/archivepublisher/tests/test_debversion.py (+0/-2)
lib/lp/archivepublisher/tests/test_dist_upgrader.py (+0/-2)
lib/lp/archivepublisher/tests/test_dominator.py (+0/-2)
lib/lp/archivepublisher/tests/test_ftparchive.py (+0/-2)
lib/lp/archivepublisher/tests/test_generate_contents_files.py (+0/-2)
lib/lp/archivepublisher/tests/test_indices.py (+0/-2)
lib/lp/archivepublisher/tests/test_meta_data.py (+0/-2)
lib/lp/archivepublisher/tests/test_pool.py (+0/-2)
lib/lp/archivepublisher/tests/test_processaccepted.py (+0/-2)
lib/lp/archivepublisher/tests/test_processdeathrow.py (+0/-2)
lib/lp/archivepublisher/tests/test_publish_ftpmaster.py (+0/-2)
lib/lp/archivepublisher/tests/test_publishdistro.py (+0/-2)
lib/lp/archivepublisher/tests/test_publisher.py (+0/-2)
lib/lp/archivepublisher/tests/test_publisher_documentation.py (+0/-2)
lib/lp/archivepublisher/tests/test_publisherconfig.py (+0/-2)
lib/lp/archivepublisher/tests/test_repositoryindexfile.py (+0/-2)
lib/lp/archivepublisher/tests/test_rosetta_translations.py (+0/-2)
lib/lp/archivepublisher/tests/test_run_parts.py (+0/-2)
lib/lp/archivepublisher/tests/test_signing.py (+0/-2)
lib/lp/archivepublisher/tests/test_sync_signingkeys.py (+0/-2)
lib/lp/archiveuploader/charmrecipeupload.py (+0/-2)
lib/lp/archiveuploader/ocirecipeupload.py (+0/-2)
lib/lp/archiveuploader/tests/__init__.py (+0/-5)
lib/lp/archiveuploader/tests/test_buildduploads.py (+0/-2)
lib/lp/archiveuploader/tests/test_buildinfofile.py (+0/-2)
lib/lp/archiveuploader/tests/test_changesfile.py (+0/-2)
lib/lp/archiveuploader/tests/test_charmrecipeupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_dscfile.py (+0/-2)
lib/lp/archiveuploader/tests/test_livefsupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_nascentupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_nascentupload_documentation.py (+0/-2)
lib/lp/archiveuploader/tests/test_nascentuploadfile.py (+0/-2)
lib/lp/archiveuploader/tests/test_ocirecipeupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_ppauploadprocessor.py (+0/-2)
lib/lp/archiveuploader/tests/test_private_maintainers.py (+0/-2)
lib/lp/archiveuploader/tests/test_processupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_recipeuploads.py (+0/-2)
lib/lp/archiveuploader/tests/test_snapupload.py (+0/-2)
lib/lp/archiveuploader/tests/test_sync_notification.py (+0/-2)
lib/lp/archiveuploader/tests/test_tagfiles.py (+0/-2)
lib/lp/archiveuploader/tests/test_uploadpolicy.py (+0/-2)
lib/lp/archiveuploader/tests/test_uploadprocessor.py (+0/-2)
lib/lp/archiveuploader/tests/test_utils.py (+0/-2)
lib/lp/blueprints/browser/tests/test_breadcrumbs.py (+0/-2)
lib/lp/blueprints/browser/tests/test_hasspecifications.py (+0/-2)
lib/lp/blueprints/browser/tests/test_menus.py (+0/-2)
lib/lp/blueprints/browser/tests/test_person_upcomingwork.py (+0/-2)
lib/lp/blueprints/browser/tests/test_specification.py (+0/-2)
lib/lp/blueprints/browser/tests/test_specificationdependency.py (+0/-2)
lib/lp/blueprints/browser/tests/test_specificationsubscription.py (+0/-2)
lib/lp/blueprints/browser/tests/test_specificationtarget.py (+0/-2)
lib/lp/blueprints/browser/tests/test_sprint.py (+0/-2)
lib/lp/blueprints/browser/tests/test_views.py (+0/-2)
lib/lp/blueprints/model/specificationbranch.py (+0/-2)
lib/lp/blueprints/model/tests/test_specification.py (+0/-2)
lib/lp/blueprints/model/tests/test_sprint.py (+0/-2)
lib/lp/blueprints/model/tests/test_subscription.py (+0/-2)
lib/lp/blueprints/tests/test_doc.py (+0/-2)
lib/lp/blueprints/tests/test_hasspecifications.py (+0/-2)
lib/lp/blueprints/tests/test_implements.py (+0/-2)
lib/lp/blueprints/tests/test_publisher.py (+0/-2)
lib/lp/blueprints/tests/test_specification.py (+0/-2)
lib/lp/blueprints/tests/test_specification_access_policy_triggers.py (+0/-2)
lib/lp/blueprints/tests/test_webservice.py (+0/-2)
lib/lp/blueprints/vocabularies/tests/test_specificationdependency.py (+0/-2)
lib/lp/bugs/browser/tests/test_bugtarget_filebug.py (+0/-2)
lib/lp/bugs/browser/tests/test_bugtask.py (+0/-2)
lib/lp/bugs/browser/tests/test_bugwatch_views.py (+0/-2)
lib/lp/bugs/browser/tests/test_cve.py (+0/-2)
lib/lp/bugs/externalbugtracker/tests/test_github.py (+0/-2)
lib/lp/bugs/externalbugtracker/tests/test_gitlab.py (+0/-2)
lib/lp/bugs/mail/bugnotificationrecipients.py (+0/-2)
lib/lp/bugs/mail/tests/test_commands.py (+0/-2)
lib/lp/bugs/model/bugbranch.py (+0/-2)
lib/lp/bugs/model/cve.py (+0/-2)
lib/lp/bugs/model/tests/test_bugtasksearch.py (+0/-2)
lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py (+0/-2)
lib/lp/bugs/scripts/checkwatches/tests/test_bugwatchupdater.py (+0/-2)
lib/lp/bugs/scripts/cveimport.py (+0/-2)
lib/lp/bugs/scripts/debbugs.py (+0/-2)
lib/lp/bugs/scripts/tests/test_bugnotification.py (+0/-2)
lib/lp/bugs/scripts/tests/test_cveimport.py (+0/-2)
lib/lp/bugs/tests/bug.py (+0/-2)
lib/lp/bugs/tests/externalbugtracker.py (+0/-2)
lib/lp/bugs/tests/test_bug.py (+0/-2)
lib/lp/bugs/tests/test_bugchanges.py (+0/-2)
lib/lp/bugs/tests/test_buglinktarget.py (+0/-2)
lib/lp/bugs/tests/test_bugsubscription.py (+0/-2)
lib/lp/bugs/tests/test_bugtracker.py (+0/-2)
lib/lp/bugs/tests/test_bugtracker_vocabulary.py (+0/-2)
lib/lp/bugs/tests/test_cve.py (+0/-2)
lib/lp/bugs/utilities/tests/test_filebugdataparser.py (+0/-2)
lib/lp/buildmaster/browser/tests/test_builder.py (+0/-2)
lib/lp/buildmaster/browser/tests/test_builder_views.py (+0/-2)
lib/lp/buildmaster/browser/tests/test_processor.py (+0/-2)
lib/lp/buildmaster/builderproxy.py (+0/-2)
lib/lp/buildmaster/downloader.py (+0/-2)
lib/lp/buildmaster/tests/builderproxy.py (+0/-2)
lib/lp/buildmaster/tests/harness.py (+0/-2)
lib/lp/buildmaster/tests/mock_slaves.py (+0/-2)
lib/lp/buildmaster/tests/test_builder.py (+0/-2)
lib/lp/buildmaster/tests/test_buildfarmjob.py (+0/-2)
lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py (+0/-2)
lib/lp/buildmaster/tests/test_buildqueue.py (+0/-2)
lib/lp/buildmaster/tests/test_doc.py (+0/-2)
lib/lp/buildmaster/tests/test_interactor.py (+0/-2)
lib/lp/buildmaster/tests/test_manager.py (+0/-2)
lib/lp/buildmaster/tests/test_packagebuild.py (+0/-2)
lib/lp/buildmaster/tests/test_processor.py (+0/-2)
lib/lp/buildmaster/tests/test_queuedepth.py (+0/-2)
lib/lp/buildmaster/tests/test_webservice.py (+0/-2)
lib/lp/charms/adapters/buildarch.py (+0/-2)
lib/lp/charms/adapters/tests/test_buildarch.py (+0/-2)
lib/lp/charms/browser/charmrecipe.py (+0/-2)
lib/lp/charms/browser/charmrecipebuild.py (+0/-2)
lib/lp/charms/browser/charmrecipelisting.py (+0/-2)
lib/lp/charms/browser/hascharmrecipes.py (+0/-2)
lib/lp/charms/browser/tests/test_charmrecipe.py (+0/-2)
lib/lp/charms/browser/tests/test_charmrecipebuild.py (+0/-2)
lib/lp/charms/browser/tests/test_charmrecipelisting.py (+0/-2)
lib/lp/charms/browser/tests/test_hascharmrecipes.py (+0/-2)
lib/lp/charms/browser/widgets/charmrecipebuildchannels.py (+0/-2)
lib/lp/charms/browser/widgets/tests/test_charmrecipebuildchannelswidget.py (+0/-2)
lib/lp/charms/interfaces/charmrecipe.py (+0/-2)
lib/lp/charms/interfaces/charmrecipebuild.py (+0/-2)
lib/lp/charms/interfaces/charmrecipejob.py (+0/-2)
lib/lp/charms/mail/charmrecipebuild.py (+0/-2)
lib/lp/charms/model/charmrecipe.py (+0/-2)
lib/lp/charms/model/charmrecipebuild.py (+0/-2)
lib/lp/charms/model/charmrecipebuildbehaviour.py (+0/-2)
lib/lp/charms/model/charmrecipejob.py (+0/-2)
lib/lp/charms/tests/test_charmrecipe.py (+0/-2)
lib/lp/charms/tests/test_charmrecipebuild.py (+0/-2)
lib/lp/charms/tests/test_charmrecipebuildbehaviour.py (+0/-2)
lib/lp/charms/tests/test_charmrecipejob.py (+0/-2)
lib/lp/code/browser/tests/test_bazaar.py (+0/-2)
lib/lp/code/browser/tests/test_branch.py (+0/-2)
lib/lp/code/browser/tests/test_branchlisting.py (+0/-2)
lib/lp/code/browser/tests/test_branchmergeproposal.py (+0/-2)
lib/lp/code/browser/tests/test_branchmergeproposallisting.py (+0/-2)
lib/lp/code/browser/tests/test_branchsubscription.py (+0/-2)
lib/lp/code/browser/tests/test_branchtraversal.py (+0/-2)
lib/lp/code/browser/tests/test_breadcrumbs.py (+0/-2)
lib/lp/code/browser/tests/test_codeimport.py (+0/-2)
lib/lp/code/browser/tests/test_codereviewcomment.py (+0/-2)
lib/lp/code/browser/tests/test_codereviewvote.py (+0/-2)
lib/lp/code/browser/tests/test_diff.py (+0/-2)
lib/lp/code/browser/tests/test_gitlisting.py (+0/-2)
lib/lp/code/browser/tests/test_gitref.py (+0/-2)
lib/lp/code/browser/tests/test_gitrepository.py (+0/-2)
lib/lp/code/browser/tests/test_gitsubscription.py (+0/-2)
lib/lp/code/browser/tests/test_product.py (+0/-2)
lib/lp/code/browser/tests/test_revisionauthor.py (+0/-2)
lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+0/-2)
lib/lp/code/browser/tests/test_sourcepackagerecipebuild.py (+0/-2)
lib/lp/code/browser/tests/test_sourcepackagerecipelisting.py (+0/-2)
lib/lp/code/browser/tests/test_tales.py (+0/-2)
lib/lp/code/browser/tests/test_vcslisting.py (+0/-2)
lib/lp/code/browser/widgets/gitgrantee.py (+0/-2)
lib/lp/code/browser/widgets/tests/test_gitgrantee.py (+0/-2)
lib/lp/code/browser/widgets/tests/test_gitrepositorytargetwidget.py (+0/-2)
lib/lp/code/interfaces/gitactivity.py (+0/-2)
lib/lp/code/interfaces/gitrule.py (+0/-2)
lib/lp/code/mail/patches.py (+0/-2)
lib/lp/code/mail/tests/test_codehandler.py (+0/-2)
lib/lp/code/mail/tests/test_codeimport.py (+0/-2)
lib/lp/code/mail/tests/test_codereviewcomment.py (+0/-2)
lib/lp/code/model/branchhosting.py (+0/-2)
lib/lp/code/model/branchsubscription.py (+0/-2)
lib/lp/code/model/codeimport.py (+0/-2)
lib/lp/code/model/codeimportevent.py (+0/-2)
lib/lp/code/model/codeimportjob.py (+0/-2)
lib/lp/code/model/codeimportmachine.py (+0/-2)
lib/lp/code/model/codeimportresult.py (+0/-2)
lib/lp/code/model/gitactivity.py (+0/-2)
lib/lp/code/model/gitrule.py (+0/-2)
lib/lp/code/model/sourcepackagerecipe.py (+0/-2)
lib/lp/code/model/tests/test_branch.py (+0/-2)
lib/lp/code/model/tests/test_branchcloud.py (+0/-2)
lib/lp/code/model/tests/test_branchcollection.py (+0/-2)
lib/lp/code/model/tests/test_branchhosting.py (+0/-2)
lib/lp/code/model/tests/test_branchjob.py (+0/-2)
lib/lp/code/model/tests/test_branchlistingqueryoptimiser.py (+0/-2)
lib/lp/code/model/tests/test_branchlookup.py (+0/-2)
lib/lp/code/model/tests/test_branchmergeproposal.py (+0/-2)
lib/lp/code/model/tests/test_branchmergeproposaljobs.py (+0/-2)
lib/lp/code/model/tests/test_branchnamespace.py (+0/-2)
lib/lp/code/model/tests/test_branchpuller.py (+0/-2)
lib/lp/code/model/tests/test_branchset.py (+0/-2)
lib/lp/code/model/tests/test_branchsubscription.py (+0/-2)
lib/lp/code/model/tests/test_branchtarget.py (+0/-2)
lib/lp/code/model/tests/test_branchvisibility.py (+0/-2)
lib/lp/code/model/tests/test_codeimport.py (+0/-2)
lib/lp/code/model/tests/test_codeimportjob.py (+0/-2)
lib/lp/code/model/tests/test_codeimportmachine.py (+0/-2)
lib/lp/code/model/tests/test_codeimportresult.py (+0/-2)
lib/lp/code/model/tests/test_codereviewcomment.py (+0/-2)
lib/lp/code/model/tests/test_codereviewinlinecomment.py (+0/-2)
lib/lp/code/model/tests/test_codereviewkarma.py (+0/-2)
lib/lp/code/model/tests/test_codereviewvote.py (+0/-2)
lib/lp/code/model/tests/test_diff.py (+0/-2)
lib/lp/code/model/tests/test_gitactivity.py (+0/-2)
lib/lp/code/model/tests/test_gitcollection.py (+0/-2)
lib/lp/code/model/tests/test_githosting.py (+0/-2)
lib/lp/code/model/tests/test_gitjob.py (+0/-2)
lib/lp/code/model/tests/test_gitlookup.py (+0/-2)
lib/lp/code/model/tests/test_gitnamespace.py (+0/-2)
lib/lp/code/model/tests/test_gitref.py (+0/-2)
lib/lp/code/model/tests/test_gitrepository.py (+0/-2)
lib/lp/code/model/tests/test_gitrule.py (+0/-2)
lib/lp/code/model/tests/test_gitsubscription.py (+0/-2)
lib/lp/code/model/tests/test_hasbranches.py (+0/-2)
lib/lp/code/model/tests/test_hasgitrepositories.py (+0/-2)
lib/lp/code/model/tests/test_hasmergeproposals.py (+0/-2)
lib/lp/code/model/tests/test_hasrecipes.py (+0/-2)
lib/lp/code/model/tests/test_linkedbranch.py (+0/-2)
lib/lp/code/model/tests/test_recipebuilder.py (+0/-2)
lib/lp/code/model/tests/test_revision.py (+0/-2)
lib/lp/code/model/tests/test_revisionauthor.py (+0/-2)
lib/lp/code/model/tests/test_revisioncache.py (+0/-2)
lib/lp/code/model/tests/test_seriessourcepackagebranch.py (+0/-2)
lib/lp/code/model/tests/test_sourcepackagerecipe.py (+0/-2)
lib/lp/code/model/tests/test_sourcepackagerecipebuild.py (+0/-2)
lib/lp/code/tests/branch_helper.py (+0/-2)
lib/lp/code/tests/codeimporthelpers.py (+0/-2)
lib/lp/code/tests/helpers.py (+0/-7)
lib/lp/code/tests/test_branch.py (+0/-2)
lib/lp/code/tests/test_branch_access_policy_triggers.py (+0/-2)
lib/lp/code/tests/test_branch_webservice.py (+0/-2)
lib/lp/code/tests/test_branchmergeproposal.py (+0/-2)
lib/lp/code/tests/test_branchurifield.py (+0/-2)
lib/lp/code/tests/test_bzr.py (+0/-2)
lib/lp/code/tests/test_directbranchcommit.py (+0/-2)
lib/lp/code/tests/test_doc.py (+0/-2)
lib/lp/code/tests/test_helpers.py (+0/-2)
lib/lp/code/tests/test_project.py (+0/-2)
lib/lp/code/tests/test_publisher.py (+0/-2)
lib/lp/code/tests/test_seriessourcepackagebranch.py (+0/-2)
lib/lp/code/tests/test_yuitests.py (+0/-2)
lib/lp/code/vocabularies/gitref.py (+0/-3)
lib/lp/code/vocabularies/gitrule.py (+0/-2)
lib/lp/code/vocabularies/tests/test_gitref_vocabularies.py (+0/-2)
lib/lp/code/vocabularies/tests/test_gitrule_vocabularies.py (+0/-2)
lib/lp/code/xmlrpc/tests/test_git.py (+0/-2)
lib/lp/codehosting/__init__.py (+0/-2)
lib/lp/codehosting/bzrutils.py (+0/-2)
lib/lp/codehosting/inmemory.py (+0/-2)
lib/lp/codehosting/puller/__init__.py (+0/-2)
lib/lp/codehosting/puller/scheduler.py (+0/-2)
lib/lp/codehosting/puller/tests/__init__.py (+0/-2)
lib/lp/codehosting/puller/tests/test_acceptance.py (+0/-2)
lib/lp/codehosting/puller/tests/test_errors.py (+0/-2)
lib/lp/codehosting/puller/tests/test_scheduler.py (+0/-2)
lib/lp/codehosting/puller/tests/test_worker.py (+0/-2)
lib/lp/codehosting/puller/tests/test_worker_formats.py (+0/-2)
lib/lp/codehosting/puller/worker.py (+0/-2)
lib/lp/codehosting/rewrite.py (+0/-2)
lib/lp/codehosting/scanner/buglinks.py (+0/-2)
lib/lp/codehosting/scanner/bzrsync.py (+0/-2)
lib/lp/codehosting/scanner/email.py (+0/-2)
lib/lp/codehosting/scanner/events.py (+0/-2)
lib/lp/codehosting/scanner/mergedetection.py (+0/-2)
lib/lp/codehosting/scanner/tests/test_buglinks.py (+0/-2)
lib/lp/codehosting/scanner/tests/test_bzrsync.py (+0/-2)
lib/lp/codehosting/scanner/tests/test_email.py (+0/-2)
lib/lp/codehosting/scanner/tests/test_mergedetection.py (+0/-2)
lib/lp/codehosting/scripts/modifiedbranches.py (+0/-2)
lib/lp/codehosting/scripts/sync_branches.py (+0/-2)
lib/lp/codehosting/scripts/tests/test_modifiedbranches.py (+0/-2)
lib/lp/codehosting/scripts/tests/test_sync_branches.py (+0/-2)
lib/lp/codehosting/scripts/tests/test_upgrade_all_branches.py (+0/-2)
lib/lp/codehosting/sftp.py (+0/-2)
lib/lp/codehosting/sshserver/daemon.py (+0/-2)
lib/lp/codehosting/sshserver/session.py (+0/-2)
lib/lp/codehosting/sshserver/tests/test_daemon.py (+0/-2)
lib/lp/codehosting/sshserver/tests/test_session.py (+0/-2)
lib/lp/codehosting/tests/helpers.py (+0/-2)
lib/lp/codehosting/tests/servers.py (+0/-2)
lib/lp/codehosting/tests/test_acceptance.py (+0/-2)
lib/lp/codehosting/tests/test_breezy.py (+0/-2)
lib/lp/codehosting/tests/test_bzrutils.py (+0/-2)
lib/lp/codehosting/tests/test_format_comparison.py (+0/-2)
lib/lp/codehosting/tests/test_lpserve.py (+0/-2)
lib/lp/codehosting/tests/test_rewrite.py (+0/-2)
lib/lp/codehosting/tests/test_sftp.py (+0/-2)
lib/lp/codehosting/tests/test_upgrade.py (+0/-2)
lib/lp/codehosting/upgrade.py (+0/-2)
lib/lp/codehosting/vfs/__init__.py (+0/-2)
lib/lp/codehosting/vfs/branchfs.py (+0/-2)
lib/lp/codehosting/vfs/branchfsclient.py (+0/-2)
lib/lp/codehosting/vfs/hooks.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_branchfs.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_branchfsclient.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_filesystem.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_hooks.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_transport.py (+0/-2)
lib/lp/codehosting/vfs/tests/test_transport_extensions.py (+0/-2)
lib/lp/codehosting/vfs/transport.py (+0/-2)
lib/lp/oci/browser/hasocirecipes.py (+0/-2)
lib/lp/oci/browser/ocirecipe.py (+0/-2)
lib/lp/oci/browser/ocirecipebuild.py (+0/-2)
lib/lp/oci/browser/ocirecipesubscription.py (+0/-2)
lib/lp/oci/browser/tests/test_ocirecipe.py (+0/-2)
lib/lp/oci/browser/tests/test_ocirecipebuild.py (+0/-2)
lib/lp/oci/browser/tests/test_ocirecipesubscription.py (+0/-2)
lib/lp/oci/interfaces/ocipushrule.py (+0/-2)
lib/lp/oci/interfaces/ocirecipe.py (+0/-2)
lib/lp/oci/interfaces/ocirecipebuild.py (+0/-2)
lib/lp/oci/interfaces/ocirecipebuildjob.py (+0/-2)
lib/lp/oci/interfaces/ocirecipejob.py (+0/-2)
lib/lp/oci/interfaces/ocirecipesubscription.py (+0/-2)
lib/lp/oci/interfaces/ociregistryclient.py (+0/-2)
lib/lp/oci/interfaces/ociregistrycredentials.py (+0/-2)
lib/lp/oci/model/ocipushrule.py (+0/-2)
lib/lp/oci/model/ocirecipe.py (+0/-2)
lib/lp/oci/model/ocirecipebuild.py (+0/-2)
lib/lp/oci/model/ocirecipebuildbehaviour.py (+0/-2)
lib/lp/oci/model/ocirecipebuildjob.py (+0/-2)
lib/lp/oci/model/ocirecipejob.py (+0/-1)
lib/lp/oci/model/ocirecipesubscription.py (+0/-2)
lib/lp/oci/model/ociregistryclient.py (+0/-2)
lib/lp/oci/model/ociregistrycredentials.py (+0/-2)
lib/lp/oci/subscribers/ocirecipebuild.py (+0/-2)
lib/lp/oci/tests/helpers.py (+0/-2)
lib/lp/oci/tests/test_ocipushrule.py (+0/-2)
lib/lp/oci/tests/test_ocirecipe.py (+0/-2)
lib/lp/oci/tests/test_ocirecipebuild.py (+0/-2)
lib/lp/oci/tests/test_ocirecipebuildbehaviour.py (+0/-2)
lib/lp/oci/tests/test_ocirecipebuildjob.py (+0/-2)
lib/lp/oci/tests/test_ocirecipejob.py (+0/-2)
lib/lp/oci/tests/test_ociregistryclient.py (+0/-2)
lib/lp/oci/tests/test_ociregistrycredentials.py (+0/-2)
lib/lp/oci/vocabularies.py (+0/-2)
lib/lp/registry/browser/distribution.py (+0/-2)
lib/lp/registry/browser/ociproject.py (+0/-2)
lib/lp/registry/browser/personociproject.py (+0/-2)
lib/lp/registry/browser/tests/test_announcements.py (+0/-2)
lib/lp/registry/browser/tests/test_breadcrumbs.py (+0/-2)
lib/lp/registry/browser/tests/test_codeofconduct.py (+0/-2)
lib/lp/registry/browser/tests/test_distribution.py (+0/-2)
lib/lp/registry/browser/tests/test_ociproject.py (+0/-2)
lib/lp/registry/browser/tests/test_person.py (+0/-2)
lib/lp/registry/browser/tests/test_poll.py (+0/-2)
lib/lp/registry/browser/tests/test_team.py (+0/-2)
lib/lp/registry/browser/widgets/ocicredentialswidget.py (+0/-2)
lib/lp/registry/browser/widgets/tests/test_ocicredentialswidget.py (+0/-2)
lib/lp/registry/interfaces/ociproject.py (+0/-2)
lib/lp/registry/interfaces/ociprojectname.py (+0/-2)
lib/lp/registry/interfaces/ociprojectseries.py (+0/-2)
lib/lp/registry/interfaces/personociproject.py (+0/-2)
lib/lp/registry/model/ociproject.py (+0/-2)
lib/lp/registry/model/ociprojectname.py (+0/-2)
lib/lp/registry/model/ociprojectseries.py (+0/-2)
lib/lp/registry/model/personnotification.py (+0/-2)
lib/lp/registry/model/personociproject.py (+0/-2)
lib/lp/registry/model/poll.py (+0/-2)
lib/lp/registry/scripts/productreleasefinder/path.py (+0/-2)
lib/lp/registry/scripts/tests/test_closeaccount.py (+0/-2)
lib/lp/registry/tests/test_codeofconduct.py (+0/-2)
lib/lp/registry/tests/test_mailinglist.py (+0/-2)
lib/lp/registry/tests/test_mailinglistapi.py (+0/-2)
lib/lp/registry/tests/test_mlists.py (+0/-2)
lib/lp/registry/tests/test_ociproject.py (+0/-2)
lib/lp/registry/tests/test_ociprojectname.py (+0/-2)
lib/lp/registry/tests/test_ociprojectseries.py (+0/-2)
lib/lp/registry/tests/test_personociproject.py (+0/-2)
lib/lp/registry/tests/test_poll.py (+0/-2)
lib/lp/registry/tests/test_team_webservice.py (+0/-2)
lib/lp/scripts/garbo.py (+0/-2)
lib/lp/scripts/harness.py (+0/-2)
lib/lp/scripts/helpers.py (+0/-2)
lib/lp/scripts/runlaunchpad.py (+0/-2)
lib/lp/scripts/scriptmonitor.py (+0/-2)
lib/lp/scripts/tests/test_garbo.py (+0/-2)
lib/lp/scripts/tests/test_helpers.py (+0/-2)
lib/lp/scripts/tests/test_runlaunchpad.py (+0/-2)
lib/lp/scripts/tests/test_scriptmonitor.py (+0/-2)
lib/lp/scripts/tests/test_sphinxdocs.py (+0/-2)
lib/lp/scripts/utilities/importpedant.py (+0/-2)
lib/lp/scripts/utilities/js/jsbuild.py (+0/-2)
lib/lp/scripts/utilities/js/watchjsbuild.py (+0/-2)
lib/lp/scripts/utilities/killservice.py (+0/-2)
lib/lp/scripts/utilities/killtestservices.py (+0/-2)
lib/lp/scripts/utilities/settingsauditor.py (+0/-2)
lib/lp/scripts/utilities/spriteutil.py (+0/-2)
lib/lp/scripts/utilities/test.py (+0/-2)
lib/lp/scripts/utilities/tests/test_audit_security_settings.py (+0/-2)
lib/lp/scripts/utilities/tests/test_shhh.py (+0/-2)
lib/lp/scripts/utilities/tests/test_versioninfo.py (+0/-2)
lib/lp/scripts/utilities/versioninfo.py (+0/-2)
lib/lp/scripts/utilities/warninghandler.py (+0/-2)
lib/lp/scripts/utilities/withxvfb.py (+0/-2)
lib/lp/services/authserver/testing.py (+0/-2)
lib/lp/services/beautifulsoup.py (+0/-2)
lib/lp/services/compat.py (+0/-2)
lib/lp/services/config/__init__.py (+0/-2)
lib/lp/services/crypto/interfaces.py (+0/-2)
lib/lp/services/crypto/model.py (+0/-2)
lib/lp/services/crypto/scripts/generatekeypair.py (+0/-2)
lib/lp/services/crypto/scripts/tests/test_generatekeypair.py (+0/-2)
lib/lp/services/crypto/tests/test_model.py (+0/-2)
lib/lp/services/database/debug.py (+0/-2)
lib/lp/services/database/postgresql.py (+0/-2)
lib/lp/services/database/sort_sql.py (+0/-2)
lib/lp/services/database/sqlbase.py (+0/-2)
lib/lp/services/database/tests/script_isolation.py (+0/-2)
lib/lp/services/database/tests/test_indexes.py (+0/-2)
lib/lp/services/database/tests/test_stormbase.py (+0/-2)
lib/lp/services/feeds/tests/helper.py (+0/-2)
lib/lp/services/inlinehelp/browser.py (+0/-2)
lib/lp/services/inlinehelp/tests/test_doc.py (+0/-2)
lib/lp/services/inlinehelp/zcml.py (+0/-2)
lib/lp/services/job/celeryconfig.py (+0/-2)
lib/lp/services/librarian/tests/test_smoketest.py (+0/-2)
lib/lp/services/librarianserver/apachelogparser.py (+0/-2)
lib/lp/services/librarianserver/db.py (+0/-2)
lib/lp/services/librarianserver/librariangc.py (+0/-2)
lib/lp/services/librarianserver/libraryprotocol.py (+0/-2)
lib/lp/services/librarianserver/storage.py (+0/-2)
lib/lp/services/librarianserver/swift.py (+0/-2)
lib/lp/services/librarianserver/testing/fake.py (+0/-2)
lib/lp/services/librarianserver/testing/server.py (+0/-2)
lib/lp/services/librarianserver/testing/tests/test_fakelibrarian.py (+0/-2)
lib/lp/services/librarianserver/testing/tests/test_server_fixture.py (+0/-2)
lib/lp/services/librarianserver/tests/test_apachelogparser.py (+0/-2)
lib/lp/services/librarianserver/tests/test_db.py (+0/-2)
lib/lp/services/librarianserver/tests/test_db_outage.py (+0/-2)
lib/lp/services/librarianserver/tests/test_doc.py (+0/-2)
lib/lp/services/librarianserver/tests/test_gc.py (+0/-2)
lib/lp/services/librarianserver/tests/test_sigdumpmem.py (+0/-2)
lib/lp/services/librarianserver/tests/test_storage.py (+0/-2)
lib/lp/services/librarianserver/tests/test_storage_db.py (+0/-2)
lib/lp/services/librarianserver/tests/test_swift.py (+0/-2)
lib/lp/services/librarianserver/tests/test_web.py (+0/-2)
lib/lp/services/librarianserver/web.py (+0/-2)
lib/lp/services/log/logger.py (+0/-2)
lib/lp/services/macaroons/interfaces.py (+0/-2)
lib/lp/services/macaroons/model.py (+0/-2)
lib/lp/services/macaroons/testing.py (+0/-2)
lib/lp/services/mail/mbox.py (+0/-2)
lib/lp/services/mail/notification.py (+0/-2)
lib/lp/services/mail/tests/test_stub.py (+0/-2)
lib/lp/services/memoizer.py (+0/-2)
lib/lp/services/messages/interfaces/messagerevision.py (+0/-2)
lib/lp/services/messages/model/messagerevision.py (+0/-2)
lib/lp/services/openid/extensions/tests/test_macaroon.py (+0/-2)
lib/lp/services/openid/fetcher.py (+0/-2)
lib/lp/services/profile/mem.py (+0/-2)
lib/lp/services/rabbit/server.py (+0/-2)
lib/lp/services/rabbit/tests/test_server.py (+0/-2)
lib/lp/services/scripts/doc/scripts-and-zcml.txt (+0/-2)
lib/lp/services/scripts/tests/loglevels.py (+0/-2)
lib/lp/services/signing/proxy.py (+0/-2)
lib/lp/services/signing/testing/fakesigning.py (+0/-2)
lib/lp/services/signing/testing/fakesigning.tac (+0/-2)
lib/lp/services/signing/testing/fixture.py (+0/-2)
lib/lp/services/signing/tests/helpers.py (+0/-2)
lib/lp/services/sitesearch/bingtestservice.py (+0/-2)
lib/lp/services/sitesearch/tests/test_bing.py (+0/-2)
lib/lp/services/sitesearch/tests/test_testservices.py (+0/-2)
lib/lp/services/spriteutils.py (+0/-2)
lib/lp/services/statsd/interfaces/statsd_client.py (+0/-2)
lib/lp/services/statsd/model/statsd_client.py (+0/-2)
lib/lp/services/statsd/numbercruncher.py (+0/-2)
lib/lp/services/statsd/tests/__init__.py (+0/-2)
lib/lp/services/statsd/tests/test_numbercruncher.py (+0/-2)
lib/lp/services/statsd/tests/test_statsd_client.py (+0/-2)
lib/lp/services/testing/profiled.py (+0/-2)
lib/lp/services/tests/test_encoding.py (+1/-9)
lib/lp/services/tests/test_helpers.py (+0/-2)
lib/lp/services/tests/test_memoizer.py (+0/-2)
lib/lp/services/twistedsupport/plugincache.py (+0/-2)
lib/lp/services/twistedsupport/testing.py (+0/-2)
lib/lp/services/twistedsupport/treq.py (+0/-2)
lib/lp/services/webapp/login.py (+0/-2)
lib/lp/services/webapp/notifications.py (+0/-2)
lib/lp/services/webapp/opstats.py (+0/-2)
lib/lp/services/webapp/servers.py (+0/-2)
lib/lp/services/webapp/sorting.py (+0/-2)
lib/lp/services/webapp/status.py (+0/-2)
lib/lp/services/webapp/tests/test_notifications.py (+0/-5)
lib/lp/services/webapp/tests/test_snapshot.py (+0/-2)
lib/lp/services/webapp/tests/test_status.py (+0/-2)
lib/lp/services/webapp/wsgi.py (+0/-2)
lib/lp/services/webhooks/testing.py (+0/-2)
lib/lp/services/webservice/tests/test_wadllib.py (+1/-9)
lib/lp/services/worlddata/browser/country.py (+0/-2)
lib/lp/services/worlddata/helpers.py (+0/-2)
lib/lp/services/worlddata/interfaces/country.py (+0/-2)
lib/lp/services/worlddata/interfaces/language.py (+0/-2)
lib/lp/services/worlddata/interfaces/spokenin.py (+0/-2)
lib/lp/services/worlddata/interfaces/timezone.py (+0/-2)
lib/lp/services/worlddata/interfaces/webservice.py (+0/-2)
lib/lp/services/worlddata/model/country.py (+0/-2)
lib/lp/services/worlddata/model/language.py (+0/-2)
lib/lp/services/worlddata/model/spokenin.py (+0/-2)
lib/lp/services/worlddata/tests/test_doc.py (+0/-2)
lib/lp/services/worlddata/tests/test_helpers.py (+0/-2)
lib/lp/services/worlddata/tests/test_language.py (+0/-2)
lib/lp/services/worlddata/vocabularies.py (+0/-2)
lib/lp/services/xref/__init__.py (+0/-2)
lib/lp/services/xref/interfaces.py (+0/-2)
lib/lp/services/xref/model.py (+0/-2)
lib/lp/services/xref/tests/__init__.py (+0/-2)
lib/lp/services/xref/tests/test_model.py (+0/-2)
lib/lp/snappy/adapters/buildarch.py (+0/-2)
lib/lp/snappy/adapters/tests/test_buildarch.py (+0/-2)
lib/lp/snappy/browser/hassnaps.py (+0/-2)
lib/lp/snappy/browser/snap.py (+0/-2)
lib/lp/snappy/browser/snapbase.py (+0/-2)
lib/lp/snappy/browser/snapbuild.py (+0/-2)
lib/lp/snappy/browser/snaplisting.py (+0/-2)
lib/lp/snappy/browser/snappyseries.py (+0/-2)
lib/lp/snappy/browser/snapsubscription.py (+0/-2)
lib/lp/snappy/browser/tests/test_hassnaps.py (+0/-2)
lib/lp/snappy/browser/tests/test_snap.py (+0/-2)
lib/lp/snappy/browser/tests/test_snapbuild.py (+0/-2)
lib/lp/snappy/browser/tests/test_snaplisting.py (+0/-2)
lib/lp/snappy/browser/tests/test_snapsubscription.py (+0/-2)
lib/lp/snappy/browser/widgets/snaparchive.py (+0/-2)
lib/lp/snappy/browser/widgets/snapbuildchannels.py (+0/-2)
lib/lp/snappy/browser/widgets/storechannels.py (+0/-2)
lib/lp/snappy/browser/widgets/tests/test_snaparchivewidget.py (+0/-2)
lib/lp/snappy/browser/widgets/tests/test_snapbuildchannelswidget.py (+0/-2)
lib/lp/snappy/browser/widgets/tests/test_storechannelswidget.py (+0/-2)
lib/lp/snappy/interfaces/snap.py (+0/-2)
lib/lp/snappy/interfaces/snapbase.py (+0/-2)
lib/lp/snappy/interfaces/snapbuild.py (+0/-2)
lib/lp/snappy/interfaces/snapbuildjob.py (+0/-2)
lib/lp/snappy/interfaces/snapjob.py (+0/-2)
lib/lp/snappy/interfaces/snappyseries.py (+0/-2)
lib/lp/snappy/interfaces/snapstoreclient.py (+0/-2)
lib/lp/snappy/interfaces/snapsubscription.py (+0/-2)
lib/lp/snappy/interfaces/webservice.py (+0/-2)
lib/lp/snappy/mail/snapbuild.py (+0/-2)
lib/lp/snappy/model/snap.py (+0/-2)
lib/lp/snappy/model/snapbase.py (+0/-2)
lib/lp/snappy/model/snapbuild.py (+0/-2)
lib/lp/snappy/model/snapbuildbehaviour.py (+0/-2)
lib/lp/snappy/model/snapbuildjob.py (+0/-2)
lib/lp/snappy/model/snapjob.py (+0/-2)
lib/lp/snappy/model/snappyseries.py (+0/-2)
lib/lp/snappy/model/snapstoreclient.py (+0/-2)
lib/lp/snappy/model/snapsubscription.py (+0/-2)
lib/lp/snappy/subscribers/snapbuild.py (+0/-2)
lib/lp/snappy/tests/test_snap.py (+0/-2)
lib/lp/snappy/tests/test_snapbase.py (+0/-2)
lib/lp/snappy/tests/test_snapbuild.py (+0/-2)
lib/lp/snappy/tests/test_snapbuildbehaviour.py (+0/-2)
lib/lp/snappy/tests/test_snapbuildjob.py (+0/-2)
lib/lp/snappy/tests/test_snapjob.py (+0/-2)
lib/lp/snappy/tests/test_snappyseries.py (+0/-2)
lib/lp/snappy/tests/test_snapstoreclient.py (+0/-2)
lib/lp/snappy/tests/test_yuitests.py (+0/-2)
lib/lp/snappy/validators/channels.py (+0/-2)
lib/lp/snappy/validators/tests/test_channels.py (+0/-2)
lib/lp/snappy/vocabularies.py (+0/-3)
lib/lp/soyuz/adapters/proxiedsourcefiles.py (+0/-2)
lib/lp/soyuz/adapters/tests/test_archivedependencies.py (+0/-2)
lib/lp/soyuz/browser/tests/test_archive.py (+0/-2)
lib/lp/soyuz/browser/tests/test_archive_admin_view.py (+0/-2)
lib/lp/soyuz/browser/tests/test_archive_packages.py (+0/-2)
lib/lp/soyuz/browser/tests/test_archive_webservice.py (+0/-2)
lib/lp/soyuz/browser/tests/test_archivesubscription.py (+0/-2)
lib/lp/soyuz/browser/tests/test_breadcrumbs.py (+0/-2)
lib/lp/soyuz/browser/tests/test_build_views.py (+0/-2)
lib/lp/soyuz/browser/tests/test_distributionsourcepackagerelease.py (+0/-2)
lib/lp/soyuz/browser/tests/test_distroarchseries_view.py (+0/-2)
lib/lp/soyuz/browser/tests/test_distroarchseries_webservice.py (+0/-2)
lib/lp/soyuz/browser/tests/test_distrosourcepackagerelease.py (+0/-2)
lib/lp/soyuz/browser/tests/test_livefs.py (+0/-2)
lib/lp/soyuz/browser/tests/test_livefsbuild.py (+0/-2)
lib/lp/soyuz/browser/tests/test_package_copying_mixin.py (+0/-2)
lib/lp/soyuz/browser/tests/test_personal_archive_subscription.py (+0/-2)
lib/lp/soyuz/browser/tests/test_publishing.py (+0/-2)
lib/lp/soyuz/browser/tests/test_publishing_webservice.py (+0/-2)
lib/lp/soyuz/browser/tests/test_queue.py (+0/-2)
lib/lp/soyuz/browser/tests/test_sourcepackagerelease.py (+0/-2)
lib/lp/soyuz/browser/tests/test_sourceslistentries.py (+0/-2)
lib/lp/soyuz/browser/tests/test_views.py (+0/-2)
lib/lp/soyuz/interfaces/archiveapi.py (+0/-2)
lib/lp/soyuz/interfaces/archivefile.py (+0/-2)
lib/lp/soyuz/interfaces/binarysourcereference.py (+0/-2)
lib/lp/soyuz/interfaces/distroarchseriesfilter.py (+0/-2)
lib/lp/soyuz/model/archivefile.py (+0/-2)
lib/lp/soyuz/model/binarysourcereference.py (+0/-2)
lib/lp/soyuz/model/distroarchseriesfilter.py (+0/-2)
lib/lp/soyuz/scripts/expire_archive_files.py (+0/-2)
lib/lp/soyuz/subscribers/livefsbuild.py (+0/-2)
lib/lp/soyuz/tests/fakepackager.py (+0/-2)
lib/lp/soyuz/tests/soyuz.py (+0/-2)
lib/lp/soyuz/tests/test_archive.py (+0/-2)
lib/lp/soyuz/tests/test_archive_agent.py (+0/-2)
lib/lp/soyuz/tests/test_archive_privacy.py (+0/-2)
lib/lp/soyuz/tests/test_archive_subscriptions.py (+0/-2)
lib/lp/soyuz/tests/test_archivefile.py (+0/-2)
lib/lp/soyuz/tests/test_archivejob.py (+0/-2)
lib/lp/soyuz/tests/test_binaryandsourcepackagename.py (+0/-2)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+0/-2)
lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py (+0/-2)
lib/lp/soyuz/tests/test_binarypackagename.py (+0/-2)
lib/lp/soyuz/tests/test_binarypackagerelease.py (+0/-2)
lib/lp/soyuz/tests/test_binarysourcereference.py (+0/-2)
lib/lp/soyuz/tests/test_build.py (+0/-2)
lib/lp/soyuz/tests/test_build_depwait.py (+0/-2)
lib/lp/soyuz/tests/test_build_notify.py (+0/-2)
lib/lp/soyuz/tests/test_build_privacy.py (+0/-2)
lib/lp/soyuz/tests/test_build_set.py (+0/-2)
lib/lp/soyuz/tests/test_build_start_estimation.py (+0/-2)
lib/lp/soyuz/tests/test_distributionsourcepackagerelease.py (+0/-2)
lib/lp/soyuz/tests/test_distroarchseriesfilter.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesbinarypackage.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesdifferencejob.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesqueue_ddtp_tarball.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesqueue_debian_installer.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesqueue_dist_upgrader.py (+0/-2)
lib/lp/soyuz/tests/test_distroseriesqueue_rosetta_translations.py (+0/-2)
lib/lp/soyuz/tests/test_doc.py (+0/-2)
lib/lp/soyuz/tests/test_hasbuildrecords.py (+0/-2)
lib/lp/soyuz/tests/test_initializedistroseriesjob.py (+0/-2)
lib/lp/soyuz/tests/test_livefs.py (+0/-2)
lib/lp/soyuz/tests/test_livefsbuild.py (+0/-2)
lib/lp/soyuz/tests/test_livefsbuildbehaviour.py (+0/-2)
lib/lp/soyuz/tests/test_packagecloner.py (+0/-2)
lib/lp/soyuz/tests/test_packagecopyjob.py (+0/-2)
lib/lp/soyuz/tests/test_packagediff.py (+0/-2)
lib/lp/soyuz/tests/test_packagediffjob.py (+0/-2)
lib/lp/soyuz/tests/test_packageset.py (+0/-2)
lib/lp/soyuz/tests/test_packagetranslationsuploadjob.py (+0/-2)
lib/lp/soyuz/tests/test_packageupload.py (+0/-2)
lib/lp/soyuz/tests/test_person_createppa.py (+0/-2)
lib/lp/soyuz/tests/test_processacceptedbugsjob.py (+0/-2)
lib/lp/soyuz/tests/test_publishing.py (+0/-2)
lib/lp/soyuz/tests/test_publishing_models.py (+0/-2)
lib/lp/soyuz/tests/test_sourcepackagerelease.py (+0/-2)
lib/lp/soyuz/tests/test_vocabularies.py (+0/-2)
lib/lp/soyuz/tests/test_yuitests.py (+0/-2)
lib/lp/soyuz/wsgi/archiveauth.py (+0/-2)
lib/lp/soyuz/wsgi/tests/test_archiveauth.py (+0/-2)
lib/lp/soyuz/xmlrpc/archive.py (+0/-2)
lib/lp/soyuz/xmlrpc/tests/test_archive.py (+0/-2)
lib/lp/startwsgi.py (+0/-2)
lib/lp/testing/__init__.py (+0/-3)
lib/lp/testing/browser.py (+0/-5)
lib/lp/testing/dbuser.py (+0/-2)
lib/lp/testing/faketransaction.py (+0/-2)
lib/lp/testing/karma.py (+0/-2)
lib/lp/testing/keyserver/inprocess.py (+0/-2)
lib/lp/testing/keyserver/tests/test_inprocess.py (+0/-2)
lib/lp/testing/layers.py (+0/-2)
lib/lp/testing/mail_helpers.py (+0/-2)
lib/lp/testing/menu.py (+0/-2)
lib/lp/testing/pages.py (+0/-2)
lib/lp/testing/publication.py (+0/-2)
lib/lp/testing/sampledata.py (+0/-2)
lib/lp/testing/systemdocs.py (+0/-2)
lib/lp/testing/tests/test_layers_functional.py (+0/-2)
lib/lp/testing/tests/test_standard_test_template.py (+0/-2)
lib/lp/testing/tests/test_standard_yuixhr_test_template.py (+0/-2)
lib/lp/testing/utilities/retest.py (+0/-2)
lib/lp/testing/yuixhr.py (+0/-2)
lib/lp/testopenid/testing/helpers.py (+0/-2)
lib/lp/translations/browser/hastranslationimports.py (+0/-2)
lib/lp/translations/browser/tests/test_translationimportqueueentry.py (+0/-2)
lib/lp/translations/browser/tests/test_translationmessage_view.py (+0/-2)
lib/lp/translations/browser/widgets/potemplate.py (+0/-2)
lib/lp/translations/browser/widgets/tests/test_potemplate.py (+0/-2)
lib/lp/translations/browser/widgets/tests/test_translationimportqueue.py (+0/-2)
lib/lp/translations/browser/widgets/translationimportqueue.py (+0/-2)
lib/lp/translations/model/translationimportqueue.py (+0/-7)
lib/lp/translations/scripts/tests/test_remove_translations.py (+0/-2)
lib/lp/translations/scripts/tests/test_translations_approval.py (+0/-2)
lib/lp/translations/scripts/tests/test_translations_import.py (+0/-2)
lib/lp/translations/tests/test_autoapproval.py (+0/-2)
lib/lp/translations/tests/test_shared_potemplate.py (+0/-2)
lib/lp/translations/tests/test_suggestions.py (+0/-2)
lib/lp/translations/tests/test_translatedlanguage.py (+0/-2)
lib/lp/translations/tests/test_translationbranchapprover.py (+0/-2)
lib/lp/translations/tests/test_translationbuildapprover.py (+0/-2)
lib/lp/translations/tests/test_translationimportqueue.py (+0/-2)
lib/lp/translations/tests/test_translationmerger.py (+0/-2)
lib/lp/translations/tests/test_translationmessage.py (+0/-2)
lib/lp/translations/tests/test_translations_to_review.py (+0/-2)
lib/lp/translations/utilities/gettext_po_importer.py (+0/-2)
lib/lp/translations/utilities/tests/test_gettext_po_exporter.py (+0/-2)
lib/lp/translations/utilities/tests/test_gettext_po_importer.py (+0/-2)
lib/lp/translations/utilities/tests/test_kde_po_importer.py (+0/-2)
lib/lp/translations/utilities/tests/test_translation_importer.py (+0/-2)
lib/lp/translations/utilities/tests/test_xpi_po_exporter.py (+0/-2)
scripts/branch-rewrite.py (+0/-2)
scripts/get-stacked-on-branches.py (+0/-2)
scripts/librarian-report.py (+0/-2)
scripts/memcached-stats.py (+0/-2)
scripts/migrate-librarian-content-md5.py (+0/-2)
scripts/rosetta/pottery-generate-intltool.py (+0/-2)
scripts/script-monitor-nagios.py (+0/-2)
scripts/start-loggerhead.py (+0/-2)
scripts/stop-loggerhead.py (+0/-2)
scripts/update-version-info.sh (+0/-2)
scripts/wsgi-archive-auth.py (+0/-2)
setup.py (+0/-2)
standard_template.py (+0/-2)
test_on_merge.py (+0/-2)
utilities/audit-security-settings.py (+0/-2)
utilities/create-lp-wadl-and-apidoc.py (+0/-2)
utilities/format-imports (+0/-2)
utilities/get-branch-info (+0/-2)
utilities/link-system-packages.py (+0/-2)
utilities/list-pages (+0/-2)
utilities/lsconf.py (+0/-2)
utilities/make-dev-certificate (+0/-2)
utilities/make-dummy-hosted-branches (+0/-2)
utilities/make-lp-user (+0/-2)
utilities/make-requirements.py (+0/-2)
utilities/paste (+0/-2)
utilities/pgcreate.py (+0/-2)
utilities/pgkillactive.py (+0/-2)
utilities/pgkillidle.py (+0/-2)
utilities/pglogwatch.py (+0/-2)
utilities/pgmassacre.py (+0/-2)
utilities/pgstats.py (+0/-2)
utilities/report-database-stats.py (+0/-2)
utilities/run-as (+0/-2)
utilities/shhh.py (+0/-1)
utilities/soyuz-sampledata-setup.py (+0/-2)
utilities/update-copyright (+0/-2)
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+406551@code.launchpad.net

Commit message

Remove __future__ imports

Description of the change

With this commit, Launchpad stops working on Python 2.

To post a comment you must log in.
Revision history for this message
Cristian Gonzalez (cristiangsp) wrote :

By future, hi present!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/database/replication/helpers.py b/database/replication/helpers.py
2index 8f8adf6..80c33c9 100644
3--- a/database/replication/helpers.py
4+++ b/database/replication/helpers.py
5@@ -3,8 +3,6 @@
6
7 """Common helpers for replication scripts."""
8
9-from __future__ import absolute_import, print_function
10-
11 __metaclass__ = type
12 __all__ = []
13
14diff --git a/database/replication/preamble.py b/database/replication/preamble.py
15index 249b0a4..095386f 100755
16--- a/database/replication/preamble.py
17+++ b/database/replication/preamble.py
18@@ -6,8 +6,6 @@
19 """Generate a preamble for slonik(1) scripts based on the current LPCONFIG.
20 """
21
22-from __future__ import absolute_import, print_function
23-
24 __metaclass__ = type
25 __all__ = []
26
27diff --git a/database/replication/walblock.py b/database/replication/walblock.py
28index 8e0327a..0e2b5a9 100755
29--- a/database/replication/walblock.py
30+++ b/database/replication/walblock.py
31@@ -5,8 +5,6 @@
32
33 """Feed stdin to stdout, blocking if there are too many unshipped WAL files."""
34
35-from __future__ import absolute_import, print_function
36-
37 __metaclass__ = type
38 __all__ = []
39
40diff --git a/database/schema/emptytables.py b/database/schema/emptytables.py
41index 3605910..83366b6 100755
42--- a/database/schema/emptytables.py
43+++ b/database/schema/emptytables.py
44@@ -5,8 +5,6 @@
45
46 """List empty database tables."""
47
48-from __future__ import absolute_import, print_function
49-
50 __metaclass__ = type
51
52 import _pythonpath # noqa: F401
53diff --git a/database/schema/fti.py b/database/schema/fti.py
54index 1835249..6e9c66c 100755
55--- a/database/schema/fti.py
56+++ b/database/schema/fti.py
57@@ -8,8 +8,6 @@
58 Add full text indexes to the launchpad database
59 """
60
61-from __future__ import absolute_import, print_function
62-
63 __metaclass__ = type
64
65 import _pythonpath # noqa: F401
66diff --git a/database/schema/online_fti_updater.py b/database/schema/online_fti_updater.py
67index effbdb0..9e0c8f8 100755
68--- a/database/schema/online_fti_updater.py
69+++ b/database/schema/online_fti_updater.py
70@@ -8,8 +8,6 @@ Rebuild the full text indexes in a more friendly fashion, enabling this to
71 be done without downtime.
72 """
73
74-from __future__ import absolute_import, print_function
75-
76 __metaclass__ = type
77
78 import _pythonpath # noqa: F401
79diff --git a/lib/contrib/glock.py b/lib/contrib/glock.py
80index 2925be1..de39d12 100644
81--- a/lib/contrib/glock.py
82+++ b/lib/contrib/glock.py
83@@ -21,8 +21,6 @@ Unix.
84 @see: class L{GlobalLock} for more details.
85 '''
86
87-from __future__ import absolute_import, print_function
88-
89 __version__ = '0.2.' + '$Revision: #5 $'[12:-2]
90 __author__ = 'Richard Gruet', 'rjgruet@yahoo.com'
91 __date__ = '$Date: 2005/06/19 $'[7:-2], '$Author: rgruet $'[9:-2]
92diff --git a/lib/launchpad_loggerhead/revision.py b/lib/launchpad_loggerhead/revision.py
93index 81c1937..094b470 100644
94--- a/lib/launchpad_loggerhead/revision.py
95+++ b/lib/launchpad_loggerhead/revision.py
96@@ -3,8 +3,6 @@
97
98 """WSGI Middleware to add Launchpad revision headers to loggerhead."""
99
100-from __future__ import absolute_import, print_function, unicode_literals
101-
102 __metaclass__ = type
103 __all__ = ['RevisionHeaderHandler']
104
105diff --git a/lib/launchpad_loggerhead/testing.py b/lib/launchpad_loggerhead/testing.py
106index 2266fab..3254107 100644
107--- a/lib/launchpad_loggerhead/testing.py
108+++ b/lib/launchpad_loggerhead/testing.py
109@@ -1,8 +1,6 @@
110 # Copyright 2018 Canonical Ltd. This software is licensed under the
111 # GNU Affero General Public License version 3 (see the file LICENSE).
112
113-from __future__ import absolute_import, print_function, unicode_literals
114-
115 __metaclass__ = type
116 __all__ = [
117 'LoggerheadFixture',
118diff --git a/lib/launchpad_loggerhead/wsgi.py b/lib/launchpad_loggerhead/wsgi.py
119index d10c7eb..5d1463b 100644
120--- a/lib/launchpad_loggerhead/wsgi.py
121+++ b/lib/launchpad_loggerhead/wsgi.py
122@@ -1,8 +1,6 @@
123 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
124 # GNU Affero General Public License version 3 (see the file LICENSE).
125
126-from __future__ import absolute_import, print_function, unicode_literals
127-
128 __metaclass__ = type
129 __all__ = [
130 'LoggerheadApplication',
131diff --git a/lib/lp/answers/browser/tests/test_breadcrumbs.py b/lib/lp/answers/browser/tests/test_breadcrumbs.py
132index 9bf76da..675fe2d 100644
133--- a/lib/lp/answers/browser/tests/test_breadcrumbs.py
134+++ b/lib/lp/answers/browser/tests/test_breadcrumbs.py
135@@ -1,8 +1,6 @@
136 # Copyright 2009-2010 Canonical Ltd. This software is licensed under the
137 # GNU Affero General Public License version 3 (see the file LICENSE).
138
139-from __future__ import absolute_import, print_function, unicode_literals
140-
141 __metaclass__ = type
142
143 from lp.services.webapp.publisher import canonical_url
144diff --git a/lib/lp/answers/browser/tests/test_menus.py b/lib/lp/answers/browser/tests/test_menus.py
145index 0bfc9db..ff4a4d6 100644
146--- a/lib/lp/answers/browser/tests/test_menus.py
147+++ b/lib/lp/answers/browser/tests/test_menus.py
148@@ -1,8 +1,6 @@
149 # Copyright 2009 Canonical Ltd. This software is licensed under the
150 # GNU Affero General Public License version 3 (see the file LICENSE).
151
152-from __future__ import absolute_import, print_function, unicode_literals
153-
154 __metaclass__ = type
155
156 from zope.component import getUtility
157diff --git a/lib/lp/answers/browser/tests/test_question.py b/lib/lp/answers/browser/tests/test_question.py
158index 59da09f..5f2209a 100644
159--- a/lib/lp/answers/browser/tests/test_question.py
160+++ b/lib/lp/answers/browser/tests/test_question.py
161@@ -3,8 +3,6 @@
162
163 """Tests for the question module."""
164
165-from __future__ import absolute_import, print_function, unicode_literals
166-
167 __metaclass__ = type
168
169 __all__ = []
170diff --git a/lib/lp/answers/browser/tests/test_questionmessages.py b/lib/lp/answers/browser/tests/test_questionmessages.py
171index cc1b472..0e49240 100644
172--- a/lib/lp/answers/browser/tests/test_questionmessages.py
173+++ b/lib/lp/answers/browser/tests/test_questionmessages.py
174@@ -3,8 +3,6 @@
175
176 """Tests for the various rules around question comment visibility."""
177
178-from __future__ import absolute_import, print_function, unicode_literals
179-
180 __metaclass__ = type
181
182 from zope.component import getUtility
183diff --git a/lib/lp/answers/browser/tests/test_questionsubscription_views.py b/lib/lp/answers/browser/tests/test_questionsubscription_views.py
184index 0bea4d0..aa738e5 100644
185--- a/lib/lp/answers/browser/tests/test_questionsubscription_views.py
186+++ b/lib/lp/answers/browser/tests/test_questionsubscription_views.py
187@@ -3,8 +3,6 @@
188
189 """Tests for QuestionSubscription views."""
190
191-from __future__ import absolute_import, print_function, unicode_literals
192-
193 __metaclass__ = type
194
195 import json
196diff --git a/lib/lp/answers/browser/tests/test_questiontarget.py b/lib/lp/answers/browser/tests/test_questiontarget.py
197index 241a1a8..a1b29e8 100644
198--- a/lib/lp/answers/browser/tests/test_questiontarget.py
199+++ b/lib/lp/answers/browser/tests/test_questiontarget.py
200@@ -3,8 +3,6 @@
201
202 """Test questiontarget views."""
203
204-from __future__ import absolute_import, print_function, unicode_literals
205-
206 __metaclass__ = type
207
208 import json
209diff --git a/lib/lp/answers/browser/tests/test_views.py b/lib/lp/answers/browser/tests/test_views.py
210index 1008af7..c7affee 100644
211--- a/lib/lp/answers/browser/tests/test_views.py
212+++ b/lib/lp/answers/browser/tests/test_views.py
213@@ -3,8 +3,6 @@
214
215 """Test harness for Answer Tracker related unit tests."""
216
217-from __future__ import absolute_import, print_function, unicode_literals
218-
219 __metaclass__ = type
220
221 __all__ = []
222diff --git a/lib/lp/answers/model/questionsubscription.py b/lib/lp/answers/model/questionsubscription.py
223index 60b40d2..8442f8d 100644
224--- a/lib/lp/answers/model/questionsubscription.py
225+++ b/lib/lp/answers/model/questionsubscription.py
226@@ -3,8 +3,6 @@
227
228 """StormBase implementation of IQuestionSubscription."""
229
230-from __future__ import absolute_import, print_function, unicode_literals
231-
232 __metaclass__ = type
233
234 __all__ = ['QuestionSubscription']
235diff --git a/lib/lp/answers/model/tests/test_question.py b/lib/lp/answers/model/tests/test_question.py
236index 28a19da..28e980f 100644
237--- a/lib/lp/answers/model/tests/test_question.py
238+++ b/lib/lp/answers/model/tests/test_question.py
239@@ -1,8 +1,6 @@
240 # Copyright 2011 Canonical Ltd. This software is licensed under the
241 # GNU Affero General Public License version 3 (see the file LICENSE).
242
243-from __future__ import absolute_import, print_function, unicode_literals
244-
245 __metaclass__ = type
246
247 from datetime import (
248diff --git a/lib/lp/answers/model/tests/test_questionsubscription.py b/lib/lp/answers/model/tests/test_questionsubscription.py
249index 27a8a7d..1275905 100644
250--- a/lib/lp/answers/model/tests/test_questionsubscription.py
251+++ b/lib/lp/answers/model/tests/test_questionsubscription.py
252@@ -3,8 +3,6 @@
253
254 """Tests for the QuestionSubscrption model object.."""
255
256-from __future__ import absolute_import, print_function, unicode_literals
257-
258 __metaclass__ = type
259
260 from zope.component import getUtility
261diff --git a/lib/lp/answers/testing.py b/lib/lp/answers/testing.py
262index 2a76ad6..f6360b3 100644
263--- a/lib/lp/answers/testing.py
264+++ b/lib/lp/answers/testing.py
265@@ -3,8 +3,6 @@
266
267 """Helper functions for Answer Tracker tests."""
268
269-from __future__ import absolute_import, print_function, unicode_literals
270-
271 __metaclass__ = type
272 __all__ = [
273 'QuestionFactory',
274diff --git a/lib/lp/answers/tests/test_doc.py b/lib/lp/answers/tests/test_doc.py
275index 5c4ef5a..5f7083d 100644
276--- a/lib/lp/answers/tests/test_doc.py
277+++ b/lib/lp/answers/tests/test_doc.py
278@@ -5,8 +5,6 @@
279 Run the doctests and pagetests.
280 """
281
282-from __future__ import absolute_import, print_function, unicode_literals
283-
284 import os
285 import unittest
286
287diff --git a/lib/lp/answers/tests/test_faq.py b/lib/lp/answers/tests/test_faq.py
288index 138f3ca..20eea11 100644
289--- a/lib/lp/answers/tests/test_faq.py
290+++ b/lib/lp/answers/tests/test_faq.py
291@@ -3,8 +3,6 @@
292
293 """Tests for IFAQ"""
294
295-from __future__ import absolute_import, print_function, unicode_literals
296-
297 __metaclass__ = type
298
299 import transaction
300diff --git a/lib/lp/answers/tests/test_faq_webservice.py b/lib/lp/answers/tests/test_faq_webservice.py
301index 33ad24b..969af27 100644
302--- a/lib/lp/answers/tests/test_faq_webservice.py
303+++ b/lib/lp/answers/tests/test_faq_webservice.py
304@@ -1,8 +1,6 @@
305 # Copyright 2015-2018 Canonical Ltd. This software is licensed under the
306 # GNU Affero General Public License version 3 (see the file LICENSE).
307
308-from __future__ import absolute_import, print_function, unicode_literals
309-
310 __metaclass__ = type
311
312 from testtools.matchers import (
313diff --git a/lib/lp/answers/tests/test_faqtarget.py b/lib/lp/answers/tests/test_faqtarget.py
314index a469530..9d52303 100644
315--- a/lib/lp/answers/tests/test_faqtarget.py
316+++ b/lib/lp/answers/tests/test_faqtarget.py
317@@ -3,8 +3,6 @@
318
319 """Tests for IFAQTarget"""
320
321-from __future__ import absolute_import, print_function, unicode_literals
322-
323 __metaclass__ = type
324
325 from zope.component import getUtility
326diff --git a/lib/lp/answers/tests/test_publisher.py b/lib/lp/answers/tests/test_publisher.py
327index d68263e..8acc360 100644
328--- a/lib/lp/answers/tests/test_publisher.py
329+++ b/lib/lp/answers/tests/test_publisher.py
330@@ -3,8 +3,6 @@
331
332 """Tests for answers's custom publications."""
333
334-from __future__ import absolute_import, print_function, unicode_literals
335-
336 __metaclass__ = type
337
338 import io
339diff --git a/lib/lp/answers/tests/test_question.py b/lib/lp/answers/tests/test_question.py
340index 1cc62bf..d81870f 100644
341--- a/lib/lp/answers/tests/test_question.py
342+++ b/lib/lp/answers/tests/test_question.py
343@@ -1,8 +1,6 @@
344 # Copyright 2013-2017 Canonical Ltd. This software is licensed under the
345 # GNU Affero General Public License version 3 (see the file LICENSE).
346
347-from __future__ import absolute_import, print_function, unicode_literals
348-
349 __metaclass__ = type
350
351 from testtools.testcase import ExpectedException
352diff --git a/lib/lp/answers/tests/test_question_notifications.py b/lib/lp/answers/tests/test_question_notifications.py
353index 1ac77ee..200d39a 100644
354--- a/lib/lp/answers/tests/test_question_notifications.py
355+++ b/lib/lp/answers/tests/test_question_notifications.py
356@@ -3,8 +3,6 @@
357
358 """Unit tests for the Answer Tracker Mail Notifications."""
359
360-from __future__ import absolute_import, print_function, unicode_literals
361-
362 __metaclass__ = type
363
364 __all__ = [
365diff --git a/lib/lp/answers/tests/test_question_webservice.py b/lib/lp/answers/tests/test_question_webservice.py
366index 4c1333d..b4d0662 100644
367--- a/lib/lp/answers/tests/test_question_webservice.py
368+++ b/lib/lp/answers/tests/test_question_webservice.py
369@@ -3,8 +3,6 @@
370
371 """Webservice unit tests related to Launchpad Questions."""
372
373-from __future__ import absolute_import, print_function, unicode_literals
374-
375 __metaclass__ = type
376
377 from datetime import (
378diff --git a/lib/lp/answers/tests/test_question_workflow.py b/lib/lp/answers/tests/test_question_workflow.py
379index 66fa81b..d458f68 100644
380--- a/lib/lp/answers/tests/test_question_workflow.py
381+++ b/lib/lp/answers/tests/test_question_workflow.py
382@@ -9,8 +9,6 @@ but testing all the possible transitions makes the documentation more heavy
383 than necessary. This is tested here.
384 """
385
386-from __future__ import absolute_import, print_function, unicode_literals
387-
388 __metaclass__ = type
389
390 __all__ = []
391diff --git a/lib/lp/answers/tests/test_questionjob.py b/lib/lp/answers/tests/test_questionjob.py
392index aa21aad..f1ebac6 100644
393--- a/lib/lp/answers/tests/test_questionjob.py
394+++ b/lib/lp/answers/tests/test_questionjob.py
395@@ -3,8 +3,6 @@
396
397 """Tests for QuestionJobs classes."""
398
399-from __future__ import absolute_import, print_function, unicode_literals
400-
401 __metaclass__ = type
402
403 from testtools.content import text_content
404diff --git a/lib/lp/answers/tests/test_questiontarget.py b/lib/lp/answers/tests/test_questiontarget.py
405index d2ea79f..89c2c9b 100644
406--- a/lib/lp/answers/tests/test_questiontarget.py
407+++ b/lib/lp/answers/tests/test_questiontarget.py
408@@ -3,8 +3,6 @@
409
410 """Tests related to IQuestionTarget."""
411
412-from __future__ import absolute_import, print_function, unicode_literals
413-
414 __metaclass__ = type
415
416 __all__ = []
417diff --git a/lib/lp/answers/tests/test_vocabulary.py b/lib/lp/answers/tests/test_vocabulary.py
418index 6841e8d..84d3c6f 100644
419--- a/lib/lp/answers/tests/test_vocabulary.py
420+++ b/lib/lp/answers/tests/test_vocabulary.py
421@@ -3,8 +3,6 @@
422
423 """Test the answers domain vocabularies."""
424
425-from __future__ import absolute_import, print_function, unicode_literals
426-
427 __metaclass__ = type
428
429 from lp.answers.vocabulary import (
430diff --git a/lib/lp/app/browser/stringformatter.py b/lib/lp/app/browser/stringformatter.py
431index 8fa5a2b..d77cf50 100644
432--- a/lib/lp/app/browser/stringformatter.py
433+++ b/lib/lp/app/browser/stringformatter.py
434@@ -3,8 +3,6 @@
435
436 """TALES formatter for strings."""
437
438-from __future__ import division
439-
440 __metaclass__ = type
441 __all__ = [
442 'add_word_breaks',
443diff --git a/lib/lp/app/browser/tales.py b/lib/lp/app/browser/tales.py
444index 1bf84aa..37c55de 100644
445--- a/lib/lp/app/browser/tales.py
446+++ b/lib/lp/app/browser/tales.py
447@@ -3,8 +3,6 @@
448
449 """Implementation of the lp: htmlform: fmt: namespaces in TALES."""
450
451-from __future__ import division
452-
453 __metaclass__ = type
454
455 from bisect import bisect
456diff --git a/lib/lp/app/browser/tests/test_views.py b/lib/lp/app/browser/tests/test_views.py
457index d0d8967..c3e8615 100644
458--- a/lib/lp/app/browser/tests/test_views.py
459+++ b/lib/lp/app/browser/tests/test_views.py
460@@ -3,8 +3,6 @@
461
462 """Run the view tests."""
463
464-from __future__ import absolute_import, print_function, unicode_literals
465-
466 __metaclass__ = type
467
468 import logging
469diff --git a/lib/lp/app/validators/__init__.py b/lib/lp/app/validators/__init__.py
470index 99b112b..70d9ab7 100644
471--- a/lib/lp/app/validators/__init__.py
472+++ b/lib/lp/app/validators/__init__.py
473@@ -9,8 +9,6 @@ PostgreSQL as stored procedures.
474 See README.txt for discussion
475 """
476
477-from __future__ import absolute_import, print_function
478-
479 __metaclass__ = type
480
481 from zope.formlib.exception import (
482diff --git a/lib/lp/app/validators/attachment.py b/lib/lp/app/validators/attachment.py
483index 0056c53..a998673 100644
484--- a/lib/lp/app/validators/attachment.py
485+++ b/lib/lp/app/validators/attachment.py
486@@ -3,8 +3,6 @@
487
488 """Validators for attachments."""
489
490-from __future__ import absolute_import, print_function
491-
492 __metaclass__ = type
493 __all__ = ['attachment_size_constraint']
494
495diff --git a/lib/lp/app/validators/cve.py b/lib/lp/app/validators/cve.py
496index 0a0407b..93c4f35 100644
497--- a/lib/lp/app/validators/cve.py
498+++ b/lib/lp/app/validators/cve.py
499@@ -1,8 +1,6 @@
500 # Copyright 2009 Canonical Ltd. This software is licensed under the
501 # GNU Affero General Public License version 3 (see the file LICENSE).
502
503-from __future__ import absolute_import, print_function
504-
505 __metaclass__ = type
506
507 import re
508diff --git a/lib/lp/app/validators/email.py b/lib/lp/app/validators/email.py
509index 04d02dc..04599f8 100644
510--- a/lib/lp/app/validators/email.py
511+++ b/lib/lp/app/validators/email.py
512@@ -3,8 +3,6 @@
513
514 """EmailAdress validator"""
515
516-from __future__ import absolute_import, print_function
517-
518 __metaclass__ = type
519
520 import re
521diff --git a/lib/lp/app/validators/name.py b/lib/lp/app/validators/name.py
522index e0b16b2..5b2575f 100644
523--- a/lib/lp/app/validators/name.py
524+++ b/lib/lp/app/validators/name.py
525@@ -3,8 +3,6 @@
526
527 """Validators for the .name attribute (defined in various schemas.)"""
528
529-from __future__ import absolute_import, print_function
530-
531 __metaclass__ = type
532
533 import re
534diff --git a/lib/lp/app/validators/path.py b/lib/lp/app/validators/path.py
535index 13e0b06..92fc3c6 100644
536--- a/lib/lp/app/validators/path.py
537+++ b/lib/lp/app/validators/path.py
538@@ -3,8 +3,6 @@
539
540 """Validators for paths and path functions."""
541
542-from __future__ import absolute_import, print_function, unicode_literals
543-
544 __metaclass__ = type
545 __all__ = [
546 'path_does_not_escape'
547diff --git a/lib/lp/app/validators/tests/test_path.py b/lib/lp/app/validators/tests/test_path.py
548index 24501a8..af03fde 100644
549--- a/lib/lp/app/validators/tests/test_path.py
550+++ b/lib/lp/app/validators/tests/test_path.py
551@@ -3,8 +3,6 @@
552
553 """Tests for path validators."""
554
555-from __future__ import absolute_import, print_function, unicode_literals
556-
557 __metaclass__ = type
558
559 from lp.app.validators import LaunchpadValidationError
560diff --git a/lib/lp/app/validators/tests/test_validation.py b/lib/lp/app/validators/tests/test_validation.py
561index 3cd87d9..83736e8 100644
562--- a/lib/lp/app/validators/tests/test_validation.py
563+++ b/lib/lp/app/validators/tests/test_validation.py
564@@ -3,8 +3,6 @@
565
566 """Unit tests for field validators"""
567
568-from __future__ import absolute_import, print_function, unicode_literals
569-
570 __metaclass__ = type
571
572 from lp.app.validators.validation import validate_oci_branch_name
573diff --git a/lib/lp/app/validators/url.py b/lib/lp/app/validators/url.py
574index bf4d998..8df0a18 100644
575--- a/lib/lp/app/validators/url.py
576+++ b/lib/lp/app/validators/url.py
577@@ -1,8 +1,6 @@
578 # Copyright 2009-2011 Canonical Ltd. This software is licensed under the
579 # GNU Affero General Public License version 3 (see the file LICENSE).
580
581-from __future__ import absolute_import, print_function
582-
583 __metaclass__ = type
584
585 __all__ = [
586diff --git a/lib/lp/app/validators/username.py b/lib/lp/app/validators/username.py
587index 40d69da..acfe874 100644
588--- a/lib/lp/app/validators/username.py
589+++ b/lib/lp/app/validators/username.py
590@@ -3,8 +3,6 @@
591
592 """Validators for the clean-username (`Person.name`) attribute."""
593
594-from __future__ import absolute_import, print_function
595-
596 __metaclass__ = type
597
598 import re
599diff --git a/lib/lp/app/validators/validation.py b/lib/lp/app/validators/validation.py
600index 7ff8ad4..1ddbf6c 100644
601--- a/lib/lp/app/validators/validation.py
602+++ b/lib/lp/app/validators/validation.py
603@@ -1,8 +1,6 @@
604 # Copyright 2009-2011 Canonical Ltd. This software is licensed under the
605 # GNU Affero General Public License version 3 (see the file LICENSE).
606
607-from __future__ import absolute_import, print_function
608-
609 __metaclass__ = type
610
611 __all__ = [
612diff --git a/lib/lp/app/validators/version.py b/lib/lp/app/validators/version.py
613index 3f7d163..170b869 100644
614--- a/lib/lp/app/validators/version.py
615+++ b/lib/lp/app/validators/version.py
616@@ -1,8 +1,6 @@
617 # Copyright 2009 Canonical Ltd. This software is licensed under the
618 # GNU Affero General Public License version 3 (see the file LICENSE).
619
620-from __future__ import absolute_import, print_function
621-
622 __metaclass__ = type
623
624
625diff --git a/lib/lp/app/widgets/tests/test_launchpadtarget.py b/lib/lp/app/widgets/tests/test_launchpadtarget.py
626index 13030cd..dca46dc 100644
627--- a/lib/lp/app/widgets/tests/test_launchpadtarget.py
628+++ b/lib/lp/app/widgets/tests/test_launchpadtarget.py
629@@ -1,8 +1,6 @@
630 # Copyright 2011-2020 Canonical Ltd. This software is licensed under the
631 # GNU Affero General Public License version 3 (see the file LICENSE).
632
633-from __future__ import absolute_import, print_function, unicode_literals
634-
635 __metaclass__ = type
636
637 import re
638diff --git a/lib/lp/archivepublisher/meta_data.py b/lib/lp/archivepublisher/meta_data.py
639index 7cee6cd..f18b984 100644
640--- a/lib/lp/archivepublisher/meta_data.py
641+++ b/lib/lp/archivepublisher/meta_data.py
642@@ -3,8 +3,6 @@
643
644 """Processing of archive meta-data uploads."""
645
646-from __future__ import absolute_import, print_function, unicode_literals
647-
648 __metaclass__ = type
649 __all__ = [
650 "MetaDataUpload",
651diff --git a/lib/lp/archivepublisher/run_parts.py b/lib/lp/archivepublisher/run_parts.py
652index db37847..21b5569 100644
653--- a/lib/lp/archivepublisher/run_parts.py
654+++ b/lib/lp/archivepublisher/run_parts.py
655@@ -3,8 +3,6 @@
656
657 """Publisher support for running programs from a plug-in directory."""
658
659-from __future__ import absolute_import, print_function, unicode_literals
660-
661 __metaclass__ = type
662 __all__ = [
663 'execute_subprocess',
664diff --git a/lib/lp/archivepublisher/scripts/copy_signingkeys.py b/lib/lp/archivepublisher/scripts/copy_signingkeys.py
665index 322b7d9..2c079e1 100644
666--- a/lib/lp/archivepublisher/scripts/copy_signingkeys.py
667+++ b/lib/lp/archivepublisher/scripts/copy_signingkeys.py
668@@ -3,8 +3,6 @@
669
670 """Script to copy signing keys between archives."""
671
672-from __future__ import absolute_import, print_function, unicode_literals
673-
674 __metaclass__ = type
675
676 __all__ = [
677diff --git a/lib/lp/archivepublisher/scripts/sync_signingkeys.py b/lib/lp/archivepublisher/scripts/sync_signingkeys.py
678index a56978e..68a22d9 100644
679--- a/lib/lp/archivepublisher/scripts/sync_signingkeys.py
680+++ b/lib/lp/archivepublisher/scripts/sync_signingkeys.py
681@@ -3,8 +3,6 @@
682
683 """Script to inject archive keys into signing service."""
684
685-from __future__ import absolute_import, print_function, unicode_literals
686-
687 __metaclass__ = type
688
689
690diff --git a/lib/lp/archivepublisher/signing.py b/lib/lp/archivepublisher/signing.py
691index 296e626..ec61b95 100644
692--- a/lib/lp/archivepublisher/signing.py
693+++ b/lib/lp/archivepublisher/signing.py
694@@ -9,8 +9,6 @@ This cannot be done on the build daemons because they are insufficiently
695 secure to hold signing keys, so we sign them as a custom upload instead.
696 """
697
698-from __future__ import print_function
699-
700 __metaclass__ = type
701
702 __all__ = [
703diff --git a/lib/lp/archivepublisher/static_translations.py b/lib/lp/archivepublisher/static_translations.py
704index e5c18ea..ea2d159 100644
705--- a/lib/lp/archivepublisher/static_translations.py
706+++ b/lib/lp/archivepublisher/static_translations.py
707@@ -3,8 +3,6 @@
708
709 """Processing of static translations uploads."""
710
711-from __future__ import absolute_import, print_function, unicode_literals
712-
713 __metaclass__ = type
714 __all__ = [
715 "StaticTranslationsUpload",
716diff --git a/lib/lp/archivepublisher/tests/__init__.py b/lib/lp/archivepublisher/tests/__init__.py
717index c370e6e..9d65b15 100644
718--- a/lib/lp/archivepublisher/tests/__init__.py
719+++ b/lib/lp/archivepublisher/tests/__init__.py
720@@ -1,8 +1,6 @@
721 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
722 # GNU Affero General Public License version 3 (see the file LICENSE).
723
724-from __future__ import absolute_import, print_function, unicode_literals
725-
726 import os
727
728
729diff --git a/lib/lp/archivepublisher/tests/test_archivegpgsigningkey.py b/lib/lp/archivepublisher/tests/test_archivegpgsigningkey.py
730index e9e7ded..f32c124 100644
731--- a/lib/lp/archivepublisher/tests/test_archivegpgsigningkey.py
732+++ b/lib/lp/archivepublisher/tests/test_archivegpgsigningkey.py
733@@ -3,8 +3,6 @@
734
735 """Test ArchiveGPGSigningKey."""
736
737-from __future__ import absolute_import, print_function, unicode_literals
738-
739 __metaclass__ = type
740
741 import os
742diff --git a/lib/lp/archivepublisher/tests/test_config.py b/lib/lp/archivepublisher/tests/test_config.py
743index 55ebba9..9c11b66 100644
744--- a/lib/lp/archivepublisher/tests/test_config.py
745+++ b/lib/lp/archivepublisher/tests/test_config.py
746@@ -6,8 +6,6 @@
747 Publisher configuration provides archive-dependent filesystem paths.
748 """
749
750-from __future__ import absolute_import, print_function, unicode_literals
751-
752 __metaclass__ = type
753
754 import os
755diff --git a/lib/lp/archivepublisher/tests/test_copy_signingkeys.py b/lib/lp/archivepublisher/tests/test_copy_signingkeys.py
756index d4d943f..d164fba 100644
757--- a/lib/lp/archivepublisher/tests/test_copy_signingkeys.py
758+++ b/lib/lp/archivepublisher/tests/test_copy_signingkeys.py
759@@ -3,8 +3,6 @@
760
761 """Test cases for copying signing keys between archives."""
762
763-from __future__ import absolute_import, print_function, unicode_literals
764-
765 __metaclass__ = type
766
767 from testtools.content import text_content
768diff --git a/lib/lp/archivepublisher/tests/test_customupload.py b/lib/lp/archivepublisher/tests/test_customupload.py
769index b93111f..2a2f0d3 100644
770--- a/lib/lp/archivepublisher/tests/test_customupload.py
771+++ b/lib/lp/archivepublisher/tests/test_customupload.py
772@@ -3,8 +3,6 @@
773
774 """Tests for `CustomUploads`."""
775
776-from __future__ import absolute_import, print_function, unicode_literals
777-
778 __metaclass__ = type
779
780
781diff --git a/lib/lp/archivepublisher/tests/test_ddtp_tarball.py b/lib/lp/archivepublisher/tests/test_ddtp_tarball.py
782index 9c210b2..e90e59b 100644
783--- a/lib/lp/archivepublisher/tests/test_ddtp_tarball.py
784+++ b/lib/lp/archivepublisher/tests/test_ddtp_tarball.py
785@@ -7,8 +7,6 @@ See also lp.soyuz.tests.test_distroseriesqueue_ddtp_tarball for high-level
786 tests of ddtp-tarball upload and queue manipulation.
787 """
788
789-from __future__ import absolute_import, print_function, unicode_literals
790-
791 import os
792
793 import six
794diff --git a/lib/lp/archivepublisher/tests/test_deathrow.py b/lib/lp/archivepublisher/tests/test_deathrow.py
795index 2d9ca02..ea8427c 100644
796--- a/lib/lp/archivepublisher/tests/test_deathrow.py
797+++ b/lib/lp/archivepublisher/tests/test_deathrow.py
798@@ -3,8 +3,6 @@
799
800 """Tests for deathrow class."""
801
802-from __future__ import absolute_import, print_function, unicode_literals
803-
804 __metaclass__ = type
805
806
807diff --git a/lib/lp/archivepublisher/tests/test_debian_installer.py b/lib/lp/archivepublisher/tests/test_debian_installer.py
808index 3eecee3..6ddf57a 100644
809--- a/lib/lp/archivepublisher/tests/test_debian_installer.py
810+++ b/lib/lp/archivepublisher/tests/test_debian_installer.py
811@@ -7,8 +7,6 @@ See also lp.soyuz.tests.test_distroseriesqueue_debian_installer for
812 high-level tests of debian-installer upload and queue manipulation.
813 """
814
815-from __future__ import absolute_import, print_function, unicode_literals
816-
817 import os
818 from textwrap import dedent
819
820diff --git a/lib/lp/archivepublisher/tests/test_debversion.py b/lib/lp/archivepublisher/tests/test_debversion.py
821index 3b96c77..304aa40 100644
822--- a/lib/lp/archivepublisher/tests/test_debversion.py
823+++ b/lib/lp/archivepublisher/tests/test_debversion.py
824@@ -3,8 +3,6 @@
825
826 """Tests for debversion."""
827
828-from __future__ import absolute_import, print_function, unicode_literals
829-
830 __metaclass__ = type
831
832 # These tests came from sourcerer.
833diff --git a/lib/lp/archivepublisher/tests/test_dist_upgrader.py b/lib/lp/archivepublisher/tests/test_dist_upgrader.py
834index 60e69d0..6f0bfbe 100644
835--- a/lib/lp/archivepublisher/tests/test_dist_upgrader.py
836+++ b/lib/lp/archivepublisher/tests/test_dist_upgrader.py
837@@ -7,8 +7,6 @@ See also lp.soyuz.tests.test_distroseriesqueue_dist_upgrader for high-level
838 tests of dist-upgrader upload and queue manipulation.
839 """
840
841-from __future__ import absolute_import, print_function, unicode_literals
842-
843 import os
844 from textwrap import dedent
845
846diff --git a/lib/lp/archivepublisher/tests/test_dominator.py b/lib/lp/archivepublisher/tests/test_dominator.py
847index c19f8b9..d76e542 100755
848--- a/lib/lp/archivepublisher/tests/test_dominator.py
849+++ b/lib/lp/archivepublisher/tests/test_dominator.py
850@@ -3,8 +3,6 @@
851
852 """Tests for domination.py."""
853
854-from __future__ import absolute_import, print_function, unicode_literals
855-
856 __metaclass__ = type
857
858 import datetime
859diff --git a/lib/lp/archivepublisher/tests/test_ftparchive.py b/lib/lp/archivepublisher/tests/test_ftparchive.py
860index 94b68fc..6a8fe26 100755
861--- a/lib/lp/archivepublisher/tests/test_ftparchive.py
862+++ b/lib/lp/archivepublisher/tests/test_ftparchive.py
863@@ -3,8 +3,6 @@
864
865 """Tests for ftparchive.py"""
866
867-from __future__ import absolute_import, print_function, unicode_literals
868-
869 __metaclass__ = type
870
871 import difflib
872diff --git a/lib/lp/archivepublisher/tests/test_generate_contents_files.py b/lib/lp/archivepublisher/tests/test_generate_contents_files.py
873index a0d6967..a71f60c 100644
874--- a/lib/lp/archivepublisher/tests/test_generate_contents_files.py
875+++ b/lib/lp/archivepublisher/tests/test_generate_contents_files.py
876@@ -3,8 +3,6 @@
877
878 """Test for the `generate-contents-files` script."""
879
880-from __future__ import absolute_import, print_function, unicode_literals
881-
882 __metaclass__ = type
883
884 import hashlib
885diff --git a/lib/lp/archivepublisher/tests/test_indices.py b/lib/lp/archivepublisher/tests/test_indices.py
886index 3a39e58..52a0d75 100644
887--- a/lib/lp/archivepublisher/tests/test_indices.py
888+++ b/lib/lp/archivepublisher/tests/test_indices.py
889@@ -3,8 +3,6 @@
890
891 """Test native archive index generation for Soyuz."""
892
893-from __future__ import absolute_import, print_function, unicode_literals
894-
895 import os
896 import tempfile
897 import unittest
898diff --git a/lib/lp/archivepublisher/tests/test_meta_data.py b/lib/lp/archivepublisher/tests/test_meta_data.py
899index f79286b..1f09337 100644
900--- a/lib/lp/archivepublisher/tests/test_meta_data.py
901+++ b/lib/lp/archivepublisher/tests/test_meta_data.py
902@@ -3,8 +3,6 @@
903
904 """Test meta-data custom uploads."""
905
906-from __future__ import absolute_import, print_function, unicode_literals
907-
908 __metaclass__ = type
909
910 import os
911diff --git a/lib/lp/archivepublisher/tests/test_pool.py b/lib/lp/archivepublisher/tests/test_pool.py
912index e56ef02..3c43ad6 100644
913--- a/lib/lp/archivepublisher/tests/test_pool.py
914+++ b/lib/lp/archivepublisher/tests/test_pool.py
915@@ -3,8 +3,6 @@
916
917 """Tests for pool.py."""
918
919-from __future__ import absolute_import, print_function, unicode_literals
920-
921 __metaclass__ = type
922
923 import hashlib
924diff --git a/lib/lp/archivepublisher/tests/test_processaccepted.py b/lib/lp/archivepublisher/tests/test_processaccepted.py
925index f945212..565d82b 100644
926--- a/lib/lp/archivepublisher/tests/test_processaccepted.py
927+++ b/lib/lp/archivepublisher/tests/test_processaccepted.py
928@@ -3,8 +3,6 @@
929
930 """Test process-accepted.py"""
931
932-from __future__ import absolute_import, print_function, unicode_literals
933-
934 from optparse import OptionValueError
935
936 from testtools.matchers import LessThan
937diff --git a/lib/lp/archivepublisher/tests/test_processdeathrow.py b/lib/lp/archivepublisher/tests/test_processdeathrow.py
938index 575f79a..a59381a 100644
939--- a/lib/lp/archivepublisher/tests/test_processdeathrow.py
940+++ b/lib/lp/archivepublisher/tests/test_processdeathrow.py
941@@ -8,8 +8,6 @@ of the module functionality; here we just aim to test that the script
942 processes its arguments and handles dry-run correctly.
943 """
944
945-from __future__ import absolute_import, print_function, unicode_literals
946-
947 __metaclass__ = type
948
949 import datetime
950diff --git a/lib/lp/archivepublisher/tests/test_publish_ftpmaster.py b/lib/lp/archivepublisher/tests/test_publish_ftpmaster.py
951index b9a82b7..2039856 100644
952--- a/lib/lp/archivepublisher/tests/test_publish_ftpmaster.py
953+++ b/lib/lp/archivepublisher/tests/test_publish_ftpmaster.py
954@@ -3,8 +3,6 @@
955
956 """Test publish-ftpmaster cron script."""
957
958-from __future__ import absolute_import, print_function, unicode_literals
959-
960 __metaclass__ = type
961
962 import logging
963diff --git a/lib/lp/archivepublisher/tests/test_publishdistro.py b/lib/lp/archivepublisher/tests/test_publishdistro.py
964index a260c71..41d81f4 100644
965--- a/lib/lp/archivepublisher/tests/test_publishdistro.py
966+++ b/lib/lp/archivepublisher/tests/test_publishdistro.py
967@@ -3,8 +3,6 @@
968
969 """Functional tests for publish-distro.py script."""
970
971-from __future__ import absolute_import, print_function, unicode_literals
972-
973 __metaclass__ = type
974
975 from optparse import OptionValueError
976diff --git a/lib/lp/archivepublisher/tests/test_publisher.py b/lib/lp/archivepublisher/tests/test_publisher.py
977index 0c8ff87..b0173cb 100644
978--- a/lib/lp/archivepublisher/tests/test_publisher.py
979+++ b/lib/lp/archivepublisher/tests/test_publisher.py
980@@ -3,8 +3,6 @@
981
982 """Tests for publisher class."""
983
984-from __future__ import absolute_import, print_function, unicode_literals
985-
986 __metaclass__ = type
987
988 import bz2
989diff --git a/lib/lp/archivepublisher/tests/test_publisher_documentation.py b/lib/lp/archivepublisher/tests/test_publisher_documentation.py
990index 1091cd1..a211eb8 100644
991--- a/lib/lp/archivepublisher/tests/test_publisher_documentation.py
992+++ b/lib/lp/archivepublisher/tests/test_publisher_documentation.py
993@@ -3,8 +3,6 @@
994
995 """Runs the archivepublisher doctests."""
996
997-from __future__ import absolute_import, print_function, unicode_literals
998-
999 __metaclass__ = type
1000
1001 import logging
1002diff --git a/lib/lp/archivepublisher/tests/test_publisherconfig.py b/lib/lp/archivepublisher/tests/test_publisherconfig.py
1003index 023a287..63f652c 100644
1004--- a/lib/lp/archivepublisher/tests/test_publisherconfig.py
1005+++ b/lib/lp/archivepublisher/tests/test_publisherconfig.py
1006@@ -3,8 +3,6 @@
1007
1008 """Tests for publisherConfig model class."""
1009
1010-from __future__ import absolute_import, print_function, unicode_literals
1011-
1012 __metaclass__ = type
1013
1014
1015diff --git a/lib/lp/archivepublisher/tests/test_repositoryindexfile.py b/lib/lp/archivepublisher/tests/test_repositoryindexfile.py
1016index 55808d2..b7ebac3 100644
1017--- a/lib/lp/archivepublisher/tests/test_repositoryindexfile.py
1018+++ b/lib/lp/archivepublisher/tests/test_repositoryindexfile.py
1019@@ -3,8 +3,6 @@
1020
1021 """Tests for `RepositoryIndexFile`."""
1022
1023-from __future__ import absolute_import, print_function, unicode_literals
1024-
1025 __metaclass__ = type
1026
1027 import bz2
1028diff --git a/lib/lp/archivepublisher/tests/test_rosetta_translations.py b/lib/lp/archivepublisher/tests/test_rosetta_translations.py
1029index 8812ef8..d90a471 100644
1030--- a/lib/lp/archivepublisher/tests/test_rosetta_translations.py
1031+++ b/lib/lp/archivepublisher/tests/test_rosetta_translations.py
1032@@ -7,8 +7,6 @@ See also lp.soyuz.tests.test_distroseriesqueue_rosetta_translations for
1033 high-level tests of rosetta-translations upload and queue manipulation.
1034 """
1035
1036-from __future__ import absolute_import, print_function, unicode_literals
1037-
1038 from storm.expr import Desc
1039 import transaction
1040 from zope.component import getUtility
1041diff --git a/lib/lp/archivepublisher/tests/test_run_parts.py b/lib/lp/archivepublisher/tests/test_run_parts.py
1042index 2acf23a..b0753a3 100644
1043--- a/lib/lp/archivepublisher/tests/test_run_parts.py
1044+++ b/lib/lp/archivepublisher/tests/test_run_parts.py
1045@@ -3,8 +3,6 @@
1046
1047 """Test publisher run-parts handling."""
1048
1049-from __future__ import absolute_import, print_function, unicode_literals
1050-
1051 __metaclass__ = type
1052
1053 import os.path
1054diff --git a/lib/lp/archivepublisher/tests/test_signing.py b/lib/lp/archivepublisher/tests/test_signing.py
1055index e57ae72..f13ba3a 100644
1056--- a/lib/lp/archivepublisher/tests/test_signing.py
1057+++ b/lib/lp/archivepublisher/tests/test_signing.py
1058@@ -3,8 +3,6 @@
1059
1060 """Test UEFI custom uploads."""
1061
1062-from __future__ import absolute_import, print_function, unicode_literals
1063-
1064 __metaclass__ = type
1065
1066 from datetime import datetime
1067diff --git a/lib/lp/archivepublisher/tests/test_sync_signingkeys.py b/lib/lp/archivepublisher/tests/test_sync_signingkeys.py
1068index 8a8d758..24dd57f 100644
1069--- a/lib/lp/archivepublisher/tests/test_sync_signingkeys.py
1070+++ b/lib/lp/archivepublisher/tests/test_sync_signingkeys.py
1071@@ -7,8 +7,6 @@
1072
1073 """Test cases for the script that injects signing keys into signing service."""
1074
1075-from __future__ import absolute_import, print_function, unicode_literals
1076-
1077 __metaclass__ = type
1078 __all__ = [
1079 'SyncSigningKeysScript',
1080diff --git a/lib/lp/archiveuploader/charmrecipeupload.py b/lib/lp/archiveuploader/charmrecipeupload.py
1081index a8d7dcf..d31e8f1 100644
1082--- a/lib/lp/archiveuploader/charmrecipeupload.py
1083+++ b/lib/lp/archiveuploader/charmrecipeupload.py
1084@@ -3,8 +3,6 @@
1085
1086 """Process a charm recipe upload."""
1087
1088-from __future__ import absolute_import, print_function, unicode_literals
1089-
1090 __metaclass__ = type
1091 __all__ = [
1092 "CharmRecipeUpload",
1093diff --git a/lib/lp/archiveuploader/ocirecipeupload.py b/lib/lp/archiveuploader/ocirecipeupload.py
1094index 3ace0da..cd99962 100644
1095--- a/lib/lp/archiveuploader/ocirecipeupload.py
1096+++ b/lib/lp/archiveuploader/ocirecipeupload.py
1097@@ -3,8 +3,6 @@
1098
1099 """Upload OCI build artifacts to the librarian."""
1100
1101-from __future__ import absolute_import, print_function, unicode_literals
1102-
1103 __metaclass__ = type
1104 __all__ = ['OCIRecipeUpload']
1105
1106diff --git a/lib/lp/archiveuploader/tests/__init__.py b/lib/lp/archiveuploader/tests/__init__.py
1107index e5abd8d..19a65f2 100644
1108--- a/lib/lp/archiveuploader/tests/__init__.py
1109+++ b/lib/lp/archiveuploader/tests/__init__.py
1110@@ -3,11 +3,6 @@
1111
1112 """Tests for the archive uploader."""
1113
1114-# XXX cjwatson 2018-05-03: We should use unicode_literals too, but this
1115-# requires a version of zope.configuration that includes
1116-# https://github.com/zopefoundation/zope.configuration/pull/19.
1117-from __future__ import absolute_import, print_function
1118-
1119 __metaclass__ = type
1120
1121 __all__ = [
1122diff --git a/lib/lp/archiveuploader/tests/test_buildduploads.py b/lib/lp/archiveuploader/tests/test_buildduploads.py
1123index 87066dd..3b764d0 100644
1124--- a/lib/lp/archiveuploader/tests/test_buildduploads.py
1125+++ b/lib/lp/archiveuploader/tests/test_buildduploads.py
1126@@ -3,8 +3,6 @@
1127
1128 """Test buildd uploads use-cases."""
1129
1130-from __future__ import absolute_import, print_function, unicode_literals
1131-
1132 __metaclass__ = type
1133
1134 import os
1135diff --git a/lib/lp/archiveuploader/tests/test_buildinfofile.py b/lib/lp/archiveuploader/tests/test_buildinfofile.py
1136index 59a1451..2724ab7 100644
1137--- a/lib/lp/archiveuploader/tests/test_buildinfofile.py
1138+++ b/lib/lp/archiveuploader/tests/test_buildinfofile.py
1139@@ -3,8 +3,6 @@
1140
1141 """Build information file tests."""
1142
1143-from __future__ import absolute_import, print_function, unicode_literals
1144-
1145 __metaclass__ = type
1146
1147 from debian.deb822 import Changes
1148diff --git a/lib/lp/archiveuploader/tests/test_changesfile.py b/lib/lp/archiveuploader/tests/test_changesfile.py
1149index 8f76d23..4e1e318 100644
1150--- a/lib/lp/archiveuploader/tests/test_changesfile.py
1151+++ b/lib/lp/archiveuploader/tests/test_changesfile.py
1152@@ -3,8 +3,6 @@
1153
1154 """Test ChangesFile functionality."""
1155
1156-from __future__ import absolute_import, print_function, unicode_literals
1157-
1158 __metaclass__ = type
1159
1160 import os
1161diff --git a/lib/lp/archiveuploader/tests/test_charmrecipeupload.py b/lib/lp/archiveuploader/tests/test_charmrecipeupload.py
1162index 72c14be..da801c4 100644
1163--- a/lib/lp/archiveuploader/tests/test_charmrecipeupload.py
1164+++ b/lib/lp/archiveuploader/tests/test_charmrecipeupload.py
1165@@ -3,8 +3,6 @@
1166
1167 """Tests for `CharmRecipeUpload`."""
1168
1169-from __future__ import absolute_import, print_function, unicode_literals
1170-
1171 __metaclass__ = type
1172
1173 import os
1174diff --git a/lib/lp/archiveuploader/tests/test_dscfile.py b/lib/lp/archiveuploader/tests/test_dscfile.py
1175index 3414a40..64c0cbf 100644
1176--- a/lib/lp/archiveuploader/tests/test_dscfile.py
1177+++ b/lib/lp/archiveuploader/tests/test_dscfile.py
1178@@ -3,8 +3,6 @@
1179
1180 """Test dscfile.py"""
1181
1182-from __future__ import absolute_import, print_function, unicode_literals
1183-
1184 __metaclass__ = type
1185
1186 from collections import namedtuple
1187diff --git a/lib/lp/archiveuploader/tests/test_livefsupload.py b/lib/lp/archiveuploader/tests/test_livefsupload.py
1188index b794785..a54c08a 100644
1189--- a/lib/lp/archiveuploader/tests/test_livefsupload.py
1190+++ b/lib/lp/archiveuploader/tests/test_livefsupload.py
1191@@ -3,8 +3,6 @@
1192
1193 """Test uploads of LiveFSBuilds."""
1194
1195-from __future__ import absolute_import, print_function, unicode_literals
1196-
1197 __metaclass__ = type
1198
1199 import os
1200diff --git a/lib/lp/archiveuploader/tests/test_nascentupload.py b/lib/lp/archiveuploader/tests/test_nascentupload.py
1201index 821e7b4..a599a7b 100644
1202--- a/lib/lp/archiveuploader/tests/test_nascentupload.py
1203+++ b/lib/lp/archiveuploader/tests/test_nascentupload.py
1204@@ -3,8 +3,6 @@
1205
1206 """Test NascentUpload functionality."""
1207
1208-from __future__ import absolute_import, print_function, unicode_literals
1209-
1210 __metaclass__ = type
1211
1212 from testtools import TestCase
1213diff --git a/lib/lp/archiveuploader/tests/test_nascentupload_documentation.py b/lib/lp/archiveuploader/tests/test_nascentupload_documentation.py
1214index bc18b56..311b84e 100644
1215--- a/lib/lp/archiveuploader/tests/test_nascentupload_documentation.py
1216+++ b/lib/lp/archiveuploader/tests/test_nascentupload_documentation.py
1217@@ -3,8 +3,6 @@
1218
1219 """Runs the doctests for archiveuploader module."""
1220
1221-from __future__ import absolute_import, print_function, unicode_literals
1222-
1223 __metaclass__ = type
1224
1225 import os
1226diff --git a/lib/lp/archiveuploader/tests/test_nascentuploadfile.py b/lib/lp/archiveuploader/tests/test_nascentuploadfile.py
1227index b43d762..1d0df62 100644
1228--- a/lib/lp/archiveuploader/tests/test_nascentuploadfile.py
1229+++ b/lib/lp/archiveuploader/tests/test_nascentuploadfile.py
1230@@ -3,8 +3,6 @@
1231
1232 """Test NascentUploadFile functionality."""
1233
1234-from __future__ import absolute_import, print_function, unicode_literals
1235-
1236 __metaclass__ = type
1237
1238 from functools import partial
1239diff --git a/lib/lp/archiveuploader/tests/test_ocirecipeupload.py b/lib/lp/archiveuploader/tests/test_ocirecipeupload.py
1240index b36d2c6..8ec2be1 100644
1241--- a/lib/lp/archiveuploader/tests/test_ocirecipeupload.py
1242+++ b/lib/lp/archiveuploader/tests/test_ocirecipeupload.py
1243@@ -3,8 +3,6 @@
1244
1245 """Tests for `OCIRecipeUpload`."""
1246
1247-from __future__ import absolute_import, print_function, unicode_literals
1248-
1249 __metaclass__ = type
1250
1251 import json
1252diff --git a/lib/lp/archiveuploader/tests/test_ppauploadprocessor.py b/lib/lp/archiveuploader/tests/test_ppauploadprocessor.py
1253index 3c91839..7e79bf1 100644
1254--- a/lib/lp/archiveuploader/tests/test_ppauploadprocessor.py
1255+++ b/lib/lp/archiveuploader/tests/test_ppauploadprocessor.py
1256@@ -7,8 +7,6 @@
1257
1258 """Functional tests for uploadprocessor.py."""
1259
1260-from __future__ import absolute_import, print_function, unicode_literals
1261-
1262 __metaclass__ = type
1263
1264 from operator import itemgetter
1265diff --git a/lib/lp/archiveuploader/tests/test_private_maintainers.py b/lib/lp/archiveuploader/tests/test_private_maintainers.py
1266index f55f8ed..093aa00 100644
1267--- a/lib/lp/archiveuploader/tests/test_private_maintainers.py
1268+++ b/lib/lp/archiveuploader/tests/test_private_maintainers.py
1269@@ -1,8 +1,6 @@
1270 # Copyright 2012-2018 Canonical Ltd. This software is licensed under the
1271 # GNU Affero General Public License version 3 (see the file LICENSE).
1272
1273-from __future__ import absolute_import, print_function, unicode_literals
1274-
1275 __metaclass__ = type
1276
1277 from lp.archiveuploader.dscfile import SignableTagFile
1278diff --git a/lib/lp/archiveuploader/tests/test_processupload.py b/lib/lp/archiveuploader/tests/test_processupload.py
1279index cf941bb..29917b5 100644
1280--- a/lib/lp/archiveuploader/tests/test_processupload.py
1281+++ b/lib/lp/archiveuploader/tests/test_processupload.py
1282@@ -1,8 +1,6 @@
1283 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
1284 # GNU Affero General Public License version 3 (see the file LICENSE).
1285
1286-from __future__ import absolute_import, print_function, unicode_literals
1287-
1288 __metaclass__ = type
1289
1290 import os
1291diff --git a/lib/lp/archiveuploader/tests/test_recipeuploads.py b/lib/lp/archiveuploader/tests/test_recipeuploads.py
1292index d064fda..a915fcf 100644
1293--- a/lib/lp/archiveuploader/tests/test_recipeuploads.py
1294+++ b/lib/lp/archiveuploader/tests/test_recipeuploads.py
1295@@ -3,8 +3,6 @@
1296
1297 """Test uploads of SourcePackageRecipeBuilds."""
1298
1299-from __future__ import absolute_import, print_function, unicode_literals
1300-
1301 __metaclass__ = type
1302
1303 import os
1304diff --git a/lib/lp/archiveuploader/tests/test_snapupload.py b/lib/lp/archiveuploader/tests/test_snapupload.py
1305index 9791a35..ffb5997 100644
1306--- a/lib/lp/archiveuploader/tests/test_snapupload.py
1307+++ b/lib/lp/archiveuploader/tests/test_snapupload.py
1308@@ -3,8 +3,6 @@
1309
1310 """Test uploads of SnapBuilds."""
1311
1312-from __future__ import absolute_import, print_function, unicode_literals
1313-
1314 __metaclass__ = type
1315
1316 import os
1317diff --git a/lib/lp/archiveuploader/tests/test_sync_notification.py b/lib/lp/archiveuploader/tests/test_sync_notification.py
1318index 4eb00f0..c2e0952 100644
1319--- a/lib/lp/archiveuploader/tests/test_sync_notification.py
1320+++ b/lib/lp/archiveuploader/tests/test_sync_notification.py
1321@@ -3,8 +3,6 @@
1322
1323 """Test notification behaviour for cross-distro package syncs."""
1324
1325-from __future__ import absolute_import, print_function, unicode_literals
1326-
1327 __metaclass__ = type
1328
1329 import os.path
1330diff --git a/lib/lp/archiveuploader/tests/test_tagfiles.py b/lib/lp/archiveuploader/tests/test_tagfiles.py
1331index 766438d..522ad64 100755
1332--- a/lib/lp/archiveuploader/tests/test_tagfiles.py
1333+++ b/lib/lp/archiveuploader/tests/test_tagfiles.py
1334@@ -3,8 +3,6 @@
1335 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
1336 # GNU Affero General Public License version 3 (see the file LICENSE).
1337
1338-from __future__ import absolute_import, print_function, unicode_literals
1339-
1340 import unittest
1341
1342 import apt_pkg
1343diff --git a/lib/lp/archiveuploader/tests/test_uploadpolicy.py b/lib/lp/archiveuploader/tests/test_uploadpolicy.py
1344index 0f2bab7..1885e6e 100644
1345--- a/lib/lp/archiveuploader/tests/test_uploadpolicy.py
1346+++ b/lib/lp/archiveuploader/tests/test_uploadpolicy.py
1347@@ -3,8 +3,6 @@
1348 # Copyright 2010-2018 Canonical Ltd. This software is licensed under the
1349 # GNU Affero General Public License version 3 (see the file LICENSE).
1350
1351-from __future__ import absolute_import, print_function, unicode_literals
1352-
1353 from zope.component import getUtility
1354 from zope.component.interfaces import ComponentLookupError
1355
1356diff --git a/lib/lp/archiveuploader/tests/test_uploadprocessor.py b/lib/lp/archiveuploader/tests/test_uploadprocessor.py
1357index efd1cb3..5613177 100644
1358--- a/lib/lp/archiveuploader/tests/test_uploadprocessor.py
1359+++ b/lib/lp/archiveuploader/tests/test_uploadprocessor.py
1360@@ -3,8 +3,6 @@
1361
1362 """Functional tests for uploadprocessor.py."""
1363
1364-from __future__ import absolute_import, print_function, unicode_literals
1365-
1366 __metaclass__ = type
1367 __all__ = [
1368 "MockOptions",
1369diff --git a/lib/lp/archiveuploader/tests/test_utils.py b/lib/lp/archiveuploader/tests/test_utils.py
1370index 3b538fd..d14cad0 100755
1371--- a/lib/lp/archiveuploader/tests/test_utils.py
1372+++ b/lib/lp/archiveuploader/tests/test_utils.py
1373@@ -3,8 +3,6 @@
1374 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
1375 # GNU Affero General Public License version 3 (see the file LICENSE).
1376
1377-from __future__ import absolute_import, print_function, unicode_literals
1378-
1379 import os
1380
1381 import six
1382diff --git a/lib/lp/blueprints/browser/tests/test_breadcrumbs.py b/lib/lp/blueprints/browser/tests/test_breadcrumbs.py
1383index c997762..3f63cc4 100644
1384--- a/lib/lp/blueprints/browser/tests/test_breadcrumbs.py
1385+++ b/lib/lp/blueprints/browser/tests/test_breadcrumbs.py
1386@@ -1,8 +1,6 @@
1387 # Copyright 2009-2010 Canonical Ltd. This software is licensed under the
1388 # GNU Affero General Public License version 3 (see the file LICENSE).
1389
1390-from __future__ import absolute_import, print_function, unicode_literals
1391-
1392 __metaclass__ = type
1393
1394 from lp.services.webapp.publisher import canonical_url
1395diff --git a/lib/lp/blueprints/browser/tests/test_hasspecifications.py b/lib/lp/blueprints/browser/tests/test_hasspecifications.py
1396index 9169b2c..4cfcd44 100644
1397--- a/lib/lp/blueprints/browser/tests/test_hasspecifications.py
1398+++ b/lib/lp/blueprints/browser/tests/test_hasspecifications.py
1399@@ -1,8 +1,6 @@
1400 # Copyright 2010 Canonical Ltd. This software is licensed under the
1401 # GNU Affero General Public License version 3 (see the file LICENSE).
1402
1403-from __future__ import absolute_import, print_function, unicode_literals
1404-
1405 __metaclass__ = type
1406
1407 from lp.testing import (
1408diff --git a/lib/lp/blueprints/browser/tests/test_menus.py b/lib/lp/blueprints/browser/tests/test_menus.py
1409index 2b07dc1..e35d40e 100644
1410--- a/lib/lp/blueprints/browser/tests/test_menus.py
1411+++ b/lib/lp/blueprints/browser/tests/test_menus.py
1412@@ -1,8 +1,6 @@
1413 # Copyright 2009 Canonical Ltd. This software is licensed under the
1414 # GNU Affero General Public License version 3 (see the file LICENSE).
1415
1416-from __future__ import absolute_import, print_function, unicode_literals
1417-
1418 __metaclass__ = type
1419
1420 from lp.blueprints.browser.specification import (
1421diff --git a/lib/lp/blueprints/browser/tests/test_person_upcomingwork.py b/lib/lp/blueprints/browser/tests/test_person_upcomingwork.py
1422index e5c79b2..26bf983 100644
1423--- a/lib/lp/blueprints/browser/tests/test_person_upcomingwork.py
1424+++ b/lib/lp/blueprints/browser/tests/test_person_upcomingwork.py
1425@@ -1,8 +1,6 @@
1426 # Copyright 2012 Canonical Ltd. This software is licensed under the
1427 # GNU Affero General Public License version 3 (see the file LICENSE).
1428
1429-from __future__ import absolute_import, print_function, unicode_literals
1430-
1431 __metaclass__ = type
1432
1433 from datetime import (
1434diff --git a/lib/lp/blueprints/browser/tests/test_specification.py b/lib/lp/blueprints/browser/tests/test_specification.py
1435index adfd2f2..6f73882 100644
1436--- a/lib/lp/blueprints/browser/tests/test_specification.py
1437+++ b/lib/lp/blueprints/browser/tests/test_specification.py
1438@@ -1,8 +1,6 @@
1439 # Copyright 2009-2017 Canonical Ltd. This software is licensed under the
1440 # GNU Affero General Public License version 3 (see the file LICENSE).
1441
1442-from __future__ import absolute_import, print_function, unicode_literals
1443-
1444 __metaclass__ = type
1445
1446 from datetime import datetime
1447diff --git a/lib/lp/blueprints/browser/tests/test_specificationdependency.py b/lib/lp/blueprints/browser/tests/test_specificationdependency.py
1448index 1426a10..05d4426 100644
1449--- a/lib/lp/blueprints/browser/tests/test_specificationdependency.py
1450+++ b/lib/lp/blueprints/browser/tests/test_specificationdependency.py
1451@@ -6,8 +6,6 @@
1452 There are also tests in lp/blueprints/stories/blueprints/xx-dependencies.txt.
1453 """
1454
1455-from __future__ import absolute_import, print_function, unicode_literals
1456-
1457 __metaclass__ = type
1458
1459 from lp.app.enums import InformationType
1460diff --git a/lib/lp/blueprints/browser/tests/test_specificationsubscription.py b/lib/lp/blueprints/browser/tests/test_specificationsubscription.py
1461index 7817d4e..e2a5684 100644
1462--- a/lib/lp/blueprints/browser/tests/test_specificationsubscription.py
1463+++ b/lib/lp/blueprints/browser/tests/test_specificationsubscription.py
1464@@ -1,8 +1,6 @@
1465 # Copyright 2011 Canonical Ltd. This software is licensed under the
1466 # GNU Affero General Public License version 3 (see the file LICENSE).
1467
1468-from __future__ import absolute_import, print_function, unicode_literals
1469-
1470 __metaclass__ = type
1471
1472 from lp.testing import (
1473diff --git a/lib/lp/blueprints/browser/tests/test_specificationtarget.py b/lib/lp/blueprints/browser/tests/test_specificationtarget.py
1474index aca15b6..58eb759 100644
1475--- a/lib/lp/blueprints/browser/tests/test_specificationtarget.py
1476+++ b/lib/lp/blueprints/browser/tests/test_specificationtarget.py
1477@@ -1,8 +1,6 @@
1478 # Copyright 2009-2012 Canonical Ltd. This software is licensed under the
1479 # GNU Affero General Public License version 3 (see the file LICENSE).
1480
1481-from __future__ import absolute_import, print_function, unicode_literals
1482-
1483 __metaclass__ = type
1484
1485 from fixtures import FakeLogger
1486diff --git a/lib/lp/blueprints/browser/tests/test_sprint.py b/lib/lp/blueprints/browser/tests/test_sprint.py
1487index 066d235..8364761 100644
1488--- a/lib/lp/blueprints/browser/tests/test_sprint.py
1489+++ b/lib/lp/blueprints/browser/tests/test_sprint.py
1490@@ -3,8 +3,6 @@
1491
1492 """Tests for Sprint pages and views."""
1493
1494-from __future__ import absolute_import, print_function, unicode_literals
1495-
1496 __metaclass__ = type
1497
1498 from fixtures import FakeLogger
1499diff --git a/lib/lp/blueprints/browser/tests/test_views.py b/lib/lp/blueprints/browser/tests/test_views.py
1500index cbbe2e5..cd51d18 100644
1501--- a/lib/lp/blueprints/browser/tests/test_views.py
1502+++ b/lib/lp/blueprints/browser/tests/test_views.py
1503@@ -3,8 +3,6 @@
1504
1505 """Run the view tests."""
1506
1507-from __future__ import absolute_import, print_function, unicode_literals
1508-
1509 import logging
1510 import os
1511 import unittest
1512diff --git a/lib/lp/blueprints/model/specificationbranch.py b/lib/lp/blueprints/model/specificationbranch.py
1513index 39bfee7..1917c6a 100644
1514--- a/lib/lp/blueprints/model/specificationbranch.py
1515+++ b/lib/lp/blueprints/model/specificationbranch.py
1516@@ -3,8 +3,6 @@
1517
1518 """Database classes for linking specifications and branches."""
1519
1520-from __future__ import absolute_import, print_function, unicode_literals
1521-
1522 __metaclass__ = type
1523
1524 __all__ = [
1525diff --git a/lib/lp/blueprints/model/tests/test_specification.py b/lib/lp/blueprints/model/tests/test_specification.py
1526index 73a8834..b6843ad 100644
1527--- a/lib/lp/blueprints/model/tests/test_specification.py
1528+++ b/lib/lp/blueprints/model/tests/test_specification.py
1529@@ -3,8 +3,6 @@
1530
1531 """Unit tests for blueprints here."""
1532
1533-from __future__ import absolute_import, print_function, unicode_literals
1534-
1535 __metaclass__ = type
1536
1537 from testtools.matchers import (
1538diff --git a/lib/lp/blueprints/model/tests/test_sprint.py b/lib/lp/blueprints/model/tests/test_sprint.py
1539index 2624025..18f3d13 100644
1540--- a/lib/lp/blueprints/model/tests/test_sprint.py
1541+++ b/lib/lp/blueprints/model/tests/test_sprint.py
1542@@ -3,8 +3,6 @@
1543
1544 """Unit test for sprints."""
1545
1546-from __future__ import absolute_import, print_function, unicode_literals
1547-
1548 __metaclass__ = type
1549
1550 import datetime
1551diff --git a/lib/lp/blueprints/model/tests/test_subscription.py b/lib/lp/blueprints/model/tests/test_subscription.py
1552index c1067de..9efc053 100644
1553--- a/lib/lp/blueprints/model/tests/test_subscription.py
1554+++ b/lib/lp/blueprints/model/tests/test_subscription.py
1555@@ -1,8 +1,6 @@
1556 # Copyright 2011 Canonical Ltd. This software is licensed under the
1557 # GNU Affero General Public License version 3 (see the file LICENSE).
1558
1559-from __future__ import absolute_import, print_function, unicode_literals
1560-
1561 __metaclass__ = type
1562
1563 from zope.component import getUtility
1564diff --git a/lib/lp/blueprints/tests/test_doc.py b/lib/lp/blueprints/tests/test_doc.py
1565index 0a21d3d..5eec6ae 100644
1566--- a/lib/lp/blueprints/tests/test_doc.py
1567+++ b/lib/lp/blueprints/tests/test_doc.py
1568@@ -3,8 +3,6 @@
1569
1570 """Run the doctests and pagetests."""
1571
1572-from __future__ import absolute_import, print_function, unicode_literals
1573-
1574 import os
1575
1576 from lp.services.testing import build_test_suite
1577diff --git a/lib/lp/blueprints/tests/test_hasspecifications.py b/lib/lp/blueprints/tests/test_hasspecifications.py
1578index be00566..dadfb41 100644
1579--- a/lib/lp/blueprints/tests/test_hasspecifications.py
1580+++ b/lib/lp/blueprints/tests/test_hasspecifications.py
1581@@ -3,8 +3,6 @@
1582
1583 """Unit tests for objects implementing IHasSpecifications."""
1584
1585-from __future__ import absolute_import, print_function, unicode_literals
1586-
1587 __metaclass__ = type
1588
1589 from lp.blueprints.enums import SpecificationDefinitionStatus
1590diff --git a/lib/lp/blueprints/tests/test_implements.py b/lib/lp/blueprints/tests/test_implements.py
1591index 8740057..5365733 100644
1592--- a/lib/lp/blueprints/tests/test_implements.py
1593+++ b/lib/lp/blueprints/tests/test_implements.py
1594@@ -3,8 +3,6 @@
1595
1596 """Tests that various objects implement specification-related interfaces."""
1597
1598-from __future__ import absolute_import, print_function, unicode_literals
1599-
1600 __metaclass__ = type
1601
1602 from lp.blueprints.interfaces.specificationtarget import (
1603diff --git a/lib/lp/blueprints/tests/test_publisher.py b/lib/lp/blueprints/tests/test_publisher.py
1604index 821fdfd..5c97bb8 100644
1605--- a/lib/lp/blueprints/tests/test_publisher.py
1606+++ b/lib/lp/blueprints/tests/test_publisher.py
1607@@ -3,8 +3,6 @@
1608
1609 """Tests for blueprints' custom publications."""
1610
1611-from __future__ import absolute_import, print_function, unicode_literals
1612-
1613 __metaclass__ = type
1614
1615 from lp.blueprints.publisher import BlueprintsLayer
1616diff --git a/lib/lp/blueprints/tests/test_specification.py b/lib/lp/blueprints/tests/test_specification.py
1617index dcc17b6..4bedc0f 100644
1618--- a/lib/lp/blueprints/tests/test_specification.py
1619+++ b/lib/lp/blueprints/tests/test_specification.py
1620@@ -3,8 +3,6 @@
1621
1622 """Unit tests for Specification."""
1623
1624-from __future__ import absolute_import, print_function, unicode_literals
1625-
1626 __metaclass__ = type
1627
1628 from datetime import (
1629diff --git a/lib/lp/blueprints/tests/test_specification_access_policy_triggers.py b/lib/lp/blueprints/tests/test_specification_access_policy_triggers.py
1630index dd759ba..f022c21 100644
1631--- a/lib/lp/blueprints/tests/test_specification_access_policy_triggers.py
1632+++ b/lib/lp/blueprints/tests/test_specification_access_policy_triggers.py
1633@@ -1,8 +1,6 @@
1634 # Copyright 2013 Canonical Ltd. This software is licensed under the
1635 # GNU Affero General Public License version 3 (see the file LICENSE).
1636
1637-from __future__ import absolute_import, print_function, unicode_literals
1638-
1639 __metaclass__ = type
1640
1641 from zope.component import getUtility
1642diff --git a/lib/lp/blueprints/tests/test_webservice.py b/lib/lp/blueprints/tests/test_webservice.py
1643index 39f1b92..2e3216a 100644
1644--- a/lib/lp/blueprints/tests/test_webservice.py
1645+++ b/lib/lp/blueprints/tests/test_webservice.py
1646@@ -3,8 +3,6 @@
1647
1648 """Webservice unit tests related to Launchpad blueprints."""
1649
1650-from __future__ import absolute_import, print_function, unicode_literals
1651-
1652 __metaclass__ = type
1653
1654 import json
1655diff --git a/lib/lp/blueprints/vocabularies/tests/test_specificationdependency.py b/lib/lp/blueprints/vocabularies/tests/test_specificationdependency.py
1656index 4740b74..6584ff3 100644
1657--- a/lib/lp/blueprints/vocabularies/tests/test_specificationdependency.py
1658+++ b/lib/lp/blueprints/vocabularies/tests/test_specificationdependency.py
1659@@ -6,8 +6,6 @@
1660 There is also a doctest in specificationdepcandidates.txt.
1661 """
1662
1663-from __future__ import absolute_import, print_function, unicode_literals
1664-
1665 __metaclass__ = type
1666
1667 from zope.schema.vocabulary import getVocabularyRegistry
1668diff --git a/lib/lp/bugs/browser/tests/test_bugtarget_filebug.py b/lib/lp/bugs/browser/tests/test_bugtarget_filebug.py
1669index 5e49729..5d04730 100644
1670--- a/lib/lp/bugs/browser/tests/test_bugtarget_filebug.py
1671+++ b/lib/lp/bugs/browser/tests/test_bugtarget_filebug.py
1672@@ -1,8 +1,6 @@
1673 # Copyright 2010-2020 Canonical Ltd. This software is licensed under the
1674 # GNU Affero General Public License version 3 (see the file LICENSE).
1675
1676-from __future__ import absolute_import, print_function, unicode_literals
1677-
1678 __metaclass__ = type
1679
1680 from textwrap import dedent
1681diff --git a/lib/lp/bugs/browser/tests/test_bugtask.py b/lib/lp/bugs/browser/tests/test_bugtask.py
1682index d3b37c5..6b03588 100644
1683--- a/lib/lp/bugs/browser/tests/test_bugtask.py
1684+++ b/lib/lp/bugs/browser/tests/test_bugtask.py
1685@@ -1,8 +1,6 @@
1686 # Copyright 2009-2021 Canonical Ltd. This software is licensed under the
1687 # GNU Affero General Public License version 3 (see the file LICENSE).
1688
1689-from __future__ import absolute_import, print_function, unicode_literals
1690-
1691 __metaclass__ = type
1692
1693 from datetime import (
1694diff --git a/lib/lp/bugs/browser/tests/test_bugwatch_views.py b/lib/lp/bugs/browser/tests/test_bugwatch_views.py
1695index 7cd8393..25113bc 100644
1696--- a/lib/lp/bugs/browser/tests/test_bugwatch_views.py
1697+++ b/lib/lp/bugs/browser/tests/test_bugwatch_views.py
1698@@ -3,8 +3,6 @@
1699
1700 """Tests for BugWatch views."""
1701
1702-from __future__ import absolute_import, print_function, unicode_literals
1703-
1704 __metaclass__ = type
1705
1706 from zope.component import getUtility
1707diff --git a/lib/lp/bugs/browser/tests/test_cve.py b/lib/lp/bugs/browser/tests/test_cve.py
1708index 8c4f024..93bc073 100644
1709--- a/lib/lp/bugs/browser/tests/test_cve.py
1710+++ b/lib/lp/bugs/browser/tests/test_cve.py
1711@@ -3,8 +3,6 @@
1712
1713 """CVE related tests."""
1714
1715-from __future__ import absolute_import, print_function, unicode_literals
1716-
1717 from functools import partial
1718 from operator import attrgetter
1719 import re
1720diff --git a/lib/lp/bugs/externalbugtracker/tests/test_github.py b/lib/lp/bugs/externalbugtracker/tests/test_github.py
1721index ecc3834..b342872 100644
1722--- a/lib/lp/bugs/externalbugtracker/tests/test_github.py
1723+++ b/lib/lp/bugs/externalbugtracker/tests/test_github.py
1724@@ -3,8 +3,6 @@
1725
1726 """Tests for the GitHub Issues BugTracker."""
1727
1728-from __future__ import absolute_import, print_function, unicode_literals
1729-
1730 __metaclass__ = type
1731
1732 from datetime import datetime
1733diff --git a/lib/lp/bugs/externalbugtracker/tests/test_gitlab.py b/lib/lp/bugs/externalbugtracker/tests/test_gitlab.py
1734index c09c2ab..4978b1f 100644
1735--- a/lib/lp/bugs/externalbugtracker/tests/test_gitlab.py
1736+++ b/lib/lp/bugs/externalbugtracker/tests/test_gitlab.py
1737@@ -3,8 +3,6 @@
1738
1739 """Tests for the GitLab Issues BugTracker."""
1740
1741-from __future__ import absolute_import, print_function, unicode_literals
1742-
1743 __metaclass__ = type
1744
1745 from datetime import datetime
1746diff --git a/lib/lp/bugs/mail/bugnotificationrecipients.py b/lib/lp/bugs/mail/bugnotificationrecipients.py
1747index ff1cf8b..bcec38d 100644
1748--- a/lib/lp/bugs/mail/bugnotificationrecipients.py
1749+++ b/lib/lp/bugs/mail/bugnotificationrecipients.py
1750@@ -3,8 +3,6 @@
1751
1752 """Code for handling bug notification recipients in bug mail."""
1753
1754-from __future__ import absolute_import, print_function, unicode_literals
1755-
1756 __metaclass__ = type
1757 __all__ = [
1758 'BugNotificationRecipients',
1759diff --git a/lib/lp/bugs/mail/tests/test_commands.py b/lib/lp/bugs/mail/tests/test_commands.py
1760index 00721f8..99072ce 100644
1761--- a/lib/lp/bugs/mail/tests/test_commands.py
1762+++ b/lib/lp/bugs/mail/tests/test_commands.py
1763@@ -1,8 +1,6 @@
1764 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
1765 # GNU Affero General Public License version 3 (see the file LICENSE).
1766
1767-from __future__ import absolute_import, print_function, unicode_literals
1768-
1769 from lazr.lifecycle.interfaces import (
1770 IObjectCreatedEvent,
1771 IObjectModifiedEvent,
1772diff --git a/lib/lp/bugs/model/bugbranch.py b/lib/lp/bugs/model/bugbranch.py
1773index 665f177..b5be80f 100644
1774--- a/lib/lp/bugs/model/bugbranch.py
1775+++ b/lib/lp/bugs/model/bugbranch.py
1776@@ -3,8 +3,6 @@
1777
1778 """Database classes for linking bugtasks and branches."""
1779
1780-from __future__ import absolute_import, print_function, unicode_literals
1781-
1782 __metaclass__ = type
1783
1784 __all__ = [
1785diff --git a/lib/lp/bugs/model/cve.py b/lib/lp/bugs/model/cve.py
1786index 8f5535d..112f5f9 100644
1787--- a/lib/lp/bugs/model/cve.py
1788+++ b/lib/lp/bugs/model/cve.py
1789@@ -1,8 +1,6 @@
1790 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
1791 # GNU Affero General Public License version 3 (see the file LICENSE).
1792
1793-from __future__ import absolute_import, print_function, unicode_literals
1794-
1795 __metaclass__ = type
1796
1797 __all__ = [
1798diff --git a/lib/lp/bugs/model/tests/test_bugtasksearch.py b/lib/lp/bugs/model/tests/test_bugtasksearch.py
1799index 1b2a339..af9f16a 100644
1800--- a/lib/lp/bugs/model/tests/test_bugtasksearch.py
1801+++ b/lib/lp/bugs/model/tests/test_bugtasksearch.py
1802@@ -1,8 +1,6 @@
1803 # Copyright 2010-2020 Canonical Ltd. This software is licensed under the
1804 # GNU Affero General Public License version 3 (see the file LICENSE).
1805
1806-from __future__ import absolute_import, print_function, unicode_literals
1807-
1808 __metaclass__ = type
1809
1810 from datetime import (
1811diff --git a/lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py b/lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py
1812index d8cad22..eaa2e79 100644
1813--- a/lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py
1814+++ b/lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py
1815@@ -3,8 +3,6 @@
1816
1817 """Classes and logic for the checkwatches BugWatchUpdater."""
1818
1819-from __future__ import absolute_import, print_function, unicode_literals
1820-
1821 __metaclass__ = type
1822 __all__ = [
1823 'BugWatchUpdater',
1824diff --git a/lib/lp/bugs/scripts/checkwatches/tests/test_bugwatchupdater.py b/lib/lp/bugs/scripts/checkwatches/tests/test_bugwatchupdater.py
1825index 9472091..82da441 100644
1826--- a/lib/lp/bugs/scripts/checkwatches/tests/test_bugwatchupdater.py
1827+++ b/lib/lp/bugs/scripts/checkwatches/tests/test_bugwatchupdater.py
1828@@ -3,8 +3,6 @@
1829
1830 """Tests for the checkwatches.bugwatchupdater module."""
1831
1832-from __future__ import absolute_import, print_function, unicode_literals
1833-
1834 __metaclass__ = type
1835
1836 from datetime import datetime
1837diff --git a/lib/lp/bugs/scripts/cveimport.py b/lib/lp/bugs/scripts/cveimport.py
1838index 3730fef..b29040f 100644
1839--- a/lib/lp/bugs/scripts/cveimport.py
1840+++ b/lib/lp/bugs/scripts/cveimport.py
1841@@ -5,8 +5,6 @@
1842 extract details of known CVE entries, and ensure that all of the known
1843 CVE's are fully registered in Launchpad."""
1844
1845-from __future__ import absolute_import, print_function, unicode_literals
1846-
1847 __metaclass__ = type
1848
1849 import gzip
1850diff --git a/lib/lp/bugs/scripts/debbugs.py b/lib/lp/bugs/scripts/debbugs.py
1851index c1c6b39..a15a73b 100644
1852--- a/lib/lp/bugs/scripts/debbugs.py
1853+++ b/lib/lp/bugs/scripts/debbugs.py
1854@@ -1,8 +1,6 @@
1855 # Copyright 2009 Canonical Ltd. This software is licensed under the
1856 # GNU Affero General Public License version 3 (see the file LICENSE).
1857
1858-from __future__ import absolute_import, print_function
1859-
1860 from datetime import datetime
1861 import email
1862 import io
1863diff --git a/lib/lp/bugs/scripts/tests/test_bugnotification.py b/lib/lp/bugs/scripts/tests/test_bugnotification.py
1864index 9973981..7f61e4c 100644
1865--- a/lib/lp/bugs/scripts/tests/test_bugnotification.py
1866+++ b/lib/lp/bugs/scripts/tests/test_bugnotification.py
1867@@ -2,8 +2,6 @@
1868 # GNU Affero General Public License version 3 (see the file LICENSE).
1869 """Tests for constructing bug notification emails for sending."""
1870
1871-from __future__ import absolute_import, print_function, unicode_literals
1872-
1873 __metaclass__ = type
1874
1875 from datetime import (
1876diff --git a/lib/lp/bugs/scripts/tests/test_cveimport.py b/lib/lp/bugs/scripts/tests/test_cveimport.py
1877index ba23db5..c2ea76c 100644
1878--- a/lib/lp/bugs/scripts/tests/test_cveimport.py
1879+++ b/lib/lp/bugs/scripts/tests/test_cveimport.py
1880@@ -1,8 +1,6 @@
1881 # Copyright 2018 Canonical Ltd. This software is licensed under the
1882 # GNU Affero General Public License version 3 (see the file LICENSE).
1883
1884-from __future__ import absolute_import, print_function, unicode_literals
1885-
1886 __metaclass__ = type
1887
1888 import gzip
1889diff --git a/lib/lp/bugs/tests/bug.py b/lib/lp/bugs/tests/bug.py
1890index 9653159..4ac066d 100644
1891--- a/lib/lp/bugs/tests/bug.py
1892+++ b/lib/lp/bugs/tests/bug.py
1893@@ -3,8 +3,6 @@
1894
1895 """Helper functions for bug-related doctests and pagetests."""
1896
1897-from __future__ import absolute_import, print_function
1898-
1899 from datetime import (
1900 datetime,
1901 timedelta,
1902diff --git a/lib/lp/bugs/tests/externalbugtracker.py b/lib/lp/bugs/tests/externalbugtracker.py
1903index fe969fe..5050f76 100644
1904--- a/lib/lp/bugs/tests/externalbugtracker.py
1905+++ b/lib/lp/bugs/tests/externalbugtracker.py
1906@@ -3,8 +3,6 @@
1907
1908 """Helper classes for testing ExternalSystem."""
1909
1910-from __future__ import absolute_import, print_function
1911-
1912 __metaclass__ = type
1913
1914 from contextlib import contextmanager
1915diff --git a/lib/lp/bugs/tests/test_bug.py b/lib/lp/bugs/tests/test_bug.py
1916index 2d76d10..dacbea9 100644
1917--- a/lib/lp/bugs/tests/test_bug.py
1918+++ b/lib/lp/bugs/tests/test_bug.py
1919@@ -3,8 +3,6 @@
1920
1921 """Tests for lp.bugs.model.Bug."""
1922
1923-from __future__ import absolute_import, print_function, unicode_literals
1924-
1925 __metaclass__ = type
1926
1927 from datetime import timedelta
1928diff --git a/lib/lp/bugs/tests/test_bugchanges.py b/lib/lp/bugs/tests/test_bugchanges.py
1929index 2c43f97..bd13985 100644
1930--- a/lib/lp/bugs/tests/test_bugchanges.py
1931+++ b/lib/lp/bugs/tests/test_bugchanges.py
1932@@ -3,8 +3,6 @@
1933
1934 """Tests for recording changes done to a bug."""
1935
1936-from __future__ import absolute_import, print_function, unicode_literals
1937-
1938 from lazr.lifecycle.event import ObjectCreatedEvent
1939 from testtools.matchers import (
1940 MatchesStructure,
1941diff --git a/lib/lp/bugs/tests/test_buglinktarget.py b/lib/lp/bugs/tests/test_buglinktarget.py
1942index ccccc38..b5f5352 100644
1943--- a/lib/lp/bugs/tests/test_buglinktarget.py
1944+++ b/lib/lp/bugs/tests/test_buglinktarget.py
1945@@ -7,8 +7,6 @@ This module will run the interface test against the CVE, Specification,
1946 Question, and BranchMergeProposal implementations of that interface.
1947 """
1948
1949-from __future__ import absolute_import, print_function, unicode_literals
1950-
1951 __metaclass__ = type
1952
1953 __all__ = []
1954diff --git a/lib/lp/bugs/tests/test_bugsubscription.py b/lib/lp/bugs/tests/test_bugsubscription.py
1955index a554cfc..d665841 100644
1956--- a/lib/lp/bugs/tests/test_bugsubscription.py
1957+++ b/lib/lp/bugs/tests/test_bugsubscription.py
1958@@ -3,8 +3,6 @@
1959
1960 """Tests for BugSubscriptions."""
1961
1962-from __future__ import absolute_import, print_function, unicode_literals
1963-
1964 __metaclass__ = type
1965
1966 import json
1967diff --git a/lib/lp/bugs/tests/test_bugtracker.py b/lib/lp/bugs/tests/test_bugtracker.py
1968index 67c6114..bd78368 100644
1969--- a/lib/lp/bugs/tests/test_bugtracker.py
1970+++ b/lib/lp/bugs/tests/test_bugtracker.py
1971@@ -1,8 +1,6 @@
1972 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
1973 # GNU Affero General Public License version 3 (see the file LICENSE).
1974
1975-from __future__ import absolute_import, print_function, unicode_literals
1976-
1977 __metaclass__ = type
1978
1979 from datetime import (
1980diff --git a/lib/lp/bugs/tests/test_bugtracker_vocabulary.py b/lib/lp/bugs/tests/test_bugtracker_vocabulary.py
1981index e766cd0..883f0ce 100644
1982--- a/lib/lp/bugs/tests/test_bugtracker_vocabulary.py
1983+++ b/lib/lp/bugs/tests/test_bugtracker_vocabulary.py
1984@@ -3,8 +3,6 @@
1985
1986 """Test the bug tracker vocabularies."""
1987
1988-from __future__ import absolute_import, print_function, unicode_literals
1989-
1990 __metaclass__ = type
1991
1992 from zope.schema.vocabulary import getVocabularyRegistry
1993diff --git a/lib/lp/bugs/tests/test_cve.py b/lib/lp/bugs/tests/test_cve.py
1994index 60d2d61..e131bb5 100644
1995--- a/lib/lp/bugs/tests/test_cve.py
1996+++ b/lib/lp/bugs/tests/test_cve.py
1997@@ -3,8 +3,6 @@
1998
1999 """CVE related tests."""
2000
2001-from __future__ import absolute_import, print_function, unicode_literals
2002-
2003 from zope.component import getUtility
2004
2005 from lp.bugs.interfaces.bugtasksearch import BugTaskSearchParams
2006diff --git a/lib/lp/bugs/utilities/tests/test_filebugdataparser.py b/lib/lp/bugs/utilities/tests/test_filebugdataparser.py
2007index 10858f7..d0d3734 100644
2008--- a/lib/lp/bugs/utilities/tests/test_filebugdataparser.py
2009+++ b/lib/lp/bugs/utilities/tests/test_filebugdataparser.py
2010@@ -9,8 +9,6 @@ information is uploaded as a MIME multipart message, where the different
2011 headers tells Launchpad what kind of information it is.
2012 """
2013
2014-from __future__ import absolute_import, print_function, unicode_literals
2015-
2016 __metaclass__ = type
2017
2018 import base64
2019diff --git a/lib/lp/buildmaster/browser/tests/test_builder.py b/lib/lp/buildmaster/browser/tests/test_builder.py
2020index a2d2408..9072c47 100644
2021--- a/lib/lp/buildmaster/browser/tests/test_builder.py
2022+++ b/lib/lp/buildmaster/browser/tests/test_builder.py
2023@@ -3,8 +3,6 @@
2024
2025 """Tests for the lp.soyuz.browser.builder module."""
2026
2027-from __future__ import absolute_import, print_function, unicode_literals
2028-
2029 __metaclass__ = type
2030
2031 from datetime import timedelta
2032diff --git a/lib/lp/buildmaster/browser/tests/test_builder_views.py b/lib/lp/buildmaster/browser/tests/test_builder_views.py
2033index 24a735b..4d5c76e 100644
2034--- a/lib/lp/buildmaster/browser/tests/test_builder_views.py
2035+++ b/lib/lp/buildmaster/browser/tests/test_builder_views.py
2036@@ -1,8 +1,6 @@
2037 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
2038 # GNU Affero General Public License version 3 (see the file LICENSE).
2039
2040-from __future__ import absolute_import, print_function, unicode_literals
2041-
2042 __metaclass__ = type
2043
2044 from functools import partial
2045diff --git a/lib/lp/buildmaster/browser/tests/test_processor.py b/lib/lp/buildmaster/browser/tests/test_processor.py
2046index bddcc04..0fa3928 100644
2047--- a/lib/lp/buildmaster/browser/tests/test_processor.py
2048+++ b/lib/lp/buildmaster/browser/tests/test_processor.py
2049@@ -3,8 +3,6 @@
2050
2051 """Tests for process navigation."""
2052
2053-from __future__ import absolute_import, print_function, unicode_literals
2054-
2055 __metaclass__ = type
2056
2057 from lp.services.webapp.publisher import canonical_url
2058diff --git a/lib/lp/buildmaster/builderproxy.py b/lib/lp/buildmaster/builderproxy.py
2059index 6b1e7e0..7ff9870 100644
2060--- a/lib/lp/buildmaster/builderproxy.py
2061+++ b/lib/lp/buildmaster/builderproxy.py
2062@@ -10,8 +10,6 @@ authenticated proxy; we provide builds with the necessary authentication
2063 token if and only if they are allowed general internet access.
2064 """
2065
2066-from __future__ import absolute_import, print_function, unicode_literals
2067-
2068 __metaclass__ = type
2069 __all__ = [
2070 "BuilderProxyMixin",
2071diff --git a/lib/lp/buildmaster/downloader.py b/lib/lp/buildmaster/downloader.py
2072index 0e1f28f..214918b 100644
2073--- a/lib/lp/buildmaster/downloader.py
2074+++ b/lib/lp/buildmaster/downloader.py
2075@@ -7,8 +7,6 @@ To minimise subprocess memory use, this intentionally avoids importing
2076 anything from the rest of Launchpad.
2077 """
2078
2079-from __future__ import absolute_import, print_function, unicode_literals
2080-
2081 __metaclass__ = type
2082 __all__ = [
2083 'DownloadCommand',
2084diff --git a/lib/lp/buildmaster/tests/builderproxy.py b/lib/lp/buildmaster/tests/builderproxy.py
2085index 4c9a326..96a6a4b 100644
2086--- a/lib/lp/buildmaster/tests/builderproxy.py
2087+++ b/lib/lp/buildmaster/tests/builderproxy.py
2088@@ -3,8 +3,6 @@
2089
2090 """Fixtures for dealing with the build time HTTP proxy."""
2091
2092-from __future__ import absolute_import, print_function, unicode_literals
2093-
2094 __metaclass__ = type
2095
2096 from datetime import datetime
2097diff --git a/lib/lp/buildmaster/tests/harness.py b/lib/lp/buildmaster/tests/harness.py
2098index 0cb68df..0c55b81 100644
2099--- a/lib/lp/buildmaster/tests/harness.py
2100+++ b/lib/lp/buildmaster/tests/harness.py
2101@@ -3,8 +3,6 @@
2102
2103 """TacHandler for `buildd-manager` daemon."""
2104
2105-from __future__ import absolute_import, print_function, unicode_literals
2106-
2107 __metaclass__ = type
2108
2109 __all__ = [
2110diff --git a/lib/lp/buildmaster/tests/mock_slaves.py b/lib/lp/buildmaster/tests/mock_slaves.py
2111index f1de4cb..f419b25 100644
2112--- a/lib/lp/buildmaster/tests/mock_slaves.py
2113+++ b/lib/lp/buildmaster/tests/mock_slaves.py
2114@@ -3,8 +3,6 @@
2115
2116 """Mock Build objects for tests soyuz buildd-system."""
2117
2118-from __future__ import absolute_import, print_function, unicode_literals
2119-
2120 __metaclass__ = type
2121
2122 __all__ = [
2123diff --git a/lib/lp/buildmaster/tests/test_builder.py b/lib/lp/buildmaster/tests/test_builder.py
2124index 33c4ca1..a1111d5 100644
2125--- a/lib/lp/buildmaster/tests/test_builder.py
2126+++ b/lib/lp/buildmaster/tests/test_builder.py
2127@@ -3,8 +3,6 @@
2128
2129 """Test Builder features."""
2130
2131-from __future__ import absolute_import, print_function, unicode_literals
2132-
2133 from fixtures import FakeLogger
2134 from zope.component import getUtility
2135 from zope.security.proxy import removeSecurityProxy
2136diff --git a/lib/lp/buildmaster/tests/test_buildfarmjob.py b/lib/lp/buildmaster/tests/test_buildfarmjob.py
2137index 401f8ff..85a49a9 100644
2138--- a/lib/lp/buildmaster/tests/test_buildfarmjob.py
2139+++ b/lib/lp/buildmaster/tests/test_buildfarmjob.py
2140@@ -3,8 +3,6 @@
2141
2142 """Tests for `IBuildFarmJob`."""
2143
2144-from __future__ import absolute_import, print_function, unicode_literals
2145-
2146 __metaclass__ = type
2147
2148 from datetime import (
2149diff --git a/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py b/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
2150index dc548c4..8b80346 100644
2151--- a/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
2152+++ b/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
2153@@ -3,8 +3,6 @@
2154
2155 """Unit tests for BuildFarmJobBehaviourBase."""
2156
2157-from __future__ import absolute_import, print_function, unicode_literals
2158-
2159 __metaclass__ = type
2160
2161 from collections import OrderedDict
2162diff --git a/lib/lp/buildmaster/tests/test_buildqueue.py b/lib/lp/buildmaster/tests/test_buildqueue.py
2163index 77ed62a..da11e87 100644
2164--- a/lib/lp/buildmaster/tests/test_buildqueue.py
2165+++ b/lib/lp/buildmaster/tests/test_buildqueue.py
2166@@ -2,8 +2,6 @@
2167 # GNU Affero General Public License version 3 (see the file LICENSE).
2168 """Test BuildQueue features."""
2169
2170-from __future__ import absolute_import, print_function, unicode_literals
2171-
2172 from datetime import timedelta
2173
2174 from zope.component import getUtility
2175diff --git a/lib/lp/buildmaster/tests/test_doc.py b/lib/lp/buildmaster/tests/test_doc.py
2176index 0630514..ba56281 100644
2177--- a/lib/lp/buildmaster/tests/test_doc.py
2178+++ b/lib/lp/buildmaster/tests/test_doc.py
2179@@ -3,8 +3,6 @@
2180
2181 """Run doctests and pagetests."""
2182
2183-from __future__ import absolute_import, print_function, unicode_literals
2184-
2185 import os
2186
2187 from lp.services.testing import build_test_suite
2188diff --git a/lib/lp/buildmaster/tests/test_interactor.py b/lib/lp/buildmaster/tests/test_interactor.py
2189index 3abbed3..19572f2 100644
2190--- a/lib/lp/buildmaster/tests/test_interactor.py
2191+++ b/lib/lp/buildmaster/tests/test_interactor.py
2192@@ -3,8 +3,6 @@
2193
2194 """Test BuilderInteractor features."""
2195
2196-from __future__ import absolute_import, print_function, unicode_literals
2197-
2198 __all__ = [
2199 'FakeBuildQueue',
2200 'MockBuilderFactory',
2201diff --git a/lib/lp/buildmaster/tests/test_manager.py b/lib/lp/buildmaster/tests/test_manager.py
2202index 2da4753..9f49176 100644
2203--- a/lib/lp/buildmaster/tests/test_manager.py
2204+++ b/lib/lp/buildmaster/tests/test_manager.py
2205@@ -7,8 +7,6 @@
2206
2207 """Tests for the renovated slave scanner aka BuilddManager."""
2208
2209-from __future__ import absolute_import, print_function, unicode_literals
2210-
2211 import os
2212 import signal
2213 import time
2214diff --git a/lib/lp/buildmaster/tests/test_packagebuild.py b/lib/lp/buildmaster/tests/test_packagebuild.py
2215index 9ff5f97..ea171f8 100644
2216--- a/lib/lp/buildmaster/tests/test_packagebuild.py
2217+++ b/lib/lp/buildmaster/tests/test_packagebuild.py
2218@@ -3,8 +3,6 @@
2219
2220 """Tests for `IPackageBuild`."""
2221
2222-from __future__ import absolute_import, print_function, unicode_literals
2223-
2224 __metaclass__ = type
2225
2226 import hashlib
2227diff --git a/lib/lp/buildmaster/tests/test_processor.py b/lib/lp/buildmaster/tests/test_processor.py
2228index 7bd8269..756dfda 100644
2229--- a/lib/lp/buildmaster/tests/test_processor.py
2230+++ b/lib/lp/buildmaster/tests/test_processor.py
2231@@ -3,8 +3,6 @@
2232
2233 """Test Processor features."""
2234
2235-from __future__ import absolute_import, print_function, unicode_literals
2236-
2237 from zope.component import getUtility
2238
2239 from lp.buildmaster.interfaces.processor import (
2240diff --git a/lib/lp/buildmaster/tests/test_queuedepth.py b/lib/lp/buildmaster/tests/test_queuedepth.py
2241index b9198e1..87bb318 100644
2242--- a/lib/lp/buildmaster/tests/test_queuedepth.py
2243+++ b/lib/lp/buildmaster/tests/test_queuedepth.py
2244@@ -2,8 +2,6 @@
2245 # GNU Affero General Public License version 3 (see the file LICENSE).
2246 """Test BuildQueue start time estimation."""
2247
2248-from __future__ import absolute_import, print_function, unicode_literals
2249-
2250 from datetime import (
2251 datetime,
2252 timedelta,
2253diff --git a/lib/lp/buildmaster/tests/test_webservice.py b/lib/lp/buildmaster/tests/test_webservice.py
2254index 5534c09..36a6350 100644
2255--- a/lib/lp/buildmaster/tests/test_webservice.py
2256+++ b/lib/lp/buildmaster/tests/test_webservice.py
2257@@ -3,8 +3,6 @@
2258
2259 """Tests for the builders webservice ."""
2260
2261-from __future__ import absolute_import, print_function, unicode_literals
2262-
2263 __metaclass__ = type
2264
2265 from json import dumps
2266diff --git a/lib/lp/charms/adapters/buildarch.py b/lib/lp/charms/adapters/buildarch.py
2267index 5c76fa9..ac32d86 100644
2268--- a/lib/lp/charms/adapters/buildarch.py
2269+++ b/lib/lp/charms/adapters/buildarch.py
2270@@ -1,8 +1,6 @@
2271 # Copyright 2021 Canonical Ltd. This software is licensed under the
2272 # GNU Affero General Public License version 3 (see the file LICENSE).
2273
2274-from __future__ import absolute_import, print_function, unicode_literals
2275-
2276 __metaclass__ = type
2277 __all__ = [
2278 "determine_instances_to_build",
2279diff --git a/lib/lp/charms/adapters/tests/test_buildarch.py b/lib/lp/charms/adapters/tests/test_buildarch.py
2280index 7511f67..569ad02 100644
2281--- a/lib/lp/charms/adapters/tests/test_buildarch.py
2282+++ b/lib/lp/charms/adapters/tests/test_buildarch.py
2283@@ -1,8 +1,6 @@
2284 # Copyright 2021 Canonical Ltd. This software is licensed under the
2285 # GNU Affero General Public License version 3 (see the file LICENSE).
2286
2287-from __future__ import absolute_import, print_function, unicode_literals
2288-
2289 __metaclass__ = type
2290
2291 from functools import partial
2292diff --git a/lib/lp/charms/browser/charmrecipe.py b/lib/lp/charms/browser/charmrecipe.py
2293index 1f6a9d8..501f700 100644
2294--- a/lib/lp/charms/browser/charmrecipe.py
2295+++ b/lib/lp/charms/browser/charmrecipe.py
2296@@ -3,8 +3,6 @@
2297
2298 """Charm recipe views."""
2299
2300-from __future__ import absolute_import, print_function, unicode_literals
2301-
2302 __metaclass__ = type
2303 __all__ = [
2304 "CharmRecipeAddView",
2305diff --git a/lib/lp/charms/browser/charmrecipebuild.py b/lib/lp/charms/browser/charmrecipebuild.py
2306index f695084..5addc5b 100644
2307--- a/lib/lp/charms/browser/charmrecipebuild.py
2308+++ b/lib/lp/charms/browser/charmrecipebuild.py
2309@@ -3,8 +3,6 @@
2310
2311 """Charm recipe build views."""
2312
2313-from __future__ import absolute_import, print_function, unicode_literals
2314-
2315 __metaclass__ = type
2316 __all__ = [
2317 "CharmRecipeBuildContextMenu",
2318diff --git a/lib/lp/charms/browser/charmrecipelisting.py b/lib/lp/charms/browser/charmrecipelisting.py
2319index d9b3edd..4105419 100644
2320--- a/lib/lp/charms/browser/charmrecipelisting.py
2321+++ b/lib/lp/charms/browser/charmrecipelisting.py
2322@@ -3,8 +3,6 @@
2323
2324 """Base class view for charm recipe listings."""
2325
2326-from __future__ import absolute_import, print_function, unicode_literals
2327-
2328 __metaclass__ = type
2329
2330 __all__ = [
2331diff --git a/lib/lp/charms/browser/hascharmrecipes.py b/lib/lp/charms/browser/hascharmrecipes.py
2332index 16f6f4c..7243201 100644
2333--- a/lib/lp/charms/browser/hascharmrecipes.py
2334+++ b/lib/lp/charms/browser/hascharmrecipes.py
2335@@ -3,8 +3,6 @@
2336
2337 """Mixins for browser classes for objects that have charm recipes."""
2338
2339-from __future__ import absolute_import, print_function, unicode_literals
2340-
2341 __metaclass__ = type
2342 __all__ = [
2343 "HasCharmRecipesMenuMixin",
2344diff --git a/lib/lp/charms/browser/tests/test_charmrecipe.py b/lib/lp/charms/browser/tests/test_charmrecipe.py
2345index 8b95ff8..6dc4a2d 100644
2346--- a/lib/lp/charms/browser/tests/test_charmrecipe.py
2347+++ b/lib/lp/charms/browser/tests/test_charmrecipe.py
2348@@ -3,8 +3,6 @@
2349
2350 """Test charm recipe views."""
2351
2352-from __future__ import absolute_import, print_function, unicode_literals
2353-
2354 __metaclass__ = type
2355
2356 from datetime import (
2357diff --git a/lib/lp/charms/browser/tests/test_charmrecipebuild.py b/lib/lp/charms/browser/tests/test_charmrecipebuild.py
2358index d9c6ebd..08c13a1 100644
2359--- a/lib/lp/charms/browser/tests/test_charmrecipebuild.py
2360+++ b/lib/lp/charms/browser/tests/test_charmrecipebuild.py
2361@@ -3,8 +3,6 @@
2362
2363 """Test charm recipe build views."""
2364
2365-from __future__ import absolute_import, print_function, unicode_literals
2366-
2367 __metaclass__ = type
2368
2369 import re
2370diff --git a/lib/lp/charms/browser/tests/test_charmrecipelisting.py b/lib/lp/charms/browser/tests/test_charmrecipelisting.py
2371index 5bfd233..792ca1f 100644
2372--- a/lib/lp/charms/browser/tests/test_charmrecipelisting.py
2373+++ b/lib/lp/charms/browser/tests/test_charmrecipelisting.py
2374@@ -3,8 +3,6 @@
2375
2376 """Test charm recipe listings."""
2377
2378-from __future__ import absolute_import, print_function, unicode_literals
2379-
2380 __metaclass__ = type
2381
2382 from datetime import (
2383diff --git a/lib/lp/charms/browser/tests/test_hascharmrecipes.py b/lib/lp/charms/browser/tests/test_hascharmrecipes.py
2384index 6cc7bf7..ff00c6e 100644
2385--- a/lib/lp/charms/browser/tests/test_hascharmrecipes.py
2386+++ b/lib/lp/charms/browser/tests/test_hascharmrecipes.py
2387@@ -3,8 +3,6 @@
2388
2389 """Test views for objects that have charm recipes."""
2390
2391-from __future__ import absolute_import, print_function, unicode_literals
2392-
2393 __metaclass__ = type
2394
2395 import soupmatchers
2396diff --git a/lib/lp/charms/browser/widgets/charmrecipebuildchannels.py b/lib/lp/charms/browser/widgets/charmrecipebuildchannels.py
2397index b1512ed..f5b2861 100644
2398--- a/lib/lp/charms/browser/widgets/charmrecipebuildchannels.py
2399+++ b/lib/lp/charms/browser/widgets/charmrecipebuildchannels.py
2400@@ -3,8 +3,6 @@
2401
2402 """A widget for selecting source snap channels for charm recipe builds."""
2403
2404-from __future__ import absolute_import, print_function, unicode_literals
2405-
2406 __metaclass__ = type
2407 __all__ = [
2408 "CharmRecipeBuildChannelsWidget",
2409diff --git a/lib/lp/charms/browser/widgets/tests/test_charmrecipebuildchannelswidget.py b/lib/lp/charms/browser/widgets/tests/test_charmrecipebuildchannelswidget.py
2410index 67b2040..b20d944 100644
2411--- a/lib/lp/charms/browser/widgets/tests/test_charmrecipebuildchannelswidget.py
2412+++ b/lib/lp/charms/browser/widgets/tests/test_charmrecipebuildchannelswidget.py
2413@@ -1,8 +1,6 @@
2414 # Copyright 2021 Canonical Ltd. This software is licensed under the
2415 # GNU Affero General Public License version 3 (see the file LICENSE).
2416
2417-from __future__ import absolute_import, print_function, unicode_literals
2418-
2419 __metaclass__ = type
2420
2421 import re
2422diff --git a/lib/lp/charms/interfaces/charmrecipe.py b/lib/lp/charms/interfaces/charmrecipe.py
2423index c7b7dd6..0f55360 100644
2424--- a/lib/lp/charms/interfaces/charmrecipe.py
2425+++ b/lib/lp/charms/interfaces/charmrecipe.py
2426@@ -3,8 +3,6 @@
2427
2428 """Charm recipe interfaces."""
2429
2430-from __future__ import absolute_import, print_function, unicode_literals
2431-
2432 __metaclass__ = type
2433 __all__ = [
2434 "BadCharmRecipeSource",
2435diff --git a/lib/lp/charms/interfaces/charmrecipebuild.py b/lib/lp/charms/interfaces/charmrecipebuild.py
2436index 077ccce..8b678bb 100644
2437--- a/lib/lp/charms/interfaces/charmrecipebuild.py
2438+++ b/lib/lp/charms/interfaces/charmrecipebuild.py
2439@@ -3,8 +3,6 @@
2440
2441 """Charm recipe build interfaces."""
2442
2443-from __future__ import absolute_import, print_function, unicode_literals
2444-
2445 __metaclass__ = type
2446 __all__ = [
2447 "ICharmFile",
2448diff --git a/lib/lp/charms/interfaces/charmrecipejob.py b/lib/lp/charms/interfaces/charmrecipejob.py
2449index 1094e5a..08eedc5 100644
2450--- a/lib/lp/charms/interfaces/charmrecipejob.py
2451+++ b/lib/lp/charms/interfaces/charmrecipejob.py
2452@@ -3,8 +3,6 @@
2453
2454 """Charm recipe job interfaces."""
2455
2456-from __future__ import absolute_import, print_function, unicode_literals
2457-
2458 __metaclass__ = type
2459 __all__ = [
2460 "ICharmRecipeJob",
2461diff --git a/lib/lp/charms/mail/charmrecipebuild.py b/lib/lp/charms/mail/charmrecipebuild.py
2462index 4486809..9f997cb 100644
2463--- a/lib/lp/charms/mail/charmrecipebuild.py
2464+++ b/lib/lp/charms/mail/charmrecipebuild.py
2465@@ -1,8 +1,6 @@
2466 # Copyright 2021 Canonical Ltd. This software is licensed under the
2467 # GNU Affero General Public License version 3 (see the file LICENSE).
2468
2469-from __future__ import absolute_import, print_function, unicode_literals
2470-
2471 __metaclass__ = type
2472 __all__ = [
2473 "CharmRecipeBuildMailer",
2474diff --git a/lib/lp/charms/model/charmrecipe.py b/lib/lp/charms/model/charmrecipe.py
2475index 163d393..1231749 100644
2476--- a/lib/lp/charms/model/charmrecipe.py
2477+++ b/lib/lp/charms/model/charmrecipe.py
2478@@ -3,8 +3,6 @@
2479
2480 """Charm recipes."""
2481
2482-from __future__ import absolute_import, print_function, unicode_literals
2483-
2484 __metaclass__ = type
2485 __all__ = [
2486 "CharmRecipe",
2487diff --git a/lib/lp/charms/model/charmrecipebuild.py b/lib/lp/charms/model/charmrecipebuild.py
2488index 088b7b1..3a38f2a 100644
2489--- a/lib/lp/charms/model/charmrecipebuild.py
2490+++ b/lib/lp/charms/model/charmrecipebuild.py
2491@@ -3,8 +3,6 @@
2492
2493 """Charm recipe builds."""
2494
2495-from __future__ import absolute_import, print_function, unicode_literals
2496-
2497 __metaclass__ = type
2498 __all__ = [
2499 "CharmFile",
2500diff --git a/lib/lp/charms/model/charmrecipebuildbehaviour.py b/lib/lp/charms/model/charmrecipebuildbehaviour.py
2501index e66545b..f5cc34d 100644
2502--- a/lib/lp/charms/model/charmrecipebuildbehaviour.py
2503+++ b/lib/lp/charms/model/charmrecipebuildbehaviour.py
2504@@ -6,8 +6,6 @@
2505 Dispatches charm recipe build jobs to build-farm slaves.
2506 """
2507
2508-from __future__ import absolute_import, print_function, unicode_literals
2509-
2510 __metaclass__ = type
2511 __all__ = [
2512 "CharmRecipeBuildBehaviour",
2513diff --git a/lib/lp/charms/model/charmrecipejob.py b/lib/lp/charms/model/charmrecipejob.py
2514index 555311d..354ce54 100644
2515--- a/lib/lp/charms/model/charmrecipejob.py
2516+++ b/lib/lp/charms/model/charmrecipejob.py
2517@@ -3,8 +3,6 @@
2518
2519 """Charm recipe jobs."""
2520
2521-from __future__ import absolute_import, print_function, unicode_literals
2522-
2523 __metaclass__ = type
2524 __all__ = [
2525 "CharmRecipeJob",
2526diff --git a/lib/lp/charms/tests/test_charmrecipe.py b/lib/lp/charms/tests/test_charmrecipe.py
2527index d4efb7c..21b7a50 100644
2528--- a/lib/lp/charms/tests/test_charmrecipe.py
2529+++ b/lib/lp/charms/tests/test_charmrecipe.py
2530@@ -3,8 +3,6 @@
2531
2532 """Test charm recipes."""
2533
2534-from __future__ import absolute_import, print_function, unicode_literals
2535-
2536 __metaclass__ = type
2537
2538 from textwrap import dedent
2539diff --git a/lib/lp/charms/tests/test_charmrecipebuild.py b/lib/lp/charms/tests/test_charmrecipebuild.py
2540index 7258d3a..0bc600a 100644
2541--- a/lib/lp/charms/tests/test_charmrecipebuild.py
2542+++ b/lib/lp/charms/tests/test_charmrecipebuild.py
2543@@ -3,8 +3,6 @@
2544
2545 """Test charm package build features."""
2546
2547-from __future__ import absolute_import, print_function, unicode_literals
2548-
2549 __metaclass__ = type
2550
2551 from datetime import (
2552diff --git a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
2553index 16c9dad..ea310a1 100644
2554--- a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
2555+++ b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
2556@@ -3,8 +3,6 @@
2557
2558 """Test charm recipe build behaviour."""
2559
2560-from __future__ import absolute_import, print_function, unicode_literals
2561-
2562 __metaclass__ = type
2563
2564 import base64
2565diff --git a/lib/lp/charms/tests/test_charmrecipejob.py b/lib/lp/charms/tests/test_charmrecipejob.py
2566index 6dbd168..ff93436 100644
2567--- a/lib/lp/charms/tests/test_charmrecipejob.py
2568+++ b/lib/lp/charms/tests/test_charmrecipejob.py
2569@@ -3,8 +3,6 @@
2570
2571 """Tests for charm recipe jobs."""
2572
2573-from __future__ import absolute_import, print_function, unicode_literals
2574-
2575 __metaclass__ = type
2576
2577 from textwrap import dedent
2578diff --git a/lib/lp/code/browser/tests/test_bazaar.py b/lib/lp/code/browser/tests/test_bazaar.py
2579index 5f63d76..42209d4 100644
2580--- a/lib/lp/code/browser/tests/test_bazaar.py
2581+++ b/lib/lp/code/browser/tests/test_bazaar.py
2582@@ -3,8 +3,6 @@
2583
2584 """Tests for classes in the lp.code.browser.bazaar module."""
2585
2586-from __future__ import absolute_import, print_function, unicode_literals
2587-
2588 __metaclass__ = type
2589
2590 from zope.security.proxy import removeSecurityProxy
2591diff --git a/lib/lp/code/browser/tests/test_branch.py b/lib/lp/code/browser/tests/test_branch.py
2592index 2727002..e5f41fb 100644
2593--- a/lib/lp/code/browser/tests/test_branch.py
2594+++ b/lib/lp/code/browser/tests/test_branch.py
2595@@ -3,8 +3,6 @@
2596
2597 """Unit tests for BranchView."""
2598
2599-from __future__ import absolute_import, print_function, unicode_literals
2600-
2601 __metaclass__ = type
2602
2603 from datetime import datetime
2604diff --git a/lib/lp/code/browser/tests/test_branchlisting.py b/lib/lp/code/browser/tests/test_branchlisting.py
2605index 5aed624..04afdc2 100644
2606--- a/lib/lp/code/browser/tests/test_branchlisting.py
2607+++ b/lib/lp/code/browser/tests/test_branchlisting.py
2608@@ -3,8 +3,6 @@
2609
2610 """Tests for branch listing."""
2611
2612-from __future__ import absolute_import, print_function, unicode_literals
2613-
2614 __metaclass__ = type
2615
2616 from datetime import timedelta
2617diff --git a/lib/lp/code/browser/tests/test_branchmergeproposal.py b/lib/lp/code/browser/tests/test_branchmergeproposal.py
2618index ba2ee85..c4a776d 100644
2619--- a/lib/lp/code/browser/tests/test_branchmergeproposal.py
2620+++ b/lib/lp/code/browser/tests/test_branchmergeproposal.py
2621@@ -7,8 +7,6 @@
2622
2623 """Unit tests for BranchMergeProposals."""
2624
2625-from __future__ import absolute_import, print_function, unicode_literals
2626-
2627 __metaclass__ = type
2628
2629 from datetime import (
2630diff --git a/lib/lp/code/browser/tests/test_branchmergeproposallisting.py b/lib/lp/code/browser/tests/test_branchmergeproposallisting.py
2631index b083358..c1346c3 100644
2632--- a/lib/lp/code/browser/tests/test_branchmergeproposallisting.py
2633+++ b/lib/lp/code/browser/tests/test_branchmergeproposallisting.py
2634@@ -3,8 +3,6 @@
2635
2636 """Unit tests for BranchMergeProposal listing views."""
2637
2638-from __future__ import absolute_import, print_function, unicode_literals
2639-
2640 __metaclass__ = type
2641
2642 from datetime import datetime
2643diff --git a/lib/lp/code/browser/tests/test_branchsubscription.py b/lib/lp/code/browser/tests/test_branchsubscription.py
2644index e75aac3..e901130 100644
2645--- a/lib/lp/code/browser/tests/test_branchsubscription.py
2646+++ b/lib/lp/code/browser/tests/test_branchsubscription.py
2647@@ -3,8 +3,6 @@
2648
2649 """Unit tests for BranchSubscriptions."""
2650
2651-from __future__ import absolute_import, print_function, unicode_literals
2652-
2653 __metaclass__ = type
2654
2655 from lp.app.enums import InformationType
2656diff --git a/lib/lp/code/browser/tests/test_branchtraversal.py b/lib/lp/code/browser/tests/test_branchtraversal.py
2657index c26a699..1129034 100644
2658--- a/lib/lp/code/browser/tests/test_branchtraversal.py
2659+++ b/lib/lp/code/browser/tests/test_branchtraversal.py
2660@@ -3,8 +3,6 @@
2661
2662 """Tests for branch traversal."""
2663
2664-from __future__ import absolute_import, print_function, unicode_literals
2665-
2666 from zope.component import getUtility
2667 from zope.publisher.interfaces import NotFound
2668 from zope.security.proxy import removeSecurityProxy
2669diff --git a/lib/lp/code/browser/tests/test_breadcrumbs.py b/lib/lp/code/browser/tests/test_breadcrumbs.py
2670index af9c33a..494ea67 100644
2671--- a/lib/lp/code/browser/tests/test_breadcrumbs.py
2672+++ b/lib/lp/code/browser/tests/test_breadcrumbs.py
2673@@ -1,8 +1,6 @@
2674 # Copyright 2010-2017 Canonical Ltd. This software is licensed under the
2675 # GNU Affero General Public License version 3 (see the file LICENSE).
2676
2677-from __future__ import absolute_import, print_function, unicode_literals
2678-
2679 __metaclass__ = type
2680
2681 from lp.testing.breadcrumbs import BaseBreadcrumbTestCase
2682diff --git a/lib/lp/code/browser/tests/test_codeimport.py b/lib/lp/code/browser/tests/test_codeimport.py
2683index 86cf64c..f8b1470 100644
2684--- a/lib/lp/code/browser/tests/test_codeimport.py
2685+++ b/lib/lp/code/browser/tests/test_codeimport.py
2686@@ -3,8 +3,6 @@
2687
2688 """Tests for the code import browser code."""
2689
2690-from __future__ import absolute_import, print_function, unicode_literals
2691-
2692 __metaclass__ = type
2693
2694 import re
2695diff --git a/lib/lp/code/browser/tests/test_codereviewcomment.py b/lib/lp/code/browser/tests/test_codereviewcomment.py
2696index e74e310..fb38ae1 100644
2697--- a/lib/lp/code/browser/tests/test_codereviewcomment.py
2698+++ b/lib/lp/code/browser/tests/test_codereviewcomment.py
2699@@ -3,8 +3,6 @@
2700
2701 """Unit tests for CodeReviewComments."""
2702
2703-from __future__ import absolute_import, print_function, unicode_literals
2704-
2705 __metaclass__ = type
2706
2707 import re
2708diff --git a/lib/lp/code/browser/tests/test_codereviewvote.py b/lib/lp/code/browser/tests/test_codereviewvote.py
2709index 7dbcf0c..f1cc64e 100644
2710--- a/lib/lp/code/browser/tests/test_codereviewvote.py
2711+++ b/lib/lp/code/browser/tests/test_codereviewvote.py
2712@@ -3,8 +3,6 @@
2713
2714 """Unit tests for CodeReviewVoteReferences."""
2715
2716-from __future__ import absolute_import, print_function, unicode_literals
2717-
2718 __metaclass__ = type
2719
2720 from lp.services.webapp import canonical_url
2721diff --git a/lib/lp/code/browser/tests/test_diff.py b/lib/lp/code/browser/tests/test_diff.py
2722index 0270e90..8538437 100644
2723--- a/lib/lp/code/browser/tests/test_diff.py
2724+++ b/lib/lp/code/browser/tests/test_diff.py
2725@@ -3,8 +3,6 @@
2726
2727 """Unit tests for DiffView."""
2728
2729-from __future__ import absolute_import, print_function, unicode_literals
2730-
2731 from lp.code.browser.diff import PreviewDiffFormatterAPI
2732 from lp.testing import TestCaseWithFactory
2733 from lp.testing.layers import LaunchpadFunctionalLayer
2734diff --git a/lib/lp/code/browser/tests/test_gitlisting.py b/lib/lp/code/browser/tests/test_gitlisting.py
2735index fab5cd4..7856dd0 100644
2736--- a/lib/lp/code/browser/tests/test_gitlisting.py
2737+++ b/lib/lp/code/browser/tests/test_gitlisting.py
2738@@ -3,8 +3,6 @@
2739
2740 """Unit tests for Git listing views."""
2741
2742-from __future__ import absolute_import, print_function, unicode_literals
2743-
2744 __metaclass__ = type
2745
2746 from zope.component import getUtility
2747diff --git a/lib/lp/code/browser/tests/test_gitref.py b/lib/lp/code/browser/tests/test_gitref.py
2748index 4ded628..59120fd 100644
2749--- a/lib/lp/code/browser/tests/test_gitref.py
2750+++ b/lib/lp/code/browser/tests/test_gitref.py
2751@@ -3,8 +3,6 @@
2752
2753 """Unit tests for GitRefView."""
2754
2755-from __future__ import absolute_import, print_function, unicode_literals
2756-
2757 __metaclass__ = type
2758
2759 from datetime import datetime
2760diff --git a/lib/lp/code/browser/tests/test_gitrepository.py b/lib/lp/code/browser/tests/test_gitrepository.py
2761index 843d60a..94bf2ce 100644
2762--- a/lib/lp/code/browser/tests/test_gitrepository.py
2763+++ b/lib/lp/code/browser/tests/test_gitrepository.py
2764@@ -3,8 +3,6 @@
2765
2766 """Unit tests for GitRepositoryView."""
2767
2768-from __future__ import absolute_import, print_function, unicode_literals
2769-
2770 __metaclass__ = type
2771
2772 import base64
2773diff --git a/lib/lp/code/browser/tests/test_gitsubscription.py b/lib/lp/code/browser/tests/test_gitsubscription.py
2774index 17c9136..54283c5 100644
2775--- a/lib/lp/code/browser/tests/test_gitsubscription.py
2776+++ b/lib/lp/code/browser/tests/test_gitsubscription.py
2777@@ -3,8 +3,6 @@
2778
2779 """Unit tests for GitSubscriptions."""
2780
2781-from __future__ import absolute_import, print_function, unicode_literals
2782-
2783 __metaclass__ = type
2784
2785 from fixtures import FakeLogger
2786diff --git a/lib/lp/code/browser/tests/test_product.py b/lib/lp/code/browser/tests/test_product.py
2787index 61a6240..32c6549 100644
2788--- a/lib/lp/code/browser/tests/test_product.py
2789+++ b/lib/lp/code/browser/tests/test_product.py
2790@@ -3,8 +3,6 @@
2791
2792 """Tests for the product view classes and templates."""
2793
2794-from __future__ import absolute_import, print_function, unicode_literals
2795-
2796 __metaclass__ = type
2797
2798 from datetime import (
2799diff --git a/lib/lp/code/browser/tests/test_revisionauthor.py b/lib/lp/code/browser/tests/test_revisionauthor.py
2800index 891409e..7321e4c 100644
2801--- a/lib/lp/code/browser/tests/test_revisionauthor.py
2802+++ b/lib/lp/code/browser/tests/test_revisionauthor.py
2803@@ -3,8 +3,6 @@
2804
2805 """Tests related to `RevisionAuthor`."""
2806
2807-from __future__ import absolute_import, print_function, unicode_literals
2808-
2809 __metaclass__ = type
2810
2811 from lp.app.browser.tales import (
2812diff --git a/lib/lp/code/browser/tests/test_sourcepackagerecipe.py b/lib/lp/code/browser/tests/test_sourcepackagerecipe.py
2813index 5ab4908..4dbe2be 100644
2814--- a/lib/lp/code/browser/tests/test_sourcepackagerecipe.py
2815+++ b/lib/lp/code/browser/tests/test_sourcepackagerecipe.py
2816@@ -3,8 +3,6 @@
2817
2818 """Tests for the source package recipe view classes and templates."""
2819
2820-from __future__ import absolute_import, print_function, unicode_literals
2821-
2822 __metaclass__ = type
2823
2824 from datetime import (
2825diff --git a/lib/lp/code/browser/tests/test_sourcepackagerecipebuild.py b/lib/lp/code/browser/tests/test_sourcepackagerecipebuild.py
2826index 3f3ec4f..8bb1345 100644
2827--- a/lib/lp/code/browser/tests/test_sourcepackagerecipebuild.py
2828+++ b/lib/lp/code/browser/tests/test_sourcepackagerecipebuild.py
2829@@ -3,8 +3,6 @@
2830
2831 """Tests for the source package recipe view classes and templates."""
2832
2833-from __future__ import absolute_import, print_function, unicode_literals
2834-
2835 __metaclass__ = type
2836
2837 from fixtures import FakeLogger
2838diff --git a/lib/lp/code/browser/tests/test_sourcepackagerecipelisting.py b/lib/lp/code/browser/tests/test_sourcepackagerecipelisting.py
2839index 8e6c963..63c623b 100644
2840--- a/lib/lp/code/browser/tests/test_sourcepackagerecipelisting.py
2841+++ b/lib/lp/code/browser/tests/test_sourcepackagerecipelisting.py
2842@@ -3,8 +3,6 @@
2843
2844 """Tests for sourcepackagerecipe listings."""
2845
2846-from __future__ import absolute_import, print_function, unicode_literals
2847-
2848 __metaclass__ = type
2849
2850 from lp.testing import (
2851diff --git a/lib/lp/code/browser/tests/test_tales.py b/lib/lp/code/browser/tests/test_tales.py
2852index dbd2f52..fc55ea3 100644
2853--- a/lib/lp/code/browser/tests/test_tales.py
2854+++ b/lib/lp/code/browser/tests/test_tales.py
2855@@ -3,8 +3,6 @@
2856
2857 """Tests for the tales formatters."""
2858
2859-from __future__ import absolute_import, print_function, unicode_literals
2860-
2861 __metaclass__ = type
2862
2863 from difflib import unified_diff
2864diff --git a/lib/lp/code/browser/tests/test_vcslisting.py b/lib/lp/code/browser/tests/test_vcslisting.py
2865index 127d9d3..d636010 100644
2866--- a/lib/lp/code/browser/tests/test_vcslisting.py
2867+++ b/lib/lp/code/browser/tests/test_vcslisting.py
2868@@ -3,8 +3,6 @@
2869
2870 """Tests for the product view classes and templates."""
2871
2872-from __future__ import absolute_import, print_function, unicode_literals
2873-
2874 __metaclass__ = type
2875
2876 from zope.publisher.interfaces import NotFound
2877diff --git a/lib/lp/code/browser/widgets/gitgrantee.py b/lib/lp/code/browser/widgets/gitgrantee.py
2878index 3720cf0..c4913dd 100644
2879--- a/lib/lp/code/browser/widgets/gitgrantee.py
2880+++ b/lib/lp/code/browser/widgets/gitgrantee.py
2881@@ -1,8 +1,6 @@
2882 # Copyright 2018 Canonical Ltd. This software is licensed under the
2883 # GNU Affero General Public License version 3 (see the file LICENSE).
2884
2885-from __future__ import absolute_import, print_function, unicode_literals
2886-
2887 __metaclass__ = type
2888 __all__ = [
2889 'GitGranteeDisplayWidget',
2890diff --git a/lib/lp/code/browser/widgets/tests/test_gitgrantee.py b/lib/lp/code/browser/widgets/tests/test_gitgrantee.py
2891index 28d0011..6d9bf55 100644
2892--- a/lib/lp/code/browser/widgets/tests/test_gitgrantee.py
2893+++ b/lib/lp/code/browser/widgets/tests/test_gitgrantee.py
2894@@ -1,8 +1,6 @@
2895 # Copyright 2018 Canonical Ltd. This software is licensed under the
2896 # GNU Affero General Public License version 3 (see the file LICENSE).
2897
2898-from __future__ import absolute_import, print_function, unicode_literals
2899-
2900 __metaclass__ = type
2901
2902 import re
2903diff --git a/lib/lp/code/browser/widgets/tests/test_gitrepositorytargetwidget.py b/lib/lp/code/browser/widgets/tests/test_gitrepositorytargetwidget.py
2904index 3d1c5b7..bcae3fd 100644
2905--- a/lib/lp/code/browser/widgets/tests/test_gitrepositorytargetwidget.py
2906+++ b/lib/lp/code/browser/widgets/tests/test_gitrepositorytargetwidget.py
2907@@ -1,8 +1,6 @@
2908 # Copyright 2015-2020 Canonical Ltd. This software is licensed under the
2909 # GNU Affero General Public License version 3 (see the file LICENSE).
2910
2911-from __future__ import absolute_import, print_function, unicode_literals
2912-
2913 __metaclass__ = type
2914
2915 import re
2916diff --git a/lib/lp/code/interfaces/gitactivity.py b/lib/lp/code/interfaces/gitactivity.py
2917index 00c3b26..ae1217c 100644
2918--- a/lib/lp/code/interfaces/gitactivity.py
2919+++ b/lib/lp/code/interfaces/gitactivity.py
2920@@ -3,8 +3,6 @@
2921
2922 """Git repository activity logs."""
2923
2924-from __future__ import absolute_import, print_function, unicode_literals
2925-
2926 __metaclass__ = type
2927 __all__ = [
2928 'IGitActivity',
2929diff --git a/lib/lp/code/interfaces/gitrule.py b/lib/lp/code/interfaces/gitrule.py
2930index 7b3c117..61ea290 100644
2931--- a/lib/lp/code/interfaces/gitrule.py
2932+++ b/lib/lp/code/interfaces/gitrule.py
2933@@ -3,8 +3,6 @@
2934
2935 """Git repository access rules."""
2936
2937-from __future__ import absolute_import, print_function, unicode_literals
2938-
2939 __metaclass__ = type
2940 __all__ = [
2941 'describe_git_permissions',
2942diff --git a/lib/lp/code/mail/patches.py b/lib/lp/code/mail/patches.py
2943index 51cf325..091dbc0 100644
2944--- a/lib/lp/code/mail/patches.py
2945+++ b/lib/lp/code/mail/patches.py
2946@@ -18,8 +18,6 @@
2947 # along with this program; if not, write to the Free Software
2948 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2949
2950-from __future__ import absolute_import
2951-
2952 from breezy.patches import (
2953 binary_files_re,
2954 hunk_from_header,
2955diff --git a/lib/lp/code/mail/tests/test_codehandler.py b/lib/lp/code/mail/tests/test_codehandler.py
2956index d826925..3ab963d 100644
2957--- a/lib/lp/code/mail/tests/test_codehandler.py
2958+++ b/lib/lp/code/mail/tests/test_codehandler.py
2959@@ -3,8 +3,6 @@
2960
2961 """Testing the CodeHandler."""
2962
2963-from __future__ import absolute_import, print_function, unicode_literals
2964-
2965 __metaclass__ = type
2966
2967 from textwrap import dedent
2968diff --git a/lib/lp/code/mail/tests/test_codeimport.py b/lib/lp/code/mail/tests/test_codeimport.py
2969index 03411f5..18ecb59 100644
2970--- a/lib/lp/code/mail/tests/test_codeimport.py
2971+++ b/lib/lp/code/mail/tests/test_codeimport.py
2972@@ -3,8 +3,6 @@
2973
2974 """Tests for code import related mailings"""
2975
2976-from __future__ import absolute_import, print_function, unicode_literals
2977-
2978 import textwrap
2979
2980 import six
2981diff --git a/lib/lp/code/mail/tests/test_codereviewcomment.py b/lib/lp/code/mail/tests/test_codereviewcomment.py
2982index 8c65a49..eca27d0 100644
2983--- a/lib/lp/code/mail/tests/test_codereviewcomment.py
2984+++ b/lib/lp/code/mail/tests/test_codereviewcomment.py
2985@@ -3,8 +3,6 @@
2986
2987 """Test CodeReviewComment emailing functionality."""
2988
2989-from __future__ import absolute_import, print_function, unicode_literals
2990-
2991 import testtools
2992 import transaction
2993 from zope.component import getUtility
2994diff --git a/lib/lp/code/model/branchhosting.py b/lib/lp/code/model/branchhosting.py
2995index 57e373c..79f1e49 100644
2996--- a/lib/lp/code/model/branchhosting.py
2997+++ b/lib/lp/code/model/branchhosting.py
2998@@ -3,8 +3,6 @@
2999
3000 """Communication with the Loggerhead API for Bazaar code hosting."""
3001
3002-from __future__ import absolute_import, print_function, unicode_literals
3003-
3004 __metaclass__ = type
3005 __all__ = [
3006 'BranchHostingClient',
3007diff --git a/lib/lp/code/model/branchsubscription.py b/lib/lp/code/model/branchsubscription.py
3008index 74ac06f..070e62f 100644
3009--- a/lib/lp/code/model/branchsubscription.py
3010+++ b/lib/lp/code/model/branchsubscription.py
3011@@ -1,8 +1,6 @@
3012 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
3013 # GNU Affero General Public License version 3 (see the file LICENSE).
3014
3015-from __future__ import absolute_import, print_function, unicode_literals
3016-
3017 __metaclass__ = type
3018 __all__ = ['BranchSubscription']
3019
3020diff --git a/lib/lp/code/model/codeimport.py b/lib/lp/code/model/codeimport.py
3021index 95d0b99..57dcb2f 100644
3022--- a/lib/lp/code/model/codeimport.py
3023+++ b/lib/lp/code/model/codeimport.py
3024@@ -3,8 +3,6 @@
3025
3026 """Database classes including and related to CodeImport."""
3027
3028-from __future__ import absolute_import, print_function, unicode_literals
3029-
3030 __metaclass__ = type
3031
3032 __all__ = [
3033diff --git a/lib/lp/code/model/codeimportevent.py b/lib/lp/code/model/codeimportevent.py
3034index 2cb2b4d..fef2ab8 100644
3035--- a/lib/lp/code/model/codeimportevent.py
3036+++ b/lib/lp/code/model/codeimportevent.py
3037@@ -3,8 +3,6 @@
3038
3039 """Database classes related to and including CodeImportEvent."""
3040
3041-from __future__ import absolute_import, print_function, unicode_literals
3042-
3043 __metaclass__ = type
3044 __all__ = [
3045 'CodeImportEvent',
3046diff --git a/lib/lp/code/model/codeimportjob.py b/lib/lp/code/model/codeimportjob.py
3047index 3afe6b4..989bc73 100644
3048--- a/lib/lp/code/model/codeimportjob.py
3049+++ b/lib/lp/code/model/codeimportjob.py
3050@@ -3,8 +3,6 @@
3051
3052 """Database classes for the CodeImportJob table."""
3053
3054-from __future__ import absolute_import, print_function, unicode_literals
3055-
3056 __metaclass__ = type
3057 __all__ = [
3058 'CodeImportJob',
3059diff --git a/lib/lp/code/model/codeimportmachine.py b/lib/lp/code/model/codeimportmachine.py
3060index 07d0028..eb66f0a 100644
3061--- a/lib/lp/code/model/codeimportmachine.py
3062+++ b/lib/lp/code/model/codeimportmachine.py
3063@@ -3,8 +3,6 @@
3064
3065 """Database classes including and related to CodeImportMachine."""
3066
3067-from __future__ import absolute_import, print_function, unicode_literals
3068-
3069 __metaclass__ = type
3070
3071 __all__ = [
3072diff --git a/lib/lp/code/model/codeimportresult.py b/lib/lp/code/model/codeimportresult.py
3073index 6c1a81f..d50928f 100644
3074--- a/lib/lp/code/model/codeimportresult.py
3075+++ b/lib/lp/code/model/codeimportresult.py
3076@@ -3,8 +3,6 @@
3077
3078 """Database classes for the CodeImportResult table."""
3079
3080-from __future__ import absolute_import, print_function, unicode_literals
3081-
3082 __metaclass__ = type
3083 __all__ = ['CodeImportResult', 'CodeImportResultSet']
3084
3085diff --git a/lib/lp/code/model/gitactivity.py b/lib/lp/code/model/gitactivity.py
3086index 8f17372..9ac33c6 100644
3087--- a/lib/lp/code/model/gitactivity.py
3088+++ b/lib/lp/code/model/gitactivity.py
3089@@ -3,8 +3,6 @@
3090
3091 """Git repository activity logs."""
3092
3093-from __future__ import absolute_import, print_function, unicode_literals
3094-
3095 __metaclass__ = type
3096 __all__ = [
3097 'GitActivity',
3098diff --git a/lib/lp/code/model/gitrule.py b/lib/lp/code/model/gitrule.py
3099index 52818bb..16b4b26 100644
3100--- a/lib/lp/code/model/gitrule.py
3101+++ b/lib/lp/code/model/gitrule.py
3102@@ -3,8 +3,6 @@
3103
3104 """Git repository access rules."""
3105
3106-from __future__ import absolute_import, print_function, unicode_literals
3107-
3108 __metaclass__ = type
3109 __all__ = [
3110 'GitRule',
3111diff --git a/lib/lp/code/model/sourcepackagerecipe.py b/lib/lp/code/model/sourcepackagerecipe.py
3112index 9eba658..a98f839 100644
3113--- a/lib/lp/code/model/sourcepackagerecipe.py
3114+++ b/lib/lp/code/model/sourcepackagerecipe.py
3115@@ -3,8 +3,6 @@
3116
3117 """Implementation of the `SourcePackageRecipe` content type."""
3118
3119-from __future__ import division
3120-
3121 __metaclass__ = type
3122 __all__ = [
3123 'SourcePackageRecipe',
3124diff --git a/lib/lp/code/model/tests/test_branch.py b/lib/lp/code/model/tests/test_branch.py
3125index d69c650..37299d9 100644
3126--- a/lib/lp/code/model/tests/test_branch.py
3127+++ b/lib/lp/code/model/tests/test_branch.py
3128@@ -3,8 +3,6 @@
3129
3130 """Tests for Branches."""
3131
3132-from __future__ import absolute_import, print_function, unicode_literals
3133-
3134 __metaclass__ = type
3135
3136 from datetime import (
3137diff --git a/lib/lp/code/model/tests/test_branchcloud.py b/lib/lp/code/model/tests/test_branchcloud.py
3138index 6c9cfbf..5406e1c 100644
3139--- a/lib/lp/code/model/tests/test_branchcloud.py
3140+++ b/lib/lp/code/model/tests/test_branchcloud.py
3141@@ -3,8 +3,6 @@
3142
3143 """Tests for IBranchCloud provider."""
3144
3145-from __future__ import absolute_import, print_function, unicode_literals
3146-
3147 __metaclass__ = type
3148
3149 from datetime import (
3150diff --git a/lib/lp/code/model/tests/test_branchcollection.py b/lib/lp/code/model/tests/test_branchcollection.py
3151index b02a942..bba26b9 100644
3152--- a/lib/lp/code/model/tests/test_branchcollection.py
3153+++ b/lib/lp/code/model/tests/test_branchcollection.py
3154@@ -3,8 +3,6 @@
3155
3156 """Tests for branch collections."""
3157
3158-from __future__ import absolute_import, print_function, unicode_literals
3159-
3160 __metaclass__ = type
3161
3162 from datetime import (
3163diff --git a/lib/lp/code/model/tests/test_branchhosting.py b/lib/lp/code/model/tests/test_branchhosting.py
3164index 4fe2ee6..56e0f1c 100644
3165--- a/lib/lp/code/model/tests/test_branchhosting.py
3166+++ b/lib/lp/code/model/tests/test_branchhosting.py
3167@@ -7,8 +7,6 @@ We don't currently do integration testing against a real hosting service,
3168 but we at least check that we're sending the right requests.
3169 """
3170
3171-from __future__ import absolute_import, print_function, unicode_literals
3172-
3173 __metaclass__ = type
3174
3175 from contextlib import contextmanager
3176diff --git a/lib/lp/code/model/tests/test_branchjob.py b/lib/lp/code/model/tests/test_branchjob.py
3177index d731310..f8e8ca0 100644
3178--- a/lib/lp/code/model/tests/test_branchjob.py
3179+++ b/lib/lp/code/model/tests/test_branchjob.py
3180@@ -3,8 +3,6 @@
3181
3182 """Tests for BranchJobs."""
3183
3184-from __future__ import absolute_import, print_function, unicode_literals
3185-
3186 __metaclass__ = type
3187
3188 import datetime
3189diff --git a/lib/lp/code/model/tests/test_branchlistingqueryoptimiser.py b/lib/lp/code/model/tests/test_branchlistingqueryoptimiser.py
3190index debec5e..64ad1b9 100644
3191--- a/lib/lp/code/model/tests/test_branchlistingqueryoptimiser.py
3192+++ b/lib/lp/code/model/tests/test_branchlistingqueryoptimiser.py
3193@@ -3,8 +3,6 @@
3194
3195 """Tests for the branch listing query optimiser."""
3196
3197-from __future__ import absolute_import, print_function, unicode_literals
3198-
3199 __metaclass__ = type
3200
3201 from storm.store import Store
3202diff --git a/lib/lp/code/model/tests/test_branchlookup.py b/lib/lp/code/model/tests/test_branchlookup.py
3203index c44c7a7..7c8903e 100644
3204--- a/lib/lp/code/model/tests/test_branchlookup.py
3205+++ b/lib/lp/code/model/tests/test_branchlookup.py
3206@@ -3,8 +3,6 @@
3207
3208 """Tests for the IBranchLookup implementation."""
3209
3210-from __future__ import absolute_import, print_function, unicode_literals
3211-
3212 __metaclass__ = type
3213
3214 from lazr.uri import URI
3215diff --git a/lib/lp/code/model/tests/test_branchmergeproposal.py b/lib/lp/code/model/tests/test_branchmergeproposal.py
3216index 2f6fa07..945e28d 100644
3217--- a/lib/lp/code/model/tests/test_branchmergeproposal.py
3218+++ b/lib/lp/code/model/tests/test_branchmergeproposal.py
3219@@ -3,8 +3,6 @@
3220
3221 """Tests for BranchMergeProposals."""
3222
3223-from __future__ import absolute_import, print_function, unicode_literals
3224-
3225 __metaclass__ = type
3226
3227 from datetime import (
3228diff --git a/lib/lp/code/model/tests/test_branchmergeproposaljobs.py b/lib/lp/code/model/tests/test_branchmergeproposaljobs.py
3229index 77a6ead..49d84c1 100644
3230--- a/lib/lp/code/model/tests/test_branchmergeproposaljobs.py
3231+++ b/lib/lp/code/model/tests/test_branchmergeproposaljobs.py
3232@@ -3,8 +3,6 @@
3233
3234 """Tests for branch merge proposal jobs."""
3235
3236-from __future__ import absolute_import, print_function, unicode_literals
3237-
3238 __metaclass__ = type
3239
3240 from datetime import (
3241diff --git a/lib/lp/code/model/tests/test_branchnamespace.py b/lib/lp/code/model/tests/test_branchnamespace.py
3242index 668363a..7eb53bb 100644
3243--- a/lib/lp/code/model/tests/test_branchnamespace.py
3244+++ b/lib/lp/code/model/tests/test_branchnamespace.py
3245@@ -3,8 +3,6 @@
3246
3247 """Tests for `IBranchNamespace` implementations."""
3248
3249-from __future__ import absolute_import, print_function, unicode_literals
3250-
3251 __metaclass__ = type
3252
3253 import six
3254diff --git a/lib/lp/code/model/tests/test_branchpuller.py b/lib/lp/code/model/tests/test_branchpuller.py
3255index b295bb3..9e0ab5d 100644
3256--- a/lib/lp/code/model/tests/test_branchpuller.py
3257+++ b/lib/lp/code/model/tests/test_branchpuller.py
3258@@ -3,8 +3,6 @@
3259
3260 """Tests for the branch puller model code."""
3261
3262-from __future__ import absolute_import, print_function, unicode_literals
3263-
3264 __metaclass__ = type
3265
3266 from datetime import (
3267diff --git a/lib/lp/code/model/tests/test_branchset.py b/lib/lp/code/model/tests/test_branchset.py
3268index 6f742eb..e79e43d 100644
3269--- a/lib/lp/code/model/tests/test_branchset.py
3270+++ b/lib/lp/code/model/tests/test_branchset.py
3271@@ -3,8 +3,6 @@
3272
3273 """Tests for BranchSet."""
3274
3275-from __future__ import absolute_import, print_function, unicode_literals
3276-
3277 __metaclass__ = type
3278
3279 from datetime import datetime
3280diff --git a/lib/lp/code/model/tests/test_branchsubscription.py b/lib/lp/code/model/tests/test_branchsubscription.py
3281index 9b13adf..955aaf3 100644
3282--- a/lib/lp/code/model/tests/test_branchsubscription.py
3283+++ b/lib/lp/code/model/tests/test_branchsubscription.py
3284@@ -3,8 +3,6 @@
3285
3286 """Tests for the BranchSubscription model object."""
3287
3288-from __future__ import absolute_import, print_function, unicode_literals
3289-
3290 __metaclass__ = type
3291
3292 from zope.component import getUtility
3293diff --git a/lib/lp/code/model/tests/test_branchtarget.py b/lib/lp/code/model/tests/test_branchtarget.py
3294index 376e39b..76fcc35 100644
3295--- a/lib/lp/code/model/tests/test_branchtarget.py
3296+++ b/lib/lp/code/model/tests/test_branchtarget.py
3297@@ -3,8 +3,6 @@
3298
3299 """Tests for branch contexts."""
3300
3301-from __future__ import absolute_import, print_function, unicode_literals
3302-
3303 __metaclass__ = type
3304
3305 from zope.security.proxy import removeSecurityProxy
3306diff --git a/lib/lp/code/model/tests/test_branchvisibility.py b/lib/lp/code/model/tests/test_branchvisibility.py
3307index f977d7b..2170c7c 100644
3308--- a/lib/lp/code/model/tests/test_branchvisibility.py
3309+++ b/lib/lp/code/model/tests/test_branchvisibility.py
3310@@ -10,8 +10,6 @@ Some branches are also considered "private". These are branches that
3311 are only visible to the owner of the branch, and the subscribers.
3312 """
3313
3314-from __future__ import absolute_import, print_function, unicode_literals
3315-
3316 __metaclass__ = type
3317
3318 from zope.component import (
3319diff --git a/lib/lp/code/model/tests/test_codeimport.py b/lib/lp/code/model/tests/test_codeimport.py
3320index 5943d2b..22fbe77 100644
3321--- a/lib/lp/code/model/tests/test_codeimport.py
3322+++ b/lib/lp/code/model/tests/test_codeimport.py
3323@@ -3,8 +3,6 @@
3324
3325 """Unit tests for methods of CodeImport and CodeImportSet."""
3326
3327-from __future__ import absolute_import, print_function, unicode_literals
3328-
3329 from datetime import (
3330 datetime,
3331 timedelta,
3332diff --git a/lib/lp/code/model/tests/test_codeimportjob.py b/lib/lp/code/model/tests/test_codeimportjob.py
3333index a5f3e6e..83b0091 100644
3334--- a/lib/lp/code/model/tests/test_codeimportjob.py
3335+++ b/lib/lp/code/model/tests/test_codeimportjob.py
3336@@ -3,8 +3,6 @@
3337
3338 """Unit tests for CodeImportJob and CodeImportJobWorkflow."""
3339
3340-from __future__ import absolute_import, print_function, unicode_literals
3341-
3342 __metaclass__ = type
3343
3344 __all__ = [
3345diff --git a/lib/lp/code/model/tests/test_codeimportmachine.py b/lib/lp/code/model/tests/test_codeimportmachine.py
3346index 5f688d4..1070610 100644
3347--- a/lib/lp/code/model/tests/test_codeimportmachine.py
3348+++ b/lib/lp/code/model/tests/test_codeimportmachine.py
3349@@ -5,8 +5,6 @@
3350
3351 Other tests are in codeimport-machine.txt."""
3352
3353-from __future__ import absolute_import, print_function, unicode_literals
3354-
3355 from zope.component import getUtility
3356
3357 from lp.code.enums import (
3358diff --git a/lib/lp/code/model/tests/test_codeimportresult.py b/lib/lp/code/model/tests/test_codeimportresult.py
3359index 0ccae83..a717bb4 100644
3360--- a/lib/lp/code/model/tests/test_codeimportresult.py
3361+++ b/lib/lp/code/model/tests/test_codeimportresult.py
3362@@ -3,8 +3,6 @@
3363
3364 """Tests for CodeImportResult."""
3365
3366-from __future__ import absolute_import, print_function, unicode_literals
3367-
3368 __metaclass__ = type
3369
3370 from datetime import datetime
3371diff --git a/lib/lp/code/model/tests/test_codereviewcomment.py b/lib/lp/code/model/tests/test_codereviewcomment.py
3372index 3669169..4ec62d8 100644
3373--- a/lib/lp/code/model/tests/test_codereviewcomment.py
3374+++ b/lib/lp/code/model/tests/test_codereviewcomment.py
3375@@ -3,8 +3,6 @@
3376
3377 """Unit tests for CodeReviewComment"""
3378
3379-from __future__ import absolute_import, print_function, unicode_literals
3380-
3381 from textwrap import dedent
3382
3383 from lazr.lifecycle.event import ObjectCreatedEvent
3384diff --git a/lib/lp/code/model/tests/test_codereviewinlinecomment.py b/lib/lp/code/model/tests/test_codereviewinlinecomment.py
3385index 9e292d6..27f8caa 100644
3386--- a/lib/lp/code/model/tests/test_codereviewinlinecomment.py
3387+++ b/lib/lp/code/model/tests/test_codereviewinlinecomment.py
3388@@ -3,8 +3,6 @@
3389
3390 """Tests for CodeReviewInlineComment{,Draft,Set}"""
3391
3392-from __future__ import absolute_import, print_function, unicode_literals
3393-
3394 __metaclass__ = type
3395
3396 from datetime import datetime
3397diff --git a/lib/lp/code/model/tests/test_codereviewkarma.py b/lib/lp/code/model/tests/test_codereviewkarma.py
3398index d763ba5..0db1b76 100644
3399--- a/lib/lp/code/model/tests/test_codereviewkarma.py
3400+++ b/lib/lp/code/model/tests/test_codereviewkarma.py
3401@@ -3,8 +3,6 @@
3402
3403 """Tests for karma allocated for code reviews."""
3404
3405-from __future__ import absolute_import, print_function, unicode_literals
3406-
3407 __metaclass__ = type
3408
3409 from lp.code.adapters.branch import BranchMergeProposalNoPreviewDiffDelta
3410diff --git a/lib/lp/code/model/tests/test_codereviewvote.py b/lib/lp/code/model/tests/test_codereviewvote.py
3411index 8a2edde..be47765 100644
3412--- a/lib/lp/code/model/tests/test_codereviewvote.py
3413+++ b/lib/lp/code/model/tests/test_codereviewvote.py
3414@@ -1,8 +1,6 @@
3415 # Copyright 2009-2018 Canonical Ltd. This software is licensed under the
3416 # GNU Affero General Public License version 3 (see the file LICENSE).
3417
3418-from __future__ import absolute_import, print_function, unicode_literals
3419-
3420 from zope.security.interfaces import Unauthorized
3421
3422 from lp.app.enums import InformationType
3423diff --git a/lib/lp/code/model/tests/test_diff.py b/lib/lp/code/model/tests/test_diff.py
3424index 71510b3..1c1827f 100644
3425--- a/lib/lp/code/model/tests/test_diff.py
3426+++ b/lib/lp/code/model/tests/test_diff.py
3427@@ -3,8 +3,6 @@
3428
3429 """Tests for Diff, etc."""
3430
3431-from __future__ import absolute_import, print_function, unicode_literals
3432-
3433 __metaclass__ = type
3434
3435 from difflib import unified_diff
3436diff --git a/lib/lp/code/model/tests/test_gitactivity.py b/lib/lp/code/model/tests/test_gitactivity.py
3437index 2c6e24b..c71394c 100644
3438--- a/lib/lp/code/model/tests/test_gitactivity.py
3439+++ b/lib/lp/code/model/tests/test_gitactivity.py
3440@@ -3,8 +3,6 @@
3441
3442 """Tests for Git repository activity logs."""
3443
3444-from __future__ import absolute_import, print_function, unicode_literals
3445-
3446 __metaclass__ = type
3447
3448 from storm.store import Store
3449diff --git a/lib/lp/code/model/tests/test_gitcollection.py b/lib/lp/code/model/tests/test_gitcollection.py
3450index 2c72590..d78ecf8 100644
3451--- a/lib/lp/code/model/tests/test_gitcollection.py
3452+++ b/lib/lp/code/model/tests/test_gitcollection.py
3453@@ -3,8 +3,6 @@
3454
3455 """Tests for Git repository collections."""
3456
3457-from __future__ import absolute_import, print_function, unicode_literals
3458-
3459 __metaclass__ = type
3460
3461 from datetime import (
3462diff --git a/lib/lp/code/model/tests/test_githosting.py b/lib/lp/code/model/tests/test_githosting.py
3463index b2060fe..242552a 100644
3464--- a/lib/lp/code/model/tests/test_githosting.py
3465+++ b/lib/lp/code/model/tests/test_githosting.py
3466@@ -11,8 +11,6 @@ We don't currently do integration testing against a real hosting service,
3467 but we at least check that we're sending the right requests.
3468 """
3469
3470-from __future__ import absolute_import, print_function, unicode_literals
3471-
3472 __metaclass__ = type
3473
3474 import base64
3475diff --git a/lib/lp/code/model/tests/test_gitjob.py b/lib/lp/code/model/tests/test_gitjob.py
3476index 1b41b35..ce11ee2 100644
3477--- a/lib/lp/code/model/tests/test_gitjob.py
3478+++ b/lib/lp/code/model/tests/test_gitjob.py
3479@@ -3,8 +3,6 @@
3480
3481 """Tests for `GitJob`s."""
3482
3483-from __future__ import absolute_import, print_function, unicode_literals
3484-
3485 __metaclass__ = type
3486
3487 from datetime import (
3488diff --git a/lib/lp/code/model/tests/test_gitlookup.py b/lib/lp/code/model/tests/test_gitlookup.py
3489index 2ec1e62..1aa7c39 100644
3490--- a/lib/lp/code/model/tests/test_gitlookup.py
3491+++ b/lib/lp/code/model/tests/test_gitlookup.py
3492@@ -3,8 +3,6 @@
3493
3494 """Tests for the IGitLookup implementation."""
3495
3496-from __future__ import absolute_import, print_function, unicode_literals
3497-
3498 __metaclass__ = type
3499
3500 from lazr.uri import URI
3501diff --git a/lib/lp/code/model/tests/test_gitnamespace.py b/lib/lp/code/model/tests/test_gitnamespace.py
3502index 5c12dbb..3b7bfcd 100644
3503--- a/lib/lp/code/model/tests/test_gitnamespace.py
3504+++ b/lib/lp/code/model/tests/test_gitnamespace.py
3505@@ -3,8 +3,6 @@
3506
3507 """Tests for `IGitNamespace` implementations."""
3508
3509-from __future__ import absolute_import, print_function, unicode_literals
3510-
3511 import six
3512 from zope.component import getUtility
3513 from zope.security.proxy import removeSecurityProxy
3514diff --git a/lib/lp/code/model/tests/test_gitref.py b/lib/lp/code/model/tests/test_gitref.py
3515index 1cef9df..e2eac23 100644
3516--- a/lib/lp/code/model/tests/test_gitref.py
3517+++ b/lib/lp/code/model/tests/test_gitref.py
3518@@ -3,8 +3,6 @@
3519
3520 """Tests for Git references."""
3521
3522-from __future__ import absolute_import, print_function, unicode_literals
3523-
3524 __metaclass__ = type
3525
3526 from datetime import (
3527diff --git a/lib/lp/code/model/tests/test_gitrepository.py b/lib/lp/code/model/tests/test_gitrepository.py
3528index 69d0595..203ceda 100644
3529--- a/lib/lp/code/model/tests/test_gitrepository.py
3530+++ b/lib/lp/code/model/tests/test_gitrepository.py
3531@@ -7,8 +7,6 @@
3532
3533 """Tests for Git repositories."""
3534
3535-from __future__ import absolute_import, print_function, unicode_literals
3536-
3537 __metaclass__ = type
3538
3539 from datetime import (
3540diff --git a/lib/lp/code/model/tests/test_gitrule.py b/lib/lp/code/model/tests/test_gitrule.py
3541index 31c3786..82b6b1a 100644
3542--- a/lib/lp/code/model/tests/test_gitrule.py
3543+++ b/lib/lp/code/model/tests/test_gitrule.py
3544@@ -3,8 +3,6 @@
3545
3546 """Tests for Git repository access rules."""
3547
3548-from __future__ import absolute_import, print_function, unicode_literals
3549-
3550 __metaclass__ = type
3551
3552 from storm.store import Store
3553diff --git a/lib/lp/code/model/tests/test_gitsubscription.py b/lib/lp/code/model/tests/test_gitsubscription.py
3554index 37f7550..489a556 100644
3555--- a/lib/lp/code/model/tests/test_gitsubscription.py
3556+++ b/lib/lp/code/model/tests/test_gitsubscription.py
3557@@ -3,8 +3,6 @@
3558
3559 """Tests for the GitSubscription model object."""
3560
3561-from __future__ import absolute_import, print_function, unicode_literals
3562-
3563 __metaclass__ = type
3564
3565 from lp.app.enums import InformationType
3566diff --git a/lib/lp/code/model/tests/test_hasbranches.py b/lib/lp/code/model/tests/test_hasbranches.py
3567index e92daae..dd9d596 100644
3568--- a/lib/lp/code/model/tests/test_hasbranches.py
3569+++ b/lib/lp/code/model/tests/test_hasbranches.py
3570@@ -3,8 +3,6 @@
3571
3572 """Tests for classes that implement IHasBranches."""
3573
3574-from __future__ import absolute_import, print_function, unicode_literals
3575-
3576 __metaclass__ = type
3577
3578 from functools import partial
3579diff --git a/lib/lp/code/model/tests/test_hasgitrepositories.py b/lib/lp/code/model/tests/test_hasgitrepositories.py
3580index 4878f4d..4f34bb0 100644
3581--- a/lib/lp/code/model/tests/test_hasgitrepositories.py
3582+++ b/lib/lp/code/model/tests/test_hasgitrepositories.py
3583@@ -3,8 +3,6 @@
3584
3585 """Tests for classes that implement IHasGitRepositories."""
3586
3587-from __future__ import absolute_import, print_function, unicode_literals
3588-
3589 __metaclass__ = type
3590
3591 from lp.code.interfaces.hasgitrepositories import IHasGitRepositories
3592diff --git a/lib/lp/code/model/tests/test_hasmergeproposals.py b/lib/lp/code/model/tests/test_hasmergeproposals.py
3593index 2ecf4c9..42e7fcf 100644
3594--- a/lib/lp/code/model/tests/test_hasmergeproposals.py
3595+++ b/lib/lp/code/model/tests/test_hasmergeproposals.py
3596@@ -3,8 +3,6 @@
3597
3598 """Tests for classes that implement IHasMergeProposals."""
3599
3600-from __future__ import absolute_import, print_function, unicode_literals
3601-
3602 __metaclass__ = type
3603
3604 from zope.interface.verify import verifyObject
3605diff --git a/lib/lp/code/model/tests/test_hasrecipes.py b/lib/lp/code/model/tests/test_hasrecipes.py
3606index 376ffec..d24b8d7 100644
3607--- a/lib/lp/code/model/tests/test_hasrecipes.py
3608+++ b/lib/lp/code/model/tests/test_hasrecipes.py
3609@@ -3,8 +3,6 @@
3610
3611 """Tests for classes that implement IHasRecipes."""
3612
3613-from __future__ import absolute_import, print_function, unicode_literals
3614-
3615 __metaclass__ = type
3616
3617 from lp.code.interfaces.hasrecipes import IHasRecipes
3618diff --git a/lib/lp/code/model/tests/test_linkedbranch.py b/lib/lp/code/model/tests/test_linkedbranch.py
3619index c731847..87b1ef8 100644
3620--- a/lib/lp/code/model/tests/test_linkedbranch.py
3621+++ b/lib/lp/code/model/tests/test_linkedbranch.py
3622@@ -3,8 +3,6 @@
3623
3624 """Tests for linked branch implementations."""
3625
3626-from __future__ import absolute_import, print_function, unicode_literals
3627-
3628 __metaclass__ = type
3629
3630 from zope.security.proxy import removeSecurityProxy
3631diff --git a/lib/lp/code/model/tests/test_recipebuilder.py b/lib/lp/code/model/tests/test_recipebuilder.py
3632index b578a5f..3a97747 100644
3633--- a/lib/lp/code/model/tests/test_recipebuilder.py
3634+++ b/lib/lp/code/model/tests/test_recipebuilder.py
3635@@ -3,8 +3,6 @@
3636
3637 """Test RecipeBuildBehaviour."""
3638
3639-from __future__ import absolute_import, print_function, unicode_literals
3640-
3641 __metaclass__ = type
3642
3643 import os.path
3644diff --git a/lib/lp/code/model/tests/test_revision.py b/lib/lp/code/model/tests/test_revision.py
3645index 67fd745..43c1fe5 100644
3646--- a/lib/lp/code/model/tests/test_revision.py
3647+++ b/lib/lp/code/model/tests/test_revision.py
3648@@ -3,8 +3,6 @@
3649
3650 """Tests for Revisions."""
3651
3652-from __future__ import absolute_import, print_function, unicode_literals
3653-
3654 __metaclass__ = type
3655
3656 from datetime import (
3657diff --git a/lib/lp/code/model/tests/test_revisionauthor.py b/lib/lp/code/model/tests/test_revisionauthor.py
3658index f68e8a5..e7fe785 100644
3659--- a/lib/lp/code/model/tests/test_revisionauthor.py
3660+++ b/lib/lp/code/model/tests/test_revisionauthor.py
3661@@ -3,8 +3,6 @@
3662
3663 """Tests for RevisionAuthors."""
3664
3665-from __future__ import absolute_import, print_function, unicode_literals
3666-
3667 __metaclass__ = type
3668
3669 import transaction
3670diff --git a/lib/lp/code/model/tests/test_revisioncache.py b/lib/lp/code/model/tests/test_revisioncache.py
3671index 9f531c3..3de1d53 100644
3672--- a/lib/lp/code/model/tests/test_revisioncache.py
3673+++ b/lib/lp/code/model/tests/test_revisioncache.py
3674@@ -3,8 +3,6 @@
3675
3676 """Tests relating to the revision cache."""
3677
3678-from __future__ import absolute_import, print_function, unicode_literals
3679-
3680 __metaclass__ = type
3681
3682 from datetime import (
3683diff --git a/lib/lp/code/model/tests/test_seriessourcepackagebranch.py b/lib/lp/code/model/tests/test_seriessourcepackagebranch.py
3684index b03f860..0e9d4a3 100644
3685--- a/lib/lp/code/model/tests/test_seriessourcepackagebranch.py
3686+++ b/lib/lp/code/model/tests/test_seriessourcepackagebranch.py
3687@@ -3,8 +3,6 @@
3688
3689 """Model tests for distro series source package branch links."""
3690
3691-from __future__ import absolute_import, print_function, unicode_literals
3692-
3693 __metaclass__ = type
3694
3695 from lp.code.model.seriessourcepackagebranch import (
3696diff --git a/lib/lp/code/model/tests/test_sourcepackagerecipe.py b/lib/lp/code/model/tests/test_sourcepackagerecipe.py
3697index b14b8ab..51b463c 100644
3698--- a/lib/lp/code/model/tests/test_sourcepackagerecipe.py
3699+++ b/lib/lp/code/model/tests/test_sourcepackagerecipe.py
3700@@ -3,8 +3,6 @@
3701
3702 """Tests for the SourcePackageRecipe content type."""
3703
3704-from __future__ import absolute_import, print_function, unicode_literals
3705-
3706 __metaclass__ = type
3707
3708 from datetime import (
3709diff --git a/lib/lp/code/model/tests/test_sourcepackagerecipebuild.py b/lib/lp/code/model/tests/test_sourcepackagerecipebuild.py
3710index d7c8595..98447ed 100644
3711--- a/lib/lp/code/model/tests/test_sourcepackagerecipebuild.py
3712+++ b/lib/lp/code/model/tests/test_sourcepackagerecipebuild.py
3713@@ -3,8 +3,6 @@
3714
3715 """Tests for source package builds."""
3716
3717-from __future__ import absolute_import, print_function, unicode_literals
3718-
3719 __metaclass__ = type
3720
3721 from datetime import (
3722diff --git a/lib/lp/code/tests/branch_helper.py b/lib/lp/code/tests/branch_helper.py
3723index ba869e2..0bc5495 100644
3724--- a/lib/lp/code/tests/branch_helper.py
3725+++ b/lib/lp/code/tests/branch_helper.py
3726@@ -3,8 +3,6 @@
3727
3728 """Helper methods for branch tests and pagetest."""
3729
3730-from __future__ import absolute_import, print_function, unicode_literals
3731-
3732 __metaclass__ = type
3733 __all__ = [
3734 'reset_all_branch_last_modified',
3735diff --git a/lib/lp/code/tests/codeimporthelpers.py b/lib/lp/code/tests/codeimporthelpers.py
3736index 3e177f6..15431d8 100644
3737--- a/lib/lp/code/tests/codeimporthelpers.py
3738+++ b/lib/lp/code/tests/codeimporthelpers.py
3739@@ -3,8 +3,6 @@
3740
3741 """Helpers for Code Import page tests."""
3742
3743-from __future__ import absolute_import, print_function, unicode_literals
3744-
3745 __metaclass__ = type
3746 __all__ = [
3747 'get_import_for_branch_name',
3748diff --git a/lib/lp/code/tests/helpers.py b/lib/lp/code/tests/helpers.py
3749index 11361ec..e479b87 100644
3750--- a/lib/lp/code/tests/helpers.py
3751+++ b/lib/lp/code/tests/helpers.py
3752@@ -3,13 +3,6 @@
3753
3754 """Helper functions for code testing live here."""
3755
3756-from __future__ import (
3757- absolute_import,
3758- division,
3759- print_function,
3760- unicode_literals,
3761- )
3762-
3763 __metaclass__ = type
3764 __all__ = [
3765 'add_revision_to_branch',
3766diff --git a/lib/lp/code/tests/test_branch.py b/lib/lp/code/tests/test_branch.py
3767index c95515e..a9e704d 100644
3768--- a/lib/lp/code/tests/test_branch.py
3769+++ b/lib/lp/code/tests/test_branch.py
3770@@ -3,8 +3,6 @@
3771
3772 """Unit tests for methods of Branch and BranchSet."""
3773
3774-from __future__ import absolute_import, print_function, unicode_literals
3775-
3776 from zope.component import getUtility
3777 from zope.security.proxy import removeSecurityProxy
3778
3779diff --git a/lib/lp/code/tests/test_branch_access_policy_triggers.py b/lib/lp/code/tests/test_branch_access_policy_triggers.py
3780index 7b7cc98..5476d81 100644
3781--- a/lib/lp/code/tests/test_branch_access_policy_triggers.py
3782+++ b/lib/lp/code/tests/test_branch_access_policy_triggers.py
3783@@ -1,8 +1,6 @@
3784 # Copyright 2012-2017 Canonical Ltd. This software is licensed under the
3785 # GNU Affero General Public License version 3 (see the file LICENSE).
3786
3787-from __future__ import absolute_import, print_function, unicode_literals
3788-
3789 __metaclass__ = type
3790
3791 from zope.component import getUtility
3792diff --git a/lib/lp/code/tests/test_branch_webservice.py b/lib/lp/code/tests/test_branch_webservice.py
3793index 9f41d98..ae44516 100644
3794--- a/lib/lp/code/tests/test_branch_webservice.py
3795+++ b/lib/lp/code/tests/test_branch_webservice.py
3796@@ -1,8 +1,6 @@
3797 # Copyright 2011-2017 Canonical Ltd. This software is licensed under the
3798 # GNU Affero General Public License version 3 (see the file LICENSE).
3799
3800-from __future__ import absolute_import, print_function, unicode_literals
3801-
3802 __metaclass__ = type
3803
3804 from lazr.restfulclient.errors import BadRequest
3805diff --git a/lib/lp/code/tests/test_branchmergeproposal.py b/lib/lp/code/tests/test_branchmergeproposal.py
3806index 92767d0..be5c4d1 100644
3807--- a/lib/lp/code/tests/test_branchmergeproposal.py
3808+++ b/lib/lp/code/tests/test_branchmergeproposal.py
3809@@ -3,8 +3,6 @@
3810
3811 """Unit tests for methods of BranchMergeProposal."""
3812
3813-from __future__ import absolute_import, print_function, unicode_literals
3814-
3815 from zope.component import getUtility
3816 from zope.security.proxy import removeSecurityProxy
3817
3818diff --git a/lib/lp/code/tests/test_branchurifield.py b/lib/lp/code/tests/test_branchurifield.py
3819index 6ef004e..08f2243 100644
3820--- a/lib/lp/code/tests/test_branchurifield.py
3821+++ b/lib/lp/code/tests/test_branchurifield.py
3822@@ -3,8 +3,6 @@
3823
3824 """Tests for BranchURIField."""
3825
3826-from __future__ import absolute_import, print_function, unicode_literals
3827-
3828 __metaclass__ = type
3829
3830 from lp.app.validators import LaunchpadValidationError
3831diff --git a/lib/lp/code/tests/test_bzr.py b/lib/lp/code/tests/test_bzr.py
3832index 6a62463..36b29a4 100644
3833--- a/lib/lp/code/tests/test_bzr.py
3834+++ b/lib/lp/code/tests/test_bzr.py
3835@@ -3,8 +3,6 @@
3836
3837 """Tests for lp.code.bzr."""
3838
3839-from __future__ import absolute_import, print_function, unicode_literals
3840-
3841 __metaclass__ = type
3842
3843 from breezy.errors import NoSuchRevision
3844diff --git a/lib/lp/code/tests/test_directbranchcommit.py b/lib/lp/code/tests/test_directbranchcommit.py
3845index 9930b67..e39b755 100644
3846--- a/lib/lp/code/tests/test_directbranchcommit.py
3847+++ b/lib/lp/code/tests/test_directbranchcommit.py
3848@@ -3,8 +3,6 @@
3849
3850 """Tests for `DirectBranchCommit`."""
3851
3852-from __future__ import absolute_import, print_function, unicode_literals
3853-
3854 __metaclass__ = type
3855
3856 import six
3857diff --git a/lib/lp/code/tests/test_doc.py b/lib/lp/code/tests/test_doc.py
3858index a3752ad..1ae5514 100644
3859--- a/lib/lp/code/tests/test_doc.py
3860+++ b/lib/lp/code/tests/test_doc.py
3861@@ -5,8 +5,6 @@
3862 Run the doctests and pagetests.
3863 """
3864
3865-from __future__ import absolute_import, print_function, unicode_literals
3866-
3867 import os
3868
3869 from zope.security.management import setSecurityPolicy
3870diff --git a/lib/lp/code/tests/test_helpers.py b/lib/lp/code/tests/test_helpers.py
3871index 2bcb443..df86fb7 100644
3872--- a/lib/lp/code/tests/test_helpers.py
3873+++ b/lib/lp/code/tests/test_helpers.py
3874@@ -3,8 +3,6 @@
3875
3876 """Test the code test helpers found in helpers.py."""
3877
3878-from __future__ import absolute_import, print_function, unicode_literals
3879-
3880 __metaclass__ = type
3881
3882 from datetime import (
3883diff --git a/lib/lp/code/tests/test_project.py b/lib/lp/code/tests/test_project.py
3884index e7cfe4b..61dd965 100644
3885--- a/lib/lp/code/tests/test_project.py
3886+++ b/lib/lp/code/tests/test_project.py
3887@@ -3,8 +3,6 @@
3888
3889 """Tests for product views."""
3890
3891-from __future__ import absolute_import, print_function, unicode_literals
3892-
3893 __metaclass__ = type
3894
3895 from lp.testing import TestCaseWithFactory
3896diff --git a/lib/lp/code/tests/test_publisher.py b/lib/lp/code/tests/test_publisher.py
3897index c2dcb10..fedded0 100644
3898--- a/lib/lp/code/tests/test_publisher.py
3899+++ b/lib/lp/code/tests/test_publisher.py
3900@@ -3,8 +3,6 @@
3901
3902 """Tests for code's custom publications."""
3903
3904-from __future__ import absolute_import, print_function, unicode_literals
3905-
3906 __metaclass__ = type
3907
3908 from lp.code.publisher import CodeLayer
3909diff --git a/lib/lp/code/tests/test_seriessourcepackagebranch.py b/lib/lp/code/tests/test_seriessourcepackagebranch.py
3910index 2874686..45e8dbf 100644
3911--- a/lib/lp/code/tests/test_seriessourcepackagebranch.py
3912+++ b/lib/lp/code/tests/test_seriessourcepackagebranch.py
3913@@ -3,8 +3,6 @@
3914
3915 """Tests for ISeriesSourcePackageBranch."""
3916
3917-from __future__ import absolute_import, print_function, unicode_literals
3918-
3919 __metaclass__ = type
3920
3921 from datetime import datetime
3922diff --git a/lib/lp/code/tests/test_yuitests.py b/lib/lp/code/tests/test_yuitests.py
3923index db563af..4e9ad9c 100644
3924--- a/lib/lp/code/tests/test_yuitests.py
3925+++ b/lib/lp/code/tests/test_yuitests.py
3926@@ -3,8 +3,6 @@
3927
3928 """Run YUI.test tests."""
3929
3930-from __future__ import absolute_import, print_function, unicode_literals
3931-
3932 __metaclass__ = type
3933 __all__ = []
3934
3935diff --git a/lib/lp/code/vocabularies/gitref.py b/lib/lp/code/vocabularies/gitref.py
3936index 3c2bf4a..865bc3e 100644
3937--- a/lib/lp/code/vocabularies/gitref.py
3938+++ b/lib/lp/code/vocabularies/gitref.py
3939@@ -3,9 +3,6 @@
3940
3941 """Vocabularies that contain Git references."""
3942
3943-from __future__ import absolute_import, print_function, unicode_literals
3944-
3945-
3946 __metaclass__ = type
3947 __all__ = [
3948 "GitBranchVocabulary",
3949diff --git a/lib/lp/code/vocabularies/gitrule.py b/lib/lp/code/vocabularies/gitrule.py
3950index b07e7b4..3758228 100644
3951--- a/lib/lp/code/vocabularies/gitrule.py
3952+++ b/lib/lp/code/vocabularies/gitrule.py
3953@@ -3,8 +3,6 @@
3954
3955 """Vocabularies related to Git access rules."""
3956
3957-from __future__ import absolute_import, print_function, unicode_literals
3958-
3959 __metaclass__ = type
3960 __all__ = [
3961 'GitPermissionsVocabulary',
3962diff --git a/lib/lp/code/vocabularies/tests/test_gitref_vocabularies.py b/lib/lp/code/vocabularies/tests/test_gitref_vocabularies.py
3963index 9edbff9..971ad7d 100644
3964--- a/lib/lp/code/vocabularies/tests/test_gitref_vocabularies.py
3965+++ b/lib/lp/code/vocabularies/tests/test_gitref_vocabularies.py
3966@@ -3,8 +3,6 @@
3967
3968 """Test the Git reference vocabularies."""
3969
3970-from __future__ import absolute_import, print_function, unicode_literals
3971-
3972 __metaclass__ = type
3973
3974 from datetime import (
3975diff --git a/lib/lp/code/vocabularies/tests/test_gitrule_vocabularies.py b/lib/lp/code/vocabularies/tests/test_gitrule_vocabularies.py
3976index a2cb584..8782768 100644
3977--- a/lib/lp/code/vocabularies/tests/test_gitrule_vocabularies.py
3978+++ b/lib/lp/code/vocabularies/tests/test_gitrule_vocabularies.py
3979@@ -3,8 +3,6 @@
3980
3981 """Test vocabularies related to Git access rules."""
3982
3983-from __future__ import absolute_import, print_function, unicode_literals
3984-
3985 __metaclass__ = type
3986
3987 from lp.code.enums import GitPermissionType
3988diff --git a/lib/lp/code/xmlrpc/tests/test_git.py b/lib/lp/code/xmlrpc/tests/test_git.py
3989index dbfe4ba..efc1087 100644
3990--- a/lib/lp/code/xmlrpc/tests/test_git.py
3991+++ b/lib/lp/code/xmlrpc/tests/test_git.py
3992@@ -3,8 +3,6 @@
3993
3994 """Tests for the internal Git API."""
3995
3996-from __future__ import absolute_import, print_function, unicode_literals
3997-
3998 __metaclass__ = type
3999
4000 from datetime import datetime
4001diff --git a/lib/lp/codehosting/__init__.py b/lib/lp/codehosting/__init__.py
4002index 0731704..c194128 100644
4003--- a/lib/lp/codehosting/__init__.py
4004+++ b/lib/lp/codehosting/__init__.py
4005@@ -7,8 +7,6 @@ NOTE: Importing this package will load any system Breezy plugins, as well as
4006 all plugins in the brzplugins/ directory underneath the rocketfuel checkout.
4007 """
4008
4009-from __future__ import absolute_import, print_function
4010-
4011 __metaclass__ = type
4012 __all__ = [
4013 'get_brz_path',
4014diff --git a/lib/lp/codehosting/bzrutils.py b/lib/lp/codehosting/bzrutils.py
4015index 3793be7..ee7efd6 100644
4016--- a/lib/lp/codehosting/bzrutils.py
4017+++ b/lib/lp/codehosting/bzrutils.py
4018@@ -7,8 +7,6 @@ Much of the code in here should be submitted upstream. The rest is code that
4019 integrates between Breezy's infrastructure and Launchpad's infrastructure.
4020 """
4021
4022-from __future__ import absolute_import, print_function
4023-
4024 __metaclass__ = type
4025 __all__ = [
4026 'add_exception_logging_hook',
4027diff --git a/lib/lp/codehosting/inmemory.py b/lib/lp/codehosting/inmemory.py
4028index 54ac995..2ac0c58 100644
4029--- a/lib/lp/codehosting/inmemory.py
4030+++ b/lib/lp/codehosting/inmemory.py
4031@@ -3,8 +3,6 @@
4032
4033 """In-memory doubles of core codehosting objects."""
4034
4035-from __future__ import absolute_import, print_function
4036-
4037 __metaclass__ = type
4038 __all__ = [
4039 'InMemoryFrontend',
4040diff --git a/lib/lp/codehosting/puller/__init__.py b/lib/lp/codehosting/puller/__init__.py
4041index a7e963e..48ec941 100644
4042--- a/lib/lp/codehosting/puller/__init__.py
4043+++ b/lib/lp/codehosting/puller/__init__.py
4044@@ -1,8 +1,6 @@
4045 # Copyright 2009 Canonical Ltd. This software is licensed under the
4046 # GNU Affero General Public License version 3 (see the file LICENSE).
4047
4048-from __future__ import absolute_import, print_function
4049-
4050 __metaclass__ = type
4051 __all__ = ['get_lock_id_for_branch_id', 'mirror']
4052
4053diff --git a/lib/lp/codehosting/puller/scheduler.py b/lib/lp/codehosting/puller/scheduler.py
4054index e2fbf88..e0b8363 100644
4055--- a/lib/lp/codehosting/puller/scheduler.py
4056+++ b/lib/lp/codehosting/puller/scheduler.py
4057@@ -1,8 +1,6 @@
4058 # Copyright 2009 Canonical Ltd. This software is licensed under the
4059 # GNU Affero General Public License version 3 (see the file LICENSE).
4060
4061-from __future__ import absolute_import, print_function
4062-
4063 __metaclass__ = type
4064 __all__ = [
4065 'BadMessage',
4066diff --git a/lib/lp/codehosting/puller/tests/__init__.py b/lib/lp/codehosting/puller/tests/__init__.py
4067index d0e8566..350eda7 100644
4068--- a/lib/lp/codehosting/puller/tests/__init__.py
4069+++ b/lib/lp/codehosting/puller/tests/__init__.py
4070@@ -3,8 +3,6 @@
4071
4072 """Common code for the puller tests."""
4073
4074-from __future__ import absolute_import, print_function
4075-
4076 __metaclass__ = type
4077
4078 import io
4079diff --git a/lib/lp/codehosting/puller/tests/test_acceptance.py b/lib/lp/codehosting/puller/tests/test_acceptance.py
4080index e40dc37..1f59b12 100644
4081--- a/lib/lp/codehosting/puller/tests/test_acceptance.py
4082+++ b/lib/lp/codehosting/puller/tests/test_acceptance.py
4083@@ -3,8 +3,6 @@
4084
4085 """End-to-end tests for the branch puller."""
4086
4087-from __future__ import absolute_import, print_function
4088-
4089 __metaclass__ = type
4090 __all__ = []
4091
4092diff --git a/lib/lp/codehosting/puller/tests/test_errors.py b/lib/lp/codehosting/puller/tests/test_errors.py
4093index bd9abfa..18ae10e 100644
4094--- a/lib/lp/codehosting/puller/tests/test_errors.py
4095+++ b/lib/lp/codehosting/puller/tests/test_errors.py
4096@@ -3,8 +3,6 @@
4097
4098 """Unit tests for the error presentation in worker.py."""
4099
4100-from __future__ import absolute_import, print_function
4101-
4102 __metaclass__ = type
4103
4104 import os
4105diff --git a/lib/lp/codehosting/puller/tests/test_scheduler.py b/lib/lp/codehosting/puller/tests/test_scheduler.py
4106index 6aabd08..f2a3f0a 100644
4107--- a/lib/lp/codehosting/puller/tests/test_scheduler.py
4108+++ b/lib/lp/codehosting/puller/tests/test_scheduler.py
4109@@ -1,8 +1,6 @@
4110 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
4111 # GNU Affero General Public License version 3 (see the file LICENSE).
4112
4113-from __future__ import absolute_import, print_function
4114-
4115 __metaclass__ = type
4116
4117 import logging
4118diff --git a/lib/lp/codehosting/puller/tests/test_worker.py b/lib/lp/codehosting/puller/tests/test_worker.py
4119index e011e54..bdef0a4 100644
4120--- a/lib/lp/codehosting/puller/tests/test_worker.py
4121+++ b/lib/lp/codehosting/puller/tests/test_worker.py
4122@@ -3,8 +3,6 @@
4123
4124 """Unit tests for worker.py."""
4125
4126-from __future__ import absolute_import, print_function
4127-
4128 __metaclass__ = type
4129
4130 import gc
4131diff --git a/lib/lp/codehosting/puller/tests/test_worker_formats.py b/lib/lp/codehosting/puller/tests/test_worker_formats.py
4132index a3c9e14..6996659 100644
4133--- a/lib/lp/codehosting/puller/tests/test_worker_formats.py
4134+++ b/lib/lp/codehosting/puller/tests/test_worker_formats.py
4135@@ -3,8 +3,6 @@
4136
4137 """Tests for the puller's support for various Bazaar formats."""
4138
4139-from __future__ import absolute_import, print_function
4140-
4141 __metaclass__ = type
4142
4143 from breezy.branch import Branch
4144diff --git a/lib/lp/codehosting/puller/worker.py b/lib/lp/codehosting/puller/worker.py
4145index 10e38f0..4ccfcbe 100644
4146--- a/lib/lp/codehosting/puller/worker.py
4147+++ b/lib/lp/codehosting/puller/worker.py
4148@@ -1,8 +1,6 @@
4149 # Copyright 2009-2020 Canonical Ltd. This software is licensed under the
4150 # GNU Affero General Public License version 3 (see the file LICENSE).
4151
4152-from __future__ import absolute_import, print_function
4153-
4154 __metaclass__ = type
4155
4156 import socket
4157diff --git a/lib/lp/codehosting/rewrite.py b/lib/lp/codehosting/rewrite.py
4158index 43f608e..f59520b 100644
4159--- a/lib/lp/codehosting/rewrite.py
4160+++ b/lib/lp/codehosting/rewrite.py
4161@@ -4,8 +4,6 @@
4162 """Implementation of the dynamic RewriteMap used to serve branches over HTTP.
4163 """
4164
4165-from __future__ import absolute_import, print_function
4166-
4167 import time
4168
4169 from breezy import urlutils
4170diff --git a/lib/lp/codehosting/scanner/buglinks.py b/lib/lp/codehosting/scanner/buglinks.py
4171index ece2d0e..116fb90 100644
4172--- a/lib/lp/codehosting/scanner/buglinks.py
4173+++ b/lib/lp/codehosting/scanner/buglinks.py
4174@@ -3,8 +3,6 @@
4175
4176 """Bugs support for the scanner."""
4177
4178-from __future__ import absolute_import, print_function
4179-
4180 __metaclass__ = type
4181 __all__ = [
4182 'BugBranchLinker',
4183diff --git a/lib/lp/codehosting/scanner/bzrsync.py b/lib/lp/codehosting/scanner/bzrsync.py
4184index bcf8960..158f222 100755
4185--- a/lib/lp/codehosting/scanner/bzrsync.py
4186+++ b/lib/lp/codehosting/scanner/bzrsync.py
4187@@ -5,8 +5,6 @@
4188
4189 """Import version control metadata from a Bazaar branch into the database."""
4190
4191-from __future__ import absolute_import, print_function
4192-
4193 __metaclass__ = type
4194
4195 __all__ = [
4196diff --git a/lib/lp/codehosting/scanner/email.py b/lib/lp/codehosting/scanner/email.py
4197index 914b380..7a184b4 100644
4198--- a/lib/lp/codehosting/scanner/email.py
4199+++ b/lib/lp/codehosting/scanner/email.py
4200@@ -3,8 +3,6 @@
4201
4202 """Email code for the branch scanner."""
4203
4204-from __future__ import absolute_import, print_function
4205-
4206 __metaclass__ = type
4207 __all__ = [
4208 'send_removed_revision_emails',
4209diff --git a/lib/lp/codehosting/scanner/events.py b/lib/lp/codehosting/scanner/events.py
4210index c5754c9..5687c33 100644
4211--- a/lib/lp/codehosting/scanner/events.py
4212+++ b/lib/lp/codehosting/scanner/events.py
4213@@ -3,8 +3,6 @@
4214
4215 """Events generated by the scanner."""
4216
4217-from __future__ import absolute_import, print_function
4218-
4219 __metaclass__ = type
4220 __all__ = [
4221 'NewMainlineRevisions',
4222diff --git a/lib/lp/codehosting/scanner/mergedetection.py b/lib/lp/codehosting/scanner/mergedetection.py
4223index 4811b40..135b64f 100644
4224--- a/lib/lp/codehosting/scanner/mergedetection.py
4225+++ b/lib/lp/codehosting/scanner/mergedetection.py
4226@@ -3,8 +3,6 @@
4227
4228 """The way the branch scanner handles merges."""
4229
4230-from __future__ import absolute_import, print_function
4231-
4232 __metaclass__ = type
4233 __all__ = [
4234 'auto_merge_branches',
4235diff --git a/lib/lp/codehosting/scanner/tests/test_buglinks.py b/lib/lp/codehosting/scanner/tests/test_buglinks.py
4236index a2286ac..bc78cc5 100644
4237--- a/lib/lp/codehosting/scanner/tests/test_buglinks.py
4238+++ b/lib/lp/codehosting/scanner/tests/test_buglinks.py
4239@@ -3,8 +3,6 @@
4240
4241 """Tests for creating BugBranch items based on Breezy revisions."""
4242
4243-from __future__ import absolute_import, print_function
4244-
4245 __metaclass__ = type
4246
4247 from breezy.revision import Revision
4248diff --git a/lib/lp/codehosting/scanner/tests/test_bzrsync.py b/lib/lp/codehosting/scanner/tests/test_bzrsync.py
4249index 4650909..77ef3d5 100644
4250--- a/lib/lp/codehosting/scanner/tests/test_bzrsync.py
4251+++ b/lib/lp/codehosting/scanner/tests/test_bzrsync.py
4252@@ -3,8 +3,6 @@
4253 # Copyright 2009-2019 Canonical Ltd. This software is licensed under the
4254 # GNU Affero General Public License version 3 (see the file LICENSE).
4255
4256-from __future__ import absolute_import, print_function
4257-
4258 import datetime
4259 import os
4260 import random
4261diff --git a/lib/lp/codehosting/scanner/tests/test_email.py b/lib/lp/codehosting/scanner/tests/test_email.py
4262index 5fb3a8b..3072ec2 100644
4263--- a/lib/lp/codehosting/scanner/tests/test_email.py
4264+++ b/lib/lp/codehosting/scanner/tests/test_email.py
4265@@ -3,8 +3,6 @@
4266
4267 """Tests for the scanner's email generation."""
4268
4269-from __future__ import absolute_import, print_function
4270-
4271 __metaclass__ = type
4272
4273 import os
4274diff --git a/lib/lp/codehosting/scanner/tests/test_mergedetection.py b/lib/lp/codehosting/scanner/tests/test_mergedetection.py
4275index fa5ecfc..a70678b 100644
4276--- a/lib/lp/codehosting/scanner/tests/test_mergedetection.py
4277+++ b/lib/lp/codehosting/scanner/tests/test_mergedetection.py
4278@@ -3,8 +3,6 @@
4279
4280 """Tests for the scanner's merge detection."""
4281
4282-from __future__ import absolute_import, print_function
4283-
4284 __metaclass__ = type
4285
4286 import logging
4287diff --git a/lib/lp/codehosting/scripts/modifiedbranches.py b/lib/lp/codehosting/scripts/modifiedbranches.py
4288index 5ea0255..93acf1a 100644
4289--- a/lib/lp/codehosting/scripts/modifiedbranches.py
4290+++ b/lib/lp/codehosting/scripts/modifiedbranches.py
4291@@ -3,8 +3,6 @@
4292
4293 """Implementation of the Launchpad script to list modified branches."""
4294
4295-from __future__ import absolute_import, print_function
4296-
4297 __metaclass__ = type
4298 __all__ = ['ModifiedBranchesScript']
4299
4300diff --git a/lib/lp/codehosting/scripts/sync_branches.py b/lib/lp/codehosting/scripts/sync_branches.py
4301index d138a28..004c8b1 100644
4302--- a/lib/lp/codehosting/scripts/sync_branches.py
4303+++ b/lib/lp/codehosting/scripts/sync_branches.py
4304@@ -3,8 +3,6 @@
4305
4306 """Sync branches from production to a staging environment."""
4307
4308-from __future__ import absolute_import, print_function, unicode_literals
4309-
4310 __metaclass__ = type
4311 __all__ = ['SyncBranchesScript']
4312
4313diff --git a/lib/lp/codehosting/scripts/tests/test_modifiedbranches.py b/lib/lp/codehosting/scripts/tests/test_modifiedbranches.py
4314index f7c9d2c..a42696f 100644
4315--- a/lib/lp/codehosting/scripts/tests/test_modifiedbranches.py
4316+++ b/lib/lp/codehosting/scripts/tests/test_modifiedbranches.py
4317@@ -3,8 +3,6 @@
4318
4319 """Test the modified branches script."""
4320
4321-from __future__ import absolute_import, print_function
4322-
4323 __metaclass__ = type
4324
4325 from datetime import datetime
4326diff --git a/lib/lp/codehosting/scripts/tests/test_sync_branches.py b/lib/lp/codehosting/scripts/tests/test_sync_branches.py
4327index 9340e88..899ce67 100644
4328--- a/lib/lp/codehosting/scripts/tests/test_sync_branches.py
4329+++ b/lib/lp/codehosting/scripts/tests/test_sync_branches.py
4330@@ -3,8 +3,6 @@
4331
4332 """Test syncing branches from production to a staging environment."""
4333
4334-from __future__ import absolute_import, print_function, unicode_literals
4335-
4336 __metaclass__ = type
4337
4338 import os.path
4339diff --git a/lib/lp/codehosting/scripts/tests/test_upgrade_all_branches.py b/lib/lp/codehosting/scripts/tests/test_upgrade_all_branches.py
4340index d268b8f..5f9443f 100644
4341--- a/lib/lp/codehosting/scripts/tests/test_upgrade_all_branches.py
4342+++ b/lib/lp/codehosting/scripts/tests/test_upgrade_all_branches.py
4343@@ -1,8 +1,6 @@
4344 # Copyright 2011-2012 Canonical Ltd. This software is licensed under the
4345 # GNU Affero General Public License version 3 (see the file LICENSE).
4346
4347-from __future__ import absolute_import, print_function
4348-
4349 __metaclass__ = type
4350
4351
4352diff --git a/lib/lp/codehosting/sftp.py b/lib/lp/codehosting/sftp.py
4353index 3d19a07..d103ace 100644
4354--- a/lib/lp/codehosting/sftp.py
4355+++ b/lib/lp/codehosting/sftp.py
4356@@ -12,8 +12,6 @@ The Bazaar Transport is special in two ways:
4357 We call such a transport a "Twisted Transport".
4358 """
4359
4360-from __future__ import absolute_import, print_function
4361-
4362 __metaclass__ = type
4363 __all__ = [
4364 'avatar_to_sftp_server',
4365diff --git a/lib/lp/codehosting/sshserver/daemon.py b/lib/lp/codehosting/sshserver/daemon.py
4366index a5ab6c5..648c597 100644
4367--- a/lib/lp/codehosting/sshserver/daemon.py
4368+++ b/lib/lp/codehosting/sshserver/daemon.py
4369@@ -3,8 +3,6 @@
4370
4371 """Glues the codehosting SSH daemon together."""
4372
4373-from __future__ import absolute_import, print_function
4374-
4375 __metaclass__ = type
4376 __all__ = [
4377 'ACCESS_LOG_NAME',
4378diff --git a/lib/lp/codehosting/sshserver/session.py b/lib/lp/codehosting/sshserver/session.py
4379index 28a0a69..b7debe4 100644
4380--- a/lib/lp/codehosting/sshserver/session.py
4381+++ b/lib/lp/codehosting/sshserver/session.py
4382@@ -3,8 +3,6 @@
4383
4384 """SSH session implementations for the codehosting SSH server."""
4385
4386-from __future__ import absolute_import, print_function
4387-
4388 __metaclass__ = type
4389 __all__ = [
4390 'launch_smart_server',
4391diff --git a/lib/lp/codehosting/sshserver/tests/test_daemon.py b/lib/lp/codehosting/sshserver/tests/test_daemon.py
4392index 5141ab7..f906c57 100644
4393--- a/lib/lp/codehosting/sshserver/tests/test_daemon.py
4394+++ b/lib/lp/codehosting/sshserver/tests/test_daemon.py
4395@@ -3,8 +3,6 @@
4396
4397 """Tests for the codehosting SSH server glue."""
4398
4399-from __future__ import absolute_import, print_function
4400-
4401 __metaclass__ = type
4402
4403 from lazr.sshserver.auth import (
4404diff --git a/lib/lp/codehosting/sshserver/tests/test_session.py b/lib/lp/codehosting/sshserver/tests/test_session.py
4405index 305c65b..83dc1c6 100644
4406--- a/lib/lp/codehosting/sshserver/tests/test_session.py
4407+++ b/lib/lp/codehosting/sshserver/tests/test_session.py
4408@@ -3,8 +3,6 @@
4409
4410 """Tests for SSH session support on the codehosting SSH server."""
4411
4412-from __future__ import absolute_import, print_function
4413-
4414 __metaclass__ = type
4415
4416 from twisted.conch.interfaces import ISession
4417diff --git a/lib/lp/codehosting/tests/helpers.py b/lib/lp/codehosting/tests/helpers.py
4418index 1104782..b5094df 100644
4419--- a/lib/lp/codehosting/tests/helpers.py
4420+++ b/lib/lp/codehosting/tests/helpers.py
4421@@ -3,8 +3,6 @@
4422
4423 """Common helpers for codehosting tests."""
4424
4425-from __future__ import absolute_import, print_function
4426-
4427 __metaclass__ = type
4428 __all__ = [
4429 'AvatarTestCase',
4430diff --git a/lib/lp/codehosting/tests/servers.py b/lib/lp/codehosting/tests/servers.py
4431index ad46357..68c4a73 100644
4432--- a/lib/lp/codehosting/tests/servers.py
4433+++ b/lib/lp/codehosting/tests/servers.py
4434@@ -3,8 +3,6 @@
4435
4436 """Server used in codehosting acceptance tests."""
4437
4438-from __future__ import absolute_import, print_function
4439-
4440 __metaclass__ = type
4441
4442 __all__ = [
4443diff --git a/lib/lp/codehosting/tests/test_acceptance.py b/lib/lp/codehosting/tests/test_acceptance.py
4444index 97a9ec7..df60291 100644
4445--- a/lib/lp/codehosting/tests/test_acceptance.py
4446+++ b/lib/lp/codehosting/tests/test_acceptance.py
4447@@ -3,8 +3,6 @@
4448
4449 """Acceptance tests for the codehosting server."""
4450
4451-from __future__ import absolute_import, print_function
4452-
4453 __metaclass__ = type
4454
4455 import os
4456diff --git a/lib/lp/codehosting/tests/test_breezy.py b/lib/lp/codehosting/tests/test_breezy.py
4457index 04096d5..7d87efc 100644
4458--- a/lib/lp/codehosting/tests/test_breezy.py
4459+++ b/lib/lp/codehosting/tests/test_breezy.py
4460@@ -3,8 +3,6 @@
4461
4462 """Launchpad-specific tests of Breezy behaviour."""
4463
4464-from __future__ import absolute_import, print_function
4465-
4466 __metaclass__ = type
4467
4468 from lp.testing import TestCase
4469diff --git a/lib/lp/codehosting/tests/test_bzrutils.py b/lib/lp/codehosting/tests/test_bzrutils.py
4470index df421e7..0beeb72 100644
4471--- a/lib/lp/codehosting/tests/test_bzrutils.py
4472+++ b/lib/lp/codehosting/tests/test_bzrutils.py
4473@@ -3,8 +3,6 @@
4474
4475 """Tests for bzrutils."""
4476
4477-from __future__ import absolute_import, print_function
4478-
4479 __metaclass__ = type
4480
4481 import gc
4482diff --git a/lib/lp/codehosting/tests/test_format_comparison.py b/lib/lp/codehosting/tests/test_format_comparison.py
4483index 2f067c8..de06e64 100644
4484--- a/lib/lp/codehosting/tests/test_format_comparison.py
4485+++ b/lib/lp/codehosting/tests/test_format_comparison.py
4486@@ -3,8 +3,6 @@
4487
4488 """Unit tests for comparing Bazaar formats."""
4489
4490-from __future__ import absolute_import, print_function
4491-
4492 __metaclass__ = type
4493
4494 import unittest
4495diff --git a/lib/lp/codehosting/tests/test_lpserve.py b/lib/lp/codehosting/tests/test_lpserve.py
4496index 307a401..6b615d4 100644
4497--- a/lib/lp/codehosting/tests/test_lpserve.py
4498+++ b/lib/lp/codehosting/tests/test_lpserve.py
4499@@ -3,8 +3,6 @@
4500
4501 """Tests for the lp-serve plugin."""
4502
4503-from __future__ import absolute_import, print_function
4504-
4505 __metaclass__ = type
4506
4507 from breezy import errors
4508diff --git a/lib/lp/codehosting/tests/test_rewrite.py b/lib/lp/codehosting/tests/test_rewrite.py
4509index 9daa088..7f97deb 100644
4510--- a/lib/lp/codehosting/tests/test_rewrite.py
4511+++ b/lib/lp/codehosting/tests/test_rewrite.py
4512@@ -3,8 +3,6 @@
4513
4514 """Tests for the dynamic RewriteMap used to serve branches over HTTP."""
4515
4516-from __future__ import absolute_import, print_function
4517-
4518 __metaclass__ = type
4519
4520 import os
4521diff --git a/lib/lp/codehosting/tests/test_sftp.py b/lib/lp/codehosting/tests/test_sftp.py
4522index 0324b89..5d022dd 100644
4523--- a/lib/lp/codehosting/tests/test_sftp.py
4524+++ b/lib/lp/codehosting/tests/test_sftp.py
4525@@ -3,8 +3,6 @@
4526
4527 """Tests for the transport-backed SFTP server implementation."""
4528
4529-from __future__ import absolute_import, print_function
4530-
4531 from contextlib import closing
4532 import os
4533
4534diff --git a/lib/lp/codehosting/tests/test_upgrade.py b/lib/lp/codehosting/tests/test_upgrade.py
4535index e27d1cb..1f2843a 100644
4536--- a/lib/lp/codehosting/tests/test_upgrade.py
4537+++ b/lib/lp/codehosting/tests/test_upgrade.py
4538@@ -1,8 +1,6 @@
4539 # Copyright 2012 Canonical Ltd. This software is licensed under the
4540 # GNU Affero General Public License version 3 (see the file LICENSE).
4541
4542-from __future__ import absolute_import, print_function
4543-
4544 __metaclass__ = type
4545
4546
4547diff --git a/lib/lp/codehosting/upgrade.py b/lib/lp/codehosting/upgrade.py
4548index 343083b..2159871 100755
4549--- a/lib/lp/codehosting/upgrade.py
4550+++ b/lib/lp/codehosting/upgrade.py
4551@@ -10,8 +10,6 @@ Repositories that have no tree references are always upgraded to the standard
4552 actually have tree references are converted to RepositoryFormat2aSubtree.
4553 """
4554
4555-from __future__ import absolute_import, print_function
4556-
4557 __metaclass__ = type
4558
4559 __all__ = ['Upgrader']
4560diff --git a/lib/lp/codehosting/vfs/__init__.py b/lib/lp/codehosting/vfs/__init__.py
4561index 66fbbee..fd82790 100644
4562--- a/lib/lp/codehosting/vfs/__init__.py
4563+++ b/lib/lp/codehosting/vfs/__init__.py
4564@@ -3,8 +3,6 @@
4565
4566 """A virtual filesystem for hosting Bazaar branches."""
4567
4568-from __future__ import absolute_import, print_function
4569-
4570 __all__ = [
4571 'AsyncLaunchpadTransport',
4572 'branch_id_to_path',
4573diff --git a/lib/lp/codehosting/vfs/branchfs.py b/lib/lp/codehosting/vfs/branchfs.py
4574index 4604789..7af499f 100644
4575--- a/lib/lp/codehosting/vfs/branchfs.py
4576+++ b/lib/lp/codehosting/vfs/branchfs.py
4577@@ -40,8 +40,6 @@ hooks into operations like `mkdir` and ask the `LaunchpadServer` to make a
4578 branch if appropriate.
4579 """
4580
4581-from __future__ import absolute_import, print_function
4582-
4583 __metaclass__ = type
4584 __all__ = [
4585 'AsyncLaunchpadTransport',
4586diff --git a/lib/lp/codehosting/vfs/branchfsclient.py b/lib/lp/codehosting/vfs/branchfsclient.py
4587index aade58e..3307830 100644
4588--- a/lib/lp/codehosting/vfs/branchfsclient.py
4589+++ b/lib/lp/codehosting/vfs/branchfsclient.py
4590@@ -6,8 +6,6 @@
4591 This code talks to the internal XML-RPC server for the branch filesystem.
4592 """
4593
4594-from __future__ import absolute_import, print_function
4595-
4596 __metaclass__ = type
4597 __all__ = [
4598 'BranchFileSystemClient',
4599diff --git a/lib/lp/codehosting/vfs/hooks.py b/lib/lp/codehosting/vfs/hooks.py
4600index 044add8..f0dc274 100644
4601--- a/lib/lp/codehosting/vfs/hooks.py
4602+++ b/lib/lp/codehosting/vfs/hooks.py
4603@@ -4,8 +4,6 @@
4604 """Implementations for the `seen_new_branch_hook` of `BranchFileSystemClient`.
4605 """
4606
4607-from __future__ import absolute_import, print_function
4608-
4609 __metaclass__ = type
4610 __all__ = ['SetProcTitleHook']
4611
4612diff --git a/lib/lp/codehosting/vfs/tests/test_branchfs.py b/lib/lp/codehosting/vfs/tests/test_branchfs.py
4613index dabd4ec..72b3677 100644
4614--- a/lib/lp/codehosting/vfs/tests/test_branchfs.py
4615+++ b/lib/lp/codehosting/vfs/tests/test_branchfs.py
4616@@ -3,8 +3,6 @@
4617
4618 """Tests for the branch filesystem."""
4619
4620-from __future__ import absolute_import, print_function
4621-
4622 __metaclass__ = type
4623
4624 import os
4625diff --git a/lib/lp/codehosting/vfs/tests/test_branchfsclient.py b/lib/lp/codehosting/vfs/tests/test_branchfsclient.py
4626index e05fce6..3417608 100644
4627--- a/lib/lp/codehosting/vfs/tests/test_branchfsclient.py
4628+++ b/lib/lp/codehosting/vfs/tests/test_branchfsclient.py
4629@@ -3,8 +3,6 @@
4630
4631 """Tests for branchfsclient."""
4632
4633-from __future__ import absolute_import, print_function
4634-
4635 __metaclass__ = type
4636
4637 from testtools.twistedsupport import AsynchronousDeferredRunTest
4638diff --git a/lib/lp/codehosting/vfs/tests/test_filesystem.py b/lib/lp/codehosting/vfs/tests/test_filesystem.py
4639index 3f955d6..8101f1b 100644
4640--- a/lib/lp/codehosting/vfs/tests/test_filesystem.py
4641+++ b/lib/lp/codehosting/vfs/tests/test_filesystem.py
4642@@ -3,8 +3,6 @@
4643
4644 """Tests for the virtual filesystem presented by Launchpad codehosting."""
4645
4646-from __future__ import absolute_import, print_function
4647-
4648 __metaclass__ = type
4649
4650 import stat
4651diff --git a/lib/lp/codehosting/vfs/tests/test_hooks.py b/lib/lp/codehosting/vfs/tests/test_hooks.py
4652index b1bfa07..c6ad986 100644
4653--- a/lib/lp/codehosting/vfs/tests/test_hooks.py
4654+++ b/lib/lp/codehosting/vfs/tests/test_hooks.py
4655@@ -3,8 +3,6 @@
4656
4657 """Tests for the hooks in lp.codehosting.vfs.hooks."""
4658
4659-from __future__ import absolute_import, print_function
4660-
4661 __metaclass__ = type
4662
4663 from lp.codehosting.vfs.hooks import SetProcTitleHook
4664diff --git a/lib/lp/codehosting/vfs/tests/test_transport.py b/lib/lp/codehosting/vfs/tests/test_transport.py
4665index 3f01473..45c155a 100644
4666--- a/lib/lp/codehosting/vfs/tests/test_transport.py
4667+++ b/lib/lp/codehosting/vfs/tests/test_transport.py
4668@@ -3,8 +3,6 @@
4669
4670 """Tests for the Launchpad code hosting Bazaar transport."""
4671
4672-from __future__ import absolute_import, print_function
4673-
4674 __metaclass__ = type
4675
4676 from breezy.tests import per_transport
4677diff --git a/lib/lp/codehosting/vfs/tests/test_transport_extensions.py b/lib/lp/codehosting/vfs/tests/test_transport_extensions.py
4678index e6c90b2..56b587f 100644
4679--- a/lib/lp/codehosting/vfs/tests/test_transport_extensions.py
4680+++ b/lib/lp/codehosting/vfs/tests/test_transport_extensions.py
4681@@ -3,8 +3,6 @@
4682
4683 """Tests for extensions in codehosting.vfs.transport."""
4684
4685-from __future__ import absolute_import, print_function
4686-
4687 __metaclass__ = type
4688
4689 from breezy.transport.memory import MemoryTransport
4690diff --git a/lib/lp/codehosting/vfs/transport.py b/lib/lp/codehosting/vfs/transport.py
4691index 03192cb..f4248f7 100644
4692--- a/lib/lp/codehosting/vfs/transport.py
4693+++ b/lib/lp/codehosting/vfs/transport.py
4694@@ -8,8 +8,6 @@ module contains utilities for implementing virtual filesystems using
4695 breezy.transport classes.
4696 """
4697
4698-from __future__ import absolute_import, print_function
4699-
4700 __metaclass__ = type
4701 __all__ = [
4702 'AsyncVirtualServer',
4703diff --git a/lib/lp/oci/browser/hasocirecipes.py b/lib/lp/oci/browser/hasocirecipes.py
4704index 2df4148..64ed5c9 100644
4705--- a/lib/lp/oci/browser/hasocirecipes.py
4706+++ b/lib/lp/oci/browser/hasocirecipes.py
4707@@ -3,8 +3,6 @@
4708
4709 """Mixins for browser classes for objects related to OCI recipe."""
4710
4711-from __future__ import absolute_import, print_function, unicode_literals
4712-
4713 __metaclass__ = type
4714 __all__ = [
4715 'HasOCIRecipesMenuMixin',
4716diff --git a/lib/lp/oci/browser/ocirecipe.py b/lib/lp/oci/browser/ocirecipe.py
4717index bc978e7..46a4db1 100644
4718--- a/lib/lp/oci/browser/ocirecipe.py
4719+++ b/lib/lp/oci/browser/ocirecipe.py
4720@@ -3,8 +3,6 @@
4721
4722 """OCI recipe views."""
4723
4724-from __future__ import absolute_import, print_function, unicode_literals
4725-
4726 __metaclass__ = type
4727 __all__ = [
4728 'OCIRecipeAddView',
4729diff --git a/lib/lp/oci/browser/ocirecipebuild.py b/lib/lp/oci/browser/ocirecipebuild.py
4730index e6b4003..893212a 100644
4731--- a/lib/lp/oci/browser/ocirecipebuild.py
4732+++ b/lib/lp/oci/browser/ocirecipebuild.py
4733@@ -3,8 +3,6 @@
4734
4735 """OCI recipe build views."""
4736
4737-from __future__ import absolute_import, print_function, unicode_literals
4738-
4739 __metaclass__ = type
4740 __all__ = [
4741 'OCIRecipeBuildCancelView',
4742diff --git a/lib/lp/oci/browser/ocirecipesubscription.py b/lib/lp/oci/browser/ocirecipesubscription.py
4743index c51d303..06086ac 100644
4744--- a/lib/lp/oci/browser/ocirecipesubscription.py
4745+++ b/lib/lp/oci/browser/ocirecipesubscription.py
4746@@ -3,8 +3,6 @@
4747
4748 """OCI recipe subscription views."""
4749
4750-from __future__ import absolute_import, print_function, unicode_literals
4751-
4752 __metaclass__ = type
4753 __all__ = [
4754 'OCIRecipePortletSubscribersContent'
4755diff --git a/lib/lp/oci/browser/tests/test_ocirecipe.py b/lib/lp/oci/browser/tests/test_ocirecipe.py
4756index 718bc7e..913b849 100644
4757--- a/lib/lp/oci/browser/tests/test_ocirecipe.py
4758+++ b/lib/lp/oci/browser/tests/test_ocirecipe.py
4759@@ -4,8 +4,6 @@
4760
4761 """Test OCI recipe views."""
4762
4763-from __future__ import absolute_import, print_function, unicode_literals
4764-
4765 __metaclass__ = type
4766
4767 from datetime import (
4768diff --git a/lib/lp/oci/browser/tests/test_ocirecipebuild.py b/lib/lp/oci/browser/tests/test_ocirecipebuild.py
4769index 25533cf..06f1f8e 100644
4770--- a/lib/lp/oci/browser/tests/test_ocirecipebuild.py
4771+++ b/lib/lp/oci/browser/tests/test_ocirecipebuild.py
4772@@ -3,8 +3,6 @@
4773
4774 """Test OCI recipe build views."""
4775
4776-from __future__ import absolute_import, print_function, unicode_literals
4777-
4778 __metaclass__ = type
4779
4780 import re
4781diff --git a/lib/lp/oci/browser/tests/test_ocirecipesubscription.py b/lib/lp/oci/browser/tests/test_ocirecipesubscription.py
4782index 1f60710..fadb8f7 100644
4783--- a/lib/lp/oci/browser/tests/test_ocirecipesubscription.py
4784+++ b/lib/lp/oci/browser/tests/test_ocirecipesubscription.py
4785@@ -3,8 +3,6 @@
4786
4787 """Test OCI recipe subscription views."""
4788
4789-from __future__ import absolute_import, print_function, unicode_literals
4790-
4791 __metaclass__ = type
4792
4793
4794diff --git a/lib/lp/oci/interfaces/ocipushrule.py b/lib/lp/oci/interfaces/ocipushrule.py
4795index 15dddb4..b5dfc77 100644
4796--- a/lib/lp/oci/interfaces/ocipushrule.py
4797+++ b/lib/lp/oci/interfaces/ocipushrule.py
4798@@ -3,8 +3,6 @@
4799
4800 """Interfaces for handling credentials for OCI registry actions."""
4801
4802-from __future__ import absolute_import, print_function, unicode_literals
4803-
4804 __metaclass__ = type
4805 __all__ = [
4806 'IOCIPushRule',
4807diff --git a/lib/lp/oci/interfaces/ocirecipe.py b/lib/lp/oci/interfaces/ocirecipe.py
4808index 827a2cd..98631f6 100644
4809--- a/lib/lp/oci/interfaces/ocirecipe.py
4810+++ b/lib/lp/oci/interfaces/ocirecipe.py
4811@@ -3,8 +3,6 @@
4812
4813 """Interfaces related to recipes for OCI Images."""
4814
4815-from __future__ import absolute_import, print_function, unicode_literals
4816-
4817 __metaclass__ = type
4818 __all__ = [
4819 'CannotModifyOCIRecipeProcessor',
4820diff --git a/lib/lp/oci/interfaces/ocirecipebuild.py b/lib/lp/oci/interfaces/ocirecipebuild.py
4821index 2065558..022f7f8 100644
4822--- a/lib/lp/oci/interfaces/ocirecipebuild.py
4823+++ b/lib/lp/oci/interfaces/ocirecipebuild.py
4824@@ -3,8 +3,6 @@
4825
4826 """Interfaces for a build record for OCI recipes."""
4827
4828-from __future__ import absolute_import, print_function, unicode_literals
4829-
4830 __metaclass__ = type
4831 __all__ = [
4832 'CannotScheduleRegistryUpload',
4833diff --git a/lib/lp/oci/interfaces/ocirecipebuildjob.py b/lib/lp/oci/interfaces/ocirecipebuildjob.py
4834index c0fada6..7d5c885 100644
4835--- a/lib/lp/oci/interfaces/ocirecipebuildjob.py
4836+++ b/lib/lp/oci/interfaces/ocirecipebuildjob.py
4837@@ -3,8 +3,6 @@
4838
4839 """OCIRecipe build job interfaces"""
4840
4841-from __future__ import absolute_import, print_function, unicode_literals
4842-
4843 __metaclass__ = type
4844 __all__ = [
4845 'IOCIRecipeBuildJob',
4846diff --git a/lib/lp/oci/interfaces/ocirecipejob.py b/lib/lp/oci/interfaces/ocirecipejob.py
4847index 5fac142..bc7fd60 100644
4848--- a/lib/lp/oci/interfaces/ocirecipejob.py
4849+++ b/lib/lp/oci/interfaces/ocirecipejob.py
4850@@ -3,8 +3,6 @@
4851
4852 """Interfaces related to OCI recipe jobs."""
4853
4854-from __future__ import absolute_import, print_function, unicode_literals
4855-
4856 __metaclass__ = type
4857 __all__ = [
4858 'IOCIRecipeJob',
4859diff --git a/lib/lp/oci/interfaces/ocirecipesubscription.py b/lib/lp/oci/interfaces/ocirecipesubscription.py
4860index 01bfe4e..511f410 100644
4861--- a/lib/lp/oci/interfaces/ocirecipesubscription.py
4862+++ b/lib/lp/oci/interfaces/ocirecipesubscription.py
4863@@ -3,8 +3,6 @@
4864
4865 """OCIRecipe subscription model."""
4866
4867-from __future__ import absolute_import, print_function, unicode_literals
4868-
4869 __metaclass__ = type
4870 __all__ = [
4871 'IOCIRecipeSubscription'
4872diff --git a/lib/lp/oci/interfaces/ociregistryclient.py b/lib/lp/oci/interfaces/ociregistryclient.py
4873index 71af23a..2a60285 100644
4874--- a/lib/lp/oci/interfaces/ociregistryclient.py
4875+++ b/lib/lp/oci/interfaces/ociregistryclient.py
4876@@ -3,8 +3,6 @@
4877
4878 """Interface for communication with an OCI registry."""
4879
4880-from __future__ import absolute_import, print_function, unicode_literals
4881-
4882 __metaclass__ = type
4883 __all__ = [
4884 'BlobUploadFailed',
4885diff --git a/lib/lp/oci/interfaces/ociregistrycredentials.py b/lib/lp/oci/interfaces/ociregistrycredentials.py
4886index 2388fd9..ec094f7 100644
4887--- a/lib/lp/oci/interfaces/ociregistrycredentials.py
4888+++ b/lib/lp/oci/interfaces/ociregistrycredentials.py
4889@@ -3,8 +3,6 @@
4890
4891 """Interfaces for handling credentials for OCI registry actions."""
4892
4893-from __future__ import absolute_import, print_function, unicode_literals
4894-
4895 __metaclass__ = type
4896 __all__ = [
4897 'IOCIRegistryCredentials',
4898diff --git a/lib/lp/oci/model/ocipushrule.py b/lib/lp/oci/model/ocipushrule.py
4899index ad9dd30..e4a8270 100644
4900--- a/lib/lp/oci/model/ocipushrule.py
4901+++ b/lib/lp/oci/model/ocipushrule.py
4902@@ -3,8 +3,6 @@
4903
4904 """Registry credentials for use by an `OCIPushRule`."""
4905
4906-from __future__ import absolute_import, print_function, unicode_literals
4907-
4908 __metaclass__ = type
4909 __all__ = [
4910 'OCIDistributionPushRule',
4911diff --git a/lib/lp/oci/model/ocirecipe.py b/lib/lp/oci/model/ocirecipe.py
4912index c16be3e..b033aed 100644
4913--- a/lib/lp/oci/model/ocirecipe.py
4914+++ b/lib/lp/oci/model/ocirecipe.py
4915@@ -3,8 +3,6 @@
4916
4917 """A recipe for building Open Container Initiative images."""
4918
4919-from __future__ import absolute_import, print_function, unicode_literals
4920-
4921 from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
4922
4923
4924diff --git a/lib/lp/oci/model/ocirecipebuild.py b/lib/lp/oci/model/ocirecipebuild.py
4925index e24abb7..9ba77e2 100644
4926--- a/lib/lp/oci/model/ocirecipebuild.py
4927+++ b/lib/lp/oci/model/ocirecipebuild.py
4928@@ -3,8 +3,6 @@
4929
4930 """A build record for OCI Recipes."""
4931
4932-from __future__ import absolute_import, print_function, unicode_literals
4933-
4934 __metaclass__ = type
4935 __all__ = [
4936 'OCIFile',
4937diff --git a/lib/lp/oci/model/ocirecipebuildbehaviour.py b/lib/lp/oci/model/ocirecipebuildbehaviour.py
4938index 86ecceb..8147c77 100644
4939--- a/lib/lp/oci/model/ocirecipebuildbehaviour.py
4940+++ b/lib/lp/oci/model/ocirecipebuildbehaviour.py
4941@@ -6,8 +6,6 @@
4942 Dispatches OCI image build jobs to build-farm slaves.
4943 """
4944
4945-from __future__ import absolute_import, print_function, unicode_literals
4946-
4947 __metaclass__ = type
4948 __all__ = [
4949 'OCIRecipeBuildBehaviour',
4950diff --git a/lib/lp/oci/model/ocirecipebuildjob.py b/lib/lp/oci/model/ocirecipebuildjob.py
4951index 9ec2e91..09dbc10 100644
4952--- a/lib/lp/oci/model/ocirecipebuildjob.py
4953+++ b/lib/lp/oci/model/ocirecipebuildjob.py
4954@@ -3,8 +3,6 @@
4955
4956 """OCIRecipe build jobs."""
4957
4958-from __future__ import absolute_import, print_function, unicode_literals
4959-
4960 __metaclass__ = type
4961 __all__ = [
4962 'OCIRecipeBuildJob',
4963diff --git a/lib/lp/oci/model/ocirecipejob.py b/lib/lp/oci/model/ocirecipejob.py
4964index dd57542..00fbe2a 100644
4965--- a/lib/lp/oci/model/ocirecipejob.py
4966+++ b/lib/lp/oci/model/ocirecipejob.py
4967@@ -3,7 +3,6 @@
4968
4969 """A build job for OCI Recipe."""
4970
4971-from __future__ import absolute_import, print_function, unicode_literals
4972 from lp.buildmaster.model.processor import Processor
4973 from lp.oci.interfaces.ocirecipe import IOCIRecipeSet
4974
4975diff --git a/lib/lp/oci/model/ocirecipesubscription.py b/lib/lp/oci/model/ocirecipesubscription.py
4976index 6c17b07..3c9d210 100644
4977--- a/lib/lp/oci/model/ocirecipesubscription.py
4978+++ b/lib/lp/oci/model/ocirecipesubscription.py
4979@@ -3,8 +3,6 @@
4980
4981 """OCIRecipe subscription model."""
4982
4983-from __future__ import absolute_import, print_function, unicode_literals
4984-
4985 __metaclass__ = type
4986 __all__ = [
4987 'OCIRecipeSubscription'
4988diff --git a/lib/lp/oci/model/ociregistryclient.py b/lib/lp/oci/model/ociregistryclient.py
4989index 3de83b0..2c92c1b 100644
4990--- a/lib/lp/oci/model/ociregistryclient.py
4991+++ b/lib/lp/oci/model/ociregistryclient.py
4992@@ -3,8 +3,6 @@
4993
4994 """Client for talking to an OCI registry."""
4995
4996-from __future__ import absolute_import, print_function, unicode_literals
4997-
4998 __metaclass__ = type
4999 __all__ = [
5000 'OCIRegistryClient'
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: