47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
|
""" Parses .tga.option and .msh.option files. Only used with the former as of now. """
|
||
|
|
||
|
import os
|
||
|
|
||
|
|
||
|
class MungeOptions:
|
||
|
|
||
|
def __init__(self, path_to_option_file):
|
||
|
self.options = {}
|
||
|
|
||
|
if os.path.exists(path_to_option_file):
|
||
|
with open(path_to_option_file, 'r') as option_file:
|
||
|
option_text = option_file.read()
|
||
|
|
||
|
option_parts = option_text.split()
|
||
|
|
||
|
current_parameter = ""
|
||
|
|
||
|
for part in option_parts:
|
||
|
if part.startswith("-"):
|
||
|
current_parameter = part[1:]
|
||
|
self.options[current_parameter] = ""
|
||
|
elif current_parameter:
|
||
|
current_value = self.options[current_parameter]
|
||
|
# Keep adding to value in case there are vector options
|
||
|
self.options[current_parameter] += part if not current_value else (" " + part)
|
||
|
|
||
|
def is_option_present(self, param):
|
||
|
return param in self.options
|
||
|
|
||
|
def get_bool(self, param, default=False):
|
||
|
return True if param in self.options else default
|
||
|
|
||
|
def get_float(self, param, default=0.0):
|
||
|
if param in self.options:
|
||
|
try:
|
||
|
result = float(self.options[param])
|
||
|
except:
|
||
|
result = default
|
||
|
finally:
|
||
|
return result
|
||
|
else:
|
||
|
return default
|
||
|
|
||
|
def get_string(self, param, default=""):
|
||
|
return self.options.get(param, default)
|