Source code for GUIBRUSHR.scripts.downloader
# GUIBRUSHR/scripts/downloader.py
import zipfile
from pathlib import Path
import gdown
FILE_ID = "1eeEjNf4My6pJ8VMXKZppHSX6SWnycXbV"
SENTINEL = "GUIBRUSHR/Files/Configuration_Yaml/general.yaml"
def _get_base_path() -> Path:
# __file__ = site-packages/GUIBRUSHR/scripts/downloader.py
# .parent = site-packages/GUIBRUSHR/scripts/
# .parent.parent = site-packages/GUIBRUSHR/
# .parent.parent.parent = site-packages/ ← base_path corretta
return Path(__file__).parent.parent.parent.resolve()
[docs]
def download_files(base_path: Path = None) -> None:
if base_path is None:
base_path = _get_base_path()
if (base_path / SENTINEL).exists():
return
print("First run: downloading GUIBRUSHR data files (~160 MB)...")
zip_dest = base_path / "GUIBRUSHR" / "Files" / "_data.zip"
zip_dest.parent.mkdir(parents=True, exist_ok=True)
gdown.download(id=FILE_ID, output=str(zip_dest), quiet=False)
print("Extracting...")
with zipfile.ZipFile(zip_dest, "r") as z:
z.extractall(base_path)
zip_dest.unlink()
print("✓ Data files ready.")
[docs]
def download_files_cli():
"""Entry point per il comando guibrushr-download"""
download_files()
if __name__ == "__main__":
download_files()