Skip to content

Commit

Permalink
Fix: Github, Gitlab archiving bug after cache maint
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmetNSimsek committed Feb 27, 2024
1 parent 681d37d commit 68f5fdc
Showing 1 changed file with 25 additions and 23 deletions.
48 changes: 25 additions & 23 deletions siibra/retrieval/repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,18 +250,19 @@ def get_loader(self, filename, folder="", decode_func=None):
return super().get_loader(filename, folder, decode_func)

def _archive(self):
assert self.archive_mode, "To archive the repo, `archive_mode` must be True."
archive_directory = CACHE.build_filename(self.base_url + self.reftag)
if not os.path.isdir(archive_directory):
import tarfile

tarball_url = f"{self.base_url}/tarball/{self.reftag}"
req = HttpRequest(tarball_url, func=lambda b: b)
req.get()
with tarfile.open(name=req.cachefile, mode="r:gz") as tar:
tar.extractall(CACHE.folder)
foldername = tar.getnames()[0]
os.rename(os.path.join(CACHE.folder, foldername), archive_directory)
if self._archive_conn is None:
archive_directory = CACHE.build_filename(self.base_url + self.reftag)
if not os.path.isdir(archive_directory):
import tarfile

tarball_url = f"{self.base_url}/tarball/{self.reftag}"
req = HttpRequest(tarball_url, func=lambda b: b)
req.get()
with tarfile.open(name=req.cachefile, mode="r:gz") as tar:
tar.extractall(CACHE.folder)
foldername = tar.getnames()[0]
os.rename(os.path.join(CACHE.folder, foldername), archive_directory)
# create LocalFileRepository as an interface to the local files
self._archive_conn = LocalFileRepository(archive_directory)

Expand Down Expand Up @@ -354,19 +355,20 @@ def get_loader(self, filename, folder="", decode_func=None):
return super().get_loader(filename, folder, decode_func)

def _archive(self):
assert self.archive_mode, "To archive the repo, `archive_mode` must be True."
ref = self.reftag if self.want_commit is None else self.want_commit["short_id"]
archive_directory = CACHE.build_filename(self.base_url + ref)
if not os.path.isdir(archive_directory):
import tarfile

tarball_url = self.base_url + f"/archive.tar.gz?sha={ref}"
req = HttpRequest(tarball_url, func=lambda b: b)
req.get()
with tarfile.open(name=req.cachefile, mode="r:gz") as tar:
tar.extractall(CACHE.folder)
foldername = tar.getnames()[0]
os.rename(os.path.join(CACHE.folder, foldername), archive_directory)
if self._archive_conn is None:
ref = self.reftag if self.want_commit is None else self.want_commit["short_id"]
archive_directory = CACHE.build_filename(self.base_url + ref)
if not os.path.isdir(archive_directory):
import tarfile

tarball_url = self.base_url + f"/archive.tar.gz?sha={ref}"
req = HttpRequest(tarball_url, func=lambda b: b)
req.get()
with tarfile.open(name=req.cachefile, mode="r:gz") as tar:
tar.extractall(CACHE.folder)
foldername = tar.getnames()[0]
os.rename(os.path.join(CACHE.folder, foldername), archive_directory)
# create LocalFileRepository as an interface to the local files
self._archive_conn = LocalFileRepository(archive_directory)

Expand Down

0 comments on commit 68f5fdc

Please sign in to comment.