You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import importlib import os import re import sys
def ensure_dir_exists(path): """
Check whether the directory exists and creates it if not. """
assert path is not None try: os.makedirs(path) except FileExistsError: pass except OSError as exception: if exception.errno != errno.EEXIST: raise IOError("Cannot create directory: " + path) except BaseException: raise IOError("Path " + path + " seems not valid")
def parse_carl_version(version_string): """
Parses the version of carl.
:param version_string: String containing version information. :return: Tuple (version, commit) """
split = version_string.split('-') version = split[0] commit = "" if len(split) > 1: commit = split[1] return version, commit
def obtain_version(): """
Obtains the version as specified in pycarl.
:return: Version """
verstr = "unknown" try: verstrline = open('lib/pycarl/_version.py', "rt").read() except EnvironmentError: pass # Okay, there is no version file. else: VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" mo = re.search(VSRE, verstrline, re.M) if mo: verstr = mo.group(1) else: raise RuntimeError("unable to find version in pycarl/_version.py") return verstr
def load_cmake_config(path): """
Load cmake config. :param path: Path. :return: Configuration. """
if sys.version_info[1] >= 5: # Method for Python >= 3.5 spec = importlib.util.spec_from_file_location("genconfig", path) conf = importlib.util.module_from_spec(spec) spec.loader.exec_module(conf) return conf else: # Deprecated method for Python <= 3.4 from importlib.machinery import SourceFileLoader return SourceFileLoader("genconfig", path).load_module()
|