def __init__( self, is_reverse_wind=False, Nslot_shift_wind=0, qs=3, Ntcoil=7, Npcpp=2, type_connection=0, p=3, Lewout=0.015, conductor=-1, init_dict=None, ): """Constructor of the class. Can be use in two ways : - __init__ (arg1 = 1, arg3 = 5) every parameters have name and default values for Matrix, None will initialise the property with an empty Matrix for pyleecan type, None will call the default constructor - __init__ (init_dict = d) d must be a dictionnary wiht every properties as keys ndarray or list can be given for Vector and Matrix object or dict can be given for pyleecan Object""" if conductor == -1: conductor = Conductor() if init_dict is not None: # Initialisation by dict check_init_dict( init_dict, [ "is_reverse_wind", "Nslot_shift_wind", "qs", "Ntcoil", "Npcpp", "type_connection", "p", "Lewout", "conductor", ], ) # Overwrite default value with init_dict content if "is_reverse_wind" in list(init_dict.keys()): is_reverse_wind = init_dict["is_reverse_wind"] if "Nslot_shift_wind" in list(init_dict.keys()): Nslot_shift_wind = init_dict["Nslot_shift_wind"] if "qs" in list(init_dict.keys()): qs = init_dict["qs"] if "Ntcoil" in list(init_dict.keys()): Ntcoil = init_dict["Ntcoil"] if "Npcpp" in list(init_dict.keys()): Npcpp = init_dict["Npcpp"] if "type_connection" in list(init_dict.keys()): type_connection = init_dict["type_connection"] if "p" in list(init_dict.keys()): p = init_dict["p"] if "Lewout" in list(init_dict.keys()): Lewout = init_dict["Lewout"] if "conductor" in list(init_dict.keys()): conductor = init_dict["conductor"] # Initialisation by argument self.parent = None self.is_reverse_wind = is_reverse_wind self.Nslot_shift_wind = Nslot_shift_wind self.qs = qs self.Ntcoil = Ntcoil self.Npcpp = Npcpp self.type_connection = type_connection self.p = p self.Lewout = Lewout # conductor can be None, a Conductor object or a dict if isinstance(conductor, dict): # Call the correct constructor according to the dict load_dict = { "CondType11": CondType11, "CondType12": CondType12, "CondType21": CondType21, "CondType22": CondType22, "Conductor": Conductor, } obj_class = conductor.get("__class__") if obj_class is None: self.conductor = Conductor(init_dict=conductor) elif obj_class in list(load_dict.keys()): self.conductor = load_dict[obj_class](init_dict=conductor) else: # Avoid generation error or wrong modification in json raise InitUnKnowClassError( "Unknow class name in init_dict for conductor") else: self.conductor = conductor # The class is frozen, for now it's impossible to add new properties self._freeze()
def __init__( self, is_reverse_wind=False, Nslot_shift_wind=0, qs=3, Ntcoil=7, Npcpp=2, type_connection=0, p=3, Lewout=0.015, conductor=-1, init_dict=None, ): """Constructor of the class. Can be use in two ways : - __init__ (arg1 = 1, arg3 = 5) every parameters have name and default values for Matrix, None will initialise the property with an empty Matrix for pyleecan type, None will call the default constructor - __init__ (init_dict = d) d must be a dictionnary wiht every properties as keys ndarray or list can be given for Vector and Matrix object or dict can be given for pyleecan Object""" if conductor == -1: conductor = Conductor() if init_dict is not None: # Initialisation by dict check_init_dict( init_dict, [ "is_reverse_wind", "Nslot_shift_wind", "qs", "Ntcoil", "Npcpp", "type_connection", "p", "Lewout", "conductor", ], ) # Overwrite default value with init_dict content if "is_reverse_wind" in list(init_dict.keys()): is_reverse_wind = init_dict["is_reverse_wind"] if "Nslot_shift_wind" in list(init_dict.keys()): Nslot_shift_wind = init_dict["Nslot_shift_wind"] if "qs" in list(init_dict.keys()): qs = init_dict["qs"] if "Ntcoil" in list(init_dict.keys()): Ntcoil = init_dict["Ntcoil"] if "Npcpp" in list(init_dict.keys()): Npcpp = init_dict["Npcpp"] if "type_connection" in list(init_dict.keys()): type_connection = init_dict["type_connection"] if "p" in list(init_dict.keys()): p = init_dict["p"] if "Lewout" in list(init_dict.keys()): Lewout = init_dict["Lewout"] if "conductor" in list(init_dict.keys()): conductor = init_dict["conductor"] # Initialisation by argument self.parent = None self.is_reverse_wind = is_reverse_wind self.Nslot_shift_wind = Nslot_shift_wind self.qs = qs self.Ntcoil = Ntcoil self.Npcpp = Npcpp self.type_connection = type_connection self.p = p self.Lewout = Lewout # conductor can be None, a Conductor object or a dict if isinstance(conductor, dict): # Check that the type is correct (including daughter) class_name = conductor.get("__class__") if class_name not in [ "Conductor", "CondType11", "CondType12", "CondType21", "CondType22", ]: raise InitUnKnowClassError("Unknow class name " + class_name + " in init_dict for conductor") # Dynamic import to call the correct constructor module = __import__("pyleecan.Classes." + class_name, fromlist=[class_name]) class_obj = getattr(module, class_name) self.conductor = class_obj(init_dict=conductor) else: self.conductor = conductor # The class is frozen, for now it's impossible to add new properties self._freeze()