"""Abstract class to interface node with export generation.
This class expose a dictionary ``attributes`` which contains all the information required to generate an export:
- All the attributes of the Aidge node are automatically fetch, the key to get an attribute is the attribute name in python format, example ``no_bias``
- **name**: Name of the Node, ``str``
- **nb_in**: Number of inputs, ``int``
- **in_name**: unique name for each input, if no input node the name is ``{node_name}_input_{in_id}``, if there is a parent, the name is ``{parent_name}_output_{out_id}``, ``list[str]``
- **in_dims**: A list of the dimension for each inputs, ``list[list[int]]``
- **in_chan**: A list of channel for each inputs, deduced by the dataformat, ``list[int]``
- **in_height**: A list of height for each inputs, deduced by the dataformat, ``list[int]``
- **in_width**: A list of width for each inputs, deduced by the dataformat, ``list[int]``
- **in_dtype**: A list of type (Aidge format) for each input, ``List[:py:class:`aidge_core.dtype`]``
- **in_cdtype**: A list of type (C/C++ format) for each input, ``List[str]``
- **out_name**: unique name for each output, the name is ``{name}_output_{out_id}``, ``list[str]``
- **nb_out**: Number of outputs, ``int``
- **out_dims**: A list of the dimension for each inputs, ``list[list[int]]``
- **out_chan**: A list of channel for each outputs, deduced by the dataformat, ``list[int]``
- **out_height**: A list of height for each outputs, deduced by the dataformat, ``list[int]``
- **out_width**: A list of width for each outputs, deduced by the dataformat, ``list[int]``
- **out_dtype**: A list of type (Aidge format) for each output, ``List[:py:class:`aidge_core.dtype`]``
- **out_cdtype**: A list of type (C/C++ format) for each output, ``List[str]``
- **is_output**: True if the node is an output node, ``bool``
- **is_input**: True if the node is an input node, ``bool``