From 160962a56110ed970c7419ed650d9d8a84dbaa9a Mon Sep 17 00:00:00 2001 From: Numerlor Date: Tue, 12 Nov 2019 16:46:51 +0100 Subject: Adjust code style and comments --- bot/cogs/doc.py | 77 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/bot/cogs/doc.py b/bot/cogs/doc.py index 0d4884e8b..b82eac5fe 100644 --- a/bot/cogs/doc.py +++ b/bot/cogs/doc.py @@ -176,36 +176,34 @@ class Doc(commands.Cog): self.base_urls[package_name] = base_url package = await self._fetch_inventory(inventory_url, config) - if package: - for group, value in package.items(): - # Each value has a bunch of information in the form - # `(package_name, version, relative_url, ???)`, and we only - # need the package_name and the relative documentation URL. - for symbol, (package_name, _, relative_doc_url, _) in value.items(): - absolute_doc_url = base_url + relative_doc_url - - if symbol in self.inventories: - # get `group_name` from _:group_name - group_name = group.split(":")[1] - if (group_name in NO_OVERRIDE_GROUPS - # check if any package from `NO_OVERRIDE_PACKAGES` - # is in base URL of the symbol that would be overridden - or any(package in self.inventories[symbol].split("/", 3)[2] - for package in NO_OVERRIDE_PACKAGES)): - - symbol = f"{group_name}.{symbol}" - # If renamed `symbol` already exists, add library name in front. - if symbol in self.renamed_symbols: - # Split `package_name` because of packages like Pillow that have spaces in them. - symbol = f"{package_name.split()[0]}.{symbol}" - - self.inventories[symbol] = absolute_doc_url - self.renamed_symbols.add(symbol) - continue - - self.inventories[symbol] = absolute_doc_url - - log.trace(f"Fetched inventory for {package_name}.") + if not package: + return None + + for group, value in package.items(): + for symbol, (package_name, _, relative_doc_url, _) in value.items(): + absolute_doc_url = base_url + relative_doc_url + + if symbol in self.inventories: + group_name = group.split(":")[1] + symbol_base_url = self.inventories[symbol].split("/", 3)[2] + if ( + group_name in NO_OVERRIDE_GROUPS + or any(package in symbol_base_url for package in NO_OVERRIDE_PACKAGES) + ): + + symbol = f"{group_name}.{symbol}" + # If renamed `symbol` already exists, add library name in front to differentiate between them. + if symbol in self.renamed_symbols: + # Split `package_name` because of packages like Pillow that have spaces in them. + symbol = f"{package_name.split()[0]}.{symbol}" + + self.inventories[symbol] = absolute_doc_url + self.renamed_symbols.add(symbol) + continue + + self.inventories[symbol] = absolute_doc_url + + log.trace(f"Fetched inventory for {package_name}.") async def refresh_inventory(self) -> None: """Refresh internal documentation inventory.""" @@ -337,9 +335,10 @@ class Doc(commands.Cog): description=embed_description ) # Show all symbols with the same name that were renamed in the footer. - embed.set_footer(text=", ".join(renamed for renamed in self.renamed_symbols - {symbol} - if renamed.endswith(f".{symbol}")) - ) + embed.set_footer( + text=", ".join(renamed for renamed in self.renamed_symbols - {symbol} + if renamed.endswith(f".{symbol}")) + ) return embed @commands.group(name='docs', aliases=('doc', 'd'), invoke_without_command=True) @@ -477,11 +476,15 @@ class Doc(commands.Cog): try: package = await self.bot.loop.run_in_executor(None, fetch_func) except ConnectTimeout: - log.error(f"Fetching of inventory {inventory_url} timed out," - f" trying again. ({retry}/{FAILED_REQUEST_RETRY_AMOUNT})") + log.error( + f"Fetching of inventory {inventory_url} timed out," + f" trying again. ({retry}/{FAILED_REQUEST_RETRY_AMOUNT})" + ) except ProtocolError: - log.error(f"Connection lost while fetching inventory {inventory_url}," - f" trying again. ({retry}/{FAILED_REQUEST_RETRY_AMOUNT})") + log.error( + f"Connection lost while fetching inventory {inventory_url}," + f" trying again. ({retry}/{FAILED_REQUEST_RETRY_AMOUNT})" + ) except HTTPError as e: log.error(f"Fetching of inventory {inventory_url} failed with status code {e.response.status_code}.") return None -- cgit v1.2.3