MCPcopy Create free account
hub / github.com/DeepGraphLearning/graphvite / extract

Method extract

python/graphvite/dataset.py:140–180  ·  view source on GitHub ↗
(self, zip_file, member=None)

Source from the content-addressed store, hash-verified

138 return save_file
139
140 def extract(self, zip_file, member=None):
141 zip_name, extension = os.path.splitext(zip_file)
142 if zip_name.endswith(".tar"):
143 extension = ".tar" + extension
144 zip_name = zip_name[:-4]
145
146 if extension == ".txt":
147 return zip_file
148 elif member is None:
149 save_file = zip_name
150 else:
151 save_file = os.path.join(os.path.dirname(zip_name), os.path.basename(member))
152 if save_file in self.local_files():
153 return save_file
154
155 if extension == ".gz":
156 logger.info("extracting %s to %s" % (self.relpath(zip_file), self.relpath(save_file)))
157 with gzip.open(zip_file, "rb") as fin, open(save_file, "wb") as fout:
158 shutil.copyfileobj(fin, fout)
159 elif extension == ".tar.gz" or extension == ".tar":
160 if member is None:
161 logger.info("extracting %s to %s" % (self.relpath(zip_file), self.relpath(save_file)))
162 with tarfile.open(zip_file, "r") as fin:
163 fin.extractall(save_file)
164 else:
165 logger.info("extracting %s from %s to %s" % (member, self.relpath(zip_file), self.relpath(save_file)))
166 with tarfile.open(zip_file, "r").extractfile(member) as fin, open(save_file, "wb") as fout:
167 shutil.copyfileobj(fin, fout)
168 elif extension == ".zip":
169 if member is None:
170 logger.info("extracting %s to %s" % (self.relpath(zip_file), self.relpath(save_file)))
171 with zipfile.ZipFile(zip_file) as fin:
172 fin.extractall(save_file)
173 else:
174 logger.info("extracting %s from %s to %s" % (member, self.relpath(zip_file), self.relpath(save_file)))
175 with zipfile.ZipFile(zip_file).open(member, "r") as fin, open(save_file, "wb") as fout:
176 shutil.copyfileobj(fin, fout)
177 else:
178 raise ValueError("Unknown file extension `%s`" % extension)
179
180 return save_file
181
182 def get_file(self, key):
183 file_name = os.path.join(self.path, "%s_%s.txt" % (self.name, key))

Callers 2

get_fileMethod · 0.95

Calls 3

local_filesMethod · 0.95
relpathMethod · 0.95
infoMethod · 0.45

Tested by

no test coverage detected