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