Lazy imports

Signed-off-by: nathom <nathanthomas707@gmail.com>
This commit is contained in:
nathom 2021-06-30 19:47:25 -07:00
parent 4b03a2215c
commit 1a67f0a305

View file

@ -1,28 +1,10 @@
"""The streamrip command line interface.""" """The streamrip command line interface."""
import logging
import os
import shutil
from getpass import getpass
from hashlib import md5
import click import click
import requests import logging
from streamrip import __version__
from streamrip.clients import TidalClient
from .config import Config
from streamrip.constants import CACHE_DIR, CONFIG_DIR, CONFIG_PATH, QOBUZ_FEATURED_KEYS
from .core import MusicDL
logging.basicConfig(level="WARNING") logging.basicConfig(level="WARNING")
logger = logging.getLogger("streamrip") logger = logging.getLogger("streamrip")
if not os.path.isdir(CONFIG_DIR):
os.makedirs(CONFIG_DIR, exist_ok=True)
if not os.path.isdir(CACHE_DIR):
os.makedirs(CONFIG_DIR, exist_ok=True)
@click.group(invoke_without_command=True) @click.group(invoke_without_command=True)
@click.option("-c", "--convert", metavar="CODEC", help="alac, mp3, flac, or ogg") @click.option("-c", "--convert", metavar="CODEC", help="alac, mp3, flac, or ogg")
@ -56,6 +38,21 @@ def cli(ctx, **kwargs):
$ rip config --open $ rip config --open
""" """
import os
import requests
from streamrip import __version__
from .config import Config
from streamrip.constants import CONFIG_DIR
from .core import MusicDL
logging.basicConfig(level="WARNING")
logger = logging.getLogger("streamrip")
if not os.path.isdir(CONFIG_DIR):
os.makedirs(CONFIG_DIR, exist_ok=True)
global config global config
global core global core
@ -225,6 +222,8 @@ def discover(ctx, **kwargs):
* universal-chanson * universal-chanson
""" """
from streamrip.constants import QOBUZ_FEATURED_KEYS
assert ( assert (
kwargs["list"] in QOBUZ_FEATURED_KEYS kwargs["list"] in QOBUZ_FEATURED_KEYS
), f"Invalid featured key {kwargs['list']}" ), f"Invalid featured key {kwargs['list']}"
@ -284,6 +283,13 @@ def lastfm(ctx, source, url):
@click.pass_context @click.pass_context
def config(ctx, **kwargs): def config(ctx, **kwargs):
"""Manage the streamrip configuration file.""" """Manage the streamrip configuration file."""
from streamrip.clients import TidalClient
from streamrip.constants import CONFIG_PATH
from hashlib import md5
from getpass import getpass
import shutil
import os
global config global config
if kwargs["reset"]: if kwargs["reset"]:
config.reset() config.reset()
@ -343,9 +349,10 @@ def config(ctx, **kwargs):
@click.argument("PATH") @click.argument("PATH")
@click.pass_context @click.pass_context
def convert(ctx, **kwargs): def convert(ctx, **kwargs):
from . import converter from streamrip import converter
import concurrent.futures import concurrent.futures
from tqdm import tqdm from tqdm import tqdm
import os
codec_map = { codec_map = {
"FLAC": converter.FLAC, "FLAC": converter.FLAC,