"""Explicit local-source recipe. Network is opt-in; no retries/mirrors/raw redistribution.""" import argparse import hashlib import json import shutil import time import urllib.request import urllib.error import zipfile from pathlib import Path class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self,*args):return None SOURCES=[ ('sparc-table1-metadata.body','https://astroweb.cwru.edu/SPARC/SPARC_Lelli2016c.mrt',28259,'5aa0501f6b0d881fa579030e315e7b5b6ef561a5bd3a07472f9929c7e5728243'), ('sparc-rotmod-named-member-archive.body','https://astroweb.cwru.edu/SPARC/Rotmod_LTG.zip',110737,'0a80cc90714828cc28b7dd57923576714d209f2490328c087c4a4ad607faf588'), ] MEMBER='NGC2403_rotmod.dat' MEMBER_SHA='9be193eccc5c363e74d04270290d831738f41ec9225a3b2c95353fd3812170b8' def main(): parser=argparse.ArgumentParser();source=parser.add_mutually_exclusive_group(required=True) source.add_argument('--from-cache',type=Path);source.add_argument('--online',action='store_true') parser.add_argument('--http-budget-bytes',type=int,default=0);parser.add_argument('--output',type=Path,required=True);args=parser.parse_args() if args.online and args.http_budget_bytes