Repository: AaltoPML/VAI-Lab (language: python)

Issue:
Update python=3.8 to python=3.10 in readme
Small fix to readme.md commands.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/sphinx.yml b/.github/workflows/sphinx.yml
index f47767ca..f7565de6 100644
--- a/.github/workflows/sphinx.yml
+++ b/.github/workflows/sphinx.yml
@@ -18,7 +18,7 @@ jobs:
         run: python3 -m pip install sphinx sphinx-rtd-theme myst-parser
       - name: build
         run: |
-          sphinx-apidoc --templatedir docs/templates/apidoc -o docs/source src/vai_lab
+          sphinx-apidoc --templatedir docs/source/_templates/apidoc/ -o docs/source src/vai_lab
           sphinx-build -M html docs/source docs/build
       - name: publish gh-pages
         uses: peaceiris/actions-gh-pages@v3
diff --git a/.gitignore b/.gitignore
index 13f4543d..0e6e69c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,7 +74,6 @@ instance/
 
 # Sphinx documentation
 docs/build/
-docs/source/vai_lab*.rst
 docs/source/modules.rst
 
 # PyBuilder
diff --git a/README.md b/README.md
index d5abe5b1..691cb180 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
 
-[![CI Tests](https://img.shields.io/github/actions/workflow/status/AaltoPML/VAI-Lab/pythonpackage.yml?branch=main&label=CI%20Test&logo=github)](https://github.com/AaltoPML/VAI-Lab/actions/workflows/documentation.yml)[![Docs Test](https://img.shields.io/github/actions/workflow/status/AaltoPML/VAI-Lab/documentation.yml?branch=main&label=Docs&logo=github)](https://github.com/AaltoPML/VAI-Lab/actions/workflows/documentation.yml)
-[![PyPI Version](https://img.shields.io/pypi/v/vai-lab?color=blue)](https://pypi.org/project/vai-lab/) [![Python Versions](https://img.shields.io/pypi/pyversions/vai-lab?color=blue)](https://pypi.org/project/vai-lab/) [![Wheel](https://img.shields.io/pypi/wheel/vai-lab)](https://pypi.org/project/vai-lab/) [![License](https://img.shields.io/pypi/l/vai-lab)](https://pypi.org/project/vai-lab/)
+[![CI Tests](https://img.shields.io/github/actions/workflow/status/AaltoPML/VAI-Lab/pythonpackage.yml?branch=main&label=CI%20Test&logo=github)](https://github.com/AaltoPML/VAI-Lab/actions/workflows/documentation.yml) [![Docs Test](https://img.shields.io/github/actions/workflow/status/AaltoPML/VAI-Lab/documentation.yml?branch=main&label=Docs&logo=github)](https://aaltopml.github.io/VAI-Lab/) [![PyPI Version](https://img.shields.io/pypi/v/vai-lab?color=blue&logo=pypi&logoColor=white)](https://pypi.org/project/vai-lab/) [![Python Versions](https://img.shields.io/pypi/pyversions/vai-lab?logo=python&logoColor=white)](https://pypi.org/project/vai-lab/) [![Wheel](https://img.shields.io/pypi/wheel/vai-lab)](https://pypi.org/project/vai-lab/) [![License](https://img.shields.io/pypi/l/vai-lab)](https://pypi.org/project/vai-lab/)
 
 
 
diff --git a/docs/templates/apidoc/module.rst_t b/docs/source/_templates/apidoc/module.rst_t
similarity index 71%
rename from docs/templates/apidoc/module.rst_t
rename to docs/source/_templates/apidoc/module.rst_t
index 24902785..bd363805 100644
--- a/docs/templates/apidoc/module.rst_t
+++ b/docs/source/_templates/apidoc/module.rst_t
@@ -1,9 +1,8 @@
 {%- if show_headings %}
-{{- [basename, "module"] | join(' ') | e | heading }}
+{{- [basename, ""] | join(' ') | e | heading }}
 
 {% endif -%}
 .. automodule:: {{ qualname }}
 {%- for option in automodule_options %}
    :{{ option }}:
 {%- endfor %}
-
diff --git a/docs/templates/apidoc/package.rst_t b/docs/source/_templates/apidoc/package.rst_t
similarity index 78%
rename from docs/templates/apidoc/package.rst_t
rename to docs/source/_templates/apidoc/package.rst_t
index aa1fd459..9aa2fcb2 100644
--- a/docs/templates/apidoc/package.rst_t
+++ b/docs/source/_templates/apidoc/package.rst_t
@@ -16,7 +16,7 @@
 {%- if is_namespace %}
 {{- [pkgname, "namespace"] | join(" ") | e | heading }}
 {% else %}
-{{- [pkgname, "package"] | join(" ") | e | heading }}
+{{- [pkgname, ""] | join(" ") | e | heading }}
 {% endif %}
 
 {%- if is_namespace %}
@@ -27,27 +27,24 @@
 {{ automodule(pkgname, automodule_options) }}
 {% endif %}
 
-{%- if subpackages %}
-
-{{ toctree(subpackages) }}
-{% endif %}
 
 {%- if submodules %}
-
 {% if separatemodules %}
-{{ toctree(submodules) }}
+{{ "" }}
 {% else %}
+{{- ["Core", ""] | join(" ") | e | heading(2) }}
+{{ toctree(submodules) }}
 {%- for submodule in submodules %}
 {% if show_headings %}
-{{- [submodule, "module"] | join(" ") | e | heading(2) }}
+
 {% endif %}
 {{ automodule(submodule, automodule_options) }}
 {% endfor %}
 {%- endif %}
 {%- endif %}
 
-{%- if not modulefirst and not is_namespace %}
-
+{%- if subpackages %}
+{{- ["Plugins", ""] | join(" ") | e | heading(2) }}
 
-{{ automodule(pkgname, automodule_options) }}
-{% endif %}
+{{ toctree(subpackages) }}
+{% endif %}
\ No newline at end of file
diff --git a/docs/templates/apidoc/toc.rst_t b/docs/source/_templates/apidoc/toc.rst_t
similarity index 100%
rename from docs/templates/apidoc/toc.rst_t
rename to docs/source/_templates/apidoc/toc.rst_t
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 26283a34..11b518bd 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -8,9 +8,11 @@
 
 import pathlib
 import sys
+from datetime import datetime
+from typing import List
 
 project = 'VAI-Lab'
-copyright = '2023, Chris McGreavy, Carlos Sevilla-Salcedo'
+copyright = '2022 - {0}, VAI Labs Team'.format(datetime.now().year)
 author = 'Chris McGreavy, Carlos Sevilla-Salcedo'
 
 
@@ -22,9 +24,10 @@
     'sphinx.ext.autosummary',   # For API
     'myst_parser',              # For importing README.md
     ]
+# autosummary_generate = True
 
 templates_path = ['_templates']
-exclude_patterns = []
+exclude_patterns:List = []
 
 
 
@@ -32,6 +35,6 @@
 # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
 
 html_theme = 'sphinx_rtd_theme'
-html_static_path = []
+html_static_path:List = []
 
 
diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst
new file mode 100644
index 00000000..6e7ad563
--- /dev/null
+++ b/docs/source/contributing.rst
@@ -0,0 +1,73 @@
+Contributing
+============
+
+Starting to contribute to a new repo can be daunting and the architecture can be offputting. This section is meant to help you get introduced to the codebase and make your first contribution.
+
+Where to start?
+---------------
+
+Jump in and break things!
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If your preferred way of learning is to jump in a break things, a good starting point is to run an example file, e.g.:
+
+.. code-block:: bash
+
+    vai_lab --file ./examples/xml_files/user_feedback_demo.xml
+
+which will call a module and plugin and give an example of the call stack.
+
+Get a good grip on the code 
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you prefer to learn by reading, the following sections will give you a high level overview of the codebase.
+
+Overview
+--------
+
+.. figure:: ../../imgs/VAIL_plugin_diagram.png
+    :alt: VAIL Architecture Diagram
+    :align: center
+
+    Fig 1. Architecture Diagram
+
+The VAI-lab codebase consists of individual ``modules`` representing individual processes; for each module there are multiple ``plugins`` , which are specific methods or implementations of performing these processes. 
+
+.. admonition:: Example
+
+    For example, ``DataProcessing`` is a ``Module`` which will manipulate data in some way. The specific type of processing is determined by the ``plugin`` that is chosen. 
+    
+    Say we have some data and we want to change all the values to either a 0 or 1, we would use the ``binarizer`` plugin for the ``DataProcessing`` module.
+
+While a ``plugin`` specifies the exact implementation to perform on a process, the ``core`` deals with setting up and executing the plugin. 
+
+Each module contains a ``Core`` which dictates the required methods and attributes of a compatible ``plugin``, it also instantiates the ``plugin`` and executes it.
+
+Supervisor Core
+-------------------
+
+As well as each module having a ``Core``, there is an overarching ``Supervisor`` ``Core`` which calls each module sequentially, which in turn execute the ``plugin``. The supervisor module is the top module in Fig 1. above. 
+
+The supervisor core script is named `vai_lab_core.py <https://github.com/AaltoPML/VAI-Lab/blob/main/src/vai_lab/Core/vai_lab_core.py>`_ and can be found in the ``src/vai_lab/Core`` directory.
+
+Within this script there are private handler functions for different types of pipeline components, where the function name for each starts with ``_execute_<name of component>``
+
+.. admonition:: Function Names
+
+    Functions which handle component executions are named according to the following convention: 
+     - ``_execute_module``: instantiates a module and executes the plugin 
+     - ``_execute_loop``: generic handler for loops, calls specific ``_execute_for_loop`` or ``_execute_while_loop`` functions in turn
+     - ``_execute_entry_point``: instantiates the unique ``Initialiser`` entry point to the pipeline which deals with data definitions and config information
+     - ``_execute_exit_point``: handles the exiting of the pipeline, such as saving data to file
+
+
+The naming convention of these functions are important, as the functions themselves are called using the python ``getattr`` function, which takes the name of the function as a string, with the type of component. The component type is determined during setup and appended to the supervisor config.
+
+Glossary
+--------
+
+``Module``: An container representing a generic process to manipulate or produce data - all modules are to be populated by a plugin.
+
+``Plugin``: A specific implementation or method to carry out a process. Each plugin will be inserted into a module.
+
+``Core``: Each module consists of a ``Core`` and a set of plugins. The core is responsible for performing the required background processes and handling the plugins
\ No newline at end of file
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 1987d344..927d3900 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -17,6 +17,7 @@ Contents
 
    Intro and Installation <readme>
    Getting Started <getting_started>
+   Contributing <contributing>
    API <modules>
 
 Indices and tables
diff --git a/docs/source/vai_lab.Core.rst b/docs/source/vai_lab.Core.rst
new file mode 100644
index 00000000..b8142ecb
--- /dev/null
+++ b/docs/source/vai_lab.Core.rst
@@ -0,0 +1,16 @@
+vai\_lab.Core 
+==============
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Core.vai_lab_core
+
+
+
+.. automodule:: vai_lab.Core.vai_lab_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.Data.rst b/docs/source/vai_lab.Data.rst
new file mode 100644
index 00000000..9039b41f
--- /dev/null
+++ b/docs/source/vai_lab.Data.rst
@@ -0,0 +1,25 @@
+vai\_lab.Data 
+==============
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Data.Data_core
+   vai_lab.Data.xml_handler
+
+
+
+.. automodule:: vai_lab.Data.Data_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Data.xml_handler
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.DataProcessing.rst b/docs/source/vai_lab.DataProcessing.rst
new file mode 100644
index 00000000..57b8f56b
--- /dev/null
+++ b/docs/source/vai_lab.DataProcessing.rst
@@ -0,0 +1,16 @@
+vai\_lab.DataProcessing 
+========================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.DataProcessing.DataProcessing_core
+
+
+
+.. automodule:: vai_lab.DataProcessing.DataProcessing_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.DataStorage.rst b/docs/source/vai_lab.DataStorage.rst
new file mode 100644
index 00000000..62016d61
--- /dev/null
+++ b/docs/source/vai_lab.DataStorage.rst
@@ -0,0 +1,16 @@
+vai\_lab.DataStorage 
+=====================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.DataStorage.DataStorage_core
+
+
+
+.. automodule:: vai_lab.DataStorage.DataStorage_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.DecisionMaking.rst b/docs/source/vai_lab.DecisionMaking.rst
new file mode 100644
index 00000000..c31db7a2
--- /dev/null
+++ b/docs/source/vai_lab.DecisionMaking.rst
@@ -0,0 +1,16 @@
+vai\_lab.DecisionMaking 
+========================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.DecisionMaking.Modelling_core
+
+
+
+.. automodule:: vai_lab.DecisionMaking.Modelling_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.GUI.plugins.rst b/docs/source/vai_lab.GUI.plugins.rst
new file mode 100644
index 00000000..8c117e6a
--- /dev/null
+++ b/docs/source/vai_lab.GUI.plugins.rst
@@ -0,0 +1,2 @@
+vai\_lab.GUI.plugins 
+=====================
diff --git a/docs/source/vai_lab.GUI.rst b/docs/source/vai_lab.GUI.rst
new file mode 100644
index 00000000..ea57927f
--- /dev/null
+++ b/docs/source/vai_lab.GUI.rst
@@ -0,0 +1,32 @@
+vai\_lab.GUI 
+=============
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.GUI.GUI_core
+   vai_lab.GUI.User_Feedback_template
+
+
+
+.. automodule:: vai_lab.GUI.GUI_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.GUI.User_Feedback_template
+   :members:
+   :undoc-members:
+   :show-inheritance:
+Plugins 
+--------
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.GUI.plugins
diff --git a/docs/source/vai_lab.InputData.rst b/docs/source/vai_lab.InputData.rst
new file mode 100644
index 00000000..1904c1e7
--- /dev/null
+++ b/docs/source/vai_lab.InputData.rst
@@ -0,0 +1,16 @@
+vai\_lab.InputData 
+===================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.InputData.InputData_core
+
+
+
+.. automodule:: vai_lab.InputData.InputData_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.Modelling.plugins.rst b/docs/source/vai_lab.Modelling.plugins.rst
new file mode 100644
index 00000000..6e36aa86
--- /dev/null
+++ b/docs/source/vai_lab.Modelling.plugins.rst
@@ -0,0 +1,214 @@
+vai\_lab.Modelling.plugins 
+===========================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Modelling.plugins.affinitypropagation
+   vai_lab.Modelling.plugins.bayesianridge
+   vai_lab.Modelling.plugins.birch
+   vai_lab.Modelling.plugins.decisiontreeclassifier
+   vai_lab.Modelling.plugins.decisiontreeregressor
+   vai_lab.Modelling.plugins.elasticnet
+   vai_lab.Modelling.plugins.gpclassifier
+   vai_lab.Modelling.plugins.gpregressor
+   vai_lab.Modelling.plugins.kernelridge
+   vai_lab.Modelling.plugins.kmeans
+   vai_lab.Modelling.plugins.knnclassifier
+   vai_lab.Modelling.plugins.knnregressor
+   vai_lab.Modelling.plugins.lasso
+   vai_lab.Modelling.plugins.linearregression
+   vai_lab.Modelling.plugins.logisticregression
+   vai_lab.Modelling.plugins.meanshift
+   vai_lab.Modelling.plugins.passiveaggressiveclassifier
+   vai_lab.Modelling.plugins.perceptron
+   vai_lab.Modelling.plugins.randomforestclassifier
+   vai_lab.Modelling.plugins.randomforestregressor
+   vai_lab.Modelling.plugins.ridgeregression
+   vai_lab.Modelling.plugins.svc
+   vai_lab.Modelling.plugins.svr
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.affinitypropagation
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.bayesianridge
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.birch
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.decisiontreeclassifier
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.decisiontreeregressor
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.elasticnet
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.gpclassifier
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.gpregressor
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.kernelridge
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.kmeans
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.knnclassifier
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.knnregressor
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.lasso
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.linearregression
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.logisticregression
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.meanshift
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.passiveaggressiveclassifier
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.perceptron
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.randomforestclassifier
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.randomforestregressor
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.ridgeregression
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.svc
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.Modelling.plugins.svr
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.Modelling.rst b/docs/source/vai_lab.Modelling.rst
new file mode 100644
index 00000000..961340ba
--- /dev/null
+++ b/docs/source/vai_lab.Modelling.rst
@@ -0,0 +1,23 @@
+vai\_lab.Modelling 
+===================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Modelling.Modelling_core
+
+
+
+.. automodule:: vai_lab.Modelling.Modelling_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
+Plugins 
+--------
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Modelling.plugins
diff --git a/docs/source/vai_lab.UserInteraction.plugins.rst b/docs/source/vai_lab.UserInteraction.plugins.rst
new file mode 100644
index 00000000..e11a1ef0
--- /dev/null
+++ b/docs/source/vai_lab.UserInteraction.plugins.rst
@@ -0,0 +1,25 @@
+vai\_lab.UserInteraction.plugins 
+=================================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.UserInteraction.plugins.CanvasInput
+   vai_lab.UserInteraction.plugins.ManualInput
+
+
+
+.. automodule:: vai_lab.UserInteraction.plugins.CanvasInput
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.UserInteraction.plugins.ManualInput
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.UserInteraction.rst b/docs/source/vai_lab.UserInteraction.rst
new file mode 100644
index 00000000..d3976f74
--- /dev/null
+++ b/docs/source/vai_lab.UserInteraction.rst
@@ -0,0 +1,23 @@
+vai\_lab.UserInteraction 
+=========================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.UserInteraction.UserInteraction_core
+
+
+
+.. automodule:: vai_lab.UserInteraction.UserInteraction_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
+Plugins 
+--------
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.UserInteraction.plugins
diff --git a/docs/source/vai_lab.rst b/docs/source/vai_lab.rst
new file mode 100644
index 00000000..ba524946
--- /dev/null
+++ b/docs/source/vai_lab.rst
@@ -0,0 +1,30 @@
+vai\_lab 
+=========
+
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.Core
+   vai_lab.Data
+   vai_lab.DataProcessing
+   vai_lab.DataStorage
+   vai_lab.DecisionMaking
+   vai_lab.GUI
+   vai_lab.InputData
+   vai_lab.Modelling
+   vai_lab.UserInteraction
+   vai_lab.utils
+
+run_pipeline
+^^^^^^^^^^^^
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.run_pipeline
+
+.. automodule:: vai_lab.run_pipeline
+   :members:
+   :undoc-members:
+   :show-inheritance:
\ No newline at end of file
diff --git a/docs/source/vai_lab.utils.plugins.rst b/docs/source/vai_lab.utils.plugins.rst
new file mode 100644
index 00000000..8bd09291
--- /dev/null
+++ b/docs/source/vai_lab.utils.plugins.rst
@@ -0,0 +1,61 @@
+vai\_lab.utils.plugins 
+=======================
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.utils.plugins.MainPage
+   vai_lab.utils.plugins.aidCanvas
+   vai_lab.utils.plugins.dataLoader
+   vai_lab.utils.plugins.pluginCanvas
+   vai_lab.utils.plugins.progressTracker
+   vai_lab.utils.plugins.startpage
+
+
+
+.. automodule:: vai_lab.utils.plugins.MainPage
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.plugins.aidCanvas
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.plugins.dataLoader
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.plugins.pluginCanvas
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.plugins.progressTracker
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.plugins.startpage
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/source/vai_lab.utils.rst b/docs/source/vai_lab.utils.rst
new file mode 100644
index 00000000..33073777
--- /dev/null
+++ b/docs/source/vai_lab.utils.rst
@@ -0,0 +1,32 @@
+vai\_lab.utils 
+===============
+
+Core 
+-----
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.utils.AID_core
+   vai_lab.utils.UserInterfaceClass
+
+
+
+.. automodule:: vai_lab.utils.AID_core
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
+
+
+
+.. automodule:: vai_lab.utils.UserInterfaceClass
+   :members:
+   :undoc-members:
+   :show-inheritance:
+Plugins 
+--------
+
+.. toctree::
+   :maxdepth: 4
+
+   vai_lab.utils.plugins
diff --git a/src/vai_lab/Modelling/__init__.py b/src/vai_lab/Modelling/__init__.py
index 99e78a66..633f8661 100644
--- a/src/vai_lab/Modelling/__init__.py
+++ b/src/vai_lab/Modelling/__init__.py
@@ -1,7 +1,2 @@
 # -*- coding: utf-8 -*-
 
-"""Import all submodules inside this folder and expose them with their respective names
-
-Let's look for a more automatic way of doing this when we have more modules
-"""
-from .Modelling_core import Modelling
diff --git a/src/vai_lab/Modelling/plugins/__init__.py b/src/vai_lab/Modelling/plugins/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/src/vai_lab/Modelling/plugins/__init__.py
@@ -0,0 +1,1 @@
+# -*- coding: utf-8 -*-


Test patch:
diff --git a/src/vai_lab/Core/tests/__init__.py b/src/vai_lab/Core/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/Data/tests/__init__.py b/src/vai_lab/Data/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/DataProcessing/tests/__init__.py b/src/vai_lab/DataProcessing/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/DataStorage/tests/__init__.py b/src/vai_lab/DataStorage/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/DecisionMaking/tests/__init__.py b/src/vai_lab/DecisionMaking/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/Environment/tests/__init__.py b/src/vai_lab/Environment/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/GUI/tests/__init__.py b/src/vai_lab/GUI/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/InputData/tests/__init__.py b/src/vai_lab/InputData/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/Modelling/tests/__init__.py b/src/vai_lab/Modelling/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/UserInteraction/tests/__init__.py b/src/vai_lab/UserInteraction/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/tests/__init__.py b/src/vai_lab/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/utils/tests/__init__.py b/src/vai_lab/utils/tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/vai_lab/tests/test_launch.py b/tests/test_launch.py
similarity index 100%
rename from src/vai_lab/tests/test_launch.py
rename to tests/test_launch.py
diff --git a/src/vai_lab/Core/tests/test_vai_lab_core.py b/tests/test_vai_lab_core.py
similarity index 100%
rename from src/vai_lab/Core/tests/test_vai_lab_core.py
rename to tests/test_vai_lab_core.py