Skip to content
Snippets Groups Projects
Forked from Eclipse Projects / aidge / aidge_core
2541 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pybind_core.cpp 2.19 KiB
/********************************************************************************
 * Copyright (c) 2023 CEA-List
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 ********************************************************************************/

#include <pybind11/pybind11.h>

namespace py = pybind11;

namespace Aidge {
void init_Data(py::module&);
void init_Tensor(py::module&);
void init_OperatorImpl(py::module&);
void init_Parameterizable(py::module&);
void init_Operator(py::module&);

void init_Add(py::module&);
void init_AvgPooling(py::module&);
void init_BatchNorm(py::module&);
void init_Conv(py::module&);
void init_ConvDepthWise(py::module&);
void init_FC(py::module&);
void init_GenericOperator(py::module&);
void init_LeakyReLU(py::module&);
void init_Matmul(py::module&);
void init_Producer(py::module&);
void init_ReLU(py::module&);
void init_Softmax(py::module&);

void init_Node(py::module&);
void init_GraphView(py::module&);
void init_OpArgs(py::module&);
void init_Connector(py::module&);

void init_Match(py::module&);
void init_NodeRegex(py::module&);
void init_GRegex(py::module&);

void init_Recipies(py::module&);

void init_Scheduler(py::module&);


void set_python_flag(){
    // Set an env variable to know if we run with ypthon or cpp
    py::module os_module = py::module::import("os");
    os_module.attr("environ")["AIDGE_CORE_WITH_PYBIND"] = "1";
}

void init_Aidge(py::module& m){
    set_python_flag();
    init_Data(m);
    init_Tensor(m);

    init_Node(m);
    init_GraphView(m);
    init_OpArgs(m);
    init_Connector(m);

    init_OperatorImpl(m);
    init_Parameterizable(m);
    init_Operator(m);
    init_Add(m);
    init_AvgPooling(m);
    init_BatchNorm(m);
    init_Conv(m);
    init_ConvDepthWise(m);
    init_FC(m);
    init_GenericOperator(m);
    init_LeakyReLU(m);
    init_Matmul(m);
    init_ReLU(m);
    init_Softmax(m);

    init_Producer(m);
    init_Match(m);
    init_NodeRegex(m);
    init_GRegex(m);
    init_Recipies(m);
    init_Scheduler(m);
}

PYBIND11_MODULE(aidge_core, m) {
    init_Aidge(m);
}
}