Skip to content
Snippets Groups Projects
Commit 90900ab6 authored by Dylan Aïssi's avatar Dylan Aïssi
Browse files

import-debian-package: stop using a PosixPath object as context manager


This is no longer supported since Python 3.13 and leads
to the following error:

Traceback (most recent call last):
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 681, in <module>
    main(sys.argv)
    ~~~~^^^^^^^^^^
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 666, in main
    do_import(args)
    ~~~~~~~~~^^^^^^
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 396, in do_import
    with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'PosixPath' object does not support the context manager protocol

Signed-off-by: default avatarDylan Aïssi <dylan.aissi@collabora.com>
parent 6693c327
Branches apertis/v2025
Tags apertis/0.2024.19
4 merge requests!108Draft: v2026dev2: import-debian-package: stop using a PosixPath object as context manager,!107import-debian-package: stop using a PosixPath object as context manager,!106Draft: import-debian-package: stop using a PosixPath object as context manager,!104Fastforward v2026dev1 -> v2026dev2: Update for compatibility with Trixie
...@@ -19,7 +19,7 @@ import sys ...@@ -19,7 +19,7 @@ import sys
from functools import lru_cache from functools import lru_cache
from gettext import gettext as _ from gettext import gettext as _
from pathlib import Path from pathlib import Path
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory, mkdtemp
from typing import Mapping, Optional from typing import Mapping, Optional
from urllib.error import HTTPError, URLError from urllib.error import HTTPError, URLError
from urllib.parse import quote from urllib.parse import quote
...@@ -393,32 +393,36 @@ def do_import(args): ...@@ -393,32 +393,36 @@ def do_import(args):
if parse_ref(apertis_tag): if parse_ref(apertis_tag):
raise Abort(f"Apertis tag {apertis_tag} already exists, cannot continue") raise Abort(f"Apertis tag {apertis_tag} already exists, cannot continue")
with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir: downloaddir = (
if args.import_local_dsc: ensure_dir_or_none(args.cache_dir)
logging.info(f"Overlaying Apertis package version {version}") if ensure_dir_or_none(args.cache_dir) is not None
downloaded = args.import_local_dsc.name else mkdtemp()
else: )
logging.info("Fetching the package information") if args.import_local_dsc:
logging.info(f"Overlaying Apertis package version {version}")
downloaded = args.import_local_dsc.name
else:
logging.info("Fetching the package information")
cached_dsc = get_cached_dsc(package, version, args.cache_dir) cached_dsc = get_cached_dsc(package, version, args.cache_dir)
try: try:
url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version) url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version)
except KeyboardInterrupt: except KeyboardInterrupt:
raise raise
except (KeyError, HTTPError, URLError): except (KeyError, HTTPError, URLError):
if not cached_dsc: if not cached_dsc:
raise Abort( raise Abort(
f"Unable to download source package {package} version {version}" f"Unable to download source package {package} version {version}"
) )
else: else:
logging.warning( logging.warning(
f"Unable to download source package {package} version {version}, but found cached .dsc" f"Unable to download source package {package} version {version}, but found cached .dsc"
) )
url = cached_dsc url = cached_dsc
downloaded = fetch(package, version, url, downloaddir, cached_dsc) downloaded = fetch(package, version, url, downloaddir, cached_dsc)
import_debian_dsc(args, downloaded, upstream, downstream, version) import_debian_dsc(args, downloaded, upstream, downstream, version)
if args.dsc: if args.dsc:
d = deb822.Dsc(args.dsc) d = deb822.Dsc(args.dsc)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment