def METHOD_NAME(views: ViewList) -> NodeApplyList:
    nodes: list[NodeApply] = []
    for source in NODE_SOURCES:
        df = pd.read_csv(source.csv_path).infer_objects()
        view = cast(View, views.get(external_id=source.view_id))
        for _, row in df.iterrows():
            external_id = source.id.create(row)
            node = NodeApply(
                space=view.space,
                external_id=external_id,
                sources=[
                    NodeOrEdgeData(
                        source=view.as_id(),
                        properties={
                            **row[source.properties].to_dict(),
                            **{
                                direct.field_name: {"space": view.space, "externalId": direct.create(row)}
                                for direct in source.direct_relations
                            },
                        },
                    )
                ],
            )
            nodes.append(node)
    return NodeApplyList(nodes)