def __init__(self, id, name, coresNumber, speed, ip, port, ramSize, caracteristics=None, performance=0.0, puliversion="undefined", createDate=None):
        '''Constructs a new Rendernode.

        :parameters:
        - `name`: the name of the rendernode
        - `coresNumber`: the number of processors
        - `speed`: the speed of the processor
        '''
        self.id = int(id) if id else None
        self.name = str(name)

        self.coresNumber = int(coresNumber)
        self.ramSize = int(ramSize)
        self.licenseManager = None
        self.freeCoresNumber = int(coresNumber)
        self.usedCoresNumber = {}
        self.freeRam = int(ramSize)  # ramSize-usedRam i.e. the amount of RAM used if several commands running concurrently
        self.systemFreeRam = int(ramSize)  # the RAM available on the system (updated each ping)
        self.systemSwapPercentage = 0
        self.usedRam = {}

        self.speed = speed
        self.commands = {}
        self.status = RN_UNKNOWN
        self.responseId = None
        self.host = str(ip)
        self.port = int(port)
        self.pools = []
        self.idInformed = False
        self.isRegistered = False
        self.lastAliveTime = 0
        self.httpConnection = None
        self.caracteristics = caracteristics if caracteristics else {}
        self.currentpoolshare = None
        self.performance = float(performance)
        self.history = deque(maxlen=singletonconfig.get('CORE', 'RN_NB_ERRORS_TOLERANCE'))
        self.tasksHistory = deque(maxlen=15)
        self.excluded = False

        # Init new data
        self.puliversion = puliversion
        if createDate is None:
            self.createDate = 0
        else:
            self.createDate = createDate

        self.registerDate = time.time()

        # Flag linked to the worker flag "isPaused". Handles the case when a worker is set paused but a command is still running (finishing)
        # the RN on the dispatcher must be flag not to be assigned (i.e. in isAvailable property)
        # self.canBeAssigned = True

        if not "softs" == self.caracteristics:
            self.caracteristics["softs"] = []

    ## Returns True if this render node is available for command assignment.
    #
dataset/ETHPy150Open mikrosimage/OpenRenderManagement/src/octopus/dispatcher/model/rendernode.py/RenderNode.__init__/operator `in` -> `==`