From af859aa755993dc2a82e0d657641b920eb5be155 Mon Sep 17 00:00:00 2001 From: jack1142 <6032823+jack1142@users.noreply.github.com> Date: Wed, 8 Jan 2020 19:08:55 +0100 Subject: [PATCH] [Downloader] Move `author` key handling to `RepoJSONMixin`, fix `NameError` (#3285) * Update downloader.py * Update json_mixins.py * Update installable.py * changelog pt 1 * changelog pt2 * edit of changelog pt1 * edit of changelog pt 2 (last commit before review) * Kidding, this is the last one before review. --- changelog.d/downloader/3285.misc.1.rst | 1 + changelog.d/downloader/3285.misc.2.rst | 1 + redbot/cogs/downloader/downloader.py | 2 +- redbot/cogs/downloader/installable.py | 7 ------- redbot/cogs/downloader/json_mixins.py | 9 +++++++-- 5 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 changelog.d/downloader/3285.misc.1.rst create mode 100644 changelog.d/downloader/3285.misc.2.rst diff --git a/changelog.d/downloader/3285.misc.1.rst b/changelog.d/downloader/3285.misc.1.rst new file mode 100644 index 000000000..5861f78e4 --- /dev/null +++ b/changelog.d/downloader/3285.misc.1.rst @@ -0,0 +1 @@ +Fix `NameError` in :func:`redbot.cogs.downloader.downloader.Downloader._filter_incorrect_cogs_by_names()`. diff --git a/changelog.d/downloader/3285.misc.2.rst b/changelog.d/downloader/3285.misc.2.rst new file mode 100644 index 000000000..5b423c4e7 --- /dev/null +++ b/changelog.d/downloader/3285.misc.2.rst @@ -0,0 +1 @@ +Move handling of ``author`` key in ``info.json`` to :func:`redbot.cogs.downloader.json_mixins.RepoJSONMixin`. diff --git a/redbot/cogs/downloader/downloader.py b/redbot/cogs/downloader/downloader.py index d2f35e828..d4da0d09e 100644 --- a/redbot/cogs/downloader/downloader.py +++ b/redbot/cogs/downloader/downloader.py @@ -1094,7 +1094,7 @@ class Downloader(commands.Cog): if name_already_used: message += _( "\nSome cogs with these names are already installed from different repos: " - ) + humanize_list(already_installed) + ) + humanize_list(name_already_used) correct_cogs, add_to_message = self._filter_incorrect_cogs(cogs) if add_to_message: return correct_cogs, f"{message}{add_to_message}" diff --git a/redbot/cogs/downloader/installable.py b/redbot/cogs/downloader/installable.py index 327d571ad..20997bb25 100644 --- a/redbot/cogs/downloader/installable.py +++ b/redbot/cogs/downloader/installable.py @@ -86,7 +86,6 @@ class Installable(RepoJSONMixin): self.repo_name = self._location.parent.stem self.commit = commit - self.author: Tuple[str, ...] = () self.min_bot_version = red_version_info self.max_bot_version = red_version_info self.min_python_version = (3, 5, 1) @@ -171,12 +170,6 @@ class Installable(RepoJSONMixin): else: self._info = info - try: - author = tuple(info.get("author", [])) - except ValueError: - author = () - self.author = author - try: min_bot_version = VersionInfo.from_str(str(info.get("min_bot_version", __version__))) except ValueError: diff --git a/redbot/cogs/downloader/json_mixins.py b/redbot/cogs/downloader/json_mixins.py index 6c8a18282..3e5b9fdc7 100644 --- a/redbot/cogs/downloader/json_mixins.py +++ b/redbot/cogs/downloader/json_mixins.py @@ -9,7 +9,7 @@ class RepoJSONMixin: def __init__(self, repo_folder: Path): self._repo_folder = repo_folder - self.author: Optional[Tuple[str, ...]] = None + self.author: Tuple[str, ...] = () self.install_msg: Optional[str] = None self.short: Optional[str] = None self.description: Optional[str] = None @@ -32,7 +32,12 @@ class RepoJSONMixin: else: self._info = info - self.author = info.get("author") + try: + author = tuple(info.get("author", [])) + except ValueError: + author = () + self.author = author + self.install_msg = info.get("install_msg") self.short = info.get("short") self.description = info.get("description")