Welcome to DartML: Machine Learning for Everyone! This app lets you build Machine Learning models without writing a single line of code.
- Step 1: Upload your data
- Step 2: Explore the data
- Step 3: Build the model
- Step 4: Evaluate the trained models
- At last, you can download report with all trained models and more detailed information about them (e.g.
SHAP
ordtreeviz
visualizations).
Click above to watch the demo!
pip install -r requirements.txt
You can change new_env_name
to any name you like.
conda create --name new_env_name python=3.9
conda activate new_env_name
pip install -r requirements.txt
streamlit run 0_π _Home.py
.
βββ 0_π _Home.py # Home page streamlit view.
βββ pages # Streamlit views for other pages of the app.
β βββ 1_π§ͺ_Sample.py # Sample page streamlit view.
β βββ 2_π_Explore.py # Explore page streamlit view.
β βββ 4_π οΈ_Modify_&_Model.py # Modify & Model page streamlit view.
β βββ 5_π_Assess.py # Assess page streamlit view.
βββ src # Source code of the app.
β βββ config.py # Configurations for the app.
β βββ sample # Code used specifically in the Sample page.
β βββ explore # Code used specifically in the Explore page.
β βββ modify_and_model # Code used specifically in the Modify & Model page.
β βββ assess # Code used specifically in the Assess page.
β βββ general_views # Smaller streamlit views used in multiple pages.
β βββ session_state # Functions related to handling app's session state.
βββ tests # Tests for the app.
β βββ functional_tests # Functional tests.
β βββ load_tests # Load tests.
β βββ unit_tests # Unit tests.
βββ temp_dirs # Temporary directories used to store training results.
β βββ .gitkeep # Empty file to make sure the directory is tracked by git.
βββ docs # Documentation for the app.
βββ example_data # Example data used in the app.
βββ README.md # project description you are reading right now
βββ .pre-commit-config.yaml # pre-commit configuration
βββ .flake8 # flake8 configuration (run by pre-commit)
βββ .isort.cfg # isort configuration (run by pre-commit)
βββ requirements.txt # dependencies for pip
βββ .streamlit # configurations for streamlit (theme)
βββ config.toml # configurations for streamlit (theme)
- These tests check how app behaves under heavy load.
- Used package: locust.
Perform simple load test by just visiting pages without interacting with any buttons or uploading any files.
locust -f tests/load_tests/simple_load_tests.py
Remember to put Host information without backlash at the end, for example:
http://localhost:8501
<- this is correcthttp://localhost:8501/
<- this is incorrect
You can start the locust and simultaneously use the app yourself (or run functional tests), so you can see how the response time changes and ensure that there are no failures.
- These tests check whether app visually looks and behaves as expected.
- Used package: seleniumbase.
First you need to specify the HOST_URL
in tests/functional_tests/config.py
file. By default it's set to http://localhost:8501
.
Run all tests:
pytest tests/functional_tests/functional_tests.py --chrome --headless
Run single test (test_explore_page
in this example):
pytest tests/functional_tests/functional_tests.py --chrome --headless -k test_explore_page
- You can specify the number of concurrent users by adding
-n=<number_of_users>
flag. - You can remove the
--headless
flag if you want to make the testing browser visible. - You can change
--edge
to any browser you like, for example--chrome
or--firefox
. - You can make it slower by adding
--slow
flag. - You can highlight assertions by adding
--demo
flag. - You can add
-k <test_name>
flag to run only specific test.
- These tests check whether individual functions work as expected.
pytest tests/unit_tests
doxygen
pdoc src
pre-commit install
pre-commit run --all-files
Command above runs the following:
black
- general code autoformattingflake8
- code quality checkisort
- imports autoformatting (alphabetical order)interrogate
- check code for missing docstrings