diff --git a/.github/workflows/sphinx-build.yml b/.github/workflows/sphinx-build.yml
index 6ab63787..4fb3da76 100644
--- a/.github/workflows/sphinx-build.yml
+++ b/.github/workflows/sphinx-build.yml
@@ -1,13 +1,13 @@
-name: Update Documentation
+name: Build Documentation
on:
push:
- branches:
- - main
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
jobs:
build:
-
runs-on: ubuntu-latest
steps:
@@ -19,36 +19,52 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
- python-version: "3.10"
+ python-version: "3.12"
- name: Install pipenv
run: |
python -m pip install --upgrade pipenv==2024.4.1 wheel
+ - id: cache-pipenv
+ uses: actions/cache@v4
+ with:
+ path: ~/.local/share/virtualenvs
+ key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}
+
- name: Install dependencies
+ if: steps.cache-pipenv.outputs.cache-hit != 'true'
run: |
pipenv install --deploy --dev
- - name: Make
+ - name: Manually install setuptools # NB: This step is required to correctly link the pkg_resources module
run: |
- pipenv run make html
+ pipenv run python -m pip install -U setuptools
- # 2. Add and commit HTML files to gh-pages branch
- - name: Commit documentation changes
+ - name: Build HTML pages
run: |
- git clone https://github.com/${{ github.repository_owner }}/gui-docs.git --branch gh-pages --single-branch gh-pages
- cd gh-pages
- rm -rf *
- cp -r ../docs/html/* .
- git config --local user.email "action@github.com"
- git config --local user.name "GitHub Action"
- git add .
- git commit -m "Update documentation" -a || true
-
- # 3. Push changes to gh-pages branch (updates documentation page)
- - name: Push changes
- uses: ad-m/github-push-action@master
+ pipenv run make html SPHINXOPTS="-W --keep-going"
+
+ - name: Check all external links
+ id: make_linkcheck
+ run: |
+ pipenv run make linkcheck SPHINXOPTS="-W --keep-going"
+
+ - name: Upload GitHub Pages Artifact
+ uses: actions/upload-pages-artifact@v3
with:
- branch: gh-pages
- directory: gh-pages
- github_token: ${{ secrets.GITHUB_TOKEN }}
+ path: docs/html/
+
+ deploy:
+ name: Deploy docs
+ runs-on: ubuntu-22.04
+ needs: build
+ if: github.event_name == 'push' && always() && !failure() && !cancelled()
+
+ permissions:
+ # Both required by actions/deploy-pages
+ pages: write
+ id-token: write
+
+ steps:
+ - name: Deploy to GitHub Pages
+ uses: actions/deploy-pages@v4
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4deaa7a6..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-language: python
-
-python:
- - 3.8
-
-dist: xenial
-sudo: true
-
-stages:
- - test-links
- - build
- - name: deploy
- if: branch = master # Deploy only on master commits
-
-install:
- - pip install pipenv
- - pipenv install
-
-jobs:
- include:
- - stage: test-links
- script: pipenv run make linkcheck
- - stage: build
- script: pipenv run make html
- - stage: deploy
- script: pipenv run make html
- deploy:
- provider: pages
- skip-cleanup: true
- github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
- keep-history: true
- local-dir: docs/html
- on:
- branch: master
diff --git a/Pipfile.lock b/Pipfile.lock
index 446089b6..f0fee4bf 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -23,11 +23,11 @@
},
"alabaster": {
"hashes": [
- "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3",
- "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"
+ "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e",
+ "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"
],
- "markers": "python_version >= '3.6'",
- "version": "==0.7.13"
+ "markers": "python_version >= '3.10'",
+ "version": "==1.0.0"
},
"arrow": {
"hashes": [
@@ -39,11 +39,11 @@
},
"babel": {
"hashes": [
- "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610",
- "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"
+ "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d",
+ "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"
],
- "markers": "python_version >= '3.7'",
- "version": "==2.12.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.17.0"
},
"beautifulsoup4": {
"hashes": [
@@ -55,108 +55,133 @@
},
"certifi": {
"hashes": [
- "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7",
- "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"
+ "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6",
+ "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"
],
"markers": "python_version >= '3.6'",
- "version": "==2023.5.7"
+ "version": "==2025.4.26"
},
"charset-normalizer": {
"hashes": [
- "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6",
- "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1",
- "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e",
- "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373",
- "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62",
- "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230",
- "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be",
- "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c",
- "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0",
- "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448",
- "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f",
- "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649",
- "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d",
- "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0",
- "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706",
- "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a",
- "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59",
- "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23",
- "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5",
- "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb",
- "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e",
- "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e",
- "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c",
- "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28",
- "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d",
- "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41",
- "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974",
- "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce",
- "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f",
- "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1",
- "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d",
- "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8",
- "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017",
- "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31",
- "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7",
- "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8",
- "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e",
- "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14",
- "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd",
- "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d",
- "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795",
- "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b",
- "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b",
- "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b",
- "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203",
- "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f",
- "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19",
- "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1",
- "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a",
- "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac",
- "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9",
- "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0",
- "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137",
- "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f",
- "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6",
- "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5",
- "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909",
- "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f",
- "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0",
- "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324",
- "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755",
- "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb",
- "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854",
- "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c",
- "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60",
- "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84",
- "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0",
- "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b",
- "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1",
- "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531",
- "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1",
- "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11",
- "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326",
- "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df",
- "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"
+ "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4",
+ "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45",
+ "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7",
+ "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0",
+ "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7",
+ "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d",
+ "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d",
+ "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0",
+ "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184",
+ "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db",
+ "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b",
+ "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64",
+ "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b",
+ "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8",
+ "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff",
+ "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344",
+ "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58",
+ "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e",
+ "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471",
+ "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148",
+ "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a",
+ "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836",
+ "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e",
+ "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63",
+ "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c",
+ "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1",
+ "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01",
+ "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366",
+ "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58",
+ "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5",
+ "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c",
+ "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2",
+ "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a",
+ "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597",
+ "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b",
+ "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5",
+ "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb",
+ "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f",
+ "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0",
+ "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941",
+ "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0",
+ "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86",
+ "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7",
+ "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7",
+ "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455",
+ "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6",
+ "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4",
+ "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0",
+ "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3",
+ "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1",
+ "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6",
+ "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981",
+ "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c",
+ "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980",
+ "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645",
+ "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7",
+ "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12",
+ "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa",
+ "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd",
+ "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef",
+ "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f",
+ "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2",
+ "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d",
+ "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5",
+ "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02",
+ "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3",
+ "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd",
+ "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e",
+ "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214",
+ "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd",
+ "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a",
+ "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c",
+ "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681",
+ "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba",
+ "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f",
+ "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a",
+ "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28",
+ "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691",
+ "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82",
+ "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a",
+ "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027",
+ "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7",
+ "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518",
+ "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf",
+ "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b",
+ "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9",
+ "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544",
+ "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da",
+ "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509",
+ "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f",
+ "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a",
+ "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"
],
"markers": "python_version >= '3.7'",
- "version": "==3.1.0"
+ "version": "==3.4.2"
+ },
+ "colorama": {
+ "hashes": [
+ "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44",
+ "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'",
+ "version": "==0.4.6"
},
"docutils": {
"hashes": [
- "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c",
- "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"
+ "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f",
+ "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
- "version": "==0.18.1"
+ "markers": "python_version >= '3.9'",
+ "version": "==0.21.2"
},
"idna": {
"hashes": [
- "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4",
- "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
+ "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
+ "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"
],
- "markers": "python_version >= '3.5'",
- "version": "==3.4"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.10"
},
"imagesize": {
"hashes": [
@@ -176,11 +201,11 @@
},
"jinja2": {
"hashes": [
- "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
- "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
+ "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d",
+ "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"
],
"markers": "python_version >= '3.7'",
- "version": "==3.1.2"
+ "version": "==3.1.6"
},
"jinja2-time": {
"hashes": [
@@ -198,67 +223,78 @@
},
"markupsafe": {
"hashes": [
- "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e",
- "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e",
- "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431",
- "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686",
- "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559",
- "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc",
- "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c",
- "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0",
- "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4",
- "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9",
- "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575",
- "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba",
- "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d",
- "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3",
- "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00",
- "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155",
- "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac",
- "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52",
- "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f",
- "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8",
- "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b",
- "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24",
- "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea",
- "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198",
- "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0",
- "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee",
- "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be",
- "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2",
- "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707",
- "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6",
- "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58",
- "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779",
- "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636",
- "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c",
- "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad",
- "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee",
- "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc",
- "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2",
- "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48",
- "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7",
- "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e",
- "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b",
- "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa",
- "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5",
- "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e",
- "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb",
- "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9",
- "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57",
- "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc",
- "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"
- ],
- "markers": "python_version >= '3.7'",
- "version": "==2.1.3"
+ "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4",
+ "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30",
+ "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0",
+ "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9",
+ "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396",
+ "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13",
+ "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028",
+ "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca",
+ "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557",
+ "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832",
+ "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0",
+ "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b",
+ "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579",
+ "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a",
+ "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c",
+ "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff",
+ "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c",
+ "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22",
+ "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094",
+ "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb",
+ "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e",
+ "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5",
+ "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a",
+ "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d",
+ "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a",
+ "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b",
+ "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8",
+ "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225",
+ "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c",
+ "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144",
+ "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f",
+ "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87",
+ "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d",
+ "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93",
+ "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf",
+ "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158",
+ "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84",
+ "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb",
+ "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48",
+ "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171",
+ "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c",
+ "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6",
+ "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd",
+ "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d",
+ "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1",
+ "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d",
+ "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca",
+ "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a",
+ "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29",
+ "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe",
+ "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798",
+ "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c",
+ "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8",
+ "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f",
+ "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f",
+ "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a",
+ "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178",
+ "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0",
+ "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79",
+ "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430",
+ "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"
+ ],
+ "markers": "python_version >= '3.9'",
+ "version": "==3.0.2"
},
"packaging": {
"hashes": [
- "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61",
- "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"
+ "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484",
+ "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"
],
- "markers": "python_version >= '3.7'",
- "version": "==23.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==25.0"
},
"pydata-sphinx-theme": {
"hashes": [
@@ -270,11 +306,11 @@
},
"pygments": {
"hashes": [
- "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c",
- "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"
+ "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f",
+ "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"
],
- "markers": "python_version >= '3.7'",
- "version": "==2.15.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.19.1"
},
"python-dateutil": {
"hashes": [
@@ -286,11 +322,19 @@
},
"requests": {
"hashes": [
- "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f",
- "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"
+ "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
+ "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
],
- "markers": "python_version >= '3.7'",
- "version": "==2.31.0"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.32.3"
+ },
+ "roman-numerals-py": {
+ "hashes": [
+ "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c",
+ "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d"
+ ],
+ "markers": "python_version >= '3.9'",
+ "version": "==3.1.0"
},
"six": {
"hashes": [
@@ -317,11 +361,12 @@
},
"sphinx": {
"hashes": [
- "sha256:60c5e04756c1709a98845ed27a2eed7a556af3993afb66e77fec48189f742616",
- "sha256:61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"
+ "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348",
+ "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3"
],
"index": "pypi",
- "version": "==7.0.1"
+ "markers": "python_version >= '3.11'",
+ "version": "==8.2.3"
},
"sphinx-tabs": {
"hashes": [
@@ -333,27 +378,27 @@
},
"sphinxcontrib-applehelp": {
"hashes": [
- "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228",
- "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"
+ "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1",
+ "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"
],
- "markers": "python_version >= '3.8'",
- "version": "==1.0.4"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.0.0"
},
"sphinxcontrib-devhelp": {
"hashes": [
- "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e",
- "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
+ "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad",
+ "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"
],
- "markers": "python_version >= '3.5'",
- "version": "==1.0.2"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.0.0"
},
"sphinxcontrib-htmlhelp": {
"hashes": [
- "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff",
- "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"
+ "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8",
+ "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"
],
- "markers": "python_version >= '3.8'",
- "version": "==2.0.1"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.1.0"
},
"sphinxcontrib-jsmath": {
"hashes": [
@@ -365,19 +410,19 @@
},
"sphinxcontrib-qthelp": {
"hashes": [
- "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72",
- "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"
+ "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab",
+ "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"
],
- "markers": "python_version >= '3.5'",
- "version": "==1.0.3"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.0.0"
},
"sphinxcontrib-serializinghtml": {
"hashes": [
- "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd",
- "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"
+ "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331",
+ "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"
],
- "markers": "python_version >= '3.5'",
- "version": "==1.1.5"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.0.0"
},
"typing-extensions": {
"hashes": [
@@ -389,11 +434,11 @@
},
"urllib3": {
"hashes": [
- "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1",
- "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"
+ "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
+ "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
],
- "markers": "python_version >= '3.7'",
- "version": "==2.0.3"
+ "markers": "python_version >= '3.9'",
+ "version": "==2.4.0"
},
"zipp": {
"hashes": [
diff --git a/source/Developer-Guide/Common-and-external-libraries.rst b/source/Developer-Guide/Common-and-external-libraries.rst
index 565e628d..721fcc63 100644
--- a/source/Developer-Guide/Common-and-external-libraries.rst
+++ b/source/Developer-Guide/Common-and-external-libraries.rst
@@ -43,7 +43,7 @@ The first step in creating a new common library is to create a repository from t
5. Click the green "Create repository from template" button.
-On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop `__ app, clone your the common library repository into this new folder. Your directory structure should look something like this:
+On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop `__ app, clone your the common library repository into this new folder. Your directory structure should look something like this:
.. code-block::
diff --git a/source/Developer-Guide/Compiling-plugins.rst b/source/Developer-Guide/Compiling-plugins.rst
index 86a3af8e..60989692 100644
--- a/source/Developer-Guide/Compiling-plugins.rst
+++ b/source/Developer-Guide/Compiling-plugins.rst
@@ -15,7 +15,7 @@ Most Open Ephys GUI plugins work equally well on Windows, Linux, and Mac. Howeve
Obtaining the source code
--------------------------
-The first step for compiling a pre-existing plugin is downloading the source code. If you're planning to make your own changes to the plugin, we recommend first forking the plugin's GitHub repository to your own account, then cloning the fork via the `command line `__ or the `GitHub Desktop app `__. If you're not planning to make any changes to the plugin, you can clone the original repository or download the code as a **.zip** file.
+The first step for compiling a pre-existing plugin is downloading the source code. If you're planning to make your own changes to the plugin, we recommend first forking the plugin's GitHub repository to your own account, then cloning the fork via the `command line `__ or the `GitHub Desktop app `__. If you're not planning to make any changes to the plugin, you can clone the original repository or download the code as a **.zip** file.
All of the officially supported plugins assume that the plugin source code is contained within a separate directory *at the same level* as that of the host application (the :code:`plugin-GUI` GitHub repository). Before attempting to compile your plugin, make sure your directory structure looks something like this:
diff --git a/source/Developer-Guide/Compiling-the-GUI.rst b/source/Developer-Guide/Compiling-the-GUI.rst
index 348c2a4b..7918ee91 100644
--- a/source/Developer-Guide/Compiling-the-GUI.rst
+++ b/source/Developer-Guide/Compiling-the-GUI.rst
@@ -5,7 +5,7 @@
Compiling the GUI
=====================
-If you'd like to build the GUI from source, you'll have to download the code to your local machine. We recommend first forking the `GUI's GitHub repository `__ to your own account, then cloning the fork via the `command line `__ or the `GitHub Desktop app `__.
+If you'd like to build the GUI from source, you'll have to download the code to your local machine. We recommend first forking the `GUI's GitHub repository `__ to your own account, then cloning the fork via the `command line `__ or the `GitHub Desktop app `__.
Windows
diff --git a/source/Developer-Guide/Creating-a-new-plugin.rst b/source/Developer-Guide/Creating-a-new-plugin.rst
index 5ff59a8c..4d9a3ec3 100644
--- a/source/Developer-Guide/Creating-a-new-plugin.rst
+++ b/source/Developer-Guide/Creating-a-new-plugin.rst
@@ -35,7 +35,7 @@ The first step in creating a new plugin is to create a repository from the appro
5. Click the green "Create repository from template" button.
-On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop `__ app, clone your the plugin repository into this new folder. Your directory structure should look something like this:
+On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository: Then, using the command line or the `GitHub Desktop `__ app, clone your the plugin repository into this new folder. Your directory structure should look something like this:
.. code-block::
@@ -58,7 +58,7 @@ Inside the "Source" folder of the plugin repository you just cloned, you'll find
**Processor** and **Visualizer** Plugins
-------------------------------------------
-Most plugins will be "processors," meaning they implement the :code:`process()` method of `GenericProcessor.h `__. This method is called repeatedly during the GUI's acquisition loop, so each plugin has a chance to respond to incoming data (or generate its own). If they include a canvas for displaying data, Processor plugins can also be Visualizer plugins.
+Most plugins will be "processors," meaning they implement the :code:`process()` method of `GenericProcessor.h `__. This method is called repeatedly during the GUI's acquisition loop, so each plugin has a chance to respond to incoming data (or generate its own). If they include a canvas for displaying data, Processor plugins can also be Visualizer plugins.
Processor and Visualizer plugins should edit the following lines in :code:`OpenEphysLib.cpp`:
diff --git a/source/Developer-Guide/Modifying-the-host-application.rst b/source/Developer-Guide/Modifying-the-host-application.rst
index 666c8f4c..895bbce7 100644
--- a/source/Developer-Guide/Modifying-the-host-application.rst
+++ b/source/Developer-Guide/Modifying-the-host-application.rst
@@ -14,7 +14,7 @@ If you're planning to update the host application, or any of the plugins in the
1. Fork the `GUI's GitHub repository `__ to your own account.
-2. Clone the fork via the `command line `__ or the `GitHub Desktop app `__.
+2. Clone the fork via the `command line `__ or the `GitHub Desktop app `__.
3. Compile the GUI for your platform of choice according to the steps on :ref:`this page`.
diff --git a/source/Developer-Guide/index.rst b/source/Developer-Guide/index.rst
index 45d072b7..270f403b 100644
--- a/source/Developer-Guide/index.rst
+++ b/source/Developer-Guide/index.rst
@@ -24,7 +24,7 @@ Before you :ref:`create a new plugin`, you'll need to have s
Updating the host application
------------------------------
-If you'd like to make changes to the Open Ephys GUI main repository, first read through :ref:`this section` of the developer documentation. Then, take a look at our list of `active projects `__ to find out about the features we're planning to update in the near future. If you're interested in tackling one of these projects, or have other ideas for useful additions to the main application, don't hesistate to `open an issue on GitHub `__.
+If you'd like to make changes to the Open Ephys GUI main repository, first read through :ref:`this section` of the developer documentation. Then, take a look at our list of `active projects `__ to find out about the features we're planning to update in the near future. If you're interested in tackling one of these projects, or have other ideas for useful additions to the main application, don't hesitate to `open an issue on GitHub `__.
Other projects
---------------
diff --git a/source/FAQ/index.rst b/source/FAQ/index.rst
index 49bcc7d5..b362926b 100644
--- a/source/FAQ/index.rst
+++ b/source/FAQ/index.rst
@@ -62,6 +62,6 @@ If you want to contribute in a more substantial way, you could add funding for a
**Can I license the Open Ephys GUI for a commercial project?**
-The GUI is released under a `GPL 3.0 license `__, which means that any derivative software must also be open source. However, if you'd like to use the GUI to acquire data from a closed-source device, this is both easy and encouraged! We would love for more companies to use the GUI, rather than choosing to build their own acquisition software from scratch.
+The GUI is released under a `GPL 3.0 license `__, which means that any derivative software must also be open source. However, if you'd like to use the GUI to acquire data from a closed-source device, this is both easy and encouraged! We would love for more companies to use the GUI, rather than choosing to build their own acquisition software from scratch.
|
\ No newline at end of file
diff --git a/source/Tutorials/How-To-Make-Your-Own-Plugin.rst b/source/Tutorials/How-To-Make-Your-Own-Plugin.rst
index 30398021..a6d06c8a 100644
--- a/source/Tutorials/How-To-Make-Your-Own-Plugin.rst
+++ b/source/Tutorials/How-To-Make-Your-Own-Plugin.rst
@@ -36,7 +36,7 @@ The first step in creating a plugin is to create a new code repository from a te
.. image:: ../_static/images/tutorials/makeyourownplugin/makeyourownplugin-02.png
:alt: Create TTLEventGenerator Repository
-On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git `__ command line interface or the `GitHub Desktop `__ app, clone the newly created plugin repository into this directory. Your directory structure should look something like this:
+On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git `__ command line interface or the `GitHub Desktop `__ app, clone the newly created plugin repository into this directory. Your directory structure should look something like this:
.. code-block::
diff --git a/source/Tutorials/Making-Your-Own-Visualizer-Plugin.rst b/source/Tutorials/Making-Your-Own-Visualizer-Plugin.rst
index 34772c0c..d036e660 100644
--- a/source/Tutorials/Making-Your-Own-Visualizer-Plugin.rst
+++ b/source/Tutorials/Making-Your-Own-Visualizer-Plugin.rst
@@ -38,7 +38,7 @@ The first step in creating a plugin is to create a new code repository from a te
.. image:: ../_static/images/tutorials/makeyourownvisualizerplugin/visualizerplugin-02.png
:alt: Create rate-viewer Repository
-On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git `__ command-line interface or the `GitHub Desktop `__ app, clone the newly created plugin repository into this directory.
+On your local machine, create an "OEPlugins" directory within the same directory that contains your :code:`plugin-GUI` repository. Then, using the `git `__ command-line interface or the `GitHub Desktop `__ app, clone the newly created plugin repository into this directory.
Your directory structure should look something like this:
diff --git a/source/User-Manual/Exploring-the-user-interface.rst b/source/User-Manual/Exploring-the-user-interface.rst
index 99088490..c2fa4493 100644
--- a/source/User-Manual/Exploring-the-user-interface.rst
+++ b/source/User-Manual/Exploring-the-user-interface.rst
@@ -40,7 +40,7 @@ Processors handle four types of data:
* **Text events:** messages generated by the user or other processors, or sent via the network. Some processors have specific behaviors that are triggered by text events.
-In addition, it's important to keep in mind that every continuous signal, event, and spike must be associated with a single *data stream*, or a collection of channels that are sampled synchronously. Any time you merge together data from different Sources, channels from each source will belong to different data streams. In addition, some Source processors (such as :ref:`neuropixelspxi`) generate multiple data streams. In most cases, data from separate streams will be processed independently, because samples from different streams are not guaranteed to be aligned. See the :ref:`whatsnew` page for more information about modifying parameters for individual streams.
+In addition, it's important to keep in mind that every continuous signal, event, and spike must be associated with a single *data stream*, or a collection of channels that are sampled synchronously. Any time you merge together data from different Sources, channels from each source will belong to different data streams. In addition, some Source processors (such as :ref:`neuropixelspxi`) generate multiple data streams. In most cases, data from separate streams will be processed independently, because samples from different streams are not guaranteed to be aligned. See the :ref:`whatsnewinv06x` page for more information about modifying parameters for individual streams.
3. Message Center
@@ -129,7 +129,7 @@ View
Help
-----
-* **Online documentation...**: Open the GUI's documentation site in a browser window (requires access to the interent).
+* **Online documentation...**: Open the GUI's documentation site in a browser window (requires access to the internet).
Debug console
@@ -155,14 +155,13 @@ Windows
Debug console is automatically displayed on Windows when you run the :code:`open-ephys` application.
-
Log files
###############
-Every action taken by the user is logged to a file, along with additional information that can be useful for spotting issues when things go wrong. If the GUI exits sucessfully, the latest log file will be overwritten the next time the GUI is launched. If the GUI crashes, then the name of the latest log file will be appended with a unique date string.
+Every action taken by the user is logged to a file, along with additional information that can be useful for spotting issues when things go wrong. If the GUI exits successfully, the latest log file will be overwritten the next time the GUI is launched. If the GUI crashes, then the name of the latest log file will be appended with a unique date string.
Linux
--------
+------
Log files are written to :code:`/home//open-ephys/configs-api8`
diff --git a/source/User-Manual/Hardware-requirements.rst b/source/User-Manual/Hardware-requirements.rst
index 3fe68c80..fa1c46eb 100644
--- a/source/User-Manual/Hardware-requirements.rst
+++ b/source/User-Manual/Hardware-requirements.rst
@@ -19,6 +19,8 @@ More than 1000 `Open Ephys acquisition boards
The following hardware is recommended for experiments that use the acquisition board:
+.. _computer-specs-open-ephys:
+
Computer specs
#####################
@@ -39,11 +41,11 @@ Other hardware
These are the minimum requirements for getting up and running. You will likely need additional hardware for the full experiment (e.g. reward ports, mazes, commutators, light for optogenetic stimulation).
-* **Acquisition board** (available from the `Open Ephys Store `__)
+* **Acquisition board** (available from the `Open Ephys Store `__)
* **I/O boards** for interfacing with auxiliary analog and digital signals (available from the `Open Ephys Store `__)
-* **Headstages and cables** (available as part of the `Open Ephys Starter Kit `__ or from `Intan Technologies `__; there is also a low-profile headstage available from the `Open Ephys Store `__)
+* **Headstages and cables** (available as part of the `Open Ephys Starter Kit `__ or from `Intan Technologies `__; there is also a low-profile headstage available from the `Open Ephys Store `__)
* **Electrodes** - there is lots of flexibility here, as long as you have some way to interface between your electrodes and a compatible headstage. For tetrodes, we recommend the `shuttleDrive `__.
@@ -58,6 +60,8 @@ Neuropixels are quickly become a new standard for electrophysiology, given their
The following hardware is recommended for experiments with Neuropixels:
+.. _computer-specs-neuropixels:
+
Computer specs
################
@@ -77,7 +81,9 @@ Computer specs
Other hardware
###############
-The following summarizes the additional hardware you'll need to buy to run Neuropixels experiments. OneBoxes, PXI basestations, headstages, and probes can be ordered from `neuropixels.org `__. Other PXI components are available from NI.
+The following summarizes the additional hardware you'll need to buy to run Neuropixels experiments. OneBoxes, PXI basestations, headstages, and probes can be ordered from `neuropixels.org `__. Other PXI components are available from NI.
+
+.. _onebox-hardware-requirements:
OneBox
-------
diff --git a/source/User-Manual/Installing-the-GUI.rst b/source/User-Manual/Installing-the-GUI.rst
index 82ab7bde..5eeb0322 100644
--- a/source/User-Manual/Installing-the-GUI.rst
+++ b/source/User-Manual/Installing-the-GUI.rst
@@ -21,6 +21,8 @@ Via installer (recommended)
4. The GUI will be installed in :code:`C:\\Program Files\\Open Ephys\\open-ephys.exe`.
+.. _windows-via-zip:
+
Via .zip file
--------------
@@ -73,6 +75,8 @@ The GUI is available at the gentoo science overlay.
.. note:: Brave users can also install the main branch version (:code:`emerge --ask --verbose =sci-biology/open-ephys-gui-9999`) or the development branch version (:code:`emerge --ask --verbose =sci-biology/open-ephys-gui-99999999`). Since installation is slotted, you can keep all versions installed simultaneously, in case you want to try them without removing the stable version.
+.. _linux-via-zip:
+
Via .zip file (all distros)
----------------------------
@@ -103,7 +107,9 @@ Via DMG (recommended)
4. Double-click on the **open-ephys** app bundle to launch the GUI.
-.. note:: Depending on your security settings, you may see a message announcing that "'open-ephys' cannot be opened because the developer cannot be verified." If so, go to System Prefererences > Security and Privacy > General and click "Open Anyway" to allow the GUI to launch.
+.. note:: Depending on your security settings, you may see a message announcing that "'open-ephys' cannot be opened because the developer cannot be verified." If so, go to System Preferences > Security and Privacy > General and click "Open Anyway" to allow the GUI to launch.
+
+.. _macos-via-zip:
Via .zip file
--------------
@@ -119,5 +125,5 @@ Via .zip file
|
.. _this page: https://open-ephys.org/gui
-.. _Visual Studio 2015, 2017, 2019, and 2022 redistributable package: https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
+.. _Visual Studio 2015, 2017, 2019, and 2022 redistributable package: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
diff --git a/source/User-Manual/Plugins/Arduino-Output.rst b/source/User-Manual/Plugins/Arduino-Output.rst
index 7b3186a7..5b7bf695 100644
--- a/source/User-Manual/Plugins/Arduino-Output.rst
+++ b/source/User-Manual/Plugins/Arduino-Output.rst
@@ -9,7 +9,7 @@ Arduino Output
.. image:: ../../_static/images/plugins/arduinooutput/arduinooutput-01.png
:alt: Annotated Arduino Output settings interface
-.. csv-table:: Allows events from within the GUI to control the state of digital output pins on an Arduino running `Firmata `__. Provides a quick and easy way to translate information from software to hardware.
+.. csv-table:: Allows events from within the GUI to control the state of digital output pins on an Arduino running `Firmata `__. Provides a quick and easy way to translate information from software to hardware.
:widths: 18, 80
"*Plugin Type*", "Sink"
@@ -40,7 +40,7 @@ Not all Arduino-like devices will work with this plugin. Below is a list of ones
Configuring your Arduino
=========================
-This plugin works with any Arduino running the `Firmata `__ firmware. To install this on your device, first make sure you've downloaded the `Arduino IDE `__ (version 1.0 or higher) for your platform of choice.
+This plugin works with any Arduino running the `Firmata `__ firmware. To install this on your device, first make sure you've downloaded the `Arduino IDE `__ (version 1.0 or higher) for your platform of choice.
Next, connect the Arduino to your computer and upload the sketch in `File > Examples > Firmata > StandardFirmata`. This will allow your computer to control the state of the Arduino from software.
diff --git a/source/User-Manual/Plugins/CNN-Ripple.rst b/source/User-Manual/Plugins/CNN-Ripple.rst
index b4827cc8..1f626106 100644
--- a/source/User-Manual/Plugins/CNN-Ripple.rst
+++ b/source/User-Manual/Plugins/CNN-Ripple.rst
@@ -17,7 +17,7 @@ CNN Ripple
"*Built in?*", "No"
"*Key Developers*", "Rodrigo Amaducci, Andrea Navas-Olive"
"*Source Code*", "https://github.com/open-ephys-plugins/cnn-ripple"
- "*Publication DOI*", "`10.7554/eLife.77772 `__"
+ "*Publication DOI*", "`10.7554/eLife.77772 `__"
Installing and upgrading
###########################
diff --git a/source/User-Manual/Plugins/Ephys-Socket.rst b/source/User-Manual/Plugins/Ephys-Socket.rst
index d731f02a..ac455065 100644
--- a/source/User-Manual/Plugins/Ephys-Socket.rst
+++ b/source/User-Manual/Plugins/Ephys-Socket.rst
@@ -9,7 +9,7 @@ Ephys Socket
.. image:: ../../_static/images/plugins/ephyssocket/ephyssocket-01.png
:alt: Annotated Ephys Socket Editor
-.. csv-table:: Receives formatted data from a TCP socket that implements a particular :ref:`header format `. A common use case is to receive data streamed from :ref:`Bonsai `. This is intended to be a quick way to stream ephys data from a third-party application and visualize in the Open Ephys GUI. Below is a way to setup streaming between Bonsai and the Open Ephys GUI, which can be extended to other software and/or hardware that carry the same header format.
+.. csv-table:: Receives formatted data from a TCP socket that implements a particular :ref:`header-format`. A common use case is to receive data streamed from :ref:`in-bonsai`. This is intended to be a quick way to stream ephys data from a third-party application and visualize in the Open Ephys GUI. Below is a way to setup streaming between Bonsai and the Open Ephys GUI, which can be extended to other software and/or hardware that carry the same header format.
:widths: 18, 80
"*Plugin Type*", "Source"
@@ -28,6 +28,8 @@ The Plugin Installer also allows you to upgrade to the latest version of this pl
Plugin Configuration
######################
+.. _in-bonsai:
+
In Bonsai
-----------
@@ -96,11 +98,12 @@ In the Open Ephys GUI
.. warning:: This plugin does not guarantee that samples will not be lost in transit, so it's essential to save your data stream on the Bonsai end. There are at least two ways data loss can occur: 1) When a data stream is first connected, there is no guarantee that the data will be saved, since data is not acquired immediately after connecting the socket. 2) If too much data is being sent and the Open Ephys GUI cannot process the data quickly enough, some packets may be lost due to the TCP buffer filling up. If you suspect samples are being dropped (e.g., if the LFP Viewer is not updating at the expected speed), sending a lower bandwidth might fix the problem.
+.. _header-format:
Header Format for Custom Data Streams
######################################
-While the :code:`SendMatOverSocket` node (found in **OpenEphys.Sockets.Bonsai**, see :ref:`In Bonsai` for details) is a common use case for sending `OpenCV.Net.Mat` data over the TCP socket, it is not the only way to stream data. As long as whatever is used to stream data (e.g., a Python script that sends data over the TCP socket) correctly prepends a header to the data stream, Ephys Socket can correctly interpret the data.
+While the :code:`SendMatOverSocket` node (found in **OpenEphys.Sockets.Bonsai**, see :ref:`in-bonsai` for details) is a common use case for sending `OpenCV.Net.Mat` data over the TCP socket, it is not the only way to stream data. As long as whatever is used to stream data (e.g., a Python script that sends data over the TCP socket) correctly prepends a header to the data stream, Ephys Socket can correctly interpret the data.
An example Python script is included in the `Resources `__ folder of the plugin repository, which implements the format described here. Each variable is 4 bytes long (with the exception of the Bit Depth, which is 2 bytes long), and must be sent in the order listed below. The total header length is 22 bytes.
diff --git a/source/User-Manual/Plugins/Falcon-Output.rst b/source/User-Manual/Plugins/Falcon-Output.rst
index 894a7f7d..9947e236 100644
--- a/source/User-Manual/Plugins/Falcon-Output.rst
+++ b/source/User-Manual/Plugins/Falcon-Output.rst
@@ -38,7 +38,7 @@ See the `Falcon `__ documentation
Creating a custom client
#########################
-The Falcon Output plugin uses ZeroMQ to stream data. Unlike the :ref:`zmqinterface` plugin, this plugin uses the `FlatBuffers `__ serialization library to reduce latency. An example C++ client can be found in the :code:`clients` directory of the plugin repository.
+The Falcon Output plugin uses ZeroMQ to stream data. Unlike the :ref:`zmqinterface` plugin, this plugin uses the `FlatBuffers `__ serialization library to reduce latency. An example C++ client can be found in the :code:`clients` directory of the plugin repository.
Falcon Input
#############
diff --git a/source/User-Manual/Plugins/NIDAQmx.rst b/source/User-Manual/Plugins/NIDAQmx.rst
index 4adbe240..db3aeb9e 100644
--- a/source/User-Manual/Plugins/NIDAQmx.rst
+++ b/source/User-Manual/Plugins/NIDAQmx.rst
@@ -25,7 +25,7 @@ Requirements
* (optional) An NI terminal block (e.g. BNC-2090A or BNC-2110) and compatible cables
-* Installed NI-DAQmx drivers (available for download `here `__; version 19.0+ recommended).
+* Installed NI-DAQmx drivers (available for download `here `__; version 19.0+ recommended).
* **For synchronization**: One digital input line shared between all data sources streaming data to the GUI (e.g., Open Ephys acquisition board, Neuropixels PXI basestation, other NI devices).
diff --git a/source/User-Manual/Plugins/Neuropixels-PXI.rst b/source/User-Manual/Plugins/Neuropixels-PXI.rst
index 8c18d390..9c9c0432 100644
--- a/source/User-Manual/Plugins/Neuropixels-PXI.rst
+++ b/source/User-Manual/Plugins/Neuropixels-PXI.rst
@@ -48,7 +48,7 @@ For chassis with a built-in Thunderbolt controller (e.g. PXIe-1083):
* One sufficiently long **Thunderbolt cable**
-Ordered via `neuropixels.org `__:
+Ordered via `neuropixels.org `__:
* One or more **Neuropixels basestations** (can acquire data from 4 Neuropixels 1.0 probes per basestation)
@@ -81,7 +81,7 @@ This plugin can stream data from the following Neuropixels probe types:
"Neuropixels 2.0 (quad base)", "1536 wideband", "**≥0.7.x**", "`BS169, BSC191`_"
"Neuropixels Opto", "384 AP, 384 LFP", "≥0.4.x", "Special basestation required"
-.. important:: Regardless of which probe type you're using, we recommend updating to the most recent Neuropixels PXI plugin and basestation firmware (`BS169, BSC191`_). This firmware is required for plugin version **0.7.x** and higher, as well as the latest version of SpikeGLX. See :ref:`Updating basestation firmware` section for information on how to modify your firmware.
+.. important:: Regardless of which probe type you're using, we recommend updating to the most recent Neuropixels PXI plugin and basestation firmware (`BS169, BSC191`_). This firmware is required for plugin version **0.7.x** and higher, as well as the latest version of SpikeGLX. See :ref:`updating-basestation-firmware` section for information on how to modify your firmware.
.. warning:: In version 0.6.x of this plugin, commercial Neuropixels 2.0 (multishank) probes did not have the correct scaling applied to account for the lower bit depth of the ADC compared to the beta probes (12 vs. 14 bits). To correct this, any data acquired with from these probes with this plugin should be multiplied by 4. This issue is fixed in version 0.7.x.
@@ -94,9 +94,9 @@ This plugin can stream data from the following Neuropixels probe types:
Connecting to the PXI system
##############################
-Before using this plugin, make sure you've followed all of the steps in the `Neuropixels User Manual `__ to set up and configure your hardware. Prior to using your Neuropixels PXI basestation, you must install the Enclustra drivers (available for `Windows 7/8 `__ and `Windows 10 `__). See section 4.2.2 of the User Manual for installation instructions.
+Before using this plugin, make sure you've followed all of the steps in the `Neuropixels User Manual `__ to set up and configure your hardware. Prior to using your Neuropixels PXI basestation, you must install the Enclustra drivers (available for `Windows 7/8 `__ and `Windows 10 `__). See section 4.2.2 of the User Manual for installation instructions.
-Once your PXI system is up and running, you can drag and drop the "Neuropix-PXI" module from the Processor List onto the Editor Viewport. The GUI will automatically connect to any available basestations in your PXI chassis with probes connected. If no basestations are found, the plugin can be run in simulation mode. If no probes are found, the plugin editor will display information about each basestation, and can be used to perform a firmware update (see :ref:`Updating basestation firmware` below).
+Once your PXI system is up and running, you can drag and drop the "Neuropix-PXI" module from the Processor List onto the Editor Viewport. The GUI will automatically connect to any available basestations in your PXI chassis with probes connected. If no basestations are found, the plugin can be run in simulation mode. If no probes are found, the plugin editor will display information about each basestation, and can be used to perform a firmware update (see :ref:`updating-basestation-firmware` below).
The editor will automatically create a probe selection interface for each basestation that's available. Each basestation can communicate with up to 4 probes (for Neuropixels 1.0, NHP, and Ultra) or 8 probes (for 2.0). When the probes are initially detected, they show up as orange circles. Once they are initialized, connected probes become green. After the probes turn green, the plugin is ready to begin data acquisition.
@@ -323,12 +323,14 @@ If you have a headstage test module, you can run a suite of tests to ensure the
.. note:: The headstage tests have been re-enabled as of plugin version 0.5.x. However, we have also found that the headstage tests are rarely needed to accurately diagnose a problem with data transmission. If you are unsure whether your headstage is functional, swapping it out with a different headstage is usually more informative than running the headstage tests.
+.. _updating-basestation-firmware:
+
Updating basestation firmware
######################################
Version **0.7.x** of the Neuropixels PXI plugin requires a basestation firmware update. The latest firmware (BS169, BSC189) can be downloaded `here `__.
-The currently installed firmware version will appear in the info section of the Neuropixels settings interface (upper right text block). If your basesation firmware version is "2.0169" and your basestation connect board firmware version is "3.2191", you already have the latest firmware installed.
+The currently installed firmware version will appear in the info section of the Neuropixels settings interface (upper right text block). If your basestation firmware version is "2.0169" and your basestation connect board firmware version is "3.2191", you already have the latest firmware installed.
If you need to update your firmware, first click the "UPDATE FIRMWARE" button to open the firmware update interface:
diff --git a/source/User-Manual/Plugins/OneBox.rst b/source/User-Manual/Plugins/OneBox.rst
index 4be8635f..251ba46e 100644
--- a/source/User-Manual/Plugins/OneBox.rst
+++ b/source/User-Manual/Plugins/OneBox.rst
@@ -2,6 +2,8 @@
.. role:: raw-html-m2r(raw)
:format: html
+.. _onebox-plugin:
+
################
OneBox
################
@@ -28,7 +30,7 @@ The Plugin Installer also allows you to upgrade to the latest version of this pl
Hardware requirements
######################
-Ordered via `neuropixels.org `__:
+Ordered via `neuropixels.org `__:
* One **OneBox** (with included power supply and USB 3.0 cable)
@@ -47,7 +49,7 @@ Compatible probes
This plugin can stream data from any of the following Neuropixels probes:
.. csv-table::
- :widths: 70, 40, 40, 50
+ :widths: 70, 40
"**Probe**", "**Channels**"
"Neuropixels 1.0", "384 AP, 384 LFP"
@@ -65,7 +67,7 @@ OneBox Quickstart Guide
Driver installation
--------------------
-The OneBox requires a specific version of the FTDI D3XX drivers to be installed on your computer (version 1.3.0.10). These drivers can be downloaded from the `FTDI website `__. It's recommended to run the Setup Executable and follow the instructions provided by the installer.
+The OneBox requires a specific version of the FTDI D3XX drivers to be installed on your computer (version 1.3.0.10). These drivers can be downloaded from the `FTDI website `__. It's recommended to run the Setup Executable and follow the instructions provided by the installer.
.. note:: The latest FTDI D3XX driver (1.4.0.0) is not compatible with the OneBox and will lead to the device not being recognized. Be sure to downgrade to version 1.3.0.10 before attempting to use the OneBox plugin.
diff --git a/source/User-Manual/Plugins/Probe-Viewer.rst b/source/User-Manual/Plugins/Probe-Viewer.rst
index 28903fa7..b33e126e 100644
--- a/source/User-Manual/Plugins/Probe-Viewer.rst
+++ b/source/User-Manual/Plugins/Probe-Viewer.rst
@@ -85,7 +85,7 @@ Via Pinpoint
After that, the anatomical information in the Probe Viewer should update every time the associated probe in moved in Pinpoint.
-See `this tutorial `__ for alternative instructions on how to send anatomical information from Pinpoint to Open Ephys.
+See `this tutorial `__ for alternative instructions on how to send anatomical information from Pinpoint to Open Ephys.
Via Neuropixels Trajectory Explorer
------------------------------------
diff --git a/source/User-Manual/Plugins/Rhythm-Plugins.rst b/source/User-Manual/Plugins/Rhythm-Plugins.rst
index 17a13d4f..f120c6db 100644
--- a/source/User-Manual/Plugins/Rhythm-Plugins.rst
+++ b/source/User-Manual/Plugins/Rhythm-Plugins.rst
@@ -2,6 +2,8 @@
.. role:: raw-html-m2r(raw)
:format: html
+:orphan:
+
#################
Rhythm Plugins
#################
diff --git a/source/User-Manual/Plugins/Ripple-Detector.rst b/source/User-Manual/Plugins/Ripple-Detector.rst
index 7f9f5002..0fbf9880 100644
--- a/source/User-Manual/Plugins/Ripple-Detector.rst
+++ b/source/User-Manual/Plugins/Ripple-Detector.rst
@@ -17,7 +17,7 @@ Ripple Detector
"*Built in?*", "No"
"*Key Developers*", "Bruno Monteiro de Sousa"
"*Source Code*", "https://github.com/open-ephys-plugins/ripple-detector"
- "*Publication DOI*", "`10.1088/1741-2552/ac857b `__"
+ "*Publication DOI*", "`10.1088/1741-2552/ac857b `__"
Installing and upgrading
###########################
diff --git a/source/User-Manual/Plugins/River-Output.rst b/source/User-Manual/Plugins/River-Output.rst
index 1ba47706..10a783c5 100644
--- a/source/User-Manual/Plugins/River-Output.rst
+++ b/source/User-Manual/Plugins/River-Output.rst
@@ -52,7 +52,7 @@ Plugin configuration
Database setup
-----------------
-This plugin must be able to connect to an existing Redis database. Follow the instructions on `this page `__ to install Redis.
+This plugin must be able to connect to an existing Redis database. Follow the instructions on `this page `__ to install Redis.
.. note:: Redis does not run natively on Windows, and requires Windows Subsystem for Linux (WSL). This only takes a few minutes to install, and shouldn't deter you from trying out this plugin.
diff --git a/source/User-Manual/Plugins/Virtual-Reference.rst b/source/User-Manual/Plugins/Virtual-Reference.rst
index 55f22402..cdeb393f 100644
--- a/source/User-Manual/Plugins/Virtual-Reference.rst
+++ b/source/User-Manual/Plugins/Virtual-Reference.rst
@@ -16,7 +16,7 @@ Virtual Reference
"*Platforms*", "Windows, Linux, macOS"
"*Built in?*", "No"
"*Key Developers*", "Arne Meyer"
- "*Source Code*", "https://github.com/open-ephys-plugins/VirtualReferencePlugin"
+ "*Source Code*", "https://github.com/open-ephys-plugins/virtual-reference"
Installing and upgrading
diff --git a/source/User-Manual/Plugins/XDAQ-OE.rst b/source/User-Manual/Plugins/XDAQ-OE.rst
index 0fc37b91..e441efd2 100644
--- a/source/User-Manual/Plugins/XDAQ-OE.rst
+++ b/source/User-Manual/Plugins/XDAQ-OE.rst
@@ -19,7 +19,7 @@ XDAQ
"*Source Code*", "https://github.com/open-ephys-plugins/XDAQ-OE"
-.. tip:: For more in-depth documentation on the XDAQ, please refer to the `XDAQ help site `__.
+.. tip:: For more in-depth documentation on the XDAQ, please refer to the `XDAQ help site `__.
Plugin configuration
====================
diff --git a/source/User-Manual/Recording-data/Binary-format.rst b/source/User-Manual/Recording-data/Binary-format.rst
index 5e7fe9b4..c0c683ed 100644
--- a/source/User-Manual/Recording-data/Binary-format.rst
+++ b/source/User-Manual/Recording-data/Binary-format.rst
@@ -14,7 +14,7 @@ Binary Format
"*Platforms*", "Windows, Linux, macOS"
"*Built in?*", "Yes"
"*Key Developers*", "Aarón Cuevas López, Josh Siegle"
- "*Source Code*", "https://github.com/open-ephys/plugin-GUI/tree/master/Source/Processors/RecordNode/BinaryFormat"
+ "*Source Code*", "https://github.com/open-ephys/plugin-GUI/tree/main/Source/Processors/RecordNode/BinaryFormat"
**Advantages**
diff --git a/source/User-Manual/Recording-data/index.rst b/source/User-Manual/Recording-data/index.rst
index 92b97cb6..41fd6510 100644
--- a/source/User-Manual/Recording-data/index.rst
+++ b/source/User-Manual/Recording-data/index.rst
@@ -136,7 +136,7 @@ In order to align events and continuous data from different streams, these strea
If the streams were not synchronized online, they can be synchronized offline assuming all streams share at least one event line in common. See the :ref:`datasynchronization` tutorial for more information about synchronizing data streams.
.. _NumPy: https://numpy.org/
-.. _Neurodata Without Borders: https://www.nwb.org/
+.. _Neurodata Without Borders: https://neurodatawithoutborders.github.io/
.. _pynwb: https://pynwb.readthedocs.io/en/stable/
.. toctree::
diff --git a/source/User-Manual/Whats-new-in-v100.rst b/source/User-Manual/Whats-new-in-v100.rst
index 53ca15fd..4bdb03c9 100644
--- a/source/User-Manual/Whats-new-in-v100.rst
+++ b/source/User-Manual/Whats-new-in-v100.rst
@@ -6,7 +6,7 @@
What's new in version 1.0
############################
-The Open Ephys GUI has been under continuous development for more than a decade, and it has been used to collect high-quality electrophysiology data for hundreds of publications (see `open-ephys.org/publications `_ for some examples). Nevertheless, the developers did not feel ready to call a release "version 1.0" until now. This release (which will be widely available in early 2025) is the result of many years of polishing, streamlining, and testing. It should feel familiar to any long-time users of the software, while also being more approachable for anyone trying it out for the first time.
+The Open Ephys GUI has been under continuous development for more than a decade, and it has been used to collect high-quality electrophysiology data for hundreds of publications (see `open-ephys.org/publications `_ for some examples). Nevertheless, the developers did not feel ready to call a release "version 1.0" until now. This release (which will be widely available in early 2025) is the result of many years of polishing, streamlining, and testing. It should feel familiar to any long-time users of the software, while also being more approachable for anyone trying it out for the first time.
This page documents the major changes that will be available in this release. Importantly, there are many things that we did not change, such as the data format, HTTP server commands, and :code:`settings.xml` files. So configurations from v0.6.x can be loaded in version 1.0, and any code written to interface with the GUI or its output files will continue to work as expected, with a few minor exceptions.
diff --git a/source/User-Manual/index.rst b/source/User-Manual/index.rst
index 5f7e3cdf..56bc9795 100644
--- a/source/User-Manual/index.rst
+++ b/source/User-Manual/index.rst
@@ -11,7 +11,7 @@ The GUI was designed to process, record, and visualize multichannel extracellula
* `Intan RHD USB Interface Board `__
* `Intan RHD Recording Controller `__
* `Neuropixels probes `__
-* `XDAQ ONE and Core `__
+* `XDAQ ONE and Core `__
* `EEG headsets that use Lab Streaming Layer `__
This manual covers key topics, such as:
diff --git a/source/conf.py b/source/conf.py
index ecc45419..51cbc54a 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -228,7 +228,24 @@
"default_mode": "light"
}
-linkcheck_anchors = False
+linkcheck_anchors = True
+
+linkcheck_ignore = [
+ 'https://www.mathworks.com/*',
+ r'https://github.com/.*#L.*',
+ 'https://www.sciencedirect.com/*',
+ 'https://labstreaminglayer.org/#/',
+ 'https://neuropixelsgroup.slack.com/*#*',
+ 'https://store-usa.arduino.cc/*',
+ 'https://openbci.com/*'
+]
+
+linkcheck_allowed_redirects = {
+ r"https://iopscience.iop.org/article/.*": r"https://validate.perfdrive.com/.*"
+}
extensions.append("sphinx_tabs.tabs")
-extensions.append("sphinx.ext.autosectionlabel")
+
+suppress_warnings = [
+ 'duplicate_declaration.cpp'
+ ]