Source code for qutip_qtrl.io

# -*- coding: utf-8 -*-

import os
import errno


[docs]def create_dir(dir_name, desc="output"): """ Checks if the given directory exists, if not it is created Returns ------- dir_ok : boolean True if directory exists (previously or created) False if failed to create the directory dir_name : string Path to the directory, which may be been made absolute msg : string Error msg if directory creation failed """ dir_ok = True if "~" in dir_name: dir_name = os.path.expanduser(dir_name) elif not os.path.isabs(dir_name): # Assume relative path from cwd given dir_name = os.path.abspath(dir_name) msg = "{} directory is ready".format(desc) errmsg = "Failed to create {} directory:\n{}\n".format(desc, dir_name) if os.path.exists(dir_name): if os.path.isfile(dir_name): dir_ok = False errmsg += "A file already exists with the same name" else: try: os.makedirs(dir_name) msg += "directory {} created (recursively)".format(dir_name) except OSError as e: if e.errno == errno.EEXIST: msg += ( "Assume directory {} created " "(recursively) by some other process. ".format(dir_name) ) else: dir_ok = False errmsg += "Underling error (makedirs) :({}) {}".format( type(e).__name__, e ) if dir_ok: return dir_ok, dir_name, msg else: return dir_ok, dir_name, errmsg