Spaces:
Running on Zero
Running on Zero
Download lib/utils/zipreader.py from dashgaming/slytear: direct link, hf CLI and curl.
- Browser
- Download file 2.23 kB
-
https://huggingface.co/spaces/dashgaming/slytear/resolve/main/lib/utils/zipreader.py
- Command line
-
hf download hf://spaces/dashgaming/slytear/lib/utils/zipreader.py
-
curl -L -o zipreader.py https://huggingface.co/spaces/dashgaming/slytear/resolve/main/lib/utils/zipreader.py
2.23 kB
| # ------------------------------------------------------------------------------ | |
| # Copyright (c) Microsoft | |
| # Licensed under the MIT License. | |
| # Written by Bin Xiao (Bin.Xiao@microsoft.com) | |
| # ------------------------------------------------------------------------------ | |
| from __future__ import absolute_import | |
| from __future__ import division | |
| from __future__ import print_function | |
| import os | |
| import zipfile | |
| import xml.etree.ElementTree as ET | |
| import cv2 | |
| import numpy as np | |
| _im_zfile = [] | |
| _xml_path_zip = [] | |
| _xml_zfile = [] | |
| def imread(filename, flags=cv2.IMREAD_COLOR): | |
| global _im_zfile | |
| path = filename | |
| pos_at = path.index('@') | |
| if pos_at == -1: | |
| print("character '@' is not found from the given path '%s'"%(path)) | |
| assert 0 | |
| path_zip = path[0: pos_at] | |
| path_img = path[pos_at + 2:] | |
| if not os.path.isfile(path_zip): | |
| print("zip file '%s' is not found"%(path_zip)) | |
| assert 0 | |
| for i in range(len(_im_zfile)): | |
| if _im_zfile[i]['path'] == path_zip: | |
| data = _im_zfile[i]['zipfile'].read(path_img) | |
| return cv2.imdecode(np.frombuffer(data, np.uint8), flags) | |
| _im_zfile.append({ | |
| 'path': path_zip, | |
| 'zipfile': zipfile.ZipFile(path_zip, 'r') | |
| }) | |
| data = _im_zfile[-1]['zipfile'].read(path_img) | |
| return cv2.imdecode(np.frombuffer(data, np.uint8), flags) | |
| def xmlread(filename): | |
| global _xml_path_zip | |
| global _xml_zfile | |
| path = filename | |
| pos_at = path.index('@') | |
| if pos_at == -1: | |
| print("character '@' is not found from the given path '%s'"%(path)) | |
| assert 0 | |
| path_zip = path[0: pos_at] | |
| path_xml = path[pos_at + 2:] | |
| if not os.path.isfile(path_zip): | |
| print("zip file '%s' is not found"%(path_zip)) | |
| assert 0 | |
| for i in xrange(len(_xml_path_zip)): | |
| if _xml_path_zip[i] == path_zip: | |
| data = _xml_zfile[i].open(path_xml) | |
| return ET.fromstring(data.read()) | |
| _xml_path_zip.append(path_zip) | |
| print("read new xml file '%s'"%(path_zip)) | |
| _xml_zfile.append(zipfile.ZipFile(path_zip, 'r')) | |
| data = _xml_zfile[-1].open(path_xml) | |
| return ET.fromstring(data.read()) | |