@classmethod
def inflate(cls, node):
    """
        Inflate a raw neo4j_driver node to a neomodel node
        :param node:
        :return: node object
        """
    if isinstance(node, int):
        snode = cls()
        snode.id = node
    else:
        props = {}
        for key, prop in cls.__all_properties__:
            db_property = prop.db_property or key
            if db_property in node.properties:
                props[key] = prop.inflate(node.properties[db_property], node)
            elif prop.has_default:
                props[key] = prop.default_value()
            else:
                props[key] = None
        snode = cls(**props)
        snode.id = node.id
    return snode
