1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-11-24 05:48:53 +01:00

Add gitea_api.common.TemporaryDirectory class that supports 'delete' argument on python 3.6+

This commit is contained in:
2025-10-20 10:10:51 +02:00
parent ad96f3926d
commit 7c97922db1
2 changed files with 37 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import os
import re
import subprocess
import sys
import tempfile
from typing import List
from typing import Optional
@@ -101,8 +102,6 @@ def run_editor(file_path: str):
def edit_message(template: Optional[str] = None) -> str:
import tempfile
with tempfile.NamedTemporaryFile(mode="w+", encoding="utf-8", prefix="git_obs_message_") as f:
if template:
f.write(template)
@@ -138,3 +137,24 @@ def dt_sanitize(date_time: str):
dt = datetime.datetime.fromisoformat(date_time)
return dt.astimezone(datetime.timezone.utc).strftime("%Y-%m-%d %H:%M")
if sys.version_info[:2] >= (3, 12):
TemporaryDirectory = tempfile.TemporaryDirectory
else:
class TemporaryDirectory:
"""
A minimalist implementation of TemporaryDirectory that supports 'delete' argument
"""
def __init__(self, suffix=None, prefix=None, dir=None, delete=True):
self.name = tempfile.mkdtemp(suffix=suffix, prefix=prefix, dir=dir)
self._delete = delete
def __enter__(self):
return self.name
def __exit__(self, exc_type, exc_val, exc_tb):
import shutil
if self._delete and os.path.isdir(self.name):
shutil.rmtree(self.name)