Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Css-methodSelection #113

Merged
merged 49 commits into from
Oct 5, 2023
Merged

Css-methodSelection #113

merged 49 commits into from
Oct 5, 2023

Conversation

sevisal
Copy link
Collaborator

@sevisal sevisal commented Sep 22, 2023

Purpose

Let user specify which methods they want to use.

In brief

  • Changed XML files to include the functions within a plugin
  • Adapted GUI to let user indicate which methods to use
  • Allow changaing any methods and plugin's options from the library

Method selection

Each plugin can have multiple functions in it. Besides, each method can have its own options, which are directly read from the plugin's original library.

XML changes

The tag method is now available. This can be added to each plugin to indicate which function from the plugin needs to be executed by passing it's name in type. It's order sensitive as the methods will be executed in the same order they are defined. You can now use the tag options rigth inside the plugin or inside a method, defining the plugin's initialisation options or the method's options, respectively.

    <Modelling name="Modelling">
        <plugin type="SVR">
            <options>
                <C>
                     0.01
                </C>
            </options>
            <method type="fit">
                <options>
                    <X>
                         X
                    </X>
                    <Y>
                         Y
                    </Y>
                </options>
            </method>            
            <method type="predict">
                <options>
                    <X>
                         X_test
                    </X>
                </options>
            </method>
        </plugin>
    </Modelling>

Plugin GUI

When indicating the plugin for each module it also asks if you want to add a method to the plugin. To do so, there is a dropdown menu with all the available functions* along with some buttons to add, delete or move each method. There's a default __init__ method that contains all options available when loading a model. Upon adding a new method, the options available for that method are also displayed and can be modified.

*Note: as of right now we are only offering the functions that are defined in both the template and the original library. This should be changed in the future.

When an option's name is either X or Y**, the GUI creates a dropdown menu for it's value, displaying the uploaded data. This data will then be approprately passed to the method.

**Note: This should be changed in the future to account for different data names.

Progress tracker

The progress tracker functionaility has been adapted to load the methods from the XML as well as the preloaded options. This allows the user to modify not only the base options of the model, but also which methods need to be executed and in which order. Furthermore, it loads any previously defined options for each method to facilitate the modification of any of them.

sevisal and others added 30 commits June 21, 2023 12:03
* Reupload integral plugin

* argopt plugin

* Css user interaction for Bayesian Optimisation (#91)

* Display for less than 3 parameters

* Added current selection

* DoubleClick for editing

* Change plugin readable name

In order to avoid confusions with the Optimisation plugin, changed naming to indicate it referes to the ui.

* Added icon to GUI window

* Fix more than 2 variables error

* Minor aesthetic changes

* Css bayesian optimisation (#98)

* added re-attempt of env and pybullet

* ongoing pybullet/arg population changes

* added pybullet stubs

* added credit to stubs

* added gui/headless choice function

* added environment module tag to XML parser

* added pybullet config file

* renamed Environment module to remove plural

* added types and ABC for env modules

* removed renamed scripts

* modified run pipeline for pybullet

* moved relative to absolute converter to import helper

* added half-cheetah model

* pybullet loading and running working

* added half cheetah example with mass

* added option to set gravity

* removed requirement for data

* removed data loading for pybullet example script

* added __getattr__ function to access all pybullet methods from ENV class

* added option parsing

* Change progressTracker to treeview

* Correct icon

* WIP: editing option parsing

* option mods - not yet working

* arg passing without kwords to pybul from xml

* cleaned imports

* renamed depreciated setup file

* removed old setup file

* cleaned up main __init__ file

* added matplotlib to pyproject.toml

* Add pytest structure (#56)

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>

* Add cli (#57)

* working cli

* Update readme

* Update readme

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>

* Cm package restructuring (#54)

* moved py files to src/vai_labs for packaging

* added vscode config to gitignore

* updated package name in run_pipeline

* fixed pyproject matplotlib import

* fixed path for import helper

* updated project version for PYPI

* updated readme and pyproject.toml

* fixed README typo

* removed depreciated setup script

* fixed path in import_helper.py

* Update README.md

Updated repo name in README

* moved README images

* Update README image paths

* Remove readme.md.bak (#58)

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>

* Cm name updates (#59)

* updated naming and paths for projects

* merged README files

* updated README naming

* update import names in README

* updated example links

* updated missed readme names

* find-replace aidesign refs -> vai_lab

* renamed files containing old ai_design name

* renamed test file

* Css-gui_bugFixing (#60)

* Adjust aidCanvas' buttons' size

* Correctly resize lower buttons' sizes

* Resize buttons, pad radio frame, correct click on in or out

* Fix issue with data path

* Fix upload data mattrix path

* moved test script

Co-authored-by: cam586 <c.mcgreavy@hotmail.com>

* Fix repository url in readme and pyproject.toml (#63)

* added opencv & pytest (#62)

* Clean up lingering/duplicate files. (#64)

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>

* Added debug option (#65)

* add debug option to core,GUI

* Update test_launch.py

Add test_launch() function for pytest discovery

Co-authored-by: teemu <teemu.ruokolainen@iki.fi>

* Added CI Test using Github Actions (#66)

* add debug option to core,GUI

* Update test_launch.py

Add test_launch() function for pytest discovery

* added initial actions yaml

* testing now triggered on PR

* removed testing for python3.7

* added option for manually running actions

* added workflow_dispatch options

* temp removal of PR trigger

* testing using push trigger

* removed incorrect pytest dir

* added env variable for GUI testing

* added virtual display for GUI testing

* removed old yml tag

* install virtual display with existing action

* fixed yml syntax

* fixed xvfb syntax

* removed old xvfb tags

* update to node.js 16

* test pip caching

* removed cache test

* fixed cov file path

* removed testing for python3.7

* install virtual display with existing action

* update to node.js 16

* fixed cov file path

* changed trigger condition to pull request

* renamed tests package

* added programming language classifiers

* changed trigger to PR

* added test and version shields

* fixed README typo

* gitignore any venv

* removed unneeded tk dep from toml

* simplified test call

* testing manual workflow trigger

* added workflow_dispatch options

* re-added pull_request trigger

Co-authored-by: teemu <teemu.ruokolainen@iki.fi>

* Remove flit from readme (#67)

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>

* Cm fix readme img path (#68)

* fixed readme image paths

* updated version number

* Css fix pluginarchitecture diagram (#69)

* Include plugin diagram

* Delete old verion

* Update plugin diagram

* Update plugin diagram

* Add white filling to squares for dark mode

* fixed contribute urls

Co-authored-by: cam586 <c.mcgreavy@hotmail.com>

* Add rough sphinx documentation (#74)

* Add autogen docsting sphinx docs

* ReadTheDocs

* Building version

* Change index page title

* Add github actions workflow

* Update README

* Add pip install . to documentation.yml

* Add README.md as a page in documentation

* Add sphinx-apidoc command to readme; gitignore generated rst files

* Update readme sphinx commands

* Update readme

* Add comments

* Update commands in documentation workflow

* Fix typo in .gitignore

* Remove _static folder from config to remove warning message

* Specify python=3.10 for workflow

* Remove pip install sphinx-apidoc, no such package

* Update readme

* added docs build badge to readme

* fixed error-causing docstring

Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>
Co-authored-by: chris <c.mcgreavy@hotmail.com>

* Cm test docs (#76)

* edited branch name for doc building

* test actions

* added jekyll options

* removed settings

* fixed gh pages deployment

* Cm add docs (#77)

* changed copyright year

* updated readme headings

* moved tutorials from readme to docs

* removed tutorials from readme

* added getting started page to index toc

* Update python=3.8 to python=3.10 in readme

* Cm feature add tests (#80)

* bumped version number

* add pilot example test

* simplified core.py

* improved naming and docs in core

* progress tracker.  ->

* added example script iteration

* fixed loop error msg in COre

* updated progress tracker naming (#71)

* fixed for loop logic and error handling in core (#72)

* Cm fix tracker loops (#73)

* fixed for loop logic and error handling in core

* fixed tracker dict population for loops

* Fix Progess Tracker naming

Removing Initialiser name requirement from Progress Tracker

* Remove Canvas if there are no ccordinates

* Fixing last fix.  Correctly read modules inside loop

* Fix error with coordinates case

* minor typo fix in core

* renamed .s variable to .xml_handler for readability

* fixed xml_handler naming in GUI_Core

* Trying to fix coordinates case

* moved avail_plugins to init

* Display treeview for no-coordinates case (need fixes))

* FIX - Consistent input and output naming issue

* Functioning progress tracker for coord and no coord

* Fixed list plugin options issues

* Minor fixes to test usability

* changed avail plugins options to readable names

* removed private and test files from avail_plugins

* removed old xml files, mod pybullet

* Fix parent issue

* fixed pybullet and canvas gui-test issues

* fixed pytest errors (except manual plugin)

* changed sklearn->scikit-learn in toml

* added pybullet to toml

* Remove testing file

* test fix with scalar

* translate boolean literals

* removed python 3.8,3.9

* added  param to ridge example

* removed closed check from core

* switced core check to _debug

---------

Co-authored-by: Carlos Sevilla Salcedo <carlossevillasalcedo@gmail.com>

---------

Co-authored-by: Carlos Sevilla Salcedo <carlossevillasalcedo@gmail.com>

* Fix examples path in README.md

* Another bad examples path

* update conda env part in README.md

* fixed calls to undefined parent (#90)

* Added Bayesian Optimisation plugin

* Fix merge errors

* Remove old run file

* Modify plugin types

* Addoptions to BO

* Css feature trying to catch errors (#94)

* Move Modelling plugins functions to template

* Add clsutering methods to template

* Change function doc

* Move DataProcessing plugins functions to template

* Update pipeline for testing

* Update init

* Fix conflicts

* Add DecisionMaking plugin template

* Fixing issues with Optimisation module

* Fixed errors passing params to BO

* Changed plugin Template to work for BO params

Still need to fix issue when running the BO

* BO suggests points correctly

* Change xml_handler naming

Change xml_handler naming to fit with the other UIs

* Typo correction

* Added bayes_opt optimisation plugin

* Modify integral to simpson

* Fixed issue with UI

---------

Co-authored-by: cam586 <c.mcgreavy@hotmail.com>
Co-authored-by: teemu <teemu.ruokolainen@iki.fi>
Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>
Co-authored-by: Richard Darst <rkd@zgib.net>

* Fix issue with example

* Added basic dataFlow selection

* Fixed issue with module list

* Remove option of data self-looping

* Add plugin's data input to XML

* Fixed error with ridge regression

* Added new data reading option

* Fix minor errors

* Define data communication

Redifined data passing and reading between different modules. `vai_lab_core` now stores all output data for each module and could be accessible by any module. Not tested on loops.

* Fixed issue duplicated module entries

Still need to fix issue with module name reading.

* Fixed names used to define input

* Clean some example files

* Remove testing print

* Add output module as editable

* Include a checklist for output data

* Fixed issue with output update

* Write output data in XML file working

* Include output path for outdata

* Storing output in file

* Fix space reading

* Allow one or more stored module output

* Update XML examples to dataflow

* Store relative path

* Add option of relative or absolute path

* Allow relative path

* Change input data definition to optionmenu

* By default store output of last module

* Update example coordinates

* Improve look of output data's optionmenu

---------

Co-authored-by: cam586 <c.mcgreavy@hotmail.com>
Co-authored-by: teemu <teemu.ruokolainen@iki.fi>
Co-authored-by: Teemu Ruokolainen <teemu.p.ruokolainen@gmail.com>
Co-authored-by: Richard Darst <rkd@zgib.net>
- Fixed issue storing options from methods
- Removed 'Data' for DataProcessing modules
- Make correct comparison to determine if options are updated
- Correctly store method's data input. Stores name of variable.
@sevisal sevisal changed the title Css-functionSelection Css-methodSelection Sep 25, 2023
@sevisal sevisal merged commit 425a4e2 into main Oct 5, 2023
5 checks passed
@sevisal sevisal deleted the css-functionSelection branch October 5, 2023 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants