studpy 0.1.0__tar.gz → 0.4.0__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.
- studpy-0.4.0/.forgejo/workflows/release.yaml +145 -0
- {studpy-0.1.0 → studpy-0.4.0}/PKG-INFO +1 -1
- {studpy-0.1.0 → studpy-0.4.0}/README.md +5 -0
- studpy-0.4.0/docs/.cache/.gitignore +1 -0
- studpy-0.4.0/docs/.cache/1058400769371389284 +4 -0
- studpy-0.4.0/docs/.cache/10889990787503624853 +4 -0
- studpy-0.4.0/docs/.cache/13192126767242042991 +4 -0
- studpy-0.4.0/docs/.cache/13783002392563167465 +39 -0
- studpy-0.4.0/docs/.cache/13933668085211369552 +340 -0
- studpy-0.4.0/docs/.cache/14282079245528024874 +4 -0
- studpy-0.4.0/docs/.cache/14924173434076387491 +4 -0
- studpy-0.4.0/docs/.cache/15660548601360352565 +30 -0
- studpy-0.4.0/docs/.cache/17415739441049600932 +4 -0
- studpy-0.4.0/docs/.cache/18232071843448645342 +33 -0
- studpy-0.4.0/docs/.cache/18274991804342405383 +163 -0
- studpy-0.4.0/docs/.cache/1972624678796423847 +50 -0
- studpy-0.4.0/docs/.cache/3476900567878811119 +4 -0
- studpy-0.4.0/docs/.cache/3541202890535126406 +31 -0
- studpy-0.4.0/docs/.cache/3734276400694268770 +4 -0
- studpy-0.4.0/docs/.cache/37704929143401328 +119 -0
- studpy-0.4.0/docs/.cache/5469674853214792527 +111 -0
- studpy-0.4.0/docs/.cache/6727431282934205507 +4 -0
- studpy-0.4.0/docs/.cache/7986048453613002468 +30 -0
- studpy-0.4.0/docs/.cache/8287735301005711476 +4 -0
- studpy-0.4.0/docs/docs/documentation/_Get-Started/01-installation.md +44 -0
- studpy-0.1.0/docs/docs/documentation/_Guides/02-get-started.md → studpy-0.4.0/docs/docs/documentation/_Get-Started/02-minimal-example.md +7 -7
- studpy-0.4.0/docs/docs/documentation/_Get-Started/03-license.md +54 -0
- studpy-0.4.0/docs/docs/documentation/__Key-Concepts/01-overview.md +80 -0
- studpy-0.4.0/docs/docs/documentation/__Key-Concepts/01-overview_objects_1.png +0 -0
- studpy-0.4.0/docs/docs/documentation/__Key-Concepts/02-case_builder.md +244 -0
- studpy-0.4.0/docs/docs/documentation/__Key-Concepts/03-batch.md +9 -0
- studpy-0.4.0/docs/docs/documentation/api/OneFileInputsBuilder.md +9 -0
- studpy-0.4.0/docs/docs/documentation/api/Study.md +8 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/zensical.toml +1 -1
- {studpy-0.1.0 → studpy-0.4.0}/pyproject.toml +1 -1
- {studpy-0.1.0/src/studpy/params → studpy-0.4.0/src/studpy/cases}/__init__.py +2 -2
- studpy-0.1.0/src/studpy/params/specs.py → studpy-0.4.0/src/studpy/cases/case_builder.py +1 -1
- studpy-0.4.0/src/studpy/inputs/__init__.py +2 -0
- {studpy-0.1.0/src/studpy/targets → studpy-0.4.0/src/studpy/inputs}/one_file.py +1 -1
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/study.py +2 -2
- {studpy-0.1.0 → studpy-0.4.0}/tests/data.py +4 -4
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_11_params_lhs.py +6 -6
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_19_params_combine.py +2 -2
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_20_targets.py +2 -2
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_30_study.py +2 -2
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_41_batch_study.py +3 -3
- studpy-0.1.0/.forgejo/workflows/release.yaml +0 -165
- studpy-0.1.0/docs/docs/documentation/_Guides/01-installation.md +0 -21
- studpy-0.1.0/docs/docs/documentation/_Guides/03-configuration.md +0 -7
- studpy-0.1.0/src/studpy/targets/__init__.py +0 -2
- {studpy-0.1.0 → studpy-0.4.0}/.gitignore +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/assets/extra.css +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/assets/logo.png +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/assets/logo.svg +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/assets/logo_white.svg +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/documentation/api/BatchExecCmdIter.md +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/index.md +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/docs/stylesheets/extra.css +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/docs/overrides/partials/header.html +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/__init__.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/batch/__init__.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/batch/batch_exec_cmd_iter.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/batch/validated_batch.py +0 -0
- {studpy-0.1.0/src/studpy/params → studpy-0.4.0/src/studpy/cases}/configs.py +0 -0
- {studpy-0.1.0/src/studpy/params → studpy-0.4.0/src/studpy/cases}/latin_hypercube_sampling.py +0 -0
- {studpy-0.1.0/src/studpy/params → studpy-0.4.0/src/studpy/cases}/param.py +0 -0
- {studpy-0.1.0/src/studpy/targets → studpy-0.4.0/src/studpy/inputs}/utils.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/src/studpy/utils/logger_print.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/__init__.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/dev.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/simulation.json +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_00_utils.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_10_params.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_40_batch.py +0 -0
- {studpy-0.1.0 → studpy-0.4.0}/tests/test_42_batch_val.py +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
name: Create Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
RELEASE_NAME: ${{ gitea.ref_name }}
|
|
10
|
+
VERSION: ${{ gitea.ref_name }}
|
|
11
|
+
SRC_FOLDER: src/studpy
|
|
12
|
+
PYTHON_COMMAND: python3
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
|
|
16
|
+
Release:
|
|
17
|
+
|
|
18
|
+
runs-on: node20
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
|
|
22
|
+
# Versions
|
|
23
|
+
|
|
24
|
+
- name: Ldd Version
|
|
25
|
+
run: ldd --version
|
|
26
|
+
|
|
27
|
+
- name: Node Version
|
|
28
|
+
run: node --version
|
|
29
|
+
|
|
30
|
+
- name: Python Version
|
|
31
|
+
run: ${{ env.PYTHON_COMMAND }} --version
|
|
32
|
+
|
|
33
|
+
- name: Echo `env.VERSION`
|
|
34
|
+
run: |
|
|
35
|
+
echo "VERSION: ${{ env.VERSION }}"
|
|
36
|
+
|
|
37
|
+
# Checkout
|
|
38
|
+
|
|
39
|
+
- name: Check out
|
|
40
|
+
uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
# Checks: Package, GIT, Zensical versions
|
|
43
|
+
|
|
44
|
+
- name: Checks Package, GIT, Zensical versions
|
|
45
|
+
run: |
|
|
46
|
+
PKG_VERSION=$(${{ env.PYTHON_COMMAND }} -c "
|
|
47
|
+
import tomllib
|
|
48
|
+
with open('pyproject.toml', 'rb') as f:
|
|
49
|
+
print(tomllib.load(f)['project']['version'])
|
|
50
|
+
")
|
|
51
|
+
DOCS_VERSION=$(${{ env.PYTHON_COMMAND }} -c "
|
|
52
|
+
import tomllib
|
|
53
|
+
with open('docs/zensical.toml', 'rb') as f:
|
|
54
|
+
print(tomllib.load(f)['project']['extra']['version'])
|
|
55
|
+
")
|
|
56
|
+
DOCS_VERSION=${DOCS_VERSION#v}
|
|
57
|
+
GIT_VERSION=${GITHUB_REF_NAME#v}
|
|
58
|
+
echo "Package: $PKG_VERSION | Tag: $GIT_VERSION"
|
|
59
|
+
[ "$DOCS_VERSION" = "$GIT_VERSION" ] || { echo "❌ Mismatch $DOCS_VERSION <> $GIT_VERSION!"; exit 1; }
|
|
60
|
+
[ "$PKG_VERSION" = "$GIT_VERSION" ] || { echo "❌ Mismatch $PKG_VERSION <> $GIT_VERSION!"; exit 1; }
|
|
61
|
+
|
|
62
|
+
# Install pip zip
|
|
63
|
+
|
|
64
|
+
- name: Install pip zip
|
|
65
|
+
run: |
|
|
66
|
+
apt update && apt install -y python3-pip zip
|
|
67
|
+
|
|
68
|
+
# ############
|
|
69
|
+
# Docs - Build
|
|
70
|
+
|
|
71
|
+
# Docs - Pre build actions
|
|
72
|
+
|
|
73
|
+
# - name: Docs - Pre build actions
|
|
74
|
+
# run: python3 docs_gen.py
|
|
75
|
+
|
|
76
|
+
# Docs - Zensical Prerequisites + Build
|
|
77
|
+
|
|
78
|
+
- name: Docs - Prerequisites + Build
|
|
79
|
+
run: |
|
|
80
|
+
pip install zensical mkdocstrings-python --break-system-packages
|
|
81
|
+
pip install -e . --break-system-packages
|
|
82
|
+
zensical build -f docs/zensical.toml
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
# ###############
|
|
86
|
+
# Package - Build
|
|
87
|
+
|
|
88
|
+
# Package - Prerequisites
|
|
89
|
+
|
|
90
|
+
- name: Package - Prerequisites
|
|
91
|
+
run: |
|
|
92
|
+
pip install python-minifier --break-system-packages
|
|
93
|
+
|
|
94
|
+
- name: Package - Minify
|
|
95
|
+
run: |
|
|
96
|
+
pyminify --in-place --remove-literal-statements ${{ env.SRC_FOLDER }}
|
|
97
|
+
|
|
98
|
+
- name: Package - Build
|
|
99
|
+
run: |
|
|
100
|
+
pip install build twine --break-system-packages
|
|
101
|
+
${{ env.PYTHON_COMMAND }} -m build
|
|
102
|
+
|
|
103
|
+
- name: Package - Publish to PyPI
|
|
104
|
+
env:
|
|
105
|
+
TWINE_USERNAME: __token__
|
|
106
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
107
|
+
run: twine upload dist/*
|
|
108
|
+
|
|
109
|
+
# Docs - Deploy
|
|
110
|
+
|
|
111
|
+
# Zip
|
|
112
|
+
|
|
113
|
+
- name: Docs - Zip output
|
|
114
|
+
run: zip -qq -r site.zip site/
|
|
115
|
+
working-directory: docs
|
|
116
|
+
|
|
117
|
+
- name: Docs - Zip mv
|
|
118
|
+
run: |
|
|
119
|
+
mv docs/site.zip site.zip
|
|
120
|
+
|
|
121
|
+
- name: Docs - Deploy - Copy files via SCP
|
|
122
|
+
uses: https://github.com/appleboy/scp-action@v0.1.7
|
|
123
|
+
|
|
124
|
+
with:
|
|
125
|
+
host: ${{ secrets.DOCS_SSH_HOST }}
|
|
126
|
+
username: ${{ secrets.DOCS_SSH_USERNAME }}
|
|
127
|
+
password: ${{ secrets.DOCS_SSH_PASSWORD }}
|
|
128
|
+
port: ${{ secrets.DOCS_SSH_PORT }}
|
|
129
|
+
source: "site.zip"
|
|
130
|
+
target: "${{ secrets.DOCS_FOLDER_PATH }}"
|
|
131
|
+
|
|
132
|
+
- name: Docs - Deploy
|
|
133
|
+
uses: https://github.com/appleboy/ssh-action@v1.0.3
|
|
134
|
+
with:
|
|
135
|
+
host: ${{ secrets.DOCS_SSH_HOST }}
|
|
136
|
+
username: ${{ secrets.DOCS_SSH_USERNAME }}
|
|
137
|
+
password: ${{ secrets.DOCS_SSH_PASSWORD }}
|
|
138
|
+
port: ${{ secrets.DOCS_SSH_PORT }}
|
|
139
|
+
script: |
|
|
140
|
+
cd ${{ secrets.DOCS_FOLDER_PATH }}
|
|
141
|
+
docker compose down
|
|
142
|
+
rm -rf site
|
|
143
|
+
unzip site.zip
|
|
144
|
+
rm -f site.zip
|
|
145
|
+
docker compose up -d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": "\n<!doctype html>\n<html lang=\"en\" class=\"no-js\">\n <head>\n \n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n \n \n <meta name=\"author\" content=\"PinkSalmon\">\n \n \n \n <link rel=\"prev\" href=\"../02-minimal-example/\">\n \n \n <link rel=\"next\" href=\"../../__Key-Concepts/01-overview/\">\n \n \n \n \n \n <link rel=\"icon\" href=\"../../../assets/images/favicon.png\">\n <meta name=\"generator\" content=\"zensical-0.0.43\">\n \n \n \n <title>License - StudPy</title>\n \n \n \n \n \n \n <link rel=\"stylesheet\" href=\"../../../assets/stylesheets/modern/main.fba56155.min.css\">\n \n \n\n\n \n \n \n \n \n \n \n \n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,500,500i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback\">\n <style>:root{--md-text-font:\"Inter\";--md-code-font:\"JetBrains Mono\"}</style>\n \n \n \n <link rel=\"stylesheet\" href=\"../../../stylesheets/extra.css\">\n \n <script>__md_scope=new URL(\"../../..\",location),__md_scope.pathname.endsWith(\"/\")||(__md_scope=new URL(__md_scope.pathname+\"/\",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+\".\"+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+\".\"+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute(\"data-platform\",navigator.platform)</script>\n \n \n\n \n \n </head>\n \n \n <body dir=\"ltr\">\n \n \n <input class=\"md-toggle\" data-md-toggle=\"drawer\" type=\"checkbox\" id=\"__drawer\" autocomplete=\"off\">\n <input class=\"md-toggle\" data-md-toggle=\"search\" type=\"checkbox\" id=\"__search\" autocomplete=\"off\">\n <label class=\"md-overlay\" for=\"__drawer\" aria-label=\"Navigation\"></label>\n <div data-md-component=\"skip\">\n \n \n <a href=\"#license\" class=\"md-skip\">\n Skip to content\n </a>\n \n </div>\n <div data-md-component=\"announce\">\n \n </div>\n \n <div data-md-color-scheme=\"default\" data-md-component=\"outdated\" hidden>\n \n </div>\n \n \n \n\n<header class=\"md-header\" data-md-component=\"header\">\n <nav class=\"md-header__inner md-grid\" aria-label=\"Header\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-header__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n <label class=\"md-header__button md-icon\" for=\"__drawer\" aria-label=\"Navigation\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-menu\" viewBox=\"0 0 24 24\"><path d=\"M4 5h16M4 12h16M4 19h16\"/></svg>\n </label>\n <div class=\"md-header__title\" data-md-component=\"header-title\">\n <div class=\"md-header__ellipsis\">\n <div class=\"md-header__topic\">\n <span class=\"md-ellipsis\">\n StudPy\n <span style=\"background: var(--md-accent-fg-color--transparent); color: var(--md-accent-fg-color); padding: 2px 4px; margin:4px; border-radius: 4px; font-size: 0.6em;\">\n v0.4.0\n </span>\n </span>\n </div>\n <div class=\"md-header__topic\" data-md-component=\"header-topic\">\n <span class=\"md-ellipsis\">\n \n License\n \n </span>\n </div>\n </div>\n </div>\n \n \n <script>var palette=__md_get(\"__palette\");if(palette&&palette.color){if(\"(prefers-color-scheme)\"===palette.color.media){var media=matchMedia(\"(prefers-color-scheme: light)\"),input=document.querySelector(media.matches?\"[data-md-color-media='(prefers-color-scheme: light)']\":\"[data-md-color-media='(prefers-color-scheme: dark)']\");palette.color.media=input.getAttribute(\"data-md-color-media\"),palette.color.scheme=input.getAttribute(\"data-md-color-scheme\"),palette.color.primary=input.getAttribute(\"data-md-color-primary\"),palette.color.accent=input.getAttribute(\"data-md-color-accent\")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute(\"data-md-color-\"+key,value)}</script>\n \n \n \n \n \n <label class=\"md-header__button md-icon\" for=\"__search\" aria-label=\"Search\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-search\" viewBox=\"0 0 24 24\"><path d=\"m21 21-4.34-4.34\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/></svg>\n </label>\n <div class=\"md-search\" data-md-component=\"search\" role=\"dialog\" aria-label=\"Search\">\n <button type=\"button\" class=\"md-search__button\">\n Search\n </button>\n</div>\n \n \n <div class=\"md-header__source\">\n \n </div>\n </nav>\n \n</header>\n \n <div class=\"md-container\" data-md-component=\"container\">\n \n \n \n \n \n<nav class=\"md-tabs\" aria-label=\"Tabs\" data-md-component=\"tabs\">\n <div class=\"md-grid\">\n <ul class=\"md-tabs__list\">\n \n \n \n \n \n \n <li class=\"md-tabs__item\">\n <a href=\"../../..\" class=\"md-tabs__link\">\n \n \n StudPy\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-tabs__item md-tabs__item--active\">\n <a href=\"../01-installation/\" class=\"md-tabs__link\">\n \n \n Documentation\n\n </a>\n </li>\n \n \n\n \n \n\n \n </ul>\n </div>\n</nav>\n \n \n \n <main class=\"md-main\" data-md-component=\"main\">\n <div class=\"md-main__inner md-grid\">\n \n \n \n <div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" >\n <div class=\"md-sidebar__scrollwrap\">\n <div class=\"md-sidebar__inner\">\n \n\n\n \n\n\n<nav class=\"md-nav md-nav--primary md-nav--lifted\" aria-label=\"Navigation\" data-md-level=\"0\">\n <label class=\"md-nav__title\" for=\"__drawer\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-nav__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n StudPy\n </label>\n \n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../..\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n StudPy\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2\" id=\"__nav_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Documentation\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"1\" aria-labelledby=\"__nav_2_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Documentation\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2_1\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_1\" id=\"__nav_2_1_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Get Started\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_1_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2_1\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Get Started\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../01-installation/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-package-open\" viewBox=\"0 0 24 24\"><path d=\"M12 22v-9M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.66 1.66 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z\"/><path d=\"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13\"/><path d=\"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.64 1.64 0 0 0 1.63 0z\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Installation\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../02-minimal-example/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-file-box\" viewBox=\"0 0 24 24\"><path d=\"M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M11.7 14.2 7 17l-4.7-2.8\"/><path d=\"M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01zM7 17v5\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Minimal Example\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active\">\n \n \n \n \n \n \n \n <label class=\"md-nav__link md-nav__link--active\" for=\"__toc\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-scale\" viewBox=\"0 0 24 24\"><path d=\"M12 3v18M19 8l3 8a5 5 0 0 1-6 0zV7\"/><path d=\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1M5 8l3 8a5 5 0 0 1-6 0zV7M7 21h10\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n License\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <a href=\"././\" class=\"md-nav__link md-nav__link--active\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-scale\" viewBox=\"0 0 24 24\"><path d=\"M12 3v18M19 8l3 8a5 5 0 0 1-6 0zV7\"/><path d=\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1M5 8l3 8a5 5 0 0 1-6 0zV7M7 21h10\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n License\n\n \n </span>\n \n \n\n </a>\n \n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#1-purpose-of-the-license\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 1. Purpose of the License\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#2-usage-rights\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2. Usage Rights\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"2. Usage Rights\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#21-open-source-usage\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2.1 Open Source Usage\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#22-other-usage\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2.2 Other Usage\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#3-restrictions\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 3. Restrictions\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#4-warranty-limitations\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 4. Warranty Limitations\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#5-term-and-termination\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 5. Term and Termination\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#6-governing-law-and-jurisdiction\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 6. Governing Law and Jurisdiction\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n \n</nav>\n \n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_2\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_2\" id=\"__nav_2_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Key Concepts\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_2_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Key Concepts\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/01-overview/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-info\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4M12 8h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Overview\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/02-case_builder/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-clipboard-list\" viewBox=\"0 0 24 24\"><rect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"/><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M12 11h4M12 16h4M8 11h.01M8 16h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Case Builder\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/03-batch/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-chevron-right\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m10 8 4 4-4 4\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Batch\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_3\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_3\" id=\"__nav_2_3_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Api\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_3_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_3\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Api\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/BatchExecCmdIter/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n BatchExecCmdIter\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/OneFileInputsBuilder/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n OneFileInputsBuilder\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/Study/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Study\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n </ul>\n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" >\n <div class=\"md-sidebar__scrollwrap\">\n \n \n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle\" type=\"checkbox\" id=\"__toc\">\n <div class=\"md-sidebar-button__wrapper\">\n <label class=\"md-sidebar-button\" for=\"__toc\"></label>\n </div>\n \n \n <div class=\"md-sidebar__inner\">\n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#1-purpose-of-the-license\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 1. Purpose of the License\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#2-usage-rights\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2. Usage Rights\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"2. Usage Rights\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#21-open-source-usage\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2.1 Open Source Usage\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#22-other-usage\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 2.2 Other Usage\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#3-restrictions\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 3. Restrictions\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#4-warranty-limitations\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 4. Warranty Limitations\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#5-term-and-termination\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 5. Term and Termination\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#6-governing-law-and-jurisdiction\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n 6. Governing Law and Jurisdiction\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n \n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-content\" data-md-component=\"content\">\n \n \n\n\n\n \n\n\n <nav class=\"md-path\" aria-label=\"Navigation\" >\n <ol class=\"md-path__list\">\n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../../..\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n StudPy\n </span>\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../01-installation/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Documentation\n </span>\n\n </a>\n </li>\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../01-installation/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Get Started\n </span>\n\n </a>\n </li>\n \n \n\n \n </ol>\n </nav>\n\n \n <article class=\"md-content__inner md-typeset\">\n \n \n\n<h1 id=\"license\">License<a class=\"headerlink\" href=\"#license\" title=\"Permanent link\">¶</a></h1>\n<h2 id=\"1-purpose-of-the-license\">1. Purpose of the License<a class=\"headerlink\" href=\"#1-purpose-of-the-license\" title=\"Permanent link\">¶</a></h2>\n<ul>\n<li>This license defines the terms and conditions for the use of the software library called <code>studpy</code> (hereinafter referred to as <code>the Library</code>).</li>\n</ul>\n<h2 id=\"2-usage-rights\">2. Usage Rights<a class=\"headerlink\" href=\"#2-usage-rights\" title=\"Permanent link\">¶</a></h2>\n<h3 id=\"21-open-source-usage\">2.1 Open Source Usage<a class=\"headerlink\" href=\"#21-open-source-usage\" title=\"Permanent link\">¶</a></h3>\n<ul>\n<li>Use is permitted free of charge exclusively within open source projects, provided that the Library is not used for commercial purposes, either directly or indirectly (e.g., SaaS, paid services, integration into a commercial product).</li>\n</ul>\n<h3 id=\"22-other-usage\">2.2 Other Usage<a class=\"headerlink\" href=\"#22-other-usage\" title=\"Permanent link\">¶</a></h3>\n<ul>\n<li>The purchase or receipt of a license grants the user a limited, non-exclusive, and non-transferable license to use the Library in accordance with the terms of this license.</li>\n<li>The user is authorized to use the Library only for projects within the scope defined by the agreement.</li>\n</ul>\n<h2 id=\"3-restrictions\">3. Restrictions<a class=\"headerlink\" href=\"#3-restrictions\" title=\"Permanent link\">¶</a></h2>\n<p>The user agrees to comply with the following restrictions:</p>\n<ul>\n<li><strong>No Redistribution</strong>: It is strictly prohibited to distribute, sell, rent, or lend the Library to third parties in any form whatsoever.</li>\n<li><strong>Source Code</strong>: The Library is provided in binary or compiled form, unless otherwise specified. Any attempt to decompile, reverse engineer, or modify it is strictly prohibited.</li>\n<li><strong>Intellectual Property</strong>: All intellectual property rights related to the Library are and shall remain the exclusive property of PinkSalmon.</li>\n</ul>\n<h2 id=\"4-warranty-limitations\">4. Warranty Limitations<a class=\"headerlink\" href=\"#4-warranty-limitations\" title=\"Permanent link\">¶</a></h2>\n<ul>\n<li>The Library is provided \"as is\" without any express or implied warranty.</li>\n<li>PinkSalmon shall not be held liable for any direct or indirect damages, including but not limited to data loss, loss of profits, or service interruption.</li>\n</ul>\n<h2 id=\"5-term-and-termination\">5. Term and Termination<a class=\"headerlink\" href=\"#5-term-and-termination\" title=\"Permanent link\">¶</a></h2>\n<ul>\n<li>This license remains valid until terminated.</li>\n<li>It may be terminated automatically in the event of a breach of the terms of this license.</li>\n<li>Upon termination, the user must destroy all copies of the Library in their possession.</li>\n</ul>\n<h2 id=\"6-governing-law-and-jurisdiction\">6. Governing Law and Jurisdiction<a class=\"headerlink\" href=\"#6-governing-law-and-jurisdiction\" title=\"Permanent link\">¶</a></h2>\n<ul>\n<li>This License shall be governed by and construed in accordance with the laws of France.</li>\n<li>Notwithstanding the foregoing, if the Licensee is located outside France, mandatory provisions of the local laws of the Licensee’s country of residence may apply to the extent they cannot be waived by contract.</li>\n<li>Any dispute arising out of or in connection with this License shall be submitted to the exclusive jurisdiction of the competent courts of France, unless otherwise required by applicable mandatory law.</li>\n</ul>\n<hr />\n<p><strong>Contact</strong>: For any questions regarding this license, please contact <a href=\"mailto:contact@pinksalmon.cloud\">contact@pinksalmon.cloud</a>.</p>\n\n\n <nav class=\"md-tags\" >\n \n \n \n \n \n <span class=\"md-tag\">Get started</span>\n \n \n </nav>\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n \n </article>\n </div>\n \n \n<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith(\"__tabbed_\"))</script>\n </div>\n \n <button type=\"button\" class=\"md-top md-icon\" data-md-component=\"top\" hidden>\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-arrow-up\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m16 12-4-4-4 4M12 16V8\"/></svg>\n Back to top\n</button>\n \n </main>\n \n <footer class=\"md-footer\">\n \n <div class=\"md-footer-meta md-typeset\">\n <div class=\"md-footer-meta__inner md-grid\">\n <div class=\"md-copyright\">\n \n <div class=\"md-copyright__highlight\">\n Copyright © 2026 StudPy - A PinkSalmon Library\n </div>\n \n \n</div>\n \n </div>\n </div>\n</footer>\n \n </div>\n <div class=\"md-dialog\" data-md-component=\"dialog\">\n <div class=\"md-dialog__inner md-typeset\"></div>\n </div>\n \n \n \n \n \n <script id=\"__config\" type=\"application/json\">{\"annotate\":null,\"base\":\"../../..\",\"features\":[\"navigation.tabs\",\"navigation.path\",\"navigation.expand\",\"navigation.top\",\"navigation.sections\",\"navigation.indexes\",\"content.code.copy\"],\"search\":\"../../../assets/javascripts/workers/search.e2d2d235.min.js\",\"tags\":null,\"translations\":{\"clipboard.copied\":\"Copied to clipboard\",\"clipboard.copy\":\"Copy to clipboard\",\"search.result.more.one\":\"1 more on this page\",\"search.result.more.other\":\"# more on this page\",\"search.result.none\":\"No matching documents\",\"search.result.one\":\"1 matching document\",\"search.result.other\":\"# matching documents\",\"search.result.placeholder\":\"Type to start searching\",\"search.result.term.missing\":\"Missing\",\"select.version\":\"Select version\"},\"version\":\"v0.4.0\"}</script>\n \n \n <script src=\"../../../assets/javascripts/bundle.6e5f0216.min.js\"></script>\n \n \n </body>\n</html>",
|
|
3
|
+
"hash": 5591041952466111880
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": "\n<!doctype html>\n<html lang=\"en\" class=\"no-js\">\n <head>\n \n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n \n \n <meta name=\"author\" content=\"PinkSalmon\">\n \n \n \n <link rel=\"prev\" href=\"../01-overview/\">\n \n \n <link rel=\"next\" href=\"../03-batch/\">\n \n \n \n \n \n <link rel=\"icon\" href=\"../../../assets/images/favicon.png\">\n <meta name=\"generator\" content=\"zensical-0.0.43\">\n \n \n \n <title>Case Builder - StudPy</title>\n \n \n \n \n \n \n <link rel=\"stylesheet\" href=\"../../../assets/stylesheets/modern/main.fba56155.min.css\">\n \n \n\n\n \n \n \n \n \n \n \n \n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,500,500i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback\">\n <style>:root{--md-text-font:\"Inter\";--md-code-font:\"JetBrains Mono\"}</style>\n \n \n \n <link rel=\"stylesheet\" href=\"../../../stylesheets/extra.css\">\n \n <script>__md_scope=new URL(\"../../..\",location),__md_scope.pathname.endsWith(\"/\")||(__md_scope=new URL(__md_scope.pathname+\"/\",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+\".\"+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+\".\"+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute(\"data-platform\",navigator.platform)</script>\n \n \n\n \n \n </head>\n \n \n <body dir=\"ltr\">\n \n \n <input class=\"md-toggle\" data-md-toggle=\"drawer\" type=\"checkbox\" id=\"__drawer\" autocomplete=\"off\">\n <input class=\"md-toggle\" data-md-toggle=\"search\" type=\"checkbox\" id=\"__search\" autocomplete=\"off\">\n <label class=\"md-overlay\" for=\"__drawer\" aria-label=\"Navigation\"></label>\n <div data-md-component=\"skip\">\n \n \n <a href=\"#case-builder\" class=\"md-skip\">\n Skip to content\n </a>\n \n </div>\n <div data-md-component=\"announce\">\n \n </div>\n \n <div data-md-color-scheme=\"default\" data-md-component=\"outdated\" hidden>\n \n </div>\n \n \n \n\n<header class=\"md-header\" data-md-component=\"header\">\n <nav class=\"md-header__inner md-grid\" aria-label=\"Header\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-header__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n <label class=\"md-header__button md-icon\" for=\"__drawer\" aria-label=\"Navigation\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-menu\" viewBox=\"0 0 24 24\"><path d=\"M4 5h16M4 12h16M4 19h16\"/></svg>\n </label>\n <div class=\"md-header__title\" data-md-component=\"header-title\">\n <div class=\"md-header__ellipsis\">\n <div class=\"md-header__topic\">\n <span class=\"md-ellipsis\">\n StudPy\n <span style=\"background: var(--md-accent-fg-color--transparent); color: var(--md-accent-fg-color); padding: 2px 4px; margin:4px; border-radius: 4px; font-size: 0.6em;\">\n v0.4.0\n </span>\n </span>\n </div>\n <div class=\"md-header__topic\" data-md-component=\"header-topic\">\n <span class=\"md-ellipsis\">\n \n Case Builder\n \n </span>\n </div>\n </div>\n </div>\n \n \n <script>var palette=__md_get(\"__palette\");if(palette&&palette.color){if(\"(prefers-color-scheme)\"===palette.color.media){var media=matchMedia(\"(prefers-color-scheme: light)\"),input=document.querySelector(media.matches?\"[data-md-color-media='(prefers-color-scheme: light)']\":\"[data-md-color-media='(prefers-color-scheme: dark)']\");palette.color.media=input.getAttribute(\"data-md-color-media\"),palette.color.scheme=input.getAttribute(\"data-md-color-scheme\"),palette.color.primary=input.getAttribute(\"data-md-color-primary\"),palette.color.accent=input.getAttribute(\"data-md-color-accent\")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute(\"data-md-color-\"+key,value)}</script>\n \n \n \n \n \n <label class=\"md-header__button md-icon\" for=\"__search\" aria-label=\"Search\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-search\" viewBox=\"0 0 24 24\"><path d=\"m21 21-4.34-4.34\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/></svg>\n </label>\n <div class=\"md-search\" data-md-component=\"search\" role=\"dialog\" aria-label=\"Search\">\n <button type=\"button\" class=\"md-search__button\">\n Search\n </button>\n</div>\n \n \n <div class=\"md-header__source\">\n \n </div>\n </nav>\n \n</header>\n \n <div class=\"md-container\" data-md-component=\"container\">\n \n \n \n \n \n<nav class=\"md-tabs\" aria-label=\"Tabs\" data-md-component=\"tabs\">\n <div class=\"md-grid\">\n <ul class=\"md-tabs__list\">\n \n \n \n \n \n \n <li class=\"md-tabs__item\">\n <a href=\"../../..\" class=\"md-tabs__link\">\n \n \n StudPy\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-tabs__item md-tabs__item--active\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-tabs__link\">\n \n \n Documentation\n\n </a>\n </li>\n \n \n\n \n \n\n \n </ul>\n </div>\n</nav>\n \n \n \n <main class=\"md-main\" data-md-component=\"main\">\n <div class=\"md-main__inner md-grid\">\n \n \n \n <div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" >\n <div class=\"md-sidebar__scrollwrap\">\n <div class=\"md-sidebar__inner\">\n \n\n\n \n\n\n<nav class=\"md-nav md-nav--primary md-nav--lifted\" aria-label=\"Navigation\" data-md-level=\"0\">\n <label class=\"md-nav__title\" for=\"__drawer\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-nav__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n StudPy\n </label>\n \n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../..\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n StudPy\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2\" id=\"__nav_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Documentation\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"1\" aria-labelledby=\"__nav_2_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Documentation\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_1\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_1\" id=\"__nav_2_1_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Get Started\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_1_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_1\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Get Started\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-package-open\" viewBox=\"0 0 24 24\"><path d=\"M12 22v-9M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.66 1.66 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z\"/><path d=\"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13\"/><path d=\"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.64 1.64 0 0 0 1.63 0z\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Installation\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/02-minimal-example/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-file-box\" viewBox=\"0 0 24 24\"><path d=\"M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M11.7 14.2 7 17l-4.7-2.8\"/><path d=\"M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01zM7 17v5\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Minimal Example\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/03-license/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-scale\" viewBox=\"0 0 24 24\"><path d=\"M12 3v18M19 8l3 8a5 5 0 0 1-6 0zV7\"/><path d=\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1M5 8l3 8a5 5 0 0 1-6 0zV7M7 21h10\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n License\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2_2\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_2\" id=\"__nav_2_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Key Concepts\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_2_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Key Concepts\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../01-overview/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-info\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4M12 8h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Overview\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active\">\n \n \n \n \n \n \n \n <label class=\"md-nav__link md-nav__link--active\" for=\"__toc\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-clipboard-list\" viewBox=\"0 0 24 24\"><rect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"/><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M12 11h4M12 16h4M8 11h.01M8 16h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Case Builder\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <a href=\"././\" class=\"md-nav__link md-nav__link--active\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-clipboard-list\" viewBox=\"0 0 24 24\"><rect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"/><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M12 11h4M12 16h4M8 11h.01M8 16h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Case Builder\n\n \n </span>\n \n \n\n </a>\n \n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#overview\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Overview\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#parameters\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Parameters\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Parameters\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#commons\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Commons\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#available-configuration-types\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Available Configuration Types\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Available Configuration Types\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#linear-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Linear Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#list-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n List Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#random-integer-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Random Integer Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#gaussian-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Gaussian Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#latin-hypercube-sampling-lhs\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Latin Hypercube Sampling (LHS)\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#case-builder_1\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Case Builder\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Case Builder\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#building\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Building\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#case-dataset-generation\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Case Dataset Generation\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#considerations\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Considerations\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Considerations\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#cartesian-product-expansion\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Cartesian Product Expansion\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#reproducibility\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Reproducibility\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#best-practices\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Best Practices\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Best Practices\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#use-explicit-parameter-names\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Use explicit parameter names\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#group-correlated-lhs-variables\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Group correlated LHS variables\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#limit-cartesian-explosion\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Limit Cartesian explosion\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n </ul>\n \n</nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../03-batch/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-chevron-right\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m10 8 4 4-4 4\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Batch\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_3\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_3\" id=\"__nav_2_3_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Api\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_3_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_3\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Api\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/BatchExecCmdIter/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n BatchExecCmdIter\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/OneFileInputsBuilder/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n OneFileInputsBuilder\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../api/Study/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Study\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n </ul>\n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" >\n <div class=\"md-sidebar__scrollwrap\">\n \n \n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle\" type=\"checkbox\" id=\"__toc\">\n <div class=\"md-sidebar-button__wrapper\">\n <label class=\"md-sidebar-button\" for=\"__toc\"></label>\n </div>\n \n \n <div class=\"md-sidebar__inner\">\n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#overview\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Overview\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#parameters\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Parameters\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Parameters\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#commons\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Commons\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#available-configuration-types\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Available Configuration Types\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Available Configuration Types\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#linear-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Linear Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#list-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n List Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#random-integer-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Random Integer Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#gaussian-sampling\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Gaussian Sampling\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#latin-hypercube-sampling-lhs\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Latin Hypercube Sampling (LHS)\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#case-builder_1\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Case Builder\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Case Builder\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#building\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Building\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#case-dataset-generation\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Case Dataset Generation\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#considerations\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Considerations\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Considerations\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#cartesian-product-expansion\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Cartesian Product Expansion\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#reproducibility\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Reproducibility\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#best-practices\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Best Practices\n </span>\n </span>\n </a>\n \n <nav class=\"md-nav\" aria-label=\"Best Practices\">\n <ul class=\"md-nav__list\">\n \n <li class=\"md-nav__item\">\n <a href=\"#use-explicit-parameter-names\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Use explicit parameter names\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#group-correlated-lhs-variables\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Group correlated LHS variables\n </span>\n </span>\n </a>\n \n</li>\n \n <li class=\"md-nav__item\">\n <a href=\"#limit-cartesian-explosion\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Limit Cartesian explosion\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n </nav>\n \n</li>\n \n </ul>\n \n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-content\" data-md-component=\"content\">\n \n \n\n\n\n \n\n\n <nav class=\"md-path\" aria-label=\"Navigation\" >\n <ol class=\"md-path__list\">\n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../../..\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n StudPy\n </span>\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Documentation\n </span>\n\n </a>\n </li>\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../01-overview/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Key Concepts\n </span>\n\n </a>\n </li>\n \n \n\n \n </ol>\n </nav>\n\n \n <article class=\"md-content__inner md-typeset\">\n \n \n\n<h1 id=\"case-builder\">Case Builder<a class=\"headerlink\" href=\"#case-builder\" title=\"Permanent link\">¶</a></h1>\n<h2 id=\"overview\">Overview<a class=\"headerlink\" href=\"#overview\" title=\"Permanent link\">¶</a></h2>\n<div class=\"admonition failure\">\n<p class=\"admonition-title\">TODO</p>\n<p>TODO Thomas</p>\n</div>\n<hr />\n<h2 id=\"parameters\">Parameters<a class=\"headerlink\" href=\"#parameters\" title=\"Permanent link\">¶</a></h2>\n<h3 id=\"commons\">Commons<a class=\"headerlink\" href=\"#commons\" title=\"Permanent link\">¶</a></h3>\n<p>Each simulation variable is represented by a <code>Param</code>.</p>\n<p>A parameter associates:</p>\n<ul>\n<li>a target identifier</li>\n<li>an optional display name</li>\n<li>a generation strategy configuration</li>\n</ul>\n<p>Example:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-0-1\"><a id=\"__codelineno-0-1\" name=\"__codelineno-0-1\" href=\"#__codelineno-0-1\"></a><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">studpy.cases</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Param</span>\n</span><span id=\"__span-0-2\"><a id=\"__codelineno-0-2\" name=\"__codelineno-0-2\" href=\"#__codelineno-0-2\"></a><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">studpy.cases.configs</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LinearConfig</span>\n</span><span id=\"__span-0-3\"><a id=\"__codelineno-0-3\" name=\"__codelineno-0-3\" href=\"#__codelineno-0-3\"></a>\n</span><span id=\"__span-0-4\"><a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a><span class=\"n\">temperature</span> <span class=\"o\">=</span> <span class=\"n\">Param</span><span class=\"p\">(</span>\n</span><span id=\"__span-0-5\"><a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a> <span class=\"n\">target</span><span class=\"o\">=</span><span class=\"s2\">"temperature"</span><span class=\"p\">,</span>\n</span><span id=\"__span-0-6\"><a id=\"__codelineno-0-6\" name=\"__codelineno-0-6\" href=\"#__codelineno-0-6\"></a> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">"Temperature"</span><span class=\"p\">,</span>\n</span><span id=\"__span-0-7\"><a id=\"__codelineno-0-7\" name=\"__codelineno-0-7\" href=\"#__codelineno-0-7\"></a> <span class=\"n\">config</span><span class=\"o\">=</span><span class=\"n\">LinearConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-0-8\"><a id=\"__codelineno-0-8\" name=\"__codelineno-0-8\" href=\"#__codelineno-0-8\"></a> <span class=\"n\">low</span><span class=\"o\">=</span><span class=\"mi\">300</span><span class=\"p\">,</span>\n</span><span id=\"__span-0-9\"><a id=\"__codelineno-0-9\" name=\"__codelineno-0-9\" href=\"#__codelineno-0-9\"></a> <span class=\"n\">high</span><span class=\"o\">=</span><span class=\"mi\">1200</span><span class=\"p\">,</span>\n</span><span id=\"__span-0-10\"><a id=\"__codelineno-0-10\" name=\"__codelineno-0-10\" href=\"#__codelineno-0-10\"></a> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span>\n</span><span id=\"__span-0-11\"><a id=\"__codelineno-0-11\" name=\"__codelineno-0-11\" href=\"#__codelineno-0-11\"></a> <span class=\"p\">),</span>\n</span><span id=\"__span-0-12\"><a id=\"__codelineno-0-12\" name=\"__codelineno-0-12\" href=\"#__codelineno-0-12\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h3 id=\"available-configuration-types\">Available Configuration Types<a class=\"headerlink\" href=\"#available-configuration-types\" title=\"Permanent link\">¶</a></h3>\n<h4 id=\"linear-sampling\">Linear Sampling<a class=\"headerlink\" href=\"#linear-sampling\" title=\"Permanent link\">¶</a></h4>\n<p>Generate evenly spaced values between two bounds.</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-1-1\"><a id=\"__codelineno-1-1\" name=\"__codelineno-1-1\" href=\"#__codelineno-1-1\"></a><span class=\"n\">LinearConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-1-2\"><a id=\"__codelineno-1-2\" name=\"__codelineno-1-2\" href=\"#__codelineno-1-2\"></a> <span class=\"n\">low</span><span class=\"o\">=</span><span class=\"mf\">0.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-1-3\"><a id=\"__codelineno-1-3\" name=\"__codelineno-1-3\" href=\"#__codelineno-1-3\"></a> <span class=\"n\">high</span><span class=\"o\">=</span><span class=\"mf\">1.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-1-4\"><a id=\"__codelineno-1-4\" name=\"__codelineno-1-4\" href=\"#__codelineno-1-4\"></a> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">,</span>\n</span><span id=\"__span-1-5\"><a id=\"__codelineno-1-5\" name=\"__codelineno-1-5\" href=\"#__codelineno-1-5\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<p>Equivalent generated values:</p>\n<div class=\"language-text highlight\"><pre><span></span><code><span id=\"__span-2-1\"><a id=\"__codelineno-2-1\" name=\"__codelineno-2-1\" href=\"#__codelineno-2-1\"></a>0.00, 0.25, 0.50, 0.75, 1.00\n</span></code></pre></div>\n<hr />\n<h4 id=\"list-sampling\">List Sampling<a class=\"headerlink\" href=\"#list-sampling\" title=\"Permanent link\">¶</a></h4>\n<p>Use explicit values.</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-3-1\"><a id=\"__codelineno-3-1\" name=\"__codelineno-3-1\" href=\"#__codelineno-3-1\"></a><span class=\"n\">ListConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-3-2\"><a id=\"__codelineno-3-2\" name=\"__codelineno-3-2\" href=\"#__codelineno-3-2\"></a> <span class=\"n\">values</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"mi\">10</span><span class=\"p\">,</span> <span class=\"mi\">20</span><span class=\"p\">,</span> <span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"mi\">100</span><span class=\"p\">],</span>\n</span><span id=\"__span-3-3\"><a id=\"__codelineno-3-3\" name=\"__codelineno-3-3\" href=\"#__codelineno-3-3\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h4 id=\"random-integer-sampling\">Random Integer Sampling<a class=\"headerlink\" href=\"#random-integer-sampling\" title=\"Permanent link\">¶</a></h4>\n<p>Generate random integer values.</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-4-1\"><a id=\"__codelineno-4-1\" name=\"__codelineno-4-1\" href=\"#__codelineno-4-1\"></a><span class=\"n\">RandomIntConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-4-2\"><a id=\"__codelineno-4-2\" name=\"__codelineno-4-2\" href=\"#__codelineno-4-2\"></a> <span class=\"n\">low</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span>\n</span><span id=\"__span-4-3\"><a id=\"__codelineno-4-3\" name=\"__codelineno-4-3\" href=\"#__codelineno-4-3\"></a> <span class=\"n\">high</span><span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span>\n</span><span id=\"__span-4-4\"><a id=\"__codelineno-4-4\" name=\"__codelineno-4-4\" href=\"#__codelineno-4-4\"></a> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">20</span><span class=\"p\">,</span>\n</span><span id=\"__span-4-5\"><a id=\"__codelineno-4-5\" name=\"__codelineno-4-5\" href=\"#__codelineno-4-5\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h4 id=\"gaussian-sampling\">Gaussian Sampling<a class=\"headerlink\" href=\"#gaussian-sampling\" title=\"Permanent link\">¶</a></h4>\n<p>Define normally distributed parameters.</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-5-1\"><a id=\"__codelineno-5-1\" name=\"__codelineno-5-1\" href=\"#__codelineno-5-1\"></a><span class=\"n\">GaussianConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-5-2\"><a id=\"__codelineno-5-2\" name=\"__codelineno-5-2\" href=\"#__codelineno-5-2\"></a> <span class=\"n\">mean</span><span class=\"o\">=</span><span class=\"mf\">0.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-5-3\"><a id=\"__codelineno-5-3\" name=\"__codelineno-5-3\" href=\"#__codelineno-5-3\"></a> <span class=\"n\">std</span><span class=\"o\">=</span><span class=\"mf\">1.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-5-4\"><a id=\"__codelineno-5-4\" name=\"__codelineno-5-4\" href=\"#__codelineno-5-4\"></a> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">,</span>\n</span><span id=\"__span-5-5\"><a id=\"__codelineno-5-5\" name=\"__codelineno-5-5\" href=\"#__codelineno-5-5\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<p>Optional truncation bounds can also be specified.</p>\n<hr />\n<h4 id=\"latin-hypercube-sampling-lhs\">Latin Hypercube Sampling (LHS)<a class=\"headerlink\" href=\"#latin-hypercube-sampling-lhs\" title=\"Permanent link\">¶</a></h4>\n<p>LHS parameters are grouped using a shared <code>lhs_reference</code>.</p>\n<p>All parameters sharing the same reference are sampled together.</p>\n<p>Example:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-6-1\"><a id=\"__codelineno-6-1\" name=\"__codelineno-6-1\" href=\"#__codelineno-6-1\"></a><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">studpy.cases.configs</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LHSConfig</span>\n</span><span id=\"__span-6-2\"><a id=\"__codelineno-6-2\" name=\"__codelineno-6-2\" href=\"#__codelineno-6-2\"></a>\n</span><span id=\"__span-6-3\"><a id=\"__codelineno-6-3\" name=\"__codelineno-6-3\" href=\"#__codelineno-6-3\"></a><span class=\"n\">Param</span><span class=\"p\">(</span>\n</span><span id=\"__span-6-4\"><a id=\"__codelineno-6-4\" name=\"__codelineno-6-4\" href=\"#__codelineno-6-4\"></a> <span class=\"n\">target</span><span class=\"o\">=</span><span class=\"s2\">"pressure"</span><span class=\"p\">,</span>\n</span><span id=\"__span-6-5\"><a id=\"__codelineno-6-5\" name=\"__codelineno-6-5\" href=\"#__codelineno-6-5\"></a> <span class=\"n\">config</span><span class=\"o\">=</span><span class=\"n\">LHSConfig</span><span class=\"p\">(</span>\n</span><span id=\"__span-6-6\"><a id=\"__codelineno-6-6\" name=\"__codelineno-6-6\" href=\"#__codelineno-6-6\"></a> <span class=\"n\">lhs_reference</span><span class=\"o\">=</span><span class=\"s2\">"main_lhs"</span><span class=\"p\">,</span>\n</span><span id=\"__span-6-7\"><a id=\"__codelineno-6-7\" name=\"__codelineno-6-7\" href=\"#__codelineno-6-7\"></a> <span class=\"n\">low</span><span class=\"o\">=</span><span class=\"mf\">1.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-6-8\"><a id=\"__codelineno-6-8\" name=\"__codelineno-6-8\" href=\"#__codelineno-6-8\"></a> <span class=\"n\">high</span><span class=\"o\">=</span><span class=\"mf\">10.0</span><span class=\"p\">,</span>\n</span><span id=\"__span-6-9\"><a id=\"__codelineno-6-9\" name=\"__codelineno-6-9\" href=\"#__codelineno-6-9\"></a> <span class=\"p\">),</span>\n</span><span id=\"__span-6-10\"><a id=\"__codelineno-6-10\" name=\"__codelineno-6-10\" href=\"#__codelineno-6-10\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h2 id=\"case-builder_1\">Case Builder<a class=\"headerlink\" href=\"#case-builder_1\" title=\"Permanent link\">¶</a></h2>\n<h3 id=\"building\">Building<a class=\"headerlink\" href=\"#building\" title=\"Permanent link\">¶</a></h3>\n<p><code>CaseBuilder</code> combines all parameters and sampling definitions.</p>\n<p>Example:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-7-1\"><a id=\"__codelineno-7-1\" name=\"__codelineno-7-1\" href=\"#__codelineno-7-1\"></a><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">studpy.cases</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CaseBuilder</span>\n</span><span id=\"__span-7-2\"><a id=\"__codelineno-7-2\" name=\"__codelineno-7-2\" href=\"#__codelineno-7-2\"></a><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">studpy.cases.latin_hypercube_sampling</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LatinHypercubeSampling</span>\n</span><span id=\"__span-7-3\"><a id=\"__codelineno-7-3\" name=\"__codelineno-7-3\" href=\"#__codelineno-7-3\"></a>\n</span><span id=\"__span-7-4\"><a id=\"__codelineno-7-4\" name=\"__codelineno-7-4\" href=\"#__codelineno-7-4\"></a><span class=\"n\">specs</span> <span class=\"o\">=</span> <span class=\"n\">CaseBuilder</span><span class=\"p\">(</span>\n</span><span id=\"__span-7-5\"><a id=\"__codelineno-7-5\" name=\"__codelineno-7-5\" href=\"#__codelineno-7-5\"></a> <span class=\"n\">parameters</span><span class=\"o\">=</span><span class=\"n\">parameters</span><span class=\"p\">,</span>\n</span><span id=\"__span-7-6\"><a id=\"__codelineno-7-6\" name=\"__codelineno-7-6\" href=\"#__codelineno-7-6\"></a> <span class=\"n\">lhs</span><span class=\"o\">=</span><span class=\"p\">{</span>\n</span><span id=\"__span-7-7\"><a id=\"__codelineno-7-7\" name=\"__codelineno-7-7\" href=\"#__codelineno-7-7\"></a> <span class=\"s2\">"main_lhs"</span><span class=\"p\">:</span> <span class=\"n\">LatinHypercubeSampling</span><span class=\"p\">(</span>\n</span><span id=\"__span-7-8\"><a id=\"__codelineno-7-8\" name=\"__codelineno-7-8\" href=\"#__codelineno-7-8\"></a> <span class=\"n\">n_samples</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">,</span>\n</span><span id=\"__span-7-9\"><a id=\"__codelineno-7-9\" name=\"__codelineno-7-9\" href=\"#__codelineno-7-9\"></a> <span class=\"n\">random_seed</span><span class=\"o\">=</span><span class=\"mi\">42</span><span class=\"p\">,</span>\n</span><span id=\"__span-7-10\"><a id=\"__codelineno-7-10\" name=\"__codelineno-7-10\" href=\"#__codelineno-7-10\"></a> <span class=\"p\">)</span>\n</span><span id=\"__span-7-11\"><a id=\"__codelineno-7-11\" name=\"__codelineno-7-11\" href=\"#__codelineno-7-11\"></a> <span class=\"p\">},</span>\n</span><span id=\"__span-7-12\"><a id=\"__codelineno-7-12\" name=\"__codelineno-7-12\" href=\"#__codelineno-7-12\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h3 id=\"case-dataset-generation\">Case Dataset Generation<a class=\"headerlink\" href=\"#case-dataset-generation\" title=\"Permanent link\">¶</a></h3>\n<p>Simulation cases are generated using:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-8-1\"><a id=\"__codelineno-8-1\" name=\"__codelineno-8-1\" href=\"#__codelineno-8-1\"></a><span class=\"n\">cases</span> <span class=\"o\">=</span> <span class=\"n\">specs</span><span class=\"o\">.</span><span class=\"n\">build_cases</span><span class=\"p\">()</span>\n</span></code></pre></div>\n<p>Saving</p>\n<div class=\"admonition failure\">\n<p class=\"admonition-title\">TODO</p>\n<p>TODO Thomas</p>\n</div>\n<p>The result is a <code>pandas.DataFrame</code> where each row represents one simulation case.</p>\n<hr />\n<h2 id=\"considerations\">Considerations<a class=\"headerlink\" href=\"#considerations\" title=\"Permanent link\">¶</a></h2>\n<h3 id=\"cartesian-product-expansion\">Cartesian Product Expansion<a class=\"headerlink\" href=\"#cartesian-product-expansion\" title=\"Permanent link\">¶</a></h3>\n<p>Non-LHS parameters are combined using Cartesian products.</p>\n<p>For example:</p>\n<div class=\"language-text highlight\"><pre><span></span><code><span id=\"__span-9-1\"><a id=\"__codelineno-9-1\" name=\"__codelineno-9-1\" href=\"#__codelineno-9-1\"></a>Temperature: 3 values\n</span><span id=\"__span-9-2\"><a id=\"__codelineno-9-2\" name=\"__codelineno-9-2\" href=\"#__codelineno-9-2\"></a>Pressure: 4 values\n</span></code></pre></div>\n<p>produces:</p>\n<div class=\"language-text highlight\"><pre><span></span><code><span id=\"__span-10-1\"><a id=\"__codelineno-10-1\" name=\"__codelineno-10-1\" href=\"#__codelineno-10-1\"></a>3 × 4 = 12 cases\n</span></code></pre></div>\n<hr />\n<h3 id=\"reproducibility\">Reproducibility<a class=\"headerlink\" href=\"#reproducibility\" title=\"Permanent link\">¶</a></h3>\n<p>Sampling reproducibility can be controlled using random seeds.</p>\n<p>Example:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-11-1\"><a id=\"__codelineno-11-1\" name=\"__codelineno-11-1\" href=\"#__codelineno-11-1\"></a><span class=\"n\">LatinHypercubeSampling</span><span class=\"p\">(</span>\n</span><span id=\"__span-11-2\"><a id=\"__codelineno-11-2\" name=\"__codelineno-11-2\" href=\"#__codelineno-11-2\"></a> <span class=\"n\">n_samples</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">,</span>\n</span><span id=\"__span-11-3\"><a id=\"__codelineno-11-3\" name=\"__codelineno-11-3\" href=\"#__codelineno-11-3\"></a> <span class=\"n\">random_seed</span><span class=\"o\">=</span><span class=\"mi\">42</span><span class=\"p\">,</span>\n</span><span id=\"__span-11-4\"><a id=\"__codelineno-11-4\" name=\"__codelineno-11-4\" href=\"#__codelineno-11-4\"></a><span class=\"p\">)</span>\n</span></code></pre></div>\n<hr />\n<h2 id=\"best-practices\">Best Practices<a class=\"headerlink\" href=\"#best-practices\" title=\"Permanent link\">¶</a></h2>\n<h3 id=\"use-explicit-parameter-names\">Use explicit parameter names<a class=\"headerlink\" href=\"#use-explicit-parameter-names\" title=\"Permanent link\">¶</a></h3>\n<p>Prefer:</p>\n<div class=\"language-python highlight\"><pre><span></span><code><span id=\"__span-12-1\"><a id=\"__codelineno-12-1\" name=\"__codelineno-12-1\" href=\"#__codelineno-12-1\"></a><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">"Temperature"</span>\n</span></code></pre></div>\n<p>instead of relying on automatic column naming.</p>\n<hr />\n<h3 id=\"group-correlated-lhs-variables\">Group correlated LHS variables<a class=\"headerlink\" href=\"#group-correlated-lhs-variables\" title=\"Permanent link\">¶</a></h3>\n<p>Parameters sampled together should share the same <code>lhs_reference</code>.</p>\n<hr />\n<h3 id=\"limit-cartesian-explosion\">Limit Cartesian explosion<a class=\"headerlink\" href=\"#limit-cartesian-explosion\" title=\"Permanent link\">¶</a></h3>\n<p>Cartesian combinations can grow very quickly.</p>\n<p>Use:\n- LHS\n- random sampling\n- reduced parameter sets</p>\n<p>when exploring large parameter spaces.</p>\n<hr />\n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n \n </article>\n </div>\n \n \n<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith(\"__tabbed_\"))</script>\n </div>\n \n <button type=\"button\" class=\"md-top md-icon\" data-md-component=\"top\" hidden>\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-arrow-up\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m16 12-4-4-4 4M12 16V8\"/></svg>\n Back to top\n</button>\n \n </main>\n \n <footer class=\"md-footer\">\n \n <div class=\"md-footer-meta md-typeset\">\n <div class=\"md-footer-meta__inner md-grid\">\n <div class=\"md-copyright\">\n \n <div class=\"md-copyright__highlight\">\n Copyright © 2026 StudPy - A PinkSalmon Library\n </div>\n \n \n</div>\n \n </div>\n </div>\n</footer>\n \n </div>\n <div class=\"md-dialog\" data-md-component=\"dialog\">\n <div class=\"md-dialog__inner md-typeset\"></div>\n </div>\n \n \n \n \n \n <script id=\"__config\" type=\"application/json\">{\"annotate\":null,\"base\":\"../../..\",\"features\":[\"navigation.tabs\",\"navigation.path\",\"navigation.expand\",\"navigation.top\",\"navigation.sections\",\"navigation.indexes\",\"content.code.copy\"],\"search\":\"../../../assets/javascripts/workers/search.e2d2d235.min.js\",\"tags\":null,\"translations\":{\"clipboard.copied\":\"Copied to clipboard\",\"clipboard.copy\":\"Copy to clipboard\",\"search.result.more.one\":\"1 more on this page\",\"search.result.more.other\":\"# more on this page\",\"search.result.none\":\"No matching documents\",\"search.result.one\":\"1 matching document\",\"search.result.other\":\"# matching documents\",\"search.result.placeholder\":\"Type to start searching\",\"search.result.term.missing\":\"Missing\",\"select.version\":\"Select version\"},\"version\":\"v0.4.0\"}</script>\n \n \n <script src=\"../../../assets/javascripts/bundle.6e5f0216.min.js\"></script>\n \n \n </body>\n</html>",
|
|
3
|
+
"hash": 580890609775124864
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": "\n<!doctype html>\n<html lang=\"en\" class=\"no-js\">\n <head>\n \n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n \n \n <meta name=\"author\" content=\"PinkSalmon\">\n \n \n \n <link rel=\"prev\" href=\"../OneFileInputsBuilder/\">\n \n \n \n \n \n \n <link rel=\"icon\" href=\"../../../assets/images/favicon.png\">\n <meta name=\"generator\" content=\"zensical-0.0.43\">\n \n \n \n <title>Study - StudPy</title>\n \n \n \n \n \n \n <link rel=\"stylesheet\" href=\"../../../assets/stylesheets/modern/main.fba56155.min.css\">\n \n \n\n\n \n \n \n \n \n \n \n \n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,500,500i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback\">\n <style>:root{--md-text-font:\"Inter\";--md-code-font:\"JetBrains Mono\"}</style>\n \n \n \n <link rel=\"stylesheet\" href=\"../../../stylesheets/extra.css\">\n \n <script>__md_scope=new URL(\"../../..\",location),__md_scope.pathname.endsWith(\"/\")||(__md_scope=new URL(__md_scope.pathname+\"/\",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+\".\"+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+\".\"+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute(\"data-platform\",navigator.platform)</script>\n \n \n\n \n \n </head>\n \n \n <body dir=\"ltr\">\n \n \n <input class=\"md-toggle\" data-md-toggle=\"drawer\" type=\"checkbox\" id=\"__drawer\" autocomplete=\"off\">\n <input class=\"md-toggle\" data-md-toggle=\"search\" type=\"checkbox\" id=\"__search\" autocomplete=\"off\">\n <label class=\"md-overlay\" for=\"__drawer\" aria-label=\"Navigation\"></label>\n <div data-md-component=\"skip\">\n \n \n <a href=\"#study\" class=\"md-skip\">\n Skip to content\n </a>\n \n </div>\n <div data-md-component=\"announce\">\n \n </div>\n \n <div data-md-color-scheme=\"default\" data-md-component=\"outdated\" hidden>\n \n </div>\n \n \n \n\n<header class=\"md-header\" data-md-component=\"header\">\n <nav class=\"md-header__inner md-grid\" aria-label=\"Header\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-header__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n <label class=\"md-header__button md-icon\" for=\"__drawer\" aria-label=\"Navigation\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-menu\" viewBox=\"0 0 24 24\"><path d=\"M4 5h16M4 12h16M4 19h16\"/></svg>\n </label>\n <div class=\"md-header__title\" data-md-component=\"header-title\">\n <div class=\"md-header__ellipsis\">\n <div class=\"md-header__topic\">\n <span class=\"md-ellipsis\">\n StudPy\n <span style=\"background: var(--md-accent-fg-color--transparent); color: var(--md-accent-fg-color); padding: 2px 4px; margin:4px; border-radius: 4px; font-size: 0.6em;\">\n v0.4.0\n </span>\n </span>\n </div>\n <div class=\"md-header__topic\" data-md-component=\"header-topic\">\n <span class=\"md-ellipsis\">\n \n Study\n \n </span>\n </div>\n </div>\n </div>\n \n \n <script>var palette=__md_get(\"__palette\");if(palette&&palette.color){if(\"(prefers-color-scheme)\"===palette.color.media){var media=matchMedia(\"(prefers-color-scheme: light)\"),input=document.querySelector(media.matches?\"[data-md-color-media='(prefers-color-scheme: light)']\":\"[data-md-color-media='(prefers-color-scheme: dark)']\");palette.color.media=input.getAttribute(\"data-md-color-media\"),palette.color.scheme=input.getAttribute(\"data-md-color-scheme\"),palette.color.primary=input.getAttribute(\"data-md-color-primary\"),palette.color.accent=input.getAttribute(\"data-md-color-accent\")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute(\"data-md-color-\"+key,value)}</script>\n \n \n \n \n \n <label class=\"md-header__button md-icon\" for=\"__search\" aria-label=\"Search\">\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-search\" viewBox=\"0 0 24 24\"><path d=\"m21 21-4.34-4.34\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/></svg>\n </label>\n <div class=\"md-search\" data-md-component=\"search\" role=\"dialog\" aria-label=\"Search\">\n <button type=\"button\" class=\"md-search__button\">\n Search\n </button>\n</div>\n \n \n <div class=\"md-header__source\">\n \n </div>\n </nav>\n \n</header>\n \n <div class=\"md-container\" data-md-component=\"container\">\n \n \n \n \n \n<nav class=\"md-tabs\" aria-label=\"Tabs\" data-md-component=\"tabs\">\n <div class=\"md-grid\">\n <ul class=\"md-tabs__list\">\n \n \n \n \n \n \n <li class=\"md-tabs__item\">\n <a href=\"../../..\" class=\"md-tabs__link\">\n \n \n StudPy\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-tabs__item md-tabs__item--active\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-tabs__link\">\n \n \n Documentation\n\n </a>\n </li>\n \n \n\n \n \n\n \n </ul>\n </div>\n</nav>\n \n \n \n <main class=\"md-main\" data-md-component=\"main\">\n <div class=\"md-main__inner md-grid\">\n \n \n \n <div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" >\n <div class=\"md-sidebar__scrollwrap\">\n <div class=\"md-sidebar__inner\">\n \n\n\n \n\n\n<nav class=\"md-nav md-nav--primary md-nav--lifted\" aria-label=\"Navigation\" data-md-level=\"0\">\n <label class=\"md-nav__title\" for=\"__drawer\">\n <a href=\"../../..\" title=\"StudPy\" class=\"md-nav__button md-logo\" aria-label=\"StudPy\" data-md-component=\"logo\">\n \n <img src=\"../../../assets/logo.svg\" alt=\"StudPy\">\n\n </a>\n StudPy\n </label>\n \n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../..\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n StudPy\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2\" id=\"__nav_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Documentation\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"1\" aria-labelledby=\"__nav_2_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Documentation\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_1\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_1\" id=\"__nav_2_1_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Get Started\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_1_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_1\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Get Started\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-package-open\" viewBox=\"0 0 24 24\"><path d=\"M12 22v-9M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.66 1.66 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z\"/><path d=\"M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13\"/><path d=\"M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.64 1.64 0 0 0 1.63 0z\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Installation\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/02-minimal-example/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-file-box\" viewBox=\"0 0 24 24\"><path d=\"M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M11.7 14.2 7 17l-4.7-2.8\"/><path d=\"M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01zM7 17v5\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Minimal Example\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../_Get-Started/03-license/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-scale\" viewBox=\"0 0 24 24\"><path d=\"M12 3v18M19 8l3 8a5 5 0 0 1-6 0zV7\"/><path d=\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1M5 8l3 8a5 5 0 0 1-6 0zV7M7 21h10\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n License\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--section md-nav__item--nested\">\n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle md-toggle--indeterminate\" type=\"checkbox\" id=\"__nav_2_2\" >\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_2\" id=\"__nav_2_2_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Key Concepts\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_2_label\" aria-expanded=\"false\">\n <label class=\"md-nav__title\" for=\"__nav_2_2\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Key Concepts\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/01-overview/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-info\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4M12 8h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Overview\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/02-case_builder/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-clipboard-list\" viewBox=\"0 0 24 24\"><rect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"/><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2M12 11h4M12 16h4M8 11h.01M8 16h.01\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Case Builder\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../../__Key-Concepts/03-batch/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-chevron-right\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m10 8 4 4-4 4\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Batch\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested\">\n \n \n \n <input class=\"md-nav__toggle md-toggle \" type=\"checkbox\" id=\"__nav_2_3\" checked>\n \n \n <label class=\"md-nav__link\" for=\"__nav_2_3\" id=\"__nav_2_3_label\" tabindex=\"\">\n \n \n \n <span class=\"md-ellipsis\">\n \n \n Api\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <nav class=\"md-nav\" data-md-level=\"2\" aria-labelledby=\"__nav_2_3_label\" aria-expanded=\"true\">\n <label class=\"md-nav__title\" for=\"__nav_2_3\">\n <span class=\"md-nav__icon md-icon\"></span>\n \n \n Api\n\n </label>\n <ul class=\"md-nav__list\" data-md-scrollfix>\n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../BatchExecCmdIter/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n BatchExecCmdIter\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n <li class=\"md-nav__item\">\n <a href=\"../OneFileInputsBuilder/\" class=\"md-nav__link\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n OneFileInputsBuilder\n\n \n </span>\n \n \n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n <li class=\"md-nav__item md-nav__item--active\">\n \n \n \n \n \n \n \n <label class=\"md-nav__link md-nav__link--active\" for=\"__toc\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Study\n\n \n </span>\n \n \n\n <span class=\"md-nav__icon md-icon\"></span>\n </label>\n \n <a href=\"././\" class=\"md-nav__link md-nav__link--active\">\n \n \n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-braces\" viewBox=\"0 0 24 24\"><path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"/></svg>\n \n <span class=\"md-ellipsis\">\n \n \n Study\n\n \n </span>\n \n \n\n </a>\n \n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#studpy.study.Study\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Study\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n \n</nav>\n \n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n \n </ul>\n </nav>\n \n </li>\n \n\n \n </ul>\n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" >\n <div class=\"md-sidebar__scrollwrap\">\n \n \n \n \n \n \n \n <input class=\"md-nav__toggle md-toggle\" type=\"checkbox\" id=\"__toc\">\n <div class=\"md-sidebar-button__wrapper\">\n <label class=\"md-sidebar-button\" for=\"__toc\"></label>\n </div>\n \n \n <div class=\"md-sidebar__inner\">\n \n\n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"On this page\">\n \n \n \n \n \n \n <label class=\"md-nav__title\" for=\"__toc\">\n <span class=\"md-nav__icon md-icon\"></span>\n On this page\n </label>\n <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n \n <li class=\"md-nav__item\">\n <a href=\"#studpy.study.Study\" class=\"md-nav__link\">\n <span class=\"md-ellipsis\">\n <span class=\"md-typeset\">\n Study\n </span>\n </span>\n </a>\n \n</li>\n \n </ul>\n \n</nav>\n </div>\n </div>\n </div>\n \n \n \n <div class=\"md-content\" data-md-component=\"content\">\n \n \n\n\n\n \n\n\n <nav class=\"md-path\" aria-label=\"Navigation\" >\n <ol class=\"md-path__list\">\n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../../..\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n StudPy\n </span>\n\n </a>\n </li>\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../../_Get-Started/01-installation/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Documentation\n </span>\n\n </a>\n </li>\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <li class=\"md-path__item\">\n <a href=\"../BatchExecCmdIter/\" class=\"md-path__link\">\n \n \n <span class=\"md-ellipsis\">\n Api\n </span>\n\n </a>\n </li>\n \n \n\n \n </ol>\n </nav>\n\n \n <article class=\"md-content__inner md-typeset\">\n \n \n\n<h1 id=\"study\">Study<a class=\"headerlink\" href=\"#study\" title=\"Permanent link\">¶</a></h1>\n\n\n<div class=\"doc doc-object doc-class\">\n\n\n\n<a id=\"studpy.study.Study\"></a>\n <div class=\"doc doc-contents first\">\n\n\n\n <p>Orchestrates a full batch simulation workflow.</p>\n<p>A Study combines:\n- parameter space definition (CaseBuilder)\n- case generation (Cartesian or LHS-expanded)\n- target execution (OneFileInputsBuilder)</p>\n\n\n<details class=\"workflow\" open>\n <summary>Workflow</summary>\n <ol>\n<li>build cases from parameter specs</li>\n<li>iterate over cases</li>\n<li>generate inputs for each case</li>\n</ol>\n</details>\n\n\n\n\n\n\n\n\n\n\n<div class=\"doc doc-children\">\n\n\n\n\n\n\n\n\n\n\n\n\n </div>\n\n </div>\n\n</div>\n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n \n </article>\n </div>\n \n \n<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith(\"__tabbed_\"))</script>\n </div>\n \n <button type=\"button\" class=\"md-top md-icon\" data-md-component=\"top\" hidden>\n \n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-circle-arrow-up\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m16 12-4-4-4 4M12 16V8\"/></svg>\n Back to top\n</button>\n \n </main>\n \n <footer class=\"md-footer\">\n \n <div class=\"md-footer-meta md-typeset\">\n <div class=\"md-footer-meta__inner md-grid\">\n <div class=\"md-copyright\">\n \n <div class=\"md-copyright__highlight\">\n Copyright © 2026 StudPy - A PinkSalmon Library\n </div>\n \n \n</div>\n \n </div>\n </div>\n</footer>\n \n </div>\n <div class=\"md-dialog\" data-md-component=\"dialog\">\n <div class=\"md-dialog__inner md-typeset\"></div>\n </div>\n \n \n \n \n \n <script id=\"__config\" type=\"application/json\">{\"annotate\":null,\"base\":\"../../..\",\"features\":[\"navigation.tabs\",\"navigation.path\",\"navigation.expand\",\"navigation.top\",\"navigation.sections\",\"navigation.indexes\",\"content.code.copy\"],\"search\":\"../../../assets/javascripts/workers/search.e2d2d235.min.js\",\"tags\":null,\"translations\":{\"clipboard.copied\":\"Copied to clipboard\",\"clipboard.copy\":\"Copy to clipboard\",\"search.result.more.one\":\"1 more on this page\",\"search.result.more.other\":\"# more on this page\",\"search.result.none\":\"No matching documents\",\"search.result.one\":\"1 matching document\",\"search.result.other\":\"# matching documents\",\"search.result.placeholder\":\"Type to start searching\",\"search.result.term.missing\":\"Missing\",\"select.version\":\"Select version\"},\"version\":\"v0.4.0\"}</script>\n \n \n <script src=\"../../../assets/javascripts/bundle.6e5f0216.min.js\"></script>\n \n \n </body>\n</html>",
|
|
3
|
+
"hash": 12974285107683717299
|
|
4
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": {
|
|
3
|
+
"meta": {
|
|
4
|
+
"icon": "lucide/braces"
|
|
5
|
+
},
|
|
6
|
+
"content": "<h1 id=\"study\">Study<a class=\"headerlink\" href=\"#study\" title=\"Permanent link\">¶</a></h1>\n\n\n<div class=\"doc doc-object doc-class\">\n\n\n\n<a id=\"studpy.study.Study\"></a>\n <div class=\"doc doc-contents first\">\n\n\n\n <p>Orchestrates a full batch simulation workflow.</p>\n<p>A Study combines:\n- parameter space definition (CaseBuilder)\n- case generation (Cartesian or LHS-expanded)\n- target execution (OneFileInputsBuilder)</p>\n\n\n<details class=\"workflow\" open>\n <summary>Workflow</summary>\n <ol>\n<li>build cases from parameter specs</li>\n<li>iterate over cases</li>\n<li>generate inputs for each case</li>\n</ol>\n</details>\n\n\n\n\n\n\n\n\n\n\n<div class=\"doc doc-children\">\n\n\n\n\n\n\n\n\n\n\n\n\n </div>\n\n </div>\n\n</div>",
|
|
7
|
+
"search": [
|
|
8
|
+
{
|
|
9
|
+
"location": null,
|
|
10
|
+
"level": 1,
|
|
11
|
+
"title": "Study",
|
|
12
|
+
"text": "<p>Orchestrates a full batch simulation workflow.</p> <p>A Study combines: - parameter space definition (CaseBuilder) - case generation (Cartesian or LHS-expanded) - target execution (OneFileInputsBuilder)</p> Workflow <ol> <li>build cases from parameter specs</li> <li>iterate over cases</li> <li>generate inputs for each case</li> </ol>",
|
|
13
|
+
"path": [],
|
|
14
|
+
"tags": []
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"title": "Study",
|
|
18
|
+
"toc": [
|
|
19
|
+
{
|
|
20
|
+
"title": "Study",
|
|
21
|
+
"content": "Study",
|
|
22
|
+
"id": "study",
|
|
23
|
+
"url": "#study",
|
|
24
|
+
"children": [
|
|
25
|
+
{
|
|
26
|
+
"title": "Study",
|
|
27
|
+
"content": "Study",
|
|
28
|
+
"id": "studpy.study.Study",
|
|
29
|
+
"url": "#studpy.study.Study",
|
|
30
|
+
"children": [],
|
|
31
|
+
"level": 2
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"level": 1
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"hash": 14215836467518603197
|
|
39
|
+
}
|