From fc7e3a1ecf71b56661434637bb9d6398522d4893 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Thu, 7 Dec 2023 17:56:19 +0100 Subject: [PATCH] fixed that CachePackage.open works also for filenames as strings --- src/c3nav/mapdata/utils/cache/package.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/c3nav/mapdata/utils/cache/package.py b/src/c3nav/mapdata/utils/cache/package.py index 164ca213..d9690d25 100644 --- a/src/c3nav/mapdata/utils/cache/package.py +++ b/src/c3nav/mapdata/utils/cache/package.py @@ -2,8 +2,9 @@ import os import struct from collections import namedtuple from io import BytesIO +from pathlib import Path from tarfile import TarFile, TarInfo -from typing import BinaryIO, Self +from typing import BinaryIO, Self, Optional from pyzstd import CParameter, ZstdError, ZstdFile @@ -107,10 +108,12 @@ class CachePackage: return cls(bounds, levels) @classmethod - def open(cls, package=None): + def open(cls, package:Optional[str | os.PathLike] = None): if package is None: from django.conf import settings package = settings.CACHE_ROOT / 'package.tar' + elif not hasattr(package, 'open'): + package = Path(package) return cls.read(package.open('rb')) cached = LocalContext()