Source code for gwss.unpkg

import asyncio
from os import PathLike
from pprint import pprint
from typing import Any

import click

from gwss.download import download_file
from gwss import resolver
from furl import furl, Fragment

from gwss.logger import logger


[docs] class Unpkg:
[docs] base_url = furl('https://unpkg.com')
def __init__(self, package: str, version: str, dir_: PathLike | None, name: PathLike, filename: PathLike, s_or_s: str | None) -> object: """ Args: package : str The package name version : str The version number of the package dir_ : str | PathLike | None root (dir)ectory that downloadable files are in (umd|dist|.) If isn't needed (if results are already pulled) should be left out name : str | PathLike The 'nickname' given to the file to save as filename : str | PathLike The first parent directory and filename of wanted file (without extension) s_or_s : str The string 'scripts' or 'styles' """ self.package = package self.version = version self.dir_ = dir_ self.name = name self.filename = filename self.s_or_s = s_or_s self.url = ''
[docs] def unpkg_dl(self, url, dest_file: PathLike) -> bool | Any: """ Download the package file from unpkg.com Parameters ---------- url : furl | str | None url to download from dest_file : str | PathLike local file to download to Returns ------- True if files are successfully downloaded False otherwise """ logger.debug(f"Downloading files from Unpkg") logger.debug(f'Trying to download {self.unpkg_url()} to {dest_file}') asyncio.run(download_file(url=self.unpkg_url().url, dest_file=dest_file))
[docs] def unpkg_url(self) -> furl: """ Create a URL using the base URL, package, version, directory, file, and extension. :return: :return: The created URL as a string. """ url = furl(self.base_url) # create url package = self.package url = url.add(path=f"{package}") version = self.version url = furl(f'{url.url}@{version}') _dir = self.dir_ url = url.add(path=f"{_dir}") file = self.filename url = url.add(path=f"{file}") self.url = url.path.normalize() return url