a 97aX @szddlZddlZddlZddlZddlZddlmZmZddlm Z ddl m Z m Z ddgdfddZ dd Zd d ZdS) N) check_call check_output)TarFile) METADATA_FN ZONEFILENAMEgzc sPttjd}tjt}zt|B}|D]}| |q6fdd|D} t || Wdn1sx0Yttj|t d"} t j || dddWdn1s0Ytj|t} t| d |:}t|D]} tj|| } || | qWdn1s(0YWtn t0dS) zRebuild the internal timezone info in dateutil/zoneinfo/zoneinfo*tar* filename is the timezone tarball from ``ftp.iana.org/tz``. Zzoneinfocsg|]}tj|qS)ospathjoin).0nZtmpdirrt/private/var/folders/s6/9n5zrl012gv99k63s4q6ccsd4s6mqz/T/pip-target-f5cq3f2q/lib/python/dateutil/zoneinfo/rebuild.py zrebuild..NwT)indent sort_keyszw:%s)tempfilemkdtempr r r dirname__file__ropenextract_run_zicrjsondumprlistdiraddshutilrmtree)filenametagformatZ zonegroupsmetadatazonedirZ moduledirtfname filepathsftargetentryZ entrypathrrrrebuild s"  (00r.c Cstztddg}Wn.ty>}zt|WYd}~n d}~00d|vrRddg}ng}tdg|d|g|dS)aCalls the ``zic`` compiler in a compatible way to get a "fat" binary. Recent versions of ``zic`` default to ``-b slim``, while older versions don't even have the ``-b`` option (but default to "fat" binaries). The current version of dateutil does not support Version 2+ TZif files, which causes problems when used in conjunction with "slim" binaries, so this function is used to ensure that we always get a "fat" binary. Zzicz--helpNs-b z-bfatz-d)rOSError_print_on_nosuchfiler)r'r* help_texteZ bloat_argsrrrr)s  rcCs|jdkrtddS)zdPrint helpful troubleshooting message e is an exception raised by subprocess.check_call() zzCould not find zic. Perhaps you need to install libc-bin or some other package that provides it, or it's not in your PATH?N)errnologgingerror)r3rrrr1As r1)r6r rr!r subprocessrrtarfilerZdateutil.zoneinforrr.rr1rrrrs