From 5b00de9a43cc8d0f9697002a796e7d9c832562b9 Mon Sep 17 00:00:00 2001 From: Luca Falavigna Date: Mon, 12 Feb 2024 08:36:11 +0100 Subject: [PATCH] Use errno.EISDIR instead of hardcoding values --- core/results.py | 6 +++--- hscommon/conflict.py | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/core/results.py b/core/results.py index 3606e38a..ddc60f14 100644 --- a/core/results.py +++ b/core/results.py @@ -10,6 +10,7 @@ import re import os import os.path as op +from errno import EISDIR from xml.etree import ElementTree as ET from hscommon.jobprogress.job import nulljob @@ -375,9 +376,8 @@ def do_write(outfile): try: do_write(outfile) except OSError as e: - # If our OSError is because dest is already a directory, we want to handle that. 21 is - # the code we get on OS X and Linux, 13 is what we get on Windows. - if e.errno in {21, 13}: + # If our OSError is because dest is already a directory, we want to handle that. + if e.errno == EISDIR: p = str(outfile) dirname, basename = op.split(p) otherfiles = os.listdir(dirname) diff --git a/hscommon/conflict.py b/hscommon/conflict.py index af133ac7..68aa22f0 100644 --- a/hscommon/conflict.py +++ b/hscommon/conflict.py @@ -14,6 +14,7 @@ import os import shutil +from errno import EISDIR from pathlib import Path from typing import Callable, List @@ -75,10 +76,7 @@ def smart_copy(source_path: Path, dest_path: Path) -> None: try: _smart_move_or_copy(shutil.copy, source_path, dest_path) except OSError as e: - if e.errno in { - 21, - 13, - }: # it's a directory, code is 21 on OS X / Linux and 13 on Windows + if e.errno == EISDIR: # it's a directory _smart_move_or_copy(shutil.copytree, source_path, dest_path) else: raise