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.
		
		
		
		
		
			
		
			
				
					
					
						
							74 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							74 lines
						
					
					
						
							1.9 KiB
						
					
					
				| 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_storm_version(version_string): | |
|     """ | |
|     Parses the version of storm. | |
|  | |
|     :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 stormpy. | |
|  | |
|     :return: Version | |
|     """ | |
|     verstr = "unknown" | |
|     try: | |
|         verstrline = open('lib/stormpy/_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 stormpy/_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()
 |