autora-gui 1.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- autora_gui-1.1.2/.coveragerc +9 -0
- autora_gui-1.1.2/.github/dependabot.yml +14 -0
- autora_gui-1.1.2/.github/workflows/ci.yml +172 -0
- autora_gui-1.1.2/.github/workflows/deploy-pages.yml +151 -0
- autora_gui-1.1.2/.github/workflows/dist.yml +79 -0
- autora_gui-1.1.2/.github/workflows/security.yml +33 -0
- autora_gui-1.1.2/.gitignore +185 -0
- autora_gui-1.1.2/.readthedocs.yaml +29 -0
- autora_gui-1.1.2/.zenodo.json +23 -0
- autora_gui-1.1.2/CITATION.cff +20 -0
- autora_gui-1.1.2/CODEOWNERS +1 -0
- autora_gui-1.1.2/CODE_OF_CONDUCT.md +92 -0
- autora_gui-1.1.2/CONTRIBUTING.md +105 -0
- autora_gui-1.1.2/Dockerfile +11 -0
- autora_gui-1.1.2/LICENSE +28 -0
- autora_gui-1.1.2/PKG-INFO +276 -0
- autora_gui-1.1.2/README.md +219 -0
- autora_gui-1.1.2/SECURITY.md +34 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/firebase_prolific_runner.json +170 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/firebase_runner.json +82 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_abstr_equation_experiment.json +104 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_abstr_lmm_experiment.json +90 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_econ_expected_value_theory.json +164 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_econ_prospect_theory.json +212 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_neuro_task_switching.json +155 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_psychol_exp_learning.json +152 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_psychol_luce_choice_ratio.json +140 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_psychol_q_learning.json +140 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_psychop_stevens_power_law.json +112 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experiment_runners/synth_psychop_weber_fechner_law.json +116 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/bandit_random_pooler.json +103 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/falsification_pooler.json +176 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/falsification_sampler.json +138 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/grid_pooler.json +37 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/latin_hypercube_pooler.json +62 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/latin_hypercube_sampler.json +90 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/leverage_sampler.json +118 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/mixture_sampler.json +94 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/model_disagreement_sampler.json +66 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/nearest_values_sampler.json +66 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/novelty_sampler.json +103 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/novelty_score_sampler.json +103 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/prediction_filter.json +66 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/random_pooler.json +74 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/random_sampler.json +74 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/summed_inequality_sampler.json +100 -0
- autora_gui-1.1.2/autora_gui/JSON/components/experimentalists/uncertainty_sampler.json +82 -0
- autora_gui-1.1.2/autora_gui/JSON/components/theorists/bms_regressor.json +76 -0
- autora_gui-1.1.2/autora_gui/JSON/components/theorists/bsr_regressor.json +148 -0
- autora_gui-1.1.2/autora_gui/JSON/components/theorists/darts_regressor.json +340 -0
- autora_gui-1.1.2/autora_gui/JSON/schemas/protocol_model.json +345 -0
- autora_gui-1.1.2/autora_gui/JSON/schemas/workflow_model.json +534 -0
- autora_gui-1.1.2/autora_gui/__init__.py +6 -0
- autora_gui-1.1.2/autora_gui/_version.py +24 -0
- autora_gui-1.1.2/autora_gui/data_model.py +226 -0
- autora_gui-1.1.2/autora_gui/react_app/README.md +128 -0
- autora_gui-1.1.2/autora_gui/react_app/__init__.py +1 -0
- autora_gui-1.1.2/autora_gui/react_app/build_standalone.py +162 -0
- autora_gui-1.1.2/autora_gui/react_app/index.html +12 -0
- autora_gui-1.1.2/autora_gui/react_app/jsdoc.json +17 -0
- autora_gui-1.1.2/autora_gui/react_app/package-lock.json +4393 -0
- autora_gui-1.1.2/autora_gui/react_app/package.json +35 -0
- autora_gui-1.1.2/autora_gui/react_app/server.py +209 -0
- autora_gui-1.1.2/autora_gui/react_app/src/App.css +38 -0
- autora_gui-1.1.2/autora_gui/react_app/src/App.jsx +94 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Canvas/Canvas.css +88 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Canvas/Canvas.jsx +309 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Canvas/Connection.jsx +808 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/ComponentPalette/ComponentPalette.css +157 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/ComponentPalette/ComponentPalette.jsx +207 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Node/Node.css +397 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Node/Node.jsx +415 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/PropertiesPanel/PropertiesPanel.css +269 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/PropertiesPanel/PropertiesPanel.jsx +451 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Toolbar/Toolbar.css +154 -0
- autora_gui-1.1.2/autora_gui/react_app/src/components/Toolbar/Toolbar.jsx +351 -0
- autora_gui-1.1.2/autora_gui/react_app/src/context/WorkflowContext.jsx +408 -0
- autora_gui-1.1.2/autora_gui/react_app/src/context/WorkflowContext.test.jsx +1090 -0
- autora_gui-1.1.2/autora_gui/react_app/src/data/components.js +3796 -0
- autora_gui-1.1.2/autora_gui/react_app/src/index.css +55 -0
- autora_gui-1.1.2/autora_gui/react_app/src/main.jsx +13 -0
- autora_gui-1.1.2/autora_gui/react_app/src/test/setup.js +2 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/geometry.js +62 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/geometry.test.js +81 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/notebookGenerator.js +199 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/notebookGenerator.test.js +172 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/pythonGenerator.js +597 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/pythonGenerator.test.js +367 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/serialization.js +195 -0
- autora_gui-1.1.2/autora_gui/react_app/src/utils/serialization.test.js +225 -0
- autora_gui-1.1.2/autora_gui/react_app/tests/__init__.py +1 -0
- autora_gui-1.1.2/autora_gui/react_app/tests/test_build_standalone.py +391 -0
- autora_gui-1.1.2/autora_gui/react_app/tests/test_server.py +181 -0
- autora_gui-1.1.2/autora_gui/react_app/vite.config.js +43 -0
- autora_gui-1.1.2/autora_gui/tests/__init__.py +1 -0
- autora_gui-1.1.2/autora_gui/tests/test_data_model.py +752 -0
- autora_gui-1.1.2/autora_gui/tests/test_util.py +31 -0
- autora_gui-1.1.2/autora_gui/util.py +13 -0
- autora_gui-1.1.2/autora_gui/workflow_samples/workflow.ipynb +262 -0
- autora_gui-1.1.2/autora_gui/workflow_samples/workflow.json +252 -0
- autora_gui-1.1.2/autora_gui/workflow_samples/workflow.py +75 -0
- autora_gui-1.1.2/autora_gui/workflow_samples/workflow_gt.py +65 -0
- autora_gui-1.1.2/autora_gui.egg-info/PKG-INFO +276 -0
- autora_gui-1.1.2/autora_gui.egg-info/SOURCES.txt +129 -0
- autora_gui-1.1.2/autora_gui.egg-info/dependency_links.txt +1 -0
- autora_gui-1.1.2/autora_gui.egg-info/not-zip-safe +1 -0
- autora_gui-1.1.2/autora_gui.egg-info/requires.txt +18 -0
- autora_gui-1.1.2/autora_gui.egg-info/scm_file_list.json +124 -0
- autora_gui-1.1.2/autora_gui.egg-info/scm_version.json +8 -0
- autora_gui-1.1.2/autora_gui.egg-info/top_level.txt +1 -0
- autora_gui-1.1.2/codecov.yml +19 -0
- autora_gui-1.1.2/docs/Makefile +23 -0
- autora_gui-1.1.2/docs/_static/SSEC_logo_horiz_blue_1152x263.png +0 -0
- autora_gui-1.1.2/docs/_static/SSEC_logo_vert_white_lg_1184x661.png +0 -0
- autora_gui-1.1.2/docs/_static/custom.css +7 -0
- autora_gui-1.1.2/docs/make.bat +35 -0
- autora_gui-1.1.2/docs/source/api.rst +34 -0
- autora_gui-1.1.2/docs/source/conf.py +57 -0
- autora_gui-1.1.2/docs/source/index.rst +27 -0
- autora_gui-1.1.2/docs/source/usage.rst +9 -0
- autora_gui-1.1.2/githooks/pre-push +15 -0
- autora_gui-1.1.2/index.html +42 -0
- autora_gui-1.1.2/pyproject.toml +124 -0
- autora_gui-1.1.2/requirements/all.txt +4 -0
- autora_gui-1.1.2/requirements/build.txt +3 -0
- autora_gui-1.1.2/requirements/dev.txt +2 -0
- autora_gui-1.1.2/requirements/docs.txt +8 -0
- autora_gui-1.1.2/requirements/prd.txt +3 -0
- autora_gui-1.1.2/requirements/test.txt +6 -0
- autora_gui-1.1.2/setup.cfg +4 -0
- autora_gui-1.1.2/tox.ini +65 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- '*'
|
|
9
|
+
pull_request:
|
|
10
|
+
branches:
|
|
11
|
+
- '*'
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
REGISTRY: ghcr.io
|
|
15
|
+
IMAGE_NAME: ${{ github.repository }}
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
lint:
|
|
19
|
+
name: lint with ruff with Python ${{ matrix.python-version }}
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
strategy:
|
|
22
|
+
matrix:
|
|
23
|
+
python-version: [3.11]
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
27
|
+
uses: actions/setup-python@v4
|
|
28
|
+
with:
|
|
29
|
+
python-version: ${{ matrix.python-version }}
|
|
30
|
+
cache: "pip"
|
|
31
|
+
- name: Install dependencies
|
|
32
|
+
run: |
|
|
33
|
+
python3 -m pip install --upgrade pip
|
|
34
|
+
pip3 install -r requirements/dev.txt
|
|
35
|
+
shell: bash
|
|
36
|
+
- name: Lint
|
|
37
|
+
run: tox -e check-style
|
|
38
|
+
shell: bash
|
|
39
|
+
|
|
40
|
+
test:
|
|
41
|
+
name: pytests on Python ${{ matrix.python-version }} and ${{ matrix.os }}
|
|
42
|
+
runs-on: ${{ matrix.os }}
|
|
43
|
+
strategy:
|
|
44
|
+
matrix:
|
|
45
|
+
python-version: [3.11]
|
|
46
|
+
os: [ubuntu-latest, macos-latest]
|
|
47
|
+
env:
|
|
48
|
+
OS: ${{ matrix.os }}
|
|
49
|
+
PYTHON: ${{ matrix.python-version }}
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
with:
|
|
53
|
+
lfs: true
|
|
54
|
+
- uses: actions/setup-python@v4
|
|
55
|
+
with:
|
|
56
|
+
python-version: ${{ matrix.python-version }}
|
|
57
|
+
cache: "pip"
|
|
58
|
+
- name: Install dependencies
|
|
59
|
+
run: |
|
|
60
|
+
python3 -m pip install --upgrade pip
|
|
61
|
+
pip3 install -r requirements/dev.txt
|
|
62
|
+
shell: bash
|
|
63
|
+
- name: pip install package
|
|
64
|
+
run: pip install .
|
|
65
|
+
- name: Test with tox (pytest)
|
|
66
|
+
run: tox -e test
|
|
67
|
+
- name: Archive coverage report
|
|
68
|
+
uses: actions/upload-artifact@v4.4.3
|
|
69
|
+
with:
|
|
70
|
+
name: code-coverage-report-python${{ matrix.python-version }}-${{ matrix.os }}
|
|
71
|
+
path: coverage.xml
|
|
72
|
+
retention-days: 14
|
|
73
|
+
if-no-files-found: error
|
|
74
|
+
- name: Upload coverage to Codecov
|
|
75
|
+
uses: codecov/codecov-action@v5
|
|
76
|
+
with:
|
|
77
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
78
|
+
env_vars: OS,PYTHON
|
|
79
|
+
fail_ci_if_error: false
|
|
80
|
+
files: ./coverage.xml
|
|
81
|
+
flags: unittests
|
|
82
|
+
name: codecov-umbrella
|
|
83
|
+
verbose: true
|
|
84
|
+
|
|
85
|
+
test-js:
|
|
86
|
+
name: JS/React tests on ${{ matrix.os }}
|
|
87
|
+
runs-on: ${{ matrix.os }}
|
|
88
|
+
strategy:
|
|
89
|
+
matrix:
|
|
90
|
+
os: [ubuntu-latest, macos-latest]
|
|
91
|
+
env:
|
|
92
|
+
OS: ${{ matrix.os }}
|
|
93
|
+
steps:
|
|
94
|
+
- uses: actions/checkout@v4
|
|
95
|
+
- name: Setup Node.js
|
|
96
|
+
uses: actions/setup-node@v4
|
|
97
|
+
with:
|
|
98
|
+
node-version: '20'
|
|
99
|
+
cache: 'npm'
|
|
100
|
+
cache-dependency-path: autora_gui/react_app/package-lock.json
|
|
101
|
+
- name: Install dependencies
|
|
102
|
+
run: npm ci
|
|
103
|
+
working-directory: autora_gui/react_app
|
|
104
|
+
- name: Run Vitest with coverage
|
|
105
|
+
run: npm run test:coverage
|
|
106
|
+
working-directory: autora_gui/react_app
|
|
107
|
+
- name: Upload coverage to Codecov
|
|
108
|
+
uses: codecov/codecov-action@v5
|
|
109
|
+
with:
|
|
110
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
111
|
+
files: autora_gui/react_app/coverage/lcov.info
|
|
112
|
+
flags: javascript
|
|
113
|
+
env_vars: OS
|
|
114
|
+
fail_ci_if_error: false
|
|
115
|
+
|
|
116
|
+
docs:
|
|
117
|
+
name: Build docs with Python ${{ matrix.python-version }}
|
|
118
|
+
runs-on: ubuntu-latest
|
|
119
|
+
permissions:
|
|
120
|
+
contents: read
|
|
121
|
+
strategy:
|
|
122
|
+
matrix:
|
|
123
|
+
python-version: [ 3.11 ]
|
|
124
|
+
steps:
|
|
125
|
+
- uses: actions/checkout@v4
|
|
126
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
127
|
+
uses: actions/setup-python@v4
|
|
128
|
+
with:
|
|
129
|
+
python-version: ${{ matrix.python-version }}
|
|
130
|
+
cache: "pip"
|
|
131
|
+
- name: Install tox
|
|
132
|
+
run: python -m pip install tox
|
|
133
|
+
shell: bash
|
|
134
|
+
- name: Build sphinx docs.
|
|
135
|
+
# Comment the env: SPHINXOPTS if you want to ignore warnings during doc build
|
|
136
|
+
env:
|
|
137
|
+
SPHINXOPTS: '-W'
|
|
138
|
+
run: tox -e build-docs
|
|
139
|
+
shell: bash
|
|
140
|
+
|
|
141
|
+
build:
|
|
142
|
+
name: Build and Publish.
|
|
143
|
+
needs: test
|
|
144
|
+
runs-on: ubuntu-latest
|
|
145
|
+
permissions:
|
|
146
|
+
contents: read
|
|
147
|
+
packages: write
|
|
148
|
+
|
|
149
|
+
steps:
|
|
150
|
+
- name: Checkout repository
|
|
151
|
+
uses: actions/checkout@v4
|
|
152
|
+
|
|
153
|
+
- name: Log in to the Container registry
|
|
154
|
+
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
|
|
155
|
+
with:
|
|
156
|
+
registry: ${{ env.REGISTRY }}
|
|
157
|
+
username: ${{ github.actor }}
|
|
158
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
159
|
+
|
|
160
|
+
- name: Extract metadata (tags, labels) for Docker
|
|
161
|
+
id: meta
|
|
162
|
+
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
|
|
163
|
+
with:
|
|
164
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
165
|
+
|
|
166
|
+
- name: Build and push Docker image
|
|
167
|
+
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
|
|
168
|
+
with:
|
|
169
|
+
context: .
|
|
170
|
+
push: ${{ github.event_name != 'pull_request' }}
|
|
171
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
172
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
name: Standalone Version and Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- create_json
|
|
8
|
+
workflow_dispatch: # Allow manual trigger
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
pages: write
|
|
13
|
+
id-token: write
|
|
14
|
+
|
|
15
|
+
concurrency:
|
|
16
|
+
group: "pages"
|
|
17
|
+
cancel-in-progress: false
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
build:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
steps:
|
|
23
|
+
- name: Setup Pages
|
|
24
|
+
uses: actions/configure-pages@v4
|
|
25
|
+
|
|
26
|
+
- name: Setup Node.js
|
|
27
|
+
uses: actions/setup-node@v4
|
|
28
|
+
with:
|
|
29
|
+
node-version: '20'
|
|
30
|
+
|
|
31
|
+
- name: Setup Python
|
|
32
|
+
uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: '3.11'
|
|
35
|
+
|
|
36
|
+
- name: Create deployment directory
|
|
37
|
+
run: mkdir -p deploy
|
|
38
|
+
|
|
39
|
+
# Build React version from main branch
|
|
40
|
+
- name: Checkout React branch
|
|
41
|
+
uses: actions/checkout@v4
|
|
42
|
+
with:
|
|
43
|
+
ref: main
|
|
44
|
+
path: main-branch
|
|
45
|
+
|
|
46
|
+
- name: Build main standalone version
|
|
47
|
+
run: |
|
|
48
|
+
cd main-branch/autora_gui/react_app
|
|
49
|
+
npm install
|
|
50
|
+
python build_standalone.py
|
|
51
|
+
mkdir -p ../../../deploy/main
|
|
52
|
+
cp ../../index.html ../../../deploy/main/index.html
|
|
53
|
+
continue-on-error: true
|
|
54
|
+
|
|
55
|
+
# Build component JSON generation version from create_json branch
|
|
56
|
+
- name: Checkout create_json branch
|
|
57
|
+
uses: actions/checkout@v4
|
|
58
|
+
with:
|
|
59
|
+
ref: create_json
|
|
60
|
+
path: create_json-branch
|
|
61
|
+
|
|
62
|
+
- name: Build component JSON generation standalone version
|
|
63
|
+
run: |
|
|
64
|
+
cd create_json-branch/autora_gui/react_app
|
|
65
|
+
npm install
|
|
66
|
+
python build_standalone.py
|
|
67
|
+
mkdir -p ../../../deploy/create_json
|
|
68
|
+
cp ../../index.html ../../../deploy/create_json/index.html
|
|
69
|
+
continue-on-error: true
|
|
70
|
+
|
|
71
|
+
# Build Sphinx docs from main branch
|
|
72
|
+
- name: Checkout main branch for docs
|
|
73
|
+
uses: actions/checkout@v4
|
|
74
|
+
with:
|
|
75
|
+
ref: main
|
|
76
|
+
path: main-branch
|
|
77
|
+
|
|
78
|
+
- name: Build Sphinx docs
|
|
79
|
+
run: |
|
|
80
|
+
cd main-branch
|
|
81
|
+
pip install tox
|
|
82
|
+
tox -e build-docs
|
|
83
|
+
mkdir -p ../deploy/docs
|
|
84
|
+
cp -r docs/_build/html/* ../deploy/docs/
|
|
85
|
+
continue-on-error: true
|
|
86
|
+
|
|
87
|
+
# Build front-end (JavaScript) API docs from the JSDoc comments and nest
|
|
88
|
+
# them under the Sphinx docs at /docs/frontend/.
|
|
89
|
+
- name: Build frontend JS docs
|
|
90
|
+
run: |
|
|
91
|
+
cd main-branch/autora_gui/react_app
|
|
92
|
+
npm install
|
|
93
|
+
npm run docs:api
|
|
94
|
+
mkdir -p ../../../deploy/docs/frontend
|
|
95
|
+
cp -r frontend-docs/* ../../../deploy/docs/frontend/
|
|
96
|
+
continue-on-error: true
|
|
97
|
+
|
|
98
|
+
# Create landing page as main index
|
|
99
|
+
- name: Create landing page
|
|
100
|
+
run: |
|
|
101
|
+
cat > deploy/index.html << 'EOF'
|
|
102
|
+
<!DOCTYPE html>
|
|
103
|
+
<html lang="en">
|
|
104
|
+
<head>
|
|
105
|
+
<meta charset="UTF-8">
|
|
106
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
107
|
+
<title>AutoRA Workflow Editor and Documentation</title>
|
|
108
|
+
<style>
|
|
109
|
+
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#1a1a2e;color:#e8e8e8;display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0}
|
|
110
|
+
.container{text-align:center;padding:40px}
|
|
111
|
+
h1{color:#4a90d9;margin-bottom:40px}
|
|
112
|
+
.versions{display:flex;gap:30px;justify-content:center;flex-wrap:wrap}
|
|
113
|
+
.version-card{background:#16213e;border:2px solid #2a2a4a;border-radius:12px;padding:30px 40px;text-decoration:none;color:#e8e8e8;transition:all 0.3s}
|
|
114
|
+
.version-card:hover{border-color:#4a90d9;transform:translateY(-5px)}
|
|
115
|
+
.version-card h2{margin:0 0 10px 0;color:#4a90d9}
|
|
116
|
+
.version-card p{margin:0;color:#808080;font-size:14px}
|
|
117
|
+
</style>
|
|
118
|
+
</head>
|
|
119
|
+
<body>
|
|
120
|
+
<div class="container">
|
|
121
|
+
<h1>AutoRA Workflow Editor and Documentation</h1>
|
|
122
|
+
<div class="versions">
|
|
123
|
+
<a href="./main/" class="version-card"><h2>Workflow Editor</h2><p>React-based GUI</p></a>
|
|
124
|
+
<a href="./create_json/" class="version-card"><h2>Workflow Editor with JSON Generation</h2><p>React-based GUI with component JSON generation</p></a>
|
|
125
|
+
<a href="./docs/" class="version-card"><h2>Documentation</h2><p>API reference and guides</p></a>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</body>
|
|
129
|
+
</html>
|
|
130
|
+
EOF
|
|
131
|
+
|
|
132
|
+
- name: List deployment contents
|
|
133
|
+
run: |
|
|
134
|
+
echo "Deployment directory contents:"
|
|
135
|
+
find deploy -type f
|
|
136
|
+
|
|
137
|
+
- name: Upload artifact
|
|
138
|
+
uses: actions/upload-pages-artifact@v3
|
|
139
|
+
with:
|
|
140
|
+
path: deploy
|
|
141
|
+
|
|
142
|
+
deploy:
|
|
143
|
+
environment:
|
|
144
|
+
name: github-pages
|
|
145
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
146
|
+
runs-on: ubuntu-latest
|
|
147
|
+
needs: build
|
|
148
|
+
steps:
|
|
149
|
+
- name: Standalone Version and Documentation
|
|
150
|
+
id: deployment
|
|
151
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
name: DIST
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [ released, prereleased ]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build:
|
|
8
|
+
name: Build distribution
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
- name: Set up Python
|
|
13
|
+
uses: actions/setup-python@v4
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.14"
|
|
16
|
+
- name: Install dependencies
|
|
17
|
+
run: |
|
|
18
|
+
python3 -m pip install --upgrade pip
|
|
19
|
+
pip3 install -r requirements/dev.txt
|
|
20
|
+
shell: bash
|
|
21
|
+
- name: Build a binary wheel and a source tarball
|
|
22
|
+
run: tox -e build-dist
|
|
23
|
+
- name: Store the distribution packages
|
|
24
|
+
uses: actions/upload-artifact@v4.4.3
|
|
25
|
+
with:
|
|
26
|
+
name: python-package-distributions
|
|
27
|
+
path: dist/
|
|
28
|
+
|
|
29
|
+
# To publish packages to PyPI, first obtain an account and then create a
|
|
30
|
+
# (pending) publisher using the form at
|
|
31
|
+
# https://pypi.org/manage/account/publishing/. Fill in the fields as follows:
|
|
32
|
+
#
|
|
33
|
+
# * PyPI Project Name: name of pypi package
|
|
34
|
+
# * Owner: org, e.g. ssec-jhu
|
|
35
|
+
# * Repository name: name of repo not-including org, e.g. autoRA-gui
|
|
36
|
+
# * Workflow name: dist.yml
|
|
37
|
+
# * Environment name: testpypi (for TestPyPI) or pypi (for PyPI)
|
|
38
|
+
#
|
|
39
|
+
# This should be done separately for both testpypi and pypi (these need
|
|
40
|
+
# separate accounts).
|
|
41
|
+
#
|
|
42
|
+
publish-to-testpypi:
|
|
43
|
+
name: Publish to TestPyPI
|
|
44
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
45
|
+
needs:
|
|
46
|
+
- build
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
environment: testpypi
|
|
49
|
+
permissions:
|
|
50
|
+
id-token: write
|
|
51
|
+
steps:
|
|
52
|
+
- name: Download all the dists
|
|
53
|
+
uses: actions/download-artifact@v4.1.7
|
|
54
|
+
with:
|
|
55
|
+
name: python-package-distributions
|
|
56
|
+
path: dist/
|
|
57
|
+
- name: Publish distribution to TestPyPI
|
|
58
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
59
|
+
with:
|
|
60
|
+
repository-url: https://test.pypi.org/legacy/
|
|
61
|
+
|
|
62
|
+
publish-to-pypi:
|
|
63
|
+
name: Publish to PyPI
|
|
64
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
65
|
+
needs:
|
|
66
|
+
- build
|
|
67
|
+
- publish-to-testpypi
|
|
68
|
+
runs-on: ubuntu-latest
|
|
69
|
+
environment: pypi
|
|
70
|
+
permissions:
|
|
71
|
+
id-token: write
|
|
72
|
+
steps:
|
|
73
|
+
- name: Download dists from
|
|
74
|
+
uses: actions/download-artifact@v4.1.7
|
|
75
|
+
with:
|
|
76
|
+
name: python-package-distributions
|
|
77
|
+
path: dist/
|
|
78
|
+
- name: Publish distribution to PyPI
|
|
79
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- '*'
|
|
9
|
+
pull_request:
|
|
10
|
+
branches:
|
|
11
|
+
- '*'
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
security:
|
|
15
|
+
name: Check security concerns with bandit on Python ${{ matrix.python-version }}
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
strategy:
|
|
18
|
+
matrix:
|
|
19
|
+
python-version: [ 3.11 ]
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v3
|
|
22
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
+
uses: actions/setup-python@v4
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ matrix.python-version }}
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: |
|
|
28
|
+
python3 -m pip install --upgrade pip
|
|
29
|
+
pip3 install bandit>=1.7 tox
|
|
30
|
+
shell: bash
|
|
31
|
+
- name: Run bandit (via tox)
|
|
32
|
+
run: tox -e check-security
|
|
33
|
+
shell: bash
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
_version.py
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
cover/
|
|
54
|
+
|
|
55
|
+
# Translations
|
|
56
|
+
*.mo
|
|
57
|
+
*.pot
|
|
58
|
+
|
|
59
|
+
# Django stuff:
|
|
60
|
+
*.log
|
|
61
|
+
local_settings.py
|
|
62
|
+
db.sqlite3
|
|
63
|
+
db.sqlite3-journal
|
|
64
|
+
|
|
65
|
+
# Flask stuff:
|
|
66
|
+
instance/
|
|
67
|
+
.webassets-cache
|
|
68
|
+
|
|
69
|
+
# Scrapy stuff:
|
|
70
|
+
.scrapy
|
|
71
|
+
|
|
72
|
+
# Sphinx documentation
|
|
73
|
+
docs/_build/
|
|
74
|
+
docs/source/generated
|
|
75
|
+
docs/source/_autosummary/
|
|
76
|
+
|
|
77
|
+
# PyBuilder
|
|
78
|
+
.pybuilder/
|
|
79
|
+
target/
|
|
80
|
+
|
|
81
|
+
# Jupyter Notebook
|
|
82
|
+
.ipynb_checkpoints
|
|
83
|
+
|
|
84
|
+
# IPython
|
|
85
|
+
profile_default/
|
|
86
|
+
ipython_config.py
|
|
87
|
+
|
|
88
|
+
# pyenv
|
|
89
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
90
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
91
|
+
# .python-version
|
|
92
|
+
|
|
93
|
+
# pipenv
|
|
94
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
95
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
96
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
97
|
+
# install all needed dependencies.
|
|
98
|
+
#Pipfile.lock
|
|
99
|
+
|
|
100
|
+
# poetry
|
|
101
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
102
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
103
|
+
# commonly ignored for libraries.
|
|
104
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
105
|
+
#poetry.lock
|
|
106
|
+
|
|
107
|
+
# pdm
|
|
108
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
109
|
+
#pdm.lock
|
|
110
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
111
|
+
# in version control.
|
|
112
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
113
|
+
.pdm.toml
|
|
114
|
+
|
|
115
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
116
|
+
__pypackages__/
|
|
117
|
+
|
|
118
|
+
# Celery stuff
|
|
119
|
+
celerybeat-schedule
|
|
120
|
+
celerybeat.pid
|
|
121
|
+
|
|
122
|
+
# SageMath parsed files
|
|
123
|
+
*.sage.py
|
|
124
|
+
|
|
125
|
+
# Environments
|
|
126
|
+
.env
|
|
127
|
+
.venv
|
|
128
|
+
env/
|
|
129
|
+
venv/
|
|
130
|
+
ENV/
|
|
131
|
+
env.bak/
|
|
132
|
+
venv.bak/
|
|
133
|
+
|
|
134
|
+
# Spyder project settings
|
|
135
|
+
.spyderproject
|
|
136
|
+
.spyproject
|
|
137
|
+
|
|
138
|
+
# Rope project settings
|
|
139
|
+
.ropeproject
|
|
140
|
+
|
|
141
|
+
# mkdocs documentation
|
|
142
|
+
/site
|
|
143
|
+
|
|
144
|
+
# mypy
|
|
145
|
+
.mypy_cache/
|
|
146
|
+
.dmypy.json
|
|
147
|
+
dmypy.json
|
|
148
|
+
|
|
149
|
+
# Pyre type checker
|
|
150
|
+
.pyre/
|
|
151
|
+
|
|
152
|
+
# pytype static type analyzer
|
|
153
|
+
.pytype/
|
|
154
|
+
|
|
155
|
+
# Cython debug symbols
|
|
156
|
+
cython_debug/
|
|
157
|
+
|
|
158
|
+
# PyCharm
|
|
159
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
160
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
161
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
162
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
163
|
+
.idea/
|
|
164
|
+
|
|
165
|
+
# VS Code
|
|
166
|
+
.vscode
|
|
167
|
+
|
|
168
|
+
# File system
|
|
169
|
+
.DS_Store
|
|
170
|
+
|
|
171
|
+
# Claude files
|
|
172
|
+
.claude
|
|
173
|
+
SKILL.md
|
|
174
|
+
CLAUDE.md
|
|
175
|
+
|
|
176
|
+
# JS tests
|
|
177
|
+
node_modules
|
|
178
|
+
|
|
179
|
+
# React files
|
|
180
|
+
.vite
|
|
181
|
+
dist
|
|
182
|
+
coverage
|
|
183
|
+
|
|
184
|
+
# Generated JSDoc API docs
|
|
185
|
+
frontend-docs
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# .readthedocs.yaml
|
|
2
|
+
# Read the Docs configuration file
|
|
3
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
4
|
+
|
|
5
|
+
# Required
|
|
6
|
+
version: 2
|
|
7
|
+
|
|
8
|
+
python:
|
|
9
|
+
install:
|
|
10
|
+
- requirements: requirements/docs.txt
|
|
11
|
+
- method: pip
|
|
12
|
+
path: .
|
|
13
|
+
|
|
14
|
+
# Build documentation in the docs/ directory with Sphinx
|
|
15
|
+
sphinx:
|
|
16
|
+
builder: html
|
|
17
|
+
configuration: docs/source/conf.py
|
|
18
|
+
fail_on_warning: true
|
|
19
|
+
|
|
20
|
+
# Optionally build your docs in additional formats such as PDF and ePub
|
|
21
|
+
formats:
|
|
22
|
+
- htmlzip
|
|
23
|
+
- pdf
|
|
24
|
+
- epub
|
|
25
|
+
|
|
26
|
+
build:
|
|
27
|
+
os: ubuntu-22.04
|
|
28
|
+
tools:
|
|
29
|
+
python: "3.11"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"creators": [
|
|
3
|
+
{
|
|
4
|
+
"affiliation": "Scientific Software Engineering Center at JHU",
|
|
5
|
+
"name": "Fatemeh Abbasinejad",
|
|
6
|
+
"orcid": "0009-0006-3239-7112"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"affiliation": "Scientific Software Engineering Center at JHU",
|
|
10
|
+
"name": "Vladimir Kluzner",
|
|
11
|
+
"orcid": "0009-0000-5844-661X"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"affiliation": "Scientific Software Engineering Center at JHU",
|
|
15
|
+
"name": "Gerard Lemson",
|
|
16
|
+
"orcid": "0000-0001-5041-2458"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"description": "GUI for AutoRA project",
|
|
20
|
+
"license": "bsd-3-clause",
|
|
21
|
+
"upload_type": "software",
|
|
22
|
+
"access_right": "open"
|
|
23
|
+
}
|