From 2fcbe0afa392a812d1ba2ab0c8e271cabf5ca575 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Thu, 5 Dec 2019 18:25:38 +0000 Subject: [PATCH] `changectx()` method was dropped in mercurial 4.6 in favour of `__getitem__()`. --- lib/galaxy/tool_shed/metadata/metadata_generator.py | 4 ++-- lib/galaxy/tool_shed/util/hg_util.py | 8 ++++---- lib/tool_shed/grids/util.py | 4 ++-- lib/tool_shed/metadata/repository_metadata_manager.py | 8 ++++---- .../repository_types/repository_suite_definition.py | 2 +- .../repository_types/tool_dependency_definition.py | 2 +- lib/tool_shed/test/base/twilltestcase.py | 8 ++++---- lib/tool_shed/tools/tool_validator.py | 4 ++-- lib/tool_shed/tools/tool_version_manager.py | 4 ++-- lib/tool_shed/util/metadata_util.py | 4 ++-- lib/tool_shed/util/review_util.py | 4 ++-- lib/tool_shed/util/shed_util_common.py | 3 +-- lib/tool_shed/webapp/controllers/repository.py | 11 +++++------ lib/tool_shed/webapp/controllers/repository_review.py | 3 +-- lib/tool_shed/webapp/model/__init__.py | 10 +++++----- scripts/tool_shed/build_ts_whoosh_index.py | 2 +- 16 files changed, 39 insertions(+), 42 deletions(-) diff --git a/lib/galaxy/tool_shed/metadata/metadata_generator.py b/lib/galaxy/tool_shed/metadata/metadata_generator.py index 19ecf99e8b6..7b2ab03864f 100644 --- a/lib/galaxy/tool_shed/metadata/metadata_generator.py +++ b/lib/galaxy/tool_shed/metadata/metadata_generator.py @@ -994,7 +994,7 @@ class MetadataGenerator(object): # The received changeset_revision may be None since defining it in the dependency definition is optional. # If this is the case, the default will be to set its value to the repository dependency tip revision. # This probably occurs only when handling circular dependency definitions. - tip_ctx = repo.changectx(repo.changelog.tip()) + tip_ctx = repo[repo.changelog.tip()] # Make sure the repo.changlog includes at least 1 revision. if changeset_revision is None and tip_ctx.rev() >= 0: changeset_revision = str(tip_ctx) @@ -1009,7 +1009,7 @@ class MetadataGenerator(object): # Find the specified changeset revision in the repository's changelog to see if it's valid. found = False for changeset in repo.changelog: - changeset_hash = str(repo.changectx(changeset)) + changeset_hash = str(repo[changeset]) if changeset_hash == changeset_revision: found = True break diff --git a/lib/galaxy/tool_shed/util/hg_util.py b/lib/galaxy/tool_shed/util/hg_util.py index ee75d55d35f..86046195b3e 100644 --- a/lib/galaxy/tool_shed/util/hg_util.py +++ b/lib/galaxy/tool_shed/util/hg_util.py @@ -39,7 +39,7 @@ def copy_file_from_manifest(repo, changeset_revision, filename, dir): to which dir refers. """ for changeset in reversed_upper_bounded_changelog(repo, changeset_revision): - changeset_ctx = repo.changectx(changeset) + changeset_ctx = repo[changeset] fctx = get_file_context_from_ctx(changeset_ctx, filename) if fctx and fctx not in ['DELETED']: file_path = os.path.join(dir, filename) @@ -53,7 +53,7 @@ def copy_file_from_manifest(repo, changeset_revision, filename, dir): def get_changectx_for_changeset(repo, changeset_revision, **kwd): """Retrieve a specified changectx from a repository.""" for changeset in repo.changelog: - ctx = repo.changectx(changeset) + ctx = repo[changeset] if str(ctx) == changeset_revision: return ctx return None @@ -75,7 +75,7 @@ def get_ctx_file_path_from_manifest(filename, repo, changeset_revision): """ stripped_filename = basic_util.strip_path(filename) for changeset in reversed_upper_bounded_changelog(repo, changeset_revision): - manifest_ctx = repo.changectx(changeset) + manifest_ctx = repo[changeset] for ctx_file in manifest_ctx.files(): ctx_file_name = basic_util.strip_path(ctx_file) if ctx_file_name == stripped_filename: @@ -146,7 +146,7 @@ def reversed_lower_upper_bounded_changelog(repo, excluded_lower_bounds_changeset appending_started = False reversed_changelog = [] for changeset in repo.changelog: - changeset_hash = str(repo.changectx(changeset)) + changeset_hash = str(repo[changeset]) if appending_started: reversed_changelog.insert(0, changeset) if changeset_hash == excluded_lower_bounds_changeset_revision and not appending_started: diff --git a/lib/tool_shed/grids/util.py b/lib/tool_shed/grids/util.py index 418fefe9752..bfe6cd87e65 100644 --- a/lib/tool_shed/grids/util.py +++ b/lib/tool_shed/grids/util.py @@ -113,7 +113,7 @@ def get_latest_downloadable_repository_metadata(trans, repository): """ encoded_repository_id = trans.security.encode_id(repository.id) repo = hg_util.get_repo_for_repository(trans.app, repository=repository) - tip_ctx = str(repo.changectx(repo.changelog.tip())) + tip_ctx = str(repo[repo.changelog.tip()]) repository_metadata = None try: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, encoded_repository_id, tip_ctx) @@ -152,7 +152,7 @@ def get_latest_repository_metadata(trans, repository): """ encoded_repository_id = trans.security.encode_id(repository.id) repo = hg_util.get_repo_for_repository(trans.app, repository=repository) - tip_ctx = str(repo.changectx(repo.changelog.tip())) + tip_ctx = str(repo[repo.changelog.tip()]) try: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, encoded_repository_id, tip_ctx) return repository_metadata diff --git a/lib/tool_shed/metadata/repository_metadata_manager.py b/lib/tool_shed/metadata/repository_metadata_manager.py index 6d3b9190a5a..599983bd078 100644 --- a/lib/tool_shed/metadata/repository_metadata_manager.py +++ b/lib/tool_shed/metadata/repository_metadata_manager.py @@ -748,12 +748,12 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): ancestor_metadata_dict = None for changeset in self.repository.get_changesets_for_setting_metadata(self.app): work_dir = tempfile.mkdtemp(prefix="tmp-toolshed-ramorits") - ctx = repo.changectx(changeset) + ctx = repo[changeset] log.debug("Cloning repository changeset revision: %s", str(ctx.rev())) cloned_ok, error_message = hg_util.clone_repository(self.repository_clone_url, work_dir, str(ctx.rev())) if cloned_ok: log.debug("Generating metadata for changset revision: %s", str(ctx.rev())) - self.set_changeset_revision(str(repo.changectx(changeset))) + self.set_changeset_revision(str(ctx)) self.set_repository_files_dir(work_dir) self.generate_metadata_for_changeset_revision() if self.metadata_dict: @@ -812,7 +812,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): encoded_repository_id = self.app.security.encode_id(self.repository.id) changeset_revisions_that_contain_tools = [] for changeset in repo.changelog: - changeset_revision = str(repo.changectx(changeset)) + changeset_revision = str(repo[changeset]) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, encoded_repository_id, changeset_revision) @@ -969,7 +969,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): # critical, so we use the repo's changelog. changeset_revisions = [] for changeset in repo.changelog: - changeset_revision = str(repo.changectx(changeset)) + changeset_revision = str(repo[changeset]) if metadata_util.get_repository_metadata_by_changeset_revision(self.app, encoded_id, changeset_revision): changeset_revisions.append(changeset_revision) self.add_tool_versions(encoded_id, repository_metadata, changeset_revisions) diff --git a/lib/tool_shed/repository_types/repository_suite_definition.py b/lib/tool_shed/repository_types/repository_suite_definition.py index b86ab965ffe..9d82f7db6f7 100644 --- a/lib/tool_shed/repository_types/repository_suite_definition.py +++ b/lib/tool_shed/repository_types/repository_suite_definition.py @@ -29,7 +29,7 @@ class RepositorySuiteDefinition(TipOnly): else: changeset_revisions = repo.changelog for changeset in changeset_revisions: - ctx = repo.changectx(changeset) + ctx = repo[changeset] # Inspect all files in the changeset (in sorted order) to make sure there is only one and it # is named repository_dependencies.xml. files_changed_in_changeset = ctx.files() diff --git a/lib/tool_shed/repository_types/tool_dependency_definition.py b/lib/tool_shed/repository_types/tool_dependency_definition.py index da71b39b215..13db77ac12d 100644 --- a/lib/tool_shed/repository_types/tool_dependency_definition.py +++ b/lib/tool_shed/repository_types/tool_dependency_definition.py @@ -29,7 +29,7 @@ class ToolDependencyDefinition(TipOnly): else: changeset_revisions = repo.changelog for changeset in changeset_revisions: - ctx = repo.changectx(changeset) + ctx = repo[changeset] # Inspect all files in the changeset (in sorted order) to make sure there is only one and it is named tool_dependencies.xml. files_changed_in_changeset = ctx.files() for file_path in files_changed_in_changeset: diff --git a/lib/tool_shed/test/base/twilltestcase.py b/lib/tool_shed/test/base/twilltestcase.py index 4c4ac4dddb8..d5f92adbe4b 100644 --- a/lib/tool_shed/test/base/twilltestcase.py +++ b/lib/tool_shed/test/base/twilltestcase.py @@ -1074,8 +1074,8 @@ class ShedTwillTestCase(FunctionalTestCase): repo = self.get_hg_repo(self.get_repo_path(repository)) changelog_tuples = [] for changeset in repo.changelog: - ctx = repo.changectx(changeset) - changelog_tuples.append((ctx.rev(), repo.changectx(changeset))) + ctx = repo[changeset] + changelog_tuples.append((ctx.rev(), ctx)) return changelog_tuples def get_repository_datatypes_count(self, repository): @@ -1128,7 +1128,7 @@ class ShedTwillTestCase(FunctionalTestCase): def get_repository_tip(self, repository): repo = self.get_hg_repo(self.get_repo_path(repository)) - return str(repo.changectx(repo.changelog.tip())) + return str(repo[repo.changelog.tip()]) def get_sniffers_count(self): url = '/api/datatypes/sniffers' @@ -1423,7 +1423,7 @@ class ShedTwillTestCase(FunctionalTestCase): def repository_is_new(self, repository): repo = self.get_hg_repo(self.get_repo_path(repository)) - tip_ctx = repo.changectx(repo.changelog.tip()) + tip_ctx = repo[repo.changelog.tip()] return tip_ctx.rev() < 0 def reset_installed_repository_metadata(self, repository): diff --git a/lib/tool_shed/tools/tool_validator.py b/lib/tool_shed/tools/tool_validator.py index 660a3e5d725..cdef3885b14 100644 --- a/lib/tool_shed/tools/tool_validator.py +++ b/lib/tool_shed/tools/tool_validator.py @@ -77,7 +77,7 @@ class ToolValidator(GalaxyToolValidator): """ stripped_filename = basic_util.strip_path(filename) for changeset in hg_util.reversed_upper_bounded_changelog(repo, changeset_revision): - manifest_ctx = repo.changectx(changeset) + manifest_ctx = repo[changeset] for ctx_file in manifest_ctx.files(): ctx_file_name = basic_util.strip_path(ctx_file) if ctx_file_name == stripped_filename: @@ -109,7 +109,7 @@ class ToolValidator(GalaxyToolValidator): deleted_sample_files = [] sample_files = [] for changeset in hg_util.reversed_upper_bounded_changelog(repo, changeset_revision): - changeset_ctx = repo.changectx(changeset) + changeset_ctx = repo[changeset] for ctx_file in changeset_ctx.files(): ctx_file_name = basic_util.strip_path(ctx_file) # If we decide in the future that files deleted later in the changelog should diff --git a/lib/tool_shed/tools/tool_version_manager.py b/lib/tool_shed/tools/tool_version_manager.py index 4ff9341d55e..ccb05364533 100644 --- a/lib/tool_shed/tools/tool_version_manager.py +++ b/lib/tool_shed/tools/tool_version_manager.py @@ -44,7 +44,7 @@ class ToolVersionManager(object): # Get all ancestor guids of the received guid. current_child_guid = guid for changeset in hg_util.reversed_upper_bounded_changelog(repo, repository_metadata.changeset_revision): - ctx = repo.changectx(changeset) + ctx = repo[changeset] rm = metadata_util.get_repository_metadata_by_changeset_revision(self.app, repository_id, str(ctx)) if rm: parent_guid = rm.tool_versions.get(current_child_guid, None) @@ -56,7 +56,7 @@ class ToolVersionManager(object): for changeset in hg_util.reversed_lower_upper_bounded_changelog(repo, repository_metadata.changeset_revision, repository.tip(self.app)): - ctx = repo.changectx(changeset) + ctx = repo[changeset] rm = metadata_util.get_repository_metadata_by_changeset_revision(self.app, repository_id, str(ctx)) if rm: tool_versions = rm.tool_versions diff --git a/lib/tool_shed/util/metadata_util.py b/lib/tool_shed/util/metadata_util.py index a9ab7460b89..7be1eab8373 100644 --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -155,7 +155,7 @@ def get_next_downloadable_changeset_revision(app, repository, after_changeset_re found_after_changeset_revision = False repo = get_repo_for_repository(app, repository=repository) for changeset in repo.changelog: - changeset_revision = str(repo.changectx(changeset)) + changeset_revision = str(repo[changeset]) if found_after_changeset_revision: if changeset_revision in changeset_revisions: return changeset_revision @@ -293,7 +293,7 @@ def get_updated_changeset_revisions(app, name, owner, changeset_revision): for changeset in reversed_lower_upper_bounded_changelog(repo, changeset_revision, upper_bound_changeset_revision): # Make sure to exclude upper_bound_changeset_revision. if changeset != upper_bound_changeset_revision: - changeset_hashes.append(str(repo.changectx(changeset))) + changeset_hashes.append(str(repo[changeset])) if changeset_hashes: changeset_hashes_str = ','.join(changeset_hashes) return changeset_hashes_str diff --git a/lib/tool_shed/util/review_util.py b/lib/tool_shed/util/review_util.py index 61fb714e4e6..992fe09ba7f 100644 --- a/lib/tool_shed/util/review_util.py +++ b/lib/tool_shed/util/review_util.py @@ -76,7 +76,7 @@ def get_previous_repository_reviews(app, repository, changeset_revision): reviewed_revision_hashes = [review.changeset_revision for review in repository.reviews] previous_reviews_dict = OrderedDict() for changeset in hg_util.reversed_upper_bounded_changelog(repo, changeset_revision): - previous_changeset_revision = str(repo.changectx(changeset)) + previous_changeset_revision = str(repo[changeset]) if previous_changeset_revision in reviewed_revision_hashes: previous_rev, previous_changeset_revision_label = \ hg_util.get_rev_label_from_changeset_revision(repo, previous_changeset_revision) @@ -125,7 +125,7 @@ def has_previous_repository_reviews(app, repository, changeset_revision): repo = hg_util.get_repo_for_repository(app, repository=repository) reviewed_revision_hashes = [review.changeset_revision for review in repository.reviews] for changeset in hg_util.reversed_upper_bounded_changelog(repo, changeset_revision): - previous_changeset_revision = str(repo.changectx(changeset)) + previous_changeset_revision = str(repo[changeset]) if previous_changeset_revision in reviewed_revision_hashes: return True return False diff --git a/lib/tool_shed/util/shed_util_common.py b/lib/tool_shed/util/shed_util_common.py index e97a5b79caa..d67f87ab57d 100644 --- a/lib/tool_shed/util/shed_util_common.py +++ b/lib/tool_shed/util/shed_util_common.py @@ -332,8 +332,7 @@ def handle_email_alerts(app, host, repository, content_alert_str='', new_repo_al email_from = 'galaxy-no-reply@' + socket.getfqdn() else: email_from = 'galaxy-no-reply@' + host.split(':')[0] - tip_changeset = repo.changelog.tip() - ctx = repo.changectx(tip_changeset) + ctx = repo[repo.changelog.tip()] try: username = ctx.user().split()[0] except Exception: diff --git a/lib/tool_shed/webapp/controllers/repository.py b/lib/tool_shed/webapp/controllers/repository.py index 164beaf492e..bfdacea8b58 100644 --- a/lib/tool_shed/webapp/controllers/repository.py +++ b/lib/tool_shed/webapp/controllers/repository.py @@ -646,7 +646,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # to which we need to update. update_to_changeset_hash = None for changeset in repo.changelog: - changeset_hash = str(repo.changectx(changeset)) + changeset_hash = str(repo[changeset]) hg_util.get_changectx_for_changeset(repo, changeset_hash) if update_to_changeset_hash: if changeset_hash == repository.tip(trans.app): @@ -1114,8 +1114,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): includes_tools = False has_repository_dependencies = False has_repository_dependencies_only_if_compiling_contained_td = False - changeset_hash = str(repo.changectx(changeset)) - hg_util.get_changectx_for_changeset(repo, changeset_hash) + changeset_hash = str(repo[changeset]) if update_to_changeset_hash: update_to_repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, trans.security.encode_id(repository.id), @@ -1376,7 +1375,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repo = hg_util.get_repo_for_repository(trans.app, repository=repository) tool_version_dicts = [] for changeset in repo.changelog: - current_changeset_revision = str(repo.changectx(changeset)) + current_changeset_revision = str(repo[changeset]) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, trans.security.encode_id(repository.id), current_changeset_revision) @@ -2050,7 +2049,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): for changeset in hg_util.reversed_lower_upper_bounded_changelog(repo, lower_bound_changeset_revision, changeset_revision): - changeset_hashes.append(str(repo.changectx(changeset))) + changeset_hashes.append(str(repo[changeset])) if changeset_hashes: changeset_hashes_str = ','.join(changeset_hashes) return changeset_hashes_str @@ -2437,7 +2436,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repo = hg_util.get_repo_for_repository(trans.app, repository=repository) changesets = [] for changeset in repo.changelog: - ctx = repo.changectx(changeset) + ctx = repo[changeset] if metadata_util.get_repository_metadata_by_changeset_revision(trans.app, id, str(ctx)): has_metadata = True else: diff --git a/lib/tool_shed/webapp/controllers/repository_review.py b/lib/tool_shed/webapp/controllers/repository_review.py index 61082f8e82b..779c1f31353 100644 --- a/lib/tool_shed/webapp/controllers/repository_review.py +++ b/lib/tool_shed/webapp/controllers/repository_review.py @@ -488,8 +488,7 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): reviewed_revision_hashes = [review.changeset_revision for review in repository.reviews] reviews_dict = OrderedDict() for changeset in hg_util.get_reversed_changelog_changesets(repo): - ctx = repo.changectx(changeset) - changeset_revision = str(ctx) + changeset_revision = str(repo[changeset]) if changeset_revision in metadata_revision_hashes or changeset_revision in reviewed_revision_hashes: rev, changeset_revision_label = hg_util.get_rev_label_from_changeset_revision(repo, changeset_revision) if changeset_revision in reviewed_revision_hashes: diff --git a/lib/tool_shed/webapp/model/__init__.py b/lib/tool_shed/webapp/model/__init__.py index e20c028b66f..95ee3037c8d 100644 --- a/lib/tool_shed/webapp/model/__init__.py +++ b/lib/tool_shed/webapp/model/__init__.py @@ -260,16 +260,16 @@ class Repository(Dictifiable): def is_new(self, app): repo = hg_util.get_repo_for_repository(app, repository=self) - tip_ctx = repo.changectx(repo.changelog.tip()) - return tip_ctx.rev() < 0 + tip_rev = repo.changelog.tiprev() + return tip_rev < 0 def repo_path(self, app): return app.hgweb_config_manager.get_entry(os.path.join("repos", self.user.username, self.name)) def revision(self, app): repo = hg_util.get_repo_for_repository(app, repository=self) - tip_ctx = repo.changectx(repo.changelog.tip()) - return "%s:%s" % (str(tip_ctx.rev()), str(repo.changectx(repo.changelog.tip()))) + tip_ctx = repo[repo.changelog.tip()] + return "%s:%s" % (str(tip_ctx.rev()), str(tip_ctx)) def set_allow_push(self, app, usernames, remove_auth=''): allow_push = util.listify(self.allow_push(app)) @@ -294,7 +294,7 @@ class Repository(Dictifiable): def tip(self, app): repo = hg_util.get_repo_for_repository(app, repository=self) - return str(repo.changectx(repo.changelog.tip())) + return str(repo[repo.changelog.tip()]) def to_dict(self, view='collection', value_mapper=None): rval = super(Repository, self).to_dict(view=view, value_mapper=value_mapper) diff --git a/scripts/tool_shed/build_ts_whoosh_index.py b/scripts/tool_shed/build_ts_whoosh_index.py index dc8d9f1e6cf..cc96cb5dbc3 100644 --- a/scripts/tool_shed/build_ts_whoosh_index.py +++ b/scripts/tool_shed/build_ts_whoosh_index.py @@ -193,7 +193,7 @@ def get_repos(sa_session, file_path, hgweb_config_dir, **kwargs): hg_repo = hg.repository(ui.ui(), repo_path) lineage = [] for changeset in hg_repo.changelog: - lineage.append(str(changeset) + ":" + str(hg_repo.changectx(changeset))) + lineage.append(str(changeset) + ":" + str(hg_repo[changeset])) repo_lineage = str(lineage) # Parse all the tools within repo for a separate index.