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