Skip to content

Commit 6814b68

Browse files
authored
Merge pull request #142 from automl/development
Version 1.2
2 parents daf6c2f + 71ad083 commit 6814b68

File tree

148 files changed

+39546
-17351
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+39546
-17351
lines changed

.flake8

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@ extend-exclude =
66
.venv
77
build
88
extend-ignore =
9-
E203 # No whitespace before ':' in [x : y]
10-
E731 # No lambdas — too strict
9+
# No whitespace before ':' in [x : y]
10+
E203,
11+
# No lambdas — too strict
12+
E731,

.github/workflows/docs.yml

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: docs
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
5+
cancel-in-progress: true
6+
37
on:
48
# Trigger manually
59
workflow_dispatch:
@@ -22,19 +26,22 @@ env:
2226
jobs:
2327
build-and-deploy:
2428
runs-on: ubuntu-latest
29+
defaults:
30+
run:
31+
shell: bash # Default to using bash on all
2532
steps:
2633
- name: Checkout
27-
uses: actions/checkout@v2
34+
uses: actions/checkout@v4
2835

2936
- name: Setup Python
30-
uses: actions/setup-python@v2
37+
uses: actions/setup-python@v5
3138
with:
3239
python-version: 3.9
3340

3441
- name: Install dependencies
3542
run: |
3643
pip install .
37-
pip install .[dev]
44+
pip install ".[dev]"
3845
3946
- name: Make docs
4047
run: |

.github/workflows/pytest.yml

+40-15
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,50 @@
11
name: tests
2-
on: [ push ]
2+
3+
# Cancel previous tests for this branch if a new commit is pushed
4+
concurrency:
5+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
6+
cancel-in-progress: true
7+
8+
on:
9+
# Allow manual trigger of workflow
10+
workflow_dispatch:
11+
12+
# Run tests on push/merge to main
13+
push:
14+
branches:
15+
- main
16+
17+
# Run tests on anything that has a pull request to main/development
18+
pull_request:
19+
branches:
20+
- main
21+
- development
22+
323
jobs:
424
pytest:
5-
name: PyTest
6-
runs-on: ubuntu-latest
7-
steps:
8-
- uses: actions/checkout@v2
9-
- name: Add conda to system path
10-
run: |
11-
# $CONDA is an environment variable pointing to the root of the miniconda directory
12-
echo $CONDA/bin >> $GITHUB_PATH
25+
name: Test ${{ matrix.python-version }}-${{ matrix.os }}
26+
runs-on: ${{ matrix.os }}
27+
defaults:
28+
run:
29+
shell: bash # Default to using bash on all
30+
31+
strategy:
32+
fail-fast: false
33+
matrix:
34+
python-version: ["3.9", "3.10"] # "3.11" fails due to swig
35+
os: ["ubuntu-latest"] # "macos-latest", "windows-latest" fails due to swig
1336

37+
steps:
38+
- uses: actions/checkout@v4
1439
- name: Setup Python 3.9
15-
uses: actions/setup-python@v2
40+
uses: actions/setup-python@v5
1641
with:
17-
python-version: 3.9
42+
python-version: ${{ matrix.python-version }}
1843

1944
- name: Install dependencies
2045
run: |
21-
conda install -c anaconda swig
22-
make install-dev
23-
24-
- name: Run pytest
46+
pip install swig
47+
python -m pip install ".[dev]"
48+
49+
- name: Run pytest
2550
run: pytest tests

.pre-commit-config.yaml

+27-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ repos:
1414
files: tests
1515

1616
- repo: https://github.com/ambv/black
17-
rev: 23.1.0
17+
rev: 23.3.0
1818
hooks:
1919
- id: black
2020
name: black formatter deepcave
@@ -33,14 +33,38 @@ repos:
3333
hooks:
3434
- id: pydocstyle
3535
files: deepcave
36-
additional_dependencies: ["toml"] # Needed to parse pyproject.toml
36+
additional_dependencies: ["tomli"] # Needed to parse pyproject.toml
3737

3838
- repo: https://github.com/pre-commit/mirrors-mypy
39-
rev: v0.930
39+
rev: v1.5.1
4040
hooks:
4141
- id: mypy
4242
name: mypy deepcave
4343
files: deepcave
44+
args: [--install-types, --non-interactive]
45+
additional_dependencies: [
46+
'wheel>=0.41.2',
47+
'setuptools==68.2.2',
48+
'absl-py>=1.0.0',
49+
'jsonlines>=3.0.0',
50+
'pandas>=1.3.4',
51+
'numpy>=1.22.2',
52+
'matplotlib>=3.5.1',
53+
'pyyaml>=6.0.1',
54+
'kaleido>=0.2.1',
55+
'gplearn>=0.4.2',
56+
'sympy>=1.12',
57+
'ConfigSpace==0.6.1',
58+
'pyrfr>=0.9.0',
59+
'hpbandster==0.7.4',
60+
'dash==2.0.0',
61+
'dash-extensions==0.0.71',
62+
'dash-bootstrap-components==1.0.3',
63+
'redis>=4.1.4',
64+
'rq>=1.10.1',
65+
'werkzeug==2.0.3',
66+
'pyPDPPartitioner>=0.1.8'
67+
] # Needed for mypy, so that it knows the types to check
4468

4569
- repo: https://github.com/PyCQA/flake8
4670
rev: 6.0.0

CHANGELOG.md

+64-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,66 @@
1+
# Version 1.2
2+
3+
## Plugins
4+
- Add symbolic explanations plugin (#46).
5+
- It is now possible to view multiple unequal runs at once in Cost over Time and Pareto (#93).
6+
- Runs with unequal objectives cannot be displayed together.
7+
- Added an enum for displaying according warning messages.
8+
9+
## Enhancements
10+
- Fix lower bounds of dependency versions.
11+
- Allow to load multi-objective SMAC3v2 and add example (#69).
12+
- Allow to load runs with multiple seeds and add examples (#70).
13+
- Correct incumbent calculation when single objective should be maximized.
14+
- Correct range of configuration cube slider for number of configs.
15+
- Do not disable existing loggers.
16+
- Update author email.
17+
- Add exit button which first deletes running jobs and then terminates DeepCave.
18+
- Nicer handling of Keyboard Interrupt.
19+
- Disable debug mode.
20+
- Save plotly plots in higher resolution upon download.
21+
- Get hovertext per budget in Footprint, Config Cube, Cost over Time, and Pareto Front.
22+
23+
## Bug-Fixes
24+
- Fix missing objective specification in LPI evaluator (#71).
25+
- Don't convert BOHB runs with status 'running' (consistent with SMAC).
26+
- Fix api examples (#68).
27+
- Reset inputs to fix error when subsequently selecting runs with different configspaces, objectives or budgets (#106).
28+
- Fix errors due to changing inputs before runselection (#64).
29+
- For fANOVA, remove constant hyperparameters from configspace (#9).
30+
- When getting budget, objectives etc from multiple runs in Cost over Time and Pareto Front:
31+
- Instead of taking the first run as comparative value,
32+
- take the one with the lowest budget, else the index for the budgets could be out of bounds.
33+
- For PCP, show hyperparameters with highest importance closest to the cost, i.e. right (#124).
34+
- Add init files to all test directories.
35+
- Correct LPI importance tests.
36+
- Free port when exiting via the exit button (#52).
37+
38+
## Documentation
39+
- Add How to Contribute section.
40+
- Expand documentation for partial dependence plugin.
41+
42+
## Version-Updates
43+
- Black version from 23.1.0 to 23.3.0
44+
- Mypy from 0.930 to 1.5.1
45+
46+
## Mypy
47+
- Updated args so there are no missing imports
48+
- Updated additional dependencies, so mypy can check all types
49+
- Note: If the installs in requirements change, it has to be adapted in additional dependencies
50+
- Added many type annotations
51+
- In some cases internal refactoring for variables, due to typing
52+
53+
## Pydocstyle and Linter
54+
- Major overhaul of docstrings in various files
55+
- Removed unused imports and variables
56+
57+
## Groups
58+
- Groups now get a default name, if no name was entered by the user.
59+
- Groups get sorted alphabetically to appear more ordered.
60+
61+
## Additional Changes
62+
- Added a "make install examples" in Makefile
63+
164
# Version 1.1.3
265

366
## Bug-Fixes
@@ -24,7 +87,7 @@
2487
- SMAC 2.0
2588

2689
## Dependencies
27-
- Remove SMAC dependency by adding required function directly
90+
- Remove SMAC dependency by adding required function directly.
2891

2992
# Version 1.0.1
3093

Makefile

+8-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# are usually completed in github actions.
33

44
SHELL := /bin/bash
5-
VERSION := 1.1.3
5+
VERSION := 1.2
66

77
NAME := DeepCAVE
88
PACKAGE_NAME := deepcave
@@ -42,13 +42,16 @@ MYPY ?= mypy
4242
PRECOMMIT ?= pre-commit
4343
FLAKE8 ?= flake8
4444

45-
install:
45+
install:
4646
$(PIP) install -e .
4747

4848
install-dev:
4949
$(PIP) install -e ".[dev]"
5050
pre-commit install
51-
51+
52+
install-examples:
53+
$(PIP) install -e ".[examples]"
54+
5255
check-black:
5356
$(BLACK) ${SOURCE_DIR} --check || :
5457
$(BLACK) ${EXAMPLES_DIR} --check || :
@@ -62,7 +65,7 @@ check-pydocstyle:
6265
$(PYDOCSTYLE) ${SOURCE_DIR} || :
6366

6467
check-mypy:
65-
$(MYPY) ${SOURCE_DIR} || :
68+
$(MYPY) --check-untyped-defs --install-types --non-interactive --ignore-missing-imports ${SOURCE_DIR} || :
6669

6770
check-flake8:
6871
$(FLAKE8) ${SOURCE_DIR} || :
@@ -115,7 +118,7 @@ build:
115118
# This is done to prevent accidental publishing but provide the same conveniences
116119
publish: clean build
117120
read -p "Did you update the version number in Makefile and deepcave/__init__.py?"
118-
121+
119122
$(PIP) install twine
120123
$(PYTHON) -m twine upload --repository testpypi ${DIST}/*
121124
@echo

README.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
<img src="docs/images/DeepCAVE_Logo_wide.png" alt="Logo"/>
2+
13
# DeepCAVE
24

35
DeepCAVE is a visualization and analysis tool for AutoML (especially for the sub-problem
@@ -14,7 +16,7 @@ Following features are provided:
1416
- A large collection of plugins to explore multiple areas like performance, hyperparameter and
1517
budget analysis.
1618
- Save your runs using DeepCAVE's native recorder.
17-
- Support for many optimizers using converter (e.g., DeepCAVE, SMAC and BOHB).
19+
- Support for many optimizers using converters (e.g., DeepCAVE, SMAC and BOHB).
1820
- Select runs directly from a working directory in the interface.
1921
- Select groups of runs for combined analysis.
2022
- Modularized plugin structure with access to selected runs/groups to provide maximal flexibility.
@@ -41,12 +43,18 @@ pip install DeepCAVE
4143
If you want to contribute to DeepCAVE use the following steps instead:
4244
```bash
4345
git clone https://github.com/automl/DeepCAVE.git
46+
cd DeepCAVE
4447
conda create -n DeepCAVE python=3.9
4548
conda activate DeepCAVE
4649
conda install -c anaconda swig
4750
make install-dev
4851
```
4952

53+
If you want to use the given examples, run this after installing:
54+
```bash
55+
make install-examples
56+
```
57+
5058
Please visit the [documentation](https://automl.github.io/DeepCAVE/main/installation.html) to get
5159
further help (e.g. if you can not install redis server or you are on a mac).
5260

0 commit comments

Comments
 (0)