Cleaned up architecture. Changed operating_system from dictionary method
This commit is contained in:
parent
9bfc83ac5c
commit
3bf75fab3f
@ -210,8 +210,13 @@ def concrete(self):
|
|||||||
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
if self.platform.name == 'darwin':
|
||||||
|
os_name = self.platform_os.name
|
||||||
|
else:
|
||||||
|
os_name = str(self.platform_os)
|
||||||
|
|
||||||
return (str(self.platform) +"-"+
|
return (str(self.platform) +"-"+
|
||||||
str(self.platform_os) + "-" + str(self.target) )
|
os_name + "-" + str(self.target))
|
||||||
|
|
||||||
def _cmp_key(self):
|
def _cmp_key(self):
|
||||||
platform = self.platform.name
|
platform = self.platform.name
|
||||||
@ -231,52 +236,6 @@ def to_dict(self):
|
|||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
#def _helper_to_dict(arch_field_dict, arch_field_name, *args):
|
|
||||||
# """ General method to turn each class in architecture into a
|
|
||||||
# dictionary. Takes as argument the class dictionary, the field name
|
|
||||||
# (platform, platform_os, target) and then any attribute args
|
|
||||||
# """
|
|
||||||
# d = {}
|
|
||||||
# d[arch_field_name] = {}
|
|
||||||
# for items in args:
|
|
||||||
# d[arch_field_name][items] = arch_field_dict[items]
|
|
||||||
# return d
|
|
||||||
#
|
|
||||||
|
|
||||||
#def to_dict(arch):
|
|
||||||
# """ Convert the Arch tuple into a dictionary for yaml dumping. This
|
|
||||||
# uses the _helper_to_dict method to create the dictionary from the
|
|
||||||
# provided architecture field. Can assign the architecture
|
|
||||||
# field name (either platform, platform_os or target) and any
|
|
||||||
# attributes that make up that architecture field,
|
|
||||||
# """
|
|
||||||
# d = {}
|
|
||||||
#
|
|
||||||
# platform = arch.platform.__dict__
|
|
||||||
# platform_os = arch.platform_os.__dict__
|
|
||||||
# target = arch.target.__dict__
|
|
||||||
#
|
|
||||||
# platform_dict = _helper_to_dict(platform,'platform','name')
|
|
||||||
# os_dict = _helper_to_dict(platform_os, 'platform_os', 'name','version',
|
|
||||||
# 'compiler_strategy')
|
|
||||||
# target_dict = _helper_to_dict(target,'target', 'name',
|
|
||||||
# 'module_name','platform_name')
|
|
||||||
#
|
|
||||||
# d.update(platform_dict)
|
|
||||||
# d.update(os_dict)
|
|
||||||
# d.update(target_dict)
|
|
||||||
#
|
|
||||||
# return d
|
|
||||||
|
|
||||||
#def _platform_from_dict(platform):
|
|
||||||
# """Creates all the platform class module names into a dictionary of
|
|
||||||
# name : <class_mod> key-value pairs. From there we can construct the
|
|
||||||
# platform subclass
|
|
||||||
# """
|
|
||||||
# platform_list = all_platforms()
|
|
||||||
# platform_names = {plat.__name__.lower():plat for plat in platform_list}
|
|
||||||
# return platform_names[platform['name']]()
|
|
||||||
|
|
||||||
|
|
||||||
def _target_from_dict(target_dict):
|
def _target_from_dict(target_dict):
|
||||||
""" Creates new instance of target and assigns all the attributes of
|
""" Creates new instance of target and assigns all the attributes of
|
||||||
@ -284,20 +243,21 @@ def _target_from_dict(target_dict):
|
|||||||
"""
|
"""
|
||||||
target = Target.__new__(Target)
|
target = Target.__new__(Target)
|
||||||
target.name = target_dict['name']
|
target.name = target_dict['name']
|
||||||
#target.compiler_strategy = target_dict['compiler_strategy']
|
|
||||||
target.module_name = target_dict['module_name']
|
target.module_name = target_dict['module_name']
|
||||||
if 'platform_name' in target_dict:
|
if 'platform_name' in target_dict:
|
||||||
target.platform_name = target_dict['platform_name']
|
target.platform_name = target_dict['platform_name']
|
||||||
return target
|
return target
|
||||||
|
|
||||||
def _operating_system_from_dict(os_dict, platform_class):
|
def _operating_system_from_dict(os_dict):
|
||||||
""" uses platform's operating system method to grab the constructed
|
""" uses platform's operating system method to grab the constructed
|
||||||
operating systems that are valid on the platform.
|
operating systems that are valid on the platform.
|
||||||
"""
|
"""
|
||||||
# NOTE: Might need a better way to create operating system objects
|
# NOTE: Might need a better way to create operating system objects
|
||||||
name = os_dict['name']
|
operating_system = OperatingSystem.__new__(OperatingSystem)
|
||||||
return platform_class.operating_system(name)
|
operating_system.name = os_dict['name']
|
||||||
|
operating_system.version = os_dict['version']
|
||||||
|
operating_system.compiler_strategy = os_dict['compiler_strategy']
|
||||||
|
return operating_system
|
||||||
|
|
||||||
def arch_from_dict(d):
|
def arch_from_dict(d):
|
||||||
""" Uses _platform_from_dict, _operating_system_from_dict, _target_from_dict
|
""" Uses _platform_from_dict, _operating_system_from_dict, _target_from_dict
|
||||||
@ -312,7 +272,7 @@ def arch_from_dict(d):
|
|||||||
target_dict = d['target']
|
target_dict = d['target']
|
||||||
|
|
||||||
target = _target_from_dict(target_dict)
|
target = _target_from_dict(target_dict)
|
||||||
platform_os = _operating_system_from_dict(os_dict, arch.platform)
|
platform_os = _operating_system_from_dict(os_dict)
|
||||||
arch.target = target
|
arch.target = target
|
||||||
arch.platform_os = platform_os
|
arch.platform_os = platform_os
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user