aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Numerlor <[email protected]>2021-01-13 21:31:55 +0100
committerGravatar Numerlor <[email protected]>2021-01-14 05:01:14 +0100
commita4de9fe294b7626dc81ee191d2d6bce751ad91c7 (patch)
tree3265c92e1c0d78b80ca495675255fc5c9a315e0e
parentKeep trakck of the init task and cancel it when the cog is unloaded (diff)
Change typehint name casing to PascalCase
-rw-r--r--bot/converters.py2
-rw-r--r--bot/exts/info/doc/_cog.py4
-rw-r--r--bot/exts/info/doc/_inventory_parser.py11
3 files changed, 9 insertions, 8 deletions
diff --git a/bot/converters.py b/bot/converters.py
index 6bbc22c3a..2b383636c 100644
--- a/bot/converters.py
+++ b/bot/converters.py
@@ -187,7 +187,7 @@ class Inventory(Converter):
"""
@staticmethod
- async def convert(ctx: Context, url: str) -> t.Tuple[str, _inventory_parser.INVENTORY_DICT]:
+ async def convert(ctx: Context, url: str) -> t.Tuple[str, _inventory_parser.InventoryDict]:
"""Convert url to Intersphinx inventory URL."""
await ctx.trigger_typing()
if (inventory := await _inventory_parser.fetch_inventory(url)) is None:
diff --git a/bot/exts/info/doc/_cog.py b/bot/exts/info/doc/_cog.py
index aa9642016..51283a67e 100644
--- a/bot/exts/info/doc/_cog.py
+++ b/bot/exts/info/doc/_cog.py
@@ -21,7 +21,7 @@ from bot.utils.messages import send_denial, wait_for_deletion
from bot.utils.scheduling import Scheduler
from . import PRIORITY_PACKAGES, doc_cache
from ._batch_parser import BatchParser
-from ._inventory_parser import INVENTORY_DICT, fetch_inventory
+from ._inventory_parser import InventoryDict, fetch_inventory
log = logging.getLogger(__name__)
@@ -78,7 +78,7 @@ class DocCog(commands.Cog):
await self.bot.wait_until_guild_available()
await self.refresh_inventory()
- def update_single(self, api_package_name: str, base_url: str, package: INVENTORY_DICT) -> None:
+ def update_single(self, api_package_name: str, base_url: str, package: InventoryDict) -> None:
"""
Rebuild the inventory for a single package.
diff --git a/bot/exts/info/doc/_inventory_parser.py b/bot/exts/info/doc/_inventory_parser.py
index 886708867..1615f15bd 100644
--- a/bot/exts/info/doc/_inventory_parser.py
+++ b/bot/exts/info/doc/_inventory_parser.py
@@ -11,9 +11,10 @@ import bot
log = logging.getLogger(__name__)
FAILED_REQUEST_ATTEMPTS = 3
-INVENTORY_DICT = DefaultDict[str, List[Tuple[str, str]]]
_V2_LINE_RE = re.compile(r'(?x)(.+?)\s+(\S*:\S*)\s+(-?\d+)\s+?(\S*)\s+(.*)')
+InventoryDict = DefaultDict[str, List[Tuple[str, str]]]
+
class ZlibStreamReader:
"""Class used for decoding zlib data of a stream line by line."""
@@ -43,7 +44,7 @@ class ZlibStreamReader:
pos = buf.find(b'\n')
-async def _load_v1(stream: aiohttp.StreamReader) -> INVENTORY_DICT:
+async def _load_v1(stream: aiohttp.StreamReader) -> InventoryDict:
invdata = defaultdict(list)
async for line in stream:
@@ -59,7 +60,7 @@ async def _load_v1(stream: aiohttp.StreamReader) -> INVENTORY_DICT:
return invdata
-async def _load_v2(stream: aiohttp.StreamReader) -> INVENTORY_DICT:
+async def _load_v2(stream: aiohttp.StreamReader) -> InventoryDict:
invdata = defaultdict(list)
async for line in ZlibStreamReader(stream):
@@ -72,7 +73,7 @@ async def _load_v2(stream: aiohttp.StreamReader) -> INVENTORY_DICT:
return invdata
-async def _fetch_inventory(url: str) -> INVENTORY_DICT:
+async def _fetch_inventory(url: str) -> InventoryDict:
"""Fetch, parse and return an intersphinx inventory file from an url."""
timeout = aiohttp.ClientTimeout(sock_connect=5, sock_read=5)
async with bot.instance.http_session.get(url, timeout=timeout, raise_for_status=True) as response:
@@ -94,7 +95,7 @@ async def _fetch_inventory(url: str) -> INVENTORY_DICT:
raise ValueError(f"Invalid inventory file at url {url}.")
-async def fetch_inventory(url: str) -> Optional[INVENTORY_DICT]:
+async def fetch_inventory(url: str) -> Optional[InventoryDict]:
"""
Get an inventory dict from `url`, retrying `FAILED_REQUEST_ATTEMPTS` times on errors.