def __getattribute__(self, k):
        """
        Overwride getattribute for multiplex ports.  If we try to get a port for which a multiplex port
        is a prefix, create the port object and then return it.
        """
        # handle regular properties or internal methods normally
        if k in ['_portnames', '_task_name', 'get_matching_multiplex_port'] or k.startswith('__'):
            return object.__getattribute__(self, k)

        # if this port already exists, retrieve it
        if k in self._portnames:
            return object.__getattribute__(self, k)

        # determine if we're trying to get the value for a multiplex output port
        if not k in self._portnames:
            mp_port = self.get_matching_multiplex_port(k)
            if mp_port:
                self.__setattr__(
                    k,
                    Port(
                        mp_port.name,
                        mp_port.type,
                        mp_port.required,
                        mp_port.description,
                        value="source:" + self._task_name + ":" + k,
                        is_input_port=False,
                        is_multiplex=False
                        )
                    )
                self._portnames.update([k])

        return object.__getattribute__(self, k)
def __getattribute__ ( self , k ) : if k in [ '_portnames' , '_task_name' , 'get_matching_multiplex_port' ] or k . startswith ( '__' ) : return object . __getattribute__ ( self , k ) if k in self . _portnames : return object . __getattribute__ ( self , k ) if not k in self . _portnames : mp_port = self . get_matching_multiplex_port ( k ) if mp_port : self . __setattr__ ( k , Port ( mp_port . name , mp_port . type , mp_port . required , mp_port . description , value = "source:" + self . _task_name + ":" + k , is_input_port = False , is_multiplex = False ) ) self . _portnames . update ( [ k ] ) return object . __getattribute__ ( self , k )
Overwride getattribute for multiplex ports.  If we try to get a port for which a multiplex port
        is a prefix, create the port object and then return it.