1# Copyright 2018 Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15import atexit 16from pathlib import Path 17import shutil 18import tempfile 19from typing import List 20 21_tempdirs: List[str] = [] 22 23 24def tmpdir() -> Path: 25 path = tempfile.mkdtemp() 26 _tempdirs.append(path) 27 return Path(path) 28 29 30def cleanup(): 31 for path in _tempdirs: 32 shutil.rmtree(str(path)) 33 34 35atexit.register(cleanup) 36