From fe55ed801dcc9331a1883897c68666a80c4531ea Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Sat, 13 Jul 2019 19:06:20 +0200
Subject: [PATCH] Faster CLI startup time by moving aiohttp import to runtime

---
 funkwhale_cli/api.py        | 6 ++++--
 funkwhale_cli/cli/base.py   | 2 +-
 funkwhale_cli/cli/tracks.py | 3 ++-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/funkwhale_cli/api.py b/funkwhale_cli/api.py
index 082b22f..5c20ced 100644
--- a/funkwhale_cli/api.py
+++ b/funkwhale_cli/api.py
@@ -1,11 +1,11 @@
-import aiohttp
-
 from . import exceptions
 from . import schemas
 from . import settings
 
 
 def get_session_kwargs():
+    import aiohttp
+
     headers = {"User-Agent": settings.USER_AGENT}
     return {
         "timeout": aiohttp.ClientTimeout(total=settings.TIMEOUT),
@@ -14,6 +14,8 @@ def get_session_kwargs():
 
 
 def get_session():
+    import aiohttp
+
     kwargs = get_session_kwargs()
     return aiohttp.ClientSession(**kwargs)
 
diff --git a/funkwhale_cli/cli/base.py b/funkwhale_cli/cli/base.py
index e4f8676..78517f4 100644
--- a/funkwhale_cli/cli/base.py
+++ b/funkwhale_cli/cli/base.py
@@ -1,5 +1,4 @@
 import asyncio
-import aiohttp
 import click
 import click_log
 import dotenv
@@ -110,6 +109,7 @@ def env_file(v):
 
 def async_command(f):
     def wrapper(*args, **kwargs):
+        import aiohttp
         loop = asyncio.get_event_loop()
         ignore_aiohttp_ssl_eror(loop)
         _async_reraise = kwargs.pop("_async_reraise", False)
diff --git a/funkwhale_cli/cli/tracks.py b/funkwhale_cli/cli/tracks.py
index 7433338..e96226d 100644
--- a/funkwhale_cli/cli/tracks.py
+++ b/funkwhale_cli/cli/tracks.py
@@ -1,7 +1,6 @@
 import os
 import pathlib
 
-import aiohttp
 import click
 import tqdm
 
@@ -70,6 +69,8 @@ async def get_track_download_url(id, remote, format=None):
 async def track_download(
     ctx, id, format, directory, template, overwrite, ignore_errors, skip_existing
 ):
+    import aiohttp
+
     async with ctx.obj["remote"]:
         progressbar = tqdm.tqdm(id, unit="Files")
         for i in progressbar:
-- 
GitLab