L izNddlZddlZddlmZddlmZddlmZGddeZy)N)Optional)unquote)AbstractFileSystemcfeZdZdZdZfdZd dZdZ d dZe d de de e fdZ xZS) DataFileSystemzA handy decoder for data-URLs Example ------- >>> with fsspec.open("data:,Hello%2C%20World%21") as f: ... print(f.read()) b"Hello, World!" See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs datac $t|di|y)z!No parameters for this filesystemN)super__init__)selfkwargs __class__s a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fsspec/implementations/data.pyr zDataFileSystem.__init__s "6"c |jdd\}}|jdrtj|||St |j ||S)N,base64)splitendswithr b64decoderencode)r pathstartendrprefrs rcat_filezDataFileSystem.cat_filesTZZQ' d == "##D)%4 4t}##%eC00rc |jdd\}}|j|}|jdddjddd}|t|d|dS)Nrr:;rfile)namesizetypemimetype)rrlen)r rrrr#rmimes rinfozDataFileSystem.info!s^ZZQ' d}}T"zz#q!!$**3215c$iTRRrc hd|vr tdtj|j|S)NrzRead only filesystem) ValueErrorioBytesIOr)r rmode block_size autocommit cache_optionsrs r_openzDataFileSystem._open's/ d?34 4zz$---..rr(c\d|xsddtj|jS)zFormat the given data into data-URL syntax This version always base64 encodes, even when the data is ascii/url-safe. zdata:z;base64,)r b64encodedecode)rr(s rrzDataFileSystem.encode4s0 tzrl(6+;+;D+A+H+H+J*KLLr)NN)rbNTN)N)__name__ __module__ __qualname____doc__protocolr rr)r3 staticmethodbytesrstrr __classcell__)rs@rrr s\ H#1 S /MUM(3-MMrr) rr-typingr urllib.parserfsspecrrr rrrEs#  %1M'1Mr