Skip to content

Commit faedb77

Browse files
authored
Update to v1.0.0
- Restructured the experiment configuration file. - Added shortcut for a longer list of integers as keyfields. - Added the option to have a timestep column for each resultfield. - Added option to give a name to the `PyExperimenter` instance to improve support of parallel HPC cluster usage. - Added multiple options to fill tables. - Improved column order of the database table when it is created. - Added method to reset parts of the database table based on their status. - Added method to obtain the current state of the database table as `pandas.Dataframe`, which can be used to easily export result tables, e.g. to LaTeX. - Improved robustness of database creation and experiment execution. - Improved error handling. - Updated and extended the README file according to all changes. - Added a Jupyter notebook explaining the general usage of the `PyExperimenter`. - Added a Jupyter notebook explaining how to fill the database table with a conditional experiment grid. - Added checked when resetting a table, that only missing rows are added and no duplicated rows are created. - Fixed writing of string containing quotation marks to the database table. - Added tests for all key components of `PyExperimenter`.
1 parent ef6f45c commit faedb77

File tree

65 files changed

+8620
-1336
lines changed

Some content is hidden

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

65 files changed

+8620
-1336
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
on: [push]
2+
3+
jobs:
4+
paper:
5+
runs-on: ubuntu-latest
6+
name: Paper Draft
7+
steps:
8+
- name: Checkout
9+
uses: actions/checkout@v2
10+
- name: Build paper draft PDF
11+
uses: openjournals/openjournals-draft-action@master
12+
with:
13+
journal: joss
14+
# This should be the path to the paper within your repo.
15+
paper-path: paper/paper.md
16+
- name: Upload
17+
uses: actions/upload-artifact@v1
18+
with:
19+
name: paper
20+
# This is the output path where Pandoc will write the compiled
21+
# PDF. Note, this should be the same directory as the input
22+
# paper.md
23+
path: paper/paper.pdf

.gitignore

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,6 @@ dmypy.json
128128
# Pyre type checker
129129
.pyre/
130130

131-
# config files
132-
*.cfg
133-
134131
# PyCharm
135132
.idea/
136133
.DS_Store
@@ -140,3 +137,4 @@ dmypy.json
140137

141138
# todo
142139
todo.md
140+
config/database_credentials.cfg

.vscode/extensions.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3+
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4+
// List of extensions which should be recommended for users of this workspace.
5+
"recommendations": [
6+
"aaron-bond.better-comments",
7+
"donjayamanne.python-extension-pack",
8+
"eamodio.gitlens",
9+
"lextudio.restructuredtext",
10+
"njpwerner.autodocstring",
11+
"sonarsource.sonarlint-vscode",
12+
"vscode-icons-team.vscode-icons"
13+
],
14+
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
15+
"unwantedRecommendations": []
16+
}

.vscode/launch.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Python: Current File",
9+
"type": "python",
10+
"request": "launch",
11+
"program": "${file}",
12+
"console": "integratedTerminal",
13+
"cwd": "${workspaceFolder}",
14+
"env": {
15+
"PYTHONPATH": "${workspaceFolder}"
16+
}
17+
}
18+
]
19+
}

.vscode/settings.json

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"autoDocstring.docstringFormat": "sphinx",
3+
"editor.codeActionsOnSave": {
4+
"source.organizeImports": true,
5+
},
6+
"editor.formatOnSave": true,
7+
"python.formatting.autopep8Args": [
8+
"--max-line-length=150"
9+
],
10+
"python.linting.enabled": false,
11+
"python.linting.pylintEnabled": false,
12+
"python.linting.pylintUseMinimalCheckers": false,
13+
"python.sortImports.args": [
14+
"--src=${workspaceFolder}",
15+
"--line-length=150",
16+
],
17+
"python.testing.nosetestsEnabled": false,
18+
"python.testing.pytestArgs": [
19+
"test"
20+
],
21+
"python.testing.pytestEnabled": true,
22+
"python.testing.unittestEnabled": false,
23+
"restructuredtext.languageServer.disabled": true,
24+
"restructuredtext.preview.docutil.disabled": true,
25+
"restructuredtext.preview.scrollEditorWithPreview": false,
26+
"cSpell.words": [
27+
"cpus",
28+
"dbconnector",
29+
"gethostname",
30+
"iterrows",
31+
"keyfield",
32+
"keyfields",
33+
"meshgrid",
34+
"resultfields",
35+
"Tanja",
36+
"timestep",
37+
"Tornede"
38+
],
39+
"terminal.integrated.env.linux": {
40+
"PYTHONPATH": "${workspaceFolder}"
41+
},
42+
"jupyter.notebookFileRoot": "${workspaceFolder}",
43+
"restructuredtext.confPath": "${workspaceFolder}\\docs",
44+
"python.pythonPath": "~/anaconda3/envs/py-experimenter",
45+
"python.linting.banditEnabled": false,
46+
"python.linting.flake8Enabled": false,
47+
"python.linting.mypyEnabled": false,
48+
"python.linting.pycodestyleEnabled": false,
49+
"python.formatting.provider": "autopep8",
50+
"files.watcherExclude": {
51+
"**/.git/objects/**": true,
52+
"**/.git/subtree-cache/**": true,
53+
"**/node_modules/*/**": true
54+
}
55+
}

AUTHORS.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Authors
2+
3+
## Core Development Team
4+
5+
- [Tanja Tornede](mailto:tanja.tornede@upb.de?subject=[PyExperimenter])
6+
- [Alexander Tornede](mailto:alexander.tornede@upb.de?subject=[PyExperimenter])
7+
- [Lukas Fehring](mailto:fehring2@mail.uni-paderborn.de?subject=[PyExperimenter])
8+
- [Helena Graf](mailto:helena.graf@upb.de?subject=[PyExperimenter])
9+
- [Jonas Hanselle](mailto:jonas.hanselle@upb.de?subject=[PyExperimenter])
10+
- [Marcel Wever](mailto:marcel.wever@ifi.lmu.de?subject=[PyExperimenter])
11+
- [Felix Mohr](mailto:felix.mohr@unisabana.edu.co?subject=[PyExperimenter])
12+
13+
14+
## Contributions
15+
16+
- Lukas Gehring
17+

CHANGELOG.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Changelog
2+
3+
4+
## v1.0.0 (04/09/2022)
5+
6+
### Feature
7+
8+
- Restructured the experiment configuration file.
9+
- Added shortcut for a longer list of integers as keyfields.
10+
- Added the option to have a timestep column for each resultfield.
11+
- Added option to give a name to the `PyExperimenter` instance to improve support of parallel HPC cluster usage.
12+
- Added multiple options to fill tables.
13+
- Improved column order of the database table when it is created.
14+
- Added method to reset parts of the database table based on their status.
15+
- Added method to obtain the current state of the database table as `pandas.Dataframe`, which can be used to easily export result tables, e.g. to LaTeX.
16+
- Improved robustness of database creation and experiment execution.
17+
- Improved error handling.
18+
- Updated and extended the README file according to all changes.
19+
20+
### Examples
21+
22+
- Added a Jupyter notebook explaining the general usage of the `PyExperimenter`.
23+
- Added a Jupyter notebook explaining how to fill the database table with a conditional experiment grid.
24+
25+
### Fix
26+
27+
- Added checked when resetting a table, that only missing rows are added and no duplicated rows are created.
28+
- Fixed writing of string containing quotation marks to the database table.
29+
30+
### Tests
31+
32+
- Added tests for all key components of `PyExperimenter`.
33+
34+
35+
## v0.0.6 (01/03/2022)
36+
37+
- No summary available.
38+
39+
40+
## v0.0.5 (17/01/2022)
41+
42+
- No summary available.
43+
44+
45+
## v0.0.4 (02/11/2021)
46+
47+
- No summary available.
48+
49+
50+
## v0.0.3 (20/10/2021)
51+
52+
- No summary available.
53+
54+
55+
## v0.0.2 (20/10/2021)
56+
57+
- No summary available.
58+
59+
60+
## v0.0.1 (14/10/2021)
61+
62+
- First release of `PyExperimenter`
63+
- No summary available.

LICENCE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) [2021-2022] [Tanja Tornede & Alexander Tornede]
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)