diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..64590a2b --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,38 @@ +name: Documentation + +on: + push: + branches: + - master + - main + +permissions: + contents: read + pages: write + id-token: write + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - uses: actions/configure-pages@v5 + - uses: actions/checkout@v5 + - name: Install uv + uses: astral-sh/setup-uv@v6 + with: + enable-cache: true + - name: Install docs dependencies + run: | + uv sync --locked --no-dev --group docs + - name: Build site + run: uv run zensical build --clean + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: site + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v4 + id: deployment diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index 3ebe6e51..00000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: github pages - -on: - push: - branches: - - master - - main - -permissions: - contents: write - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Install uv - uses: astral-sh/setup-uv@v6 - with: - enable-cache: true - python-version-file: ".python-version" - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - name: Install docs dependencies - run: | - uv sync --locked --only-group docs - - name: Deploy pages with mkdocs - run: | - uv run mkdocs gh-deploy --force diff --git a/.readthedocs.yml b/.readthedocs.yml index 1be672b2..9a5cc770 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -14,9 +14,8 @@ build: - asdf plugin add uv - asdf install uv latest - asdf global uv latest - - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv sync --all-extras --group docs - install: - - "true" - -mkdocs: - configuration: mkdocs.yml + - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv sync --locked --no-dev --group docs + post_build: + - uv run zensical build --clean + - mkdir -p $READTHEDOCS_OUTPUT/html/ + - cp -r site/* $READTHEDOCS_OUTPUT/html/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..069a2e21 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,377 @@ +# Changelog + +All notable changes to the **AIMBAT** project will be documented in this file. + +## [Unreleased] + +### โš™๏ธ DevOps & Infrastructure + +- Artifact@v4 + +### ๐Ÿ› Bug Fixes + +- Fix type hint +- Fix importlib error for Python 3.7 +- Fix typo on readme +- Listing snapshots when there were non causes error + +### ๐Ÿ“š Documentation + +- Correct links in badges +- Add AIMBAT workflow +- Link to contributros.md in root folder +- Update data section +- Add notebook to docs ([#168](https://github.com/pysmo/aimbat/issues/168)) +- Add CNAME file +- Installation instructions using uv ([#190](https://github.com/pysmo/aimbat/issues/190)) +- Add asciinema + +### ๐Ÿ” Other Changes + +- Create CNAME +- Switch from pipenv to poetry +- Add new aimbat cli and setup defaults framework +- Remove old stuff and add aimbat V2 files. +- Add github actions and initial tests for the cli +- Don't fail-fast (i.e. continue checks for other python versions) +- Add command to download sample data +- Use descriptors for defaults +- Merge pull request #109 from pysmo/descriptor-defaults + +Use descriptors for defaults +- Cleanup aimbat defaults class +- Merge branch 'aimbat_V2' +- Add checkdata command +- Merge branch 'checkdata' +- Rename package from pysmo.aimbat to aimbat ([#129](https://github.com/pysmo/aimbat/issues/129)) + +* rename package from pysmo.aimbat to aimbat +* add tox +* add workflows +* update deps +* Add docs packages to pyproject +- Setup docs structure ([#130](https://github.com/pysmo/aimbat/issues/130)) + +* Setup docs structure +- Cleanup defaults script +- Merge pull request #131 from pysmo/defaults + +cleanup defaults script +- Add cli for project +- Merge pull request #132 from pysmo/cli-project + +add cli for project +- Switch to using sqlmodel to save project metadata. +- Merge pull request #133 from pysmo/project-defaults + +Switch to using sqlmodel to save project metadata. +- Add devcontainer config +- Add .tox and nohup.out to gitignore +- Add autodoc to docs ([#134](https://github.com/pysmo/aimbat/issues/134)) + +* Add autodoc to docs + +* Dont lint docs foler with flake8 +- Merge "command" files into "lib" files. +- Merge pull request #135 from pysmo/move-commands-into-lib + +Merge "command" files into "lib" files. +- Update Readme +- Fix text alignment +- Add accent colour to theme and add watch directory to make live-docs +- Add id column to default table +- Merge pull request #136 from pysmo/defaults-table + +refactor: add id column to default table +- Merge pull request #137 from pysmo/docs-flowchart + +docs: add AIMBAT workflow +- Merge pull request #139 from pysmo/checkdata + +feat: initial checks in checkdata lib +- Switch to formatting with black +- Ignore black commit in git blame +- Merge pull request #140 from pysmo/black + +Introduce Black formatting to project +- Bump urllib3 from 2.0.4 to 2.0.7 + +Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.4 to 2.0.7. +- [Release notes](https://github.com/urllib3/urllib3/releases) +- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) +- [Commits](https://github.com/urllib3/urllib3/compare/2.0.4...2.0.7) + +--- +updated-dependencies: +- dependency-name: urllib3 + dependency-type: indirect +... + +Signed-off-by: dependabot[bot] +- Merge pull request #143 from pysmo/dependabot/pip/urllib3-2.0.7 + +Bump urllib3 from 2.0.4 to 2.0.7 +- Bump pillow from 10.0.0 to 10.0.1 + +Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.0 to 10.0.1. +- [Release notes](https://github.com/python-pillow/Pillow/releases) +- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) +- [Commits](https://github.com/python-pillow/Pillow/compare/10.0.0...10.0.1) + +--- +updated-dependencies: +- dependency-name: pillow + dependency-type: indirect +... + +Signed-off-by: dependabot[bot] +- Merge pull request #142 from pysmo/dependabot/pip/pillow-10.0.1 + +Bump pillow from 10.0.0 to 10.0.1 +- Add py312 to matrix +- Merge pull request #144 from pysmo/py312 + +chore: add py312 to matrix +- Merge pull request #149 from pysmo/add-data + +feat: add add-data to project +- Bump actions/setup-python from 4 to 5 + +Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. +- [Release notes](https://github.com/actions/setup-python/releases) +- [Commits](https://github.com/actions/setup-python/compare/v4...v5) + +--- +updated-dependencies: +- dependency-name: actions/setup-python + dependency-type: direct:production + update-type: version-update:semver-major +... + +Signed-off-by: dependabot[bot] +- Merge pull request #150 from pysmo/dependabot/github_actions/actions/setup-python-5 + +Bump actions/setup-python from 4 to 5 +- Bump codecov/codecov-action from 3 to 4 + +Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4. +- [Release notes](https://github.com/codecov/codecov-action/releases) +- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) +- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4) + +--- +updated-dependencies: +- dependency-name: codecov/codecov-action + dependency-type: direct:production + update-type: version-update:semver-major +... + +Signed-off-by: dependabot[bot] +- Merge pull request #151 from pysmo/dependabot/github_actions/codecov/codecov-action-4 + +Bump codecov/codecov-action from 3 to 4 +- Bump actions/checkout from 3 to 4 + +Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. +- [Release notes](https://github.com/actions/checkout/releases) +- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) +- [Commits](https://github.com/actions/checkout/compare/v3...v4) + +--- +updated-dependencies: +- dependency-name: actions/checkout + dependency-type: direct:production + update-type: version-update:semver-major +... + +Signed-off-by: dependabot[bot] +- Merge pull request #153 from pysmo/dependabot/github_actions/actions/checkout-4 + +Bump actions/checkout from 3 to 4 +- Merge pull request #155 from pysmo/fix-artifactsV4 + +ci: artifact@v4 +- Merge pull request #156 from pysmo/data-list + +feat: list data +- Merge pull request #159 from pysmo/parameter-tables + +feat: add parameters to data +- Merge pull request #162 from pysmo/snapshots + +feat: add parameter snapshots +- Merge pull request #163 from pysmo/docs-data + +docs: update data section +- Merge pull request #164 from pysmo/utils-plotseis + +feat: add plotseis +- Merge pull request #166 from pysmo/icecream + +feat: add icecream to print debug information +- Merge pull request #169 from pysmo/event-select + +feat: add event select function and cli command +- Bump codecov/codecov-action from 4 to 5 + +Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5. +- [Release notes](https://github.com/codecov/codecov-action/releases) +- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) +- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5) + +--- +updated-dependencies: +- dependency-name: codecov/codecov-action + dependency-type: direct:production + update-type: version-update:semver-major +... + +Signed-off-by: dependabot[bot] +- Merge pull request #167 from pysmo/dependabot/github_actions/codecov/codecov-action-5 + +Bump codecov/codecov-action from 4 to 5 +- Split lib and cli files to speed up cli ([#170](https://github.com/pysmo/aimbat/issues/170)) +- Merge pull request #173 from pysmo/feat-filter-tables + +feat: print table data for active events by default +- Merge pull request #174 from pysmo/feat-rollback + +feat: add snapshot rollback +- Move AimbatDefaults class to other models and rename some things. +- Merge pull request #175 from pysmo/move-defaults + +refactor: move AimbatDefaults class to other models and rename some tโ€ฆ +- Save active event in a single row table +- Merge pull request #176 from pysmo/active-event-table + +refactor: save active event in a single row table +- Add test data for 3 events instead of just a single sac file +- Merge pull request #177 from pysmo/test-data + +test: add test data for 3 events instead of just a single sac file +- Move defaults directly to model instead of the yaml nonsense +- Merge pull request #178 from pysmo/simplify-defaults + +refactor: move defaults directly to model instead of the yaml nonsense +- Merge pull request #179 from pysmo/more-enums + +feat: add enum types for Event and Seismogram parameters +- Switch to uv +- Merge pull request #186 from pysmo/switch-to-uv + +chore: switch to uv +- Merge pull request #187 from pysmo/plot-cmd + +feat: add plot command group +- Merge pull request #188 from pysmo/iccs-tw-pick + +feat: add time window picker +- Add logging ([#189](https://github.com/pysmo/aimbat/issues/189)) + +* feat: Add logging + +* format tutorial + +* add logging to checkdata + +* remove unused import +- Rename some commands to group them a bit better +- Merge pull request #191 from pysmo/rename-commands + +refactor: rename some commands to group them a bit better +- Use more classes for tests ([#192](https://github.com/pysmo/aimbat/issues/192)) +- Rely on pydantic for validation instead of doing it manually ([#193](https://github.com/pysmo/aimbat/issues/193)) +- Merge pull request #194 from pysmo/iccs-select-ccnorm + +feat: add iccs ccnorm selector +- Update to new pysmo names +- Merge pull request #195 from pysmo/iccs-select-ccnorm + +chore: update to new pysmo names +- Merge pull request #196 from pysmo/active-event-db-trigger + +feat: use a trigger to ensure only one event can be active +- Use uuid as datbase id instead of int +- Merge pull request #197 from pysmo/uuid-keys + +refactor: use uuid as datbase id instead of int +- Merge pull request #198 from pysmo/update-iccs-options + +feat: update cli and lib to use new iccs options +- Use window_pre and window_post as defaults instead of the whole timewindow +- Merge pull request #199 from pysmo/window-defaults + +refactor: use window_pre and window_post as defaults instead of the wโ€ฆ +- Merge pull request #200 from pysmo/fix-uuid-when-none-available + +fix: listing snapshots when there were non causes error +- Merge pull request #201 from pysmo/feat-delete-items + +feat: add ability to delete seismograms, events, and stations from prโ€ฆ +- Better relationships between tables +- Merge pull request #202 from pysmo/reverse-data-dep + +refactor: better relationships between tables +- Use env vars for defaults +- Merge pull request #203 from pysmo/dotenv + +refactor: use env vars for defaults +- Merge pull request #204 from pysmo/pydantic-settings + +feat: use pydantic-settings +- Single uuid function for all classes +- Merge pull request #205 from pysmo/single-uuid-func + +refactor: single uuid function for all classes +- Make data reading more modular +- Merge pull request #206 from pysmo/datasource + +refactor: make data reading more modular +- Merge pull request #207 from pysmo/feat-dump + +feat: add dump option to main tables +- Merge pull request #208 from pysmo/short-exceptions + +feat: add simple errors to cli +- Merge pull request #209 from pysmo/asciinema + +docs: add asciinema +- Merge pull request #210 from pysmo/station-loc-channel + +feat: use channel and location in station table +- Merge pull request #211 from pysmo/feat-use-pysmo-iccs-defaults + +feat: use pysmo defaults for ICCS +- Move aimbat source to src directory +- Merge pull request #212 from pysmo/mv-src + +refactor: move aimbat source to src directory + +### ๐Ÿš€ New Features + +- Initial checks in checkdata lib +- Add-data to project +- List data +- Add parameters to data +- Add parameter snapshots +- Add plotseis +- Add pyqtgraph plot option ([#165](https://github.com/pysmo/aimbat/issues/165)) +- Add icecream to print debug information +- Add event select function and cli command +- Switch to typer ([#172](https://github.com/pysmo/aimbat/issues/172)) +- Print table data for active events by default +- Add snapshot rollback +- Add enum types for Event and Seismogram parameters +- Add initial iccs functionality ([#185](https://github.com/pysmo/aimbat/issues/185)) +- Add plot command group +- Add time window picker +- Add iccs ccnorm selector +- Use a trigger to ensure only one event can be active +- Update cli and lib to use new iccs options +- Add ability to delete seismograms, events, and stations from project +- Use pydantic-settings +- Add dump option to main tables +- Add simple errors to cli +- Use channel and location in station table +- Use pysmo defaults for ICCS + diff --git a/Makefile b/Makefile index c4925a81..9a414845 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -.PHONY: help check-uv install upgrade lint test-figs test-tutorial tests \ - mypy docs docs-export live-docs notebook build publish clean python \ - format format-check +.PHONY: help check-uv sync upgrade lint test-figs tests \ + mypy docs live-docs build publish clean python \ + format format-check changelog ifeq ($(OS),Windows_NT) UV_VERSION := $(shell uv --version 2> NUL) @@ -24,7 +24,7 @@ else endif sync: check-uv ## Install this project and its dependencies in a virtual environment. - uv sync + uv sync --locked --all-extras upgrade: check-uv ## Upgrade dependencies to their latest versions. uv sync --upgrade @@ -33,31 +33,25 @@ lint: check-uv ## Check formatting with black and lint code with ruff. uv run black . --check --diff --color uv run ruff check . -test-figs: check-uv ## Generate baseline figures for testing. +test-figs: check-uv ## Generate baseline figures for testing (then manually move them to the test directories). uv run py.test --mpl-generate-path=baseline -test-tutorial: check-uv ## Check if the tutorial notebook runs error-free. - uv run py.test --nbmake docs/examples/tutorial.ipynb - -tests: check-uv mypy test-tutorial ## Run all tests with pytest. - uv run pytest --cov-report=term-missing --cov-report=html --mpl +tests: check-uv mypy ## Run all tests with pytest. + uv run pytest --cov --cov-report=term-missing --cov-report=html --mpl mypy: check-uv ## Run typing tests with pytest. uv run pytest --mypy -m mypy src tests -docs: check-uv install ## Build html docs. - uv run mkdocs build - -docs-export: check-uv install ## Export installed package information to docs/requirements.txt. - uv export --only=docs -o docs/requirements.txt - -live-docs: check-uv install ## Live build html docs. They are served on http://localhost:8000 - uv run mkdocs serve -w README.md -w src +docs: check-uv sync ## Build html docs. + uv run zensical build --clean -notebook: check-uv install ## Run a jupyter notebook in the uv environment - uv run jupyter-lab +live-docs: check-uv sync ## Live build html docs. They are served on http://localhost:8000 + uv run zensical serve -build: clean check-uv install ## Build distribution. +changelog: check-uv sync ## Generate CHANGELOG.md + uv run git-cliff v1.0.7..HEAD --config cliff.toml --output CHANGELOG.md + +build: clean check-uv sync ## Build distribution. uv build publish: check-uv build ## Publish package to PyPI (you will be asked for PyPI username and password). diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..80cf50c7 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,56 @@ +# cliff.toml + +[changelog] +header = """ +# Changelog + +All notable changes to the **AIMBAT** project will be documented in this file. + +""" + +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [Unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | upper_first }} + {% for commit in commits %} + - {% if commit.scope %}**({{ commit.scope }})** {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }}\ + {% endfor %} +{% endfor %}\n +""" + +trim = true + +[git] +conventional_commits = true +filter_unconventional = false +split_commits = false + +commit_preprocessors = [ + { pattern = '\r', replace = "" }, + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/pysmo/aimbat/issues/${2}))" }, +] + +# The categorization logic +commit_parsers = [ + { message = "^feat", group = "๐Ÿš€ New Features" }, + { message = "^fix", group = "๐Ÿ› Bug Fixes" }, + { message = "^perf", group = "โšก Performance Improvements" }, + { message = "^docs", group = "๐Ÿ“š Documentation" }, + { message = "^ci|^build", group = "โš™๏ธ DevOps & Infrastructure" }, + { message = ".*uv.lock", group = "โš™๏ธ DevOps & Infrastructure" }, + { message = ".*", group = "๐Ÿ” Other Changes" }, +] + +protect_breaking_commits = false +filter_commits = false +# Sort order +tag_pattern = "v[0-9].*" +skip_tags = "beta|alpha" +ignore_tags = "" +sort_commits = "oldest" diff --git a/docs/reference/cli.md b/docs/api/cli.md similarity index 100% rename from docs/reference/cli.md rename to docs/api/cli.md diff --git a/docs/reference/index.md b/docs/api/index.md similarity index 100% rename from docs/reference/index.md rename to docs/api/index.md diff --git a/docs/reference/lib.md b/docs/api/lib.md similarity index 100% rename from docs/reference/lib.md rename to docs/api/lib.md diff --git a/changelog.md b/docs/changelog-v1.md similarity index 79% rename from changelog.md rename to docs/changelog-v1.md index 5531ee68..67c65dda 100644 --- a/changelog.md +++ b/docs/changelog-v1.md @@ -1,131 +1,129 @@ -Changelog -========= - - aimbat-v1.0.7 ------------- + Sep 6, 2021 * Bug fixes. - aimbat-v1.0.5 ------------- + Aug 18, 2019 Main contributor: smlloyd, xlougeo. -* Lots of code clean and restructure, including src, docs, and tests. +* Lots of code clean and restructure, including src, docs, and tests. * Package installation: make fortran optional, update dependencis, update travis, setup pipenv. * Update documentation. * Bug fixes. - aimbat-v1.0.4 ------------- + Dec 23, 2018 * Add SAC P1 Button to the main GUI * Plot only a subset of traces for faster data QC and (de)selection. All labels are plotted. Add a button to plot more traces - aimbat-v1.0.3 ------------- + Dec 7, 2018 * Some GUI setting changes - aimbat-v1.0.2 ------------- + Dec 5, 2018 * Add option to plot simple delay time map by matplotlib.pyplot - aimbat-v1.0.1 ------------- + Dec 4, 2018 * Fix bugs in changing trace selection status (QC), manual phase picking, and trace label. * Change in GUI settings. Using right button dragging is enough and give up on QScrollArea. * In cross-correlation, do not allow reverse polarity which causes cycle skipping too often. - aimbat-v1.0.0 ------------- + Dec 3, 2018 Main contributor: smlloyd: * Use new pysmo.core.sac.SacIO (pysmo-pysmo-v0.7.0) instead of pysmo.sac.sacio.SacFile * New setup.py: - * Wrap all scripts into a callable function and add them to entry_point, e.g., aimbat-ttpick is automatically generated in your bin folder. - * Use git commit/tag to determine version automatically. - * Setup travis + * Wrap all scripts into a callable function and add them to entry_point, e.g., aimbat-ttpick is automatically generated in your bin folder. + * Use git commit/tag to determine version automatically. + * Setup travis * Package uploaded to pypi.org for each release since this. Main contributor: xlougeo, ASankaran: * SAC plotting and aimbat-ttpick are still using Matplotlib GUI. * New GUI (aimbat-qttpick) using pyqtgraph for fast plotting. Similar user interactions as v0.3: - * Key pressed event handler in pyqtgraph is redefined - * Use mouse to change time window and press key 'w' to set <-- work on stack only - * Press key 't[0-9]' to set time picks like SAC PPK <-- work on both stack and traces - * Mouse click on waveform to change trace selection status <-- work on trace only + * Key pressed event handler in pyqtgraph is redefined + * Use mouse to change time window and press key 'w' to set <-- work on stack only + * Press key 't[0-9]' to set time picks like SAC PPK <-- work on both stack and traces + * Mouse click on waveform to change trace selection status <-- work on trace only * Better separation between data and plot. * Filter and sort are both in the main GUI controlled by a parameter tree. - aimbat-v0.3-alpha1 ------------------ + June 3, 2018 Main contributor: xlougeo * Upgrade to python3 (May not back-compatible with python2). No change in functionalities from v0.2. - aimbat-v0.2 ----------- + Main contributor: lkloh - + For changes made between Dec 19, 2012 (v0.1.2) and Aug 23, 2016: -* Added a warning button if you hit ICCS-A or ICCS-B button, to make sure do did not hit it by accident. +* Added a warning button if you hit ICCS-A or ICCS-B button, to make sure do did not hit it by accident. * Hitting one of those buttons will undo all the work you did in manually picking arrival times. -* Added a button to allow you to jump to the front page. Note that hitting MCCC again will do just that. +* Added a button to allow you to jump to the front page. Note that hitting MCCC again will do just that. * Added a summary of the event at the top right hand corner: Magnitude, Location, Depth * Added a GUI to allow sorting of the seismograms according to header, time difference, file name, ... * Added a button to return to original screen after you zoom in/out - aimbat-0.1.2 ------------ + Dec 19, 2012 Main contributor: xlougeo * Change sci format for scientific notation of sacp2: from 1e-5 to 10^{-5} * Change font properties for station label to "monospace" for equal width -* Minor changes in program descriptions, example scripts +* Minor changes in program descriptions, example scripts * Further code development on github.com after this version. aimbat-0.1.1 ------------ + Sep 27, 2012 Main contributor: xlougeo -* Change setup.py and package directory: modules --> src/pysmo/aimbat. -* AIMBAT becomes a part of pysmo (https://github.com/pysmo/aimbat). +* Change setup.py and package directory: modules --> src/pysmo/aimbat. +* AIMBAT becomes a part of pysmo (). * Python usage: import aimbat --> from pysmo import aimbat * Minor changes in help messages for scripts using the OptionParser module. * Adjust figsize-related function of ttpick.py to support backends other than Tk. - aimbat-0.1 ---------- + Sep 19, 2012 Main contributor: xlougeo diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..8f5641b3 --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,3 @@ +--8<-- "CHANGELOG.md" + +--8<-- "docs/changelog-v1.md" diff --git a/docs/user-guide/contributors.md b/docs/contributors.md similarity index 100% rename from docs/user-guide/contributors.md rename to docs/contributors.md diff --git a/docs/examples/tutorial.ipynb b/docs/examples/tutorial.ipynb deleted file mode 100644 index e3b6d051..00000000 --- a/docs/examples/tutorial.ipynb +++ /dev/null @@ -1,283 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "a3826095-17c5-4d0a-895c-507a522993b8", - "metadata": {}, - "source": [ - "# Jupyter Notebook" - ] - }, - { - "cell_type": "markdown", - "id": "09851381-6996-48f6-9172-031d31826ffa", - "metadata": {}, - "source": [ - "## Prerequisites\n", - "\n", - "AIMBAT can run in a Jupyter Notebook. However, as AIMBAT uses interactive GUI elements, we must specify\n", - "that we want those to open inside the notebook rather than independant windows. For matplotlib this is\n", - "done by using the Ipython magic command :" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "d02e153b-2ac2-4d47-86cf-a81d216ead75", - "metadata": { - "jupyter": { - "is_executing": true - } - }, - "outputs": [], - "source": [ - "%matplotlib widget" - ] - }, - { - "cell_type": "markdown", - "id": "dfe9f0d4-c34e-4654-904d-9a13ffc8ac9f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Environment Setup\n", - "\n", - "For this example project we create a temporary directory to store seismogram data, and a temporary file to store the aimbat project." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "41f45d85-10c4-404a-b97b-dfbea667f201", - "metadata": {}, - "outputs": [], - "source": [ - "import tempfile\n", - "import os\n", - "\n", - "example_project = tempfile.mktemp(prefix=\"aimbat_project_\", suffix=\".db\")\n", - "sampledata_directory = tempfile.mkdtemp(prefix=\"aimbat_sample_data_\")\n", - "os.environ[\"AIMBAT_PROJECT\"] = example_project\n", - "os.environ[\"AIMBAT_SAMPLEDATA_DIR\"] = sampledata_directory" - ] - }, - { - "cell_type": "markdown", - "id": "20e404a3-8a7a-4190-8b2e-c634820888aa", - "metadata": {}, - "source": [ - "
\n", - "

Note

\n", - "

\n", - " By default, all AIMBAT commands assume the project a file called \"aimbat.db\" in the current directory. Here we override that behavior by settings\n", - "

\n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "7642b2e5-7baa-45f4-ae94-767e49f85db5", - "metadata": {}, - "source": [ - "## Create a new Project" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "33b378f1-cf7a-41f0-a3ec-934da5f6287e", - "metadata": { - "jupyter": { - "is_executing": true - } - }, - "outputs": [], - "source": [ - "from aimbat.lib.project import create_project, delete_project" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "a84a0ac6-dd6e-4d62-b0ff-f3a84fa80f10", - "metadata": {}, - "outputs": [], - "source": [ - "create_project()" - ] - }, - { - "cell_type": "markdown", - "id": "68afdc5a-ba07-4e3b-95a3-134e31eaef48", - "metadata": {}, - "source": [ - "Creating an AIMBAT project creates a new sqlite file to store filepaths and processing data in. This also includes some defaults (which can be set on a per project basis too). To use this sqlite database we import the \"engine\" that points towards it:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "fb76e18e-8835-42f5-9eeb-86b30922aace", - "metadata": {}, - "outputs": [], - "source": [ - "from aimbat.lib.db import engine" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "2e42f65e-31d0-4c06-93ed-bee3881b8345", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Downloaded 163 files\n" - ] - } - ], - "source": [ - "from aimbat.lib.utils.sampledata import download_sampledata, delete_sampledata\n", - "from glob import glob\n", - "\n", - "download_sampledata()\n", - "sacfiles = glob(sampledata_directory + \"/**/*.BHZ\", recursive=True)\n", - "print(f\"Downloaded {len(sacfiles)} files\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "866c907c-8a12-4b5d-a184-bb3d0a86de36", - "metadata": {}, - "outputs": [], - "source": [ - "from aimbat.lib.data import add_files_to_project\n", - "from aimbat.lib.io import DataType\n", - "\n", - "add_files_to_project(sacfiles, DataType.SAC)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "265dec77-3f6f-42c1-8e38-e70470cb93d6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
                                                   AIMBAT Events                                                   \n",
-       "โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\n",
-       "โ”‚                โ”‚        โ”‚                     โ”‚          โ”‚           โ”‚        โ”‚          โ”‚     #     โ”‚    #     โ”‚\n",
-       "โ”‚ id (shortened) โ”‚ Active โ”‚     Date & Time     โ”‚ Latitude โ”‚ Longitude โ”‚ Depth  โ”‚ Completโ€ฆ โ”‚ Seismogrโ€ฆ โ”‚ Stations โ”‚\n",
-       "โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\n",
-       "โ”‚       c6       โ”‚        โ”‚ 2011-09-15 19:31:04 โ”‚ -21.611  โ”‚ -179.528  โ”‚ 644600 โ”‚  False   โ”‚    163    โ”‚   163    โ”‚\n",
-       "โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n",
-       "
\n" - ], - "text/plain": [ - "\u001b[3m AIMBAT Events \u001b[0m\n", - "\u001b[2mโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\u001b[0m\n", - "\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1m # \u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1m # \u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\n", - "\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mid (shortened)\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mActive\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1m Date & Time \u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mLatitude\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mLongitude\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mDepth \u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mCompletโ€ฆ\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mSeismogrโ€ฆ\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[1m \u001b[0m\u001b[1mStations\u001b[0m\u001b[1m \u001b[0m\u001b[2mโ”‚\u001b[0m\n", - "\u001b[2mโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\u001b[0m\n", - "\u001b[2mโ”‚\u001b[0m\u001b[36m \u001b[0m\u001b[36m c6 \u001b[0m\u001b[36m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[36m \u001b[0m\u001b[36m2011-09-15 19:31:04\u001b[0m\u001b[36m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[35m \u001b[0m\u001b[35m-21.611 \u001b[0m\u001b[35m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[35m \u001b[0m\u001b[35m-179.528 \u001b[0m\u001b[35m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[35m \u001b[0m\u001b[35m644600\u001b[0m\u001b[35m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[32m \u001b[0m\u001b[32m False \u001b[0m\u001b[32m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[32m \u001b[0m\u001b[32m 163 \u001b[0m\u001b[32m \u001b[0m\u001b[2mโ”‚\u001b[0m\u001b[32m \u001b[0m\u001b[32m 163 \u001b[0m\u001b[32m \u001b[0m\u001b[2mโ”‚\u001b[0m\n", - "\u001b[2mโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from aimbat.lib.seismogram import plot_seismograms\n", - "from aimbat.lib.models import AimbatEvent\n", - "from aimbat.lib.event import print_event_table, set_active_event\n", - "\n", - "print_event_table()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "423ebdbf-5795-4d0b-8055-8eab9966a21c", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "eabaaf03cbfb42b3b2efe8859422a37e", - "version_major": 2, - "version_minor": 0 - }, - "image/png": "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na6urn6fUx/XX389119/PUuWLBnw2UokEmkBlEg+cVRV5ayzzuLxxx/nrrvuwrKsATN7zznnHBoaGrjtttsG3J9Op0kmk3udbzAYBNjjlUCam5s5/vjjUVWVZ599dpfiZOLEiYwbN47/+7//w7btfPgtt9yCoij9Jox82Ph8Po499th+W2FhIeBaqmzb7ufIOZvNcvvttzNnzpzddiGm02muueYaKisr87OnCwsLB+TVN0ZtT4nH4wO6OoUQXHvttQCccMIJe5Xe3nLTTTfR1NTEt771rX7hg7lmeW/Xeh9/+9vfUBSFGTNmfKAyDJbXpz/9aQzD4M9//nM+TAjBrbfeSnV1dX6869e//nUefvjhfttf/vIXwHX6/fDDDw/qiF0ikUgLoETykfL000+zdu3aAeGHHHIII0aMyJ+fe+653HzzzfzkJz9h8uTJA9xffP7zn+eBBx7gK1/5Ci+//DKHHnootm2zdu1aHnjgAZ599tndjjUcjJkzZwLuigvnnXcehmFw6qmn5oXheznxxBPZvHkz3/3ud3njjTd444038tfKy8s57rjj8ue/+tWvOO200zj++OM577zzWLlyJX/84x+59NJLBzxbn9hZtWoVAHfddVc+7R/96Ef5eMuXL+exxx4DYOPGjcRisfy9U6dO5dRTT93t886ZM4ezzz6bq6++mtbWVkaNGsWdd97J1q1bB0zEOOecc6iqqmLChAnE43H+/ve/s3nzZp588sk99m+3J8+1ePFizj//fM4//3xGjRpFOp3m4Ycf5s033+Syyy7bI1H1+OOPs2zZMsD1Lbl8+fJ83qeddhpTpkwB4O677+Zf//oX8+bNIxQK8cILL/DAAw9w6aWX5sc69nH11Vdz5513smXLlvwM8euuu44333yTE088kaFDh9LZ2cm//vUvFi5cyNe+9rV+XcixWIybb74ZID/z+I9//CPRaJRoNMqVV16527xqamq46qqr+NWvfoVpmhx00EE88sgjvP766/zzn//MD3GYMWPGgHfUNwt44sSJnH766e/7/iSSA5ZP0Am1RPJfS99KILvabr/99n7xHccRQ4YMEYC49tprB00zl8uJG264QUycOFF4vV5RWFgoZs6cKX72s5+JWCyWjwf0W0Ghj9ra2gGrRPz85z8X1dXVQlXV912tYXfPc8QRRwyI//DDD4tp06YJr9cr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", - "text/html": [ - "\n", - "
\n", - "
\n", - " Figure\n", - "
\n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous โ€ฆ" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from sqlmodel import Session, select\n", - "\n", - "with Session(engine) as session:\n", - " set_active_event(session, session.exec(select(AimbatEvent)).one())\n", - "plot_seismograms()\n", - "delete_sampledata()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "bdc56cd3-9e6a-47ae-8f81-9631c8281f39", - "metadata": {}, - "outputs": [], - "source": [ - "delete_project()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/user-guide/help.md b/docs/help.md similarity index 100% rename from docs/user-guide/help.md rename to docs/help.md diff --git a/docs/source/Lou_etal_2013_SRL_AIMBAT.pdf b/docs/source/Lou_etal_2013_SRL_AIMBAT.pdf deleted file mode 100644 index 9bf5c4d9..00000000 Binary files a/docs/source/Lou_etal_2013_SRL_AIMBAT.pdf and /dev/null differ diff --git a/docs/source/NU_Logo_purple.jpg b/docs/source/NU_Logo_purple.jpg deleted file mode 100644 index 187d4d02..00000000 Binary files a/docs/source/NU_Logo_purple.jpg and /dev/null differ diff --git a/docs/source/_static/additional_styles.css b/docs/source/_static/additional_styles.css deleted file mode 100644 index 663690ac..00000000 --- a/docs/source/_static/additional_styles.css +++ /dev/null @@ -1,13 +0,0 @@ -h1, h2, h3 { - color: rgba(124,11,149,1); -} - -.wy-side-nav-search { - background-color: #520063; -} - -div[role='main'] img { - display: block; - margin-right: auto; - margin-left: auto; -} \ No newline at end of file diff --git a/docs/source/_templates/page.html b/docs/source/_templates/page.html deleted file mode 100644 index 00544445..00000000 --- a/docs/source/_templates/page.html +++ /dev/null @@ -1,3 +0,0 @@ -{% extends "!page.html" %} - -{% set css_files = css_files + ["_static/additional_styles.css"] %} \ No newline at end of file diff --git a/docs/source/aimbat.rst b/docs/source/aimbat.rst deleted file mode 100644 index ba12de5a..00000000 --- a/docs/source/aimbat.rst +++ /dev/null @@ -1,147 +0,0 @@ -AIMBAT package -============== - -Submodules ----------- - -algiccs.py -~~~~~~~~~~ - -.. automodule:: pysmo.aimbat - :members: - :undoc-members: - :show-inheritance: - - -algmccc.py -~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.algmccc - :members: - :undoc-members: - :show-inheritance: - - -filtering.py -~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.filtering - :members: - :undoc-members: - - -pickphase.py -~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.pickphase - :members: - :undoc-members: - :show-inheritance: - - -plotphase.py -~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.plotphase - :members: - :undoc-members: - :show-inheritance: - - -plotstations.py -~~~~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.plotstations - :members: - :undoc-members: - :show-inheritance: - - -plotutils.py -~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.plotutils - :members: - :undoc-members: - :show-inheritance: - - -prepdata.py -~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.prepdata - :members: - :undoc-members: - :show-inheritance: - - -prepplot.py -~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.prepplot - :members: - :undoc-members: - :show-inheritance: - - -qualctrl.py -~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.qualctrl - :members: - :undoc-members: - :show-inheritance: - - -qualsort.py -~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.qualsort - :members: - :undoc-members: - :show-inheritance: - - -sacpickle.py -~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.sacpickle - :members: - :undoc-members: - :show-inheritance: - - -stationmapping.py -~~~~~~~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.stationmapping - :members: - :undoc-members: - :show-inheritance: - - -ttconfig.py -~~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.ttconfig - :members: - :undoc-members: - :show-inheritance: - - -ttguiqt.py -~~~~~~~~~~ - -.. automodule:: pysmo.aimbat.ttguiqt - :members: - :undoc-members: - :show-inheritance: - - -xcorr.py -~~~~~~~~ - -.. automodule:: pysmo.aimbat.xcorr - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/archive/gettingData.rst b/docs/source/archive/gettingData.rst deleted file mode 100644 index 81d8c50c..00000000 --- a/docs/source/archive/gettingData.rst +++ /dev/null @@ -1,117 +0,0 @@ -============ -Getting Data -============ - -Note: Not necessary if you already have your own set ways of obtaining data. This section is added for completeness. - -There are several ways to obtain seismic data from `IRIS `_ to input into AIMBAT. The authors used two ways to do it, and a further list of libraries for obtaining seismic data is provided in the sidebars `here `_. - -.. ############################################################################ .. -.. # OBSPY CLIENT FDSN # .. -.. ############################################################################ .. - -Obspy.fdsn for downloading data -------------------------------- - -Installing Obspy -~~~~~~~~~~~~~~~~ - -We recommend using Macports to install Obspy as detailed in the `Installation` section `here `_. If you have installed Enthought Canopy:: - - sudo port install py27-obspy - -should install Obspy. If not, installing it with `Homebrew `_ also seems to work. - -Did the installation work? -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If the installation has worked, `close the terminal` you used to install Obspy on, and then open it again. Now, open the Python terminal in a new terminal by typing ``python``, and type:: - - import obspy - -If there are no errors, your installation has worked. - -Using Obspy -~~~~~~~~~~~ - -Use the `Obspy FDSN `_ web service client for Obspy in Python. Once you have done so, check out the `SAC-Input Output `_ libraries for loading the data to Python and saving it as SAC or Pickle files. - - -.. ############################################################################ .. -.. # OBSPY CLIENT FDSN # .. -.. ############################################################################ .. - - - - - - - - -.. ############################################################################ .. -.. # STANDING ORDER FOR DATA # .. -.. ############################################################################ .. - -Standing Order for Data ------------------------ - -Note: NOT needed for AIMBAT, but important to know about as it is a commonly used package for downloading seismic data with the user's specifications. Although Obspy also offers ways to download seismic data from IRIS, SOD allows for better fine-tuning of obtained data. - -From the `SOD `_ website: - - Standing Order for Data is a framework to define rules to select seismic events, stations, and data. It then allows you to apply processing to the events, stations, and data and currently contains a large set of rules that allow you to select with great precision in these items. The processes mainly consist of simple data transformation and retrieval, but SOD defines hooks to allow you to cleanly insert your own processing steps, either written in Java or an external program. - -Installing SOD -~~~~~~~~~~~~~~ - -First, download `SOD `_. - -Once you have gotten the folder for SOD, put it somewhere where you won't touch it too much. What I did was put the SOD folder in my home directory, though other places are acceptable as well, as long as it is not too easy to delete it by accident. - -.. image:: images/sod_location.png - -Once you have it there, get the path to the sod folder's bin and put it in your path folder. - -.. image:: images/path_to_sod_bin.png - -Inside your home directory (you get there by typing `cd`), put the path to `sod-3.2.3/bin` by adding it to either the `.bashrc`, `.bash_profile`, or `.profile` files. - -Example SOD recipe -~~~~~~~~~~~~~~~~~~ - -Inside the repository `data-example `_, there is a folder `sod_requests`. The file within it called `sod_request.xml`, which is available `here `_, is an example of a sod request recipe that will download data from IRIS. To run it, cd into the folder containing `sod_request.xml` and do:: - - sod sod_request.xml - -Downloading the data (output as SAC files) may take a while. This receipt filters the data, and outputs the folders `processedSeismograms` and `seismograms`, which contain the filtered and unfiltered data. - - - -.. ############################################################################ .. -.. # STANDING ORDER FOR DATA # .. -.. ############################################################################ .. - - - - - - - -.. ############################################################################ .. -.. # WILBER3 # .. -.. ############################################################################ .. - -Wilber ------- - -Another resource for downloading SAC data is Wilber, created by IRIS (Incorporated Research Institutions for Seismology) and located at their website `here `_ (manual located `here `_). When selecting which events or stations to study, keep in mind that distances between 30 and 90 degrees will result in the best data when studying P waves. - -For P waves, select the BHZ (vertical) channel, and for S waves select the other two BH- channels for a given station (usually BH1/BH2 or BHE/BHN). Make sure to choose appropriate time windows for the type of wave you are studying when prompted. - -After downloading SAC data from Wilber, the theoretical arrival times for each SAC file must be added. One way to do this is using taup_setsac, which is part of the TauP software package available `here `_. - - - -.. ############################################################################ .. -.. # WILBER3 # .. -.. ############################################################################ .. diff --git a/docs/source/archive/updatingThisManual.rst b/docs/source/archive/updatingThisManual.rst deleted file mode 100644 index a4f0a1cc..00000000 --- a/docs/source/archive/updatingThisManual.rst +++ /dev/null @@ -1,29 +0,0 @@ -==================== -Updating this manual -==================== - -This is for someone who wants to be a collaborator on AIMBAT only. This is NOT necessary for anyone who only wants to use AIMBAT. AIMBAT will work fine if you do not install the dependencies listed here. - -To be able to update the manual, download the `source code `_ from Github, and install the dependencies. - -Dependencies ------------- - -* `Sphinx `_. Download and install from `here `_. Don't get the Python Wheel version unless you know what you are doing - -* `LaTeX`. Download it from `here `_. Get the package installer. - -* A browser. But if you are reading this, you already have it. - -How to update this manual -------------------------- - -On the master branch, cd into the github repository `aimbat-docs ` and run:: - - sphinx-build -b html . builddir - make html - make latexpdf - -The first two commands build the html for the webpage, while the last command makes a pdf version of the online documentation. - -Now, commit the changes made in GitHub, and push the changes to the master branch. The changes should be visible in the documentation within a few minutes. diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst deleted file mode 100644 index b1b47ab6..00000000 --- a/docs/source/changelog.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../Changelog.rst diff --git a/docs/source/citations.rst b/docs/source/citations.rst deleted file mode 100644 index 4d1aecd7..00000000 --- a/docs/source/citations.rst +++ /dev/null @@ -1,13 +0,0 @@ -========= -Citations -========= - -.. [GoldsteinDodge2003] Goldstein, P., D. Dodge, M. Firpo, and L. Minner (2003), SAC2000: Signal processing and analysis tools for seismologists and engineers, International Geophysics, 81, 1613โ€“1614. - -.. [Hunter2007] Hunter, J. (2007), Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, 3(9), 90โ€“95. - -.. [LouVanDerLeeLloyd2013] AIMBAT: A Python/Matplotlib Tool for Measuring Teleseismic Arrival Times. Xiaoting Lou, Suzan van der Lee, and Simon Lloyd (2013), Seismol. Res. Lett., 84(1), 85-93, doi:10.1785/0220120033. - -.. [VanDecarCrosson1990] VanDecar, J. C., and R. S. Crosson (1990), Determination of teleseismic relative phase arrival times using multi-channel cross-correlation and least squares, Bulletin of the Seismological Society of America, 80(1), 150โ€“169. - -.. [BulandChapman1983] Ray Buland and C. H. Chapman (1983), The Computation of Seismic Travel Times, Bulletin of the Seismological Society of America, 73(5), 1271-1302. diff --git a/docs/source/conf.py b/docs/source/conf.py deleted file mode 100644 index 955b25db..00000000 --- a/docs/source/conf.py +++ /dev/null @@ -1,186 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import sys -from importlib import reload -import pkg_resources - -pkg_resources = reload( - pkg_resources -) # This seems to be required to pick up the path defined above... -sys.path.insert(0, os.path.abspath("../..")) - - -# -- Project information ----------------------------------------------------- - - -project = "Pysmo" -copyright = "2019, Pysmo Project" -author = "Pysmo Project" - -# The full version, including alpha/beta/rc tags -release = pkg_resources.get_distribution("pysmo.aimbat").version - -# The short X.Y version -version = ".".join(release.split(".")[:2]) - -# -- General configuration --------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.doctest", - "sphinx.ext.coverage", - "sphinx.ext.mathjax", - "sphinx.ext.githubpages", - "sphinx.ext.autosectionlabel", - "sphinx.ext.napoleon", -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = ".rst" - -# The master toctree document. -master_doc = "index" - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path . -exclude_patterns = [] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = "sphinx_rtd_theme" - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -# html_sidebars = {} - -html_logo = "NU_Logo_purple.jpg" - -# -- Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = "AIMBATdoc" - - -# -- Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ( - "index", - "AIMBAT.tex", - "AIMBAT Documentation", - "Lay Kuan Loh, Xiaoting Lou, & Suzan van der Lee", - "manual", - ), -] - - -# -- Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ( - "index", - "aimbat", - "AIMBAT Documentation", - ["Lay Kuan Loh, Xiaoting Lou, & Suzan van der Lee"], - 1, - ) -] - - -# -- Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - "index", - "AIMBAT", - "AIMBAT Documentation", - "Lay Kuan Loh, Xiaoting Lou, & Suzan van der Lee", - "AIMBAT", - "Automating selection of travel wave arrival times", - "Miscellaneous", - ), -] - - -# -- Extension configuration ------------------------------------------------- diff --git a/docs/source/credits.rst b/docs/source/credits.rst deleted file mode 100644 index e2f0e1c0..00000000 --- a/docs/source/credits.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../CREDITS.rst diff --git a/docs/source/developing.rst b/docs/source/developing.rst deleted file mode 100644 index 4e468754..00000000 --- a/docs/source/developing.rst +++ /dev/null @@ -1,7 +0,0 @@ -================= -Developing AIMBAT -================= - -For setting up an environment for development of aimbat AIMBAT please follow the instructions on the `pysmo development `_ page. - -.. caution:: Please adjust the URLs from `github.com:pysmo/pysmo.git` to `github.com:pysmo/aimbat.git`! diff --git a/docs/source/images/SACP2_popup.png b/docs/source/images/SACP2_popup.png deleted file mode 100644 index 41d8c9eb..00000000 Binary files a/docs/source/images/SACP2_popup.png and /dev/null differ diff --git a/docs/source/images/after-refine-reduced-time-window.png b/docs/source/images/after-refine-reduced-time-window.png deleted file mode 100644 index a5b4e70e..00000000 Binary files a/docs/source/images/after-refine-reduced-time-window.png and /dev/null differ diff --git a/docs/source/images/align_seismogram.png b/docs/source/images/align_seismogram.png deleted file mode 100644 index 7bb7b431..00000000 Binary files a/docs/source/images/align_seismogram.png and /dev/null differ diff --git a/docs/source/images/applications_canopy.png b/docs/source/images/applications_canopy.png deleted file mode 100644 index f6e946da..00000000 Binary files a/docs/source/images/applications_canopy.png and /dev/null differ diff --git a/docs/source/images/basemap_stations.png b/docs/source/images/basemap_stations.png deleted file mode 100644 index 19db647b..00000000 Binary files a/docs/source/images/basemap_stations.png and /dev/null differ diff --git a/docs/source/images/bashrc_file.png b/docs/source/images/bashrc_file.png deleted file mode 100644 index b20f5f78..00000000 Binary files a/docs/source/images/bashrc_file.png and /dev/null differ diff --git a/docs/source/images/bashrc_home.png b/docs/source/images/bashrc_home.png deleted file mode 100644 index 7e7ee7f8..00000000 Binary files a/docs/source/images/bashrc_home.png and /dev/null differ diff --git a/docs/source/images/before-refine-reduced-time-window.png b/docs/source/images/before-refine-reduced-time-window.png deleted file mode 100644 index 09e537c7..00000000 Binary files a/docs/source/images/before-refine-reduced-time-window.png and /dev/null differ diff --git a/docs/source/images/canopy_preferences.png b/docs/source/images/canopy_preferences.png deleted file mode 100644 index afd5a871..00000000 Binary files a/docs/source/images/canopy_preferences.png and /dev/null differ diff --git a/docs/source/images/count_stations.png b/docs/source/images/count_stations.png deleted file mode 100644 index 4c501a51..00000000 Binary files a/docs/source/images/count_stations.png and /dev/null differ diff --git a/docs/source/images/delay_times.png b/docs/source/images/delay_times.png deleted file mode 100644 index 7c9f9611..00000000 Binary files a/docs/source/images/delay_times.png and /dev/null differ diff --git a/docs/source/images/egplot.png b/docs/source/images/egplot.png deleted file mode 100644 index 03daf96b..00000000 Binary files a/docs/source/images/egplot.png and /dev/null differ diff --git a/docs/source/images/egsac-109c.png b/docs/source/images/egsac-109c.png deleted file mode 100644 index c8434119..00000000 Binary files a/docs/source/images/egsac-109c.png and /dev/null differ diff --git a/docs/source/images/enthought_as_default.png b/docs/source/images/enthought_as_default.png deleted file mode 100644 index 05ba9cd8..00000000 Binary files a/docs/source/images/enthought_as_default.png and /dev/null differ diff --git a/docs/source/images/enthought_console.png b/docs/source/images/enthought_console.png deleted file mode 100644 index 319e1dbe..00000000 Binary files a/docs/source/images/enthought_console.png and /dev/null differ diff --git a/docs/source/images/files_in_matplotlib.png b/docs/source/images/files_in_matplotlib.png deleted file mode 100644 index 10e1e759..00000000 Binary files a/docs/source/images/files_in_matplotlib.png and /dev/null differ diff --git a/docs/source/images/filter_interface.png b/docs/source/images/filter_interface.png deleted file mode 100644 index 70fd5f1b..00000000 Binary files a/docs/source/images/filter_interface.png and /dev/null differ diff --git a/docs/source/images/filtering-interface.png b/docs/source/images/filtering-interface.png deleted file mode 100644 index 88faa264..00000000 Binary files a/docs/source/images/filtering-interface.png and /dev/null differ diff --git a/docs/source/images/get-site-package.png b/docs/source/images/get-site-package.png deleted file mode 100644 index 9e61e75f..00000000 Binary files a/docs/source/images/get-site-package.png and /dev/null differ diff --git a/docs/source/images/getting_pip.png b/docs/source/images/getting_pip.png deleted file mode 100644 index a37ff989..00000000 Binary files a/docs/source/images/getting_pip.png and /dev/null differ diff --git a/docs/source/images/help-iccs.png b/docs/source/images/help-iccs.png deleted file mode 100644 index 0448a1b0..00000000 Binary files a/docs/source/images/help-iccs.png and /dev/null differ diff --git a/docs/source/images/help-mccc.png b/docs/source/images/help-mccc.png deleted file mode 100644 index 5097fba9..00000000 Binary files a/docs/source/images/help-mccc.png and /dev/null differ diff --git a/docs/source/images/help-sac2pkl.png b/docs/source/images/help-sac2pkl.png deleted file mode 100644 index b0391659..00000000 Binary files a/docs/source/images/help-sac2pkl.png and /dev/null differ diff --git a/docs/source/images/help-sacplot.png b/docs/source/images/help-sacplot.png deleted file mode 100644 index 6003176f..00000000 Binary files a/docs/source/images/help-sacplot.png and /dev/null differ diff --git a/docs/source/images/help-sacppk.png b/docs/source/images/help-sacppk.png deleted file mode 100644 index a60f1884..00000000 Binary files a/docs/source/images/help-sacppk.png and /dev/null differ diff --git a/docs/source/images/home_bash_profile.png b/docs/source/images/home_bash_profile.png deleted file mode 100644 index 378eaa52..00000000 Binary files a/docs/source/images/home_bash_profile.png and /dev/null differ diff --git a/docs/source/images/matplotlib_hidden_directory.png b/docs/source/images/matplotlib_hidden_directory.png deleted file mode 100644 index 1b5f66f1..00000000 Binary files a/docs/source/images/matplotlib_hidden_directory.png and /dev/null differ diff --git a/docs/source/images/matplotlibrc_file.png b/docs/source/images/matplotlibrc_file.png deleted file mode 100644 index a8ffd9ed..00000000 Binary files a/docs/source/images/matplotlibrc_file.png and /dev/null differ diff --git a/docs/source/images/no_sac.png b/docs/source/images/no_sac.png deleted file mode 100644 index d98a1ee6..00000000 Binary files a/docs/source/images/no_sac.png and /dev/null differ diff --git a/docs/source/images/not_worth_it.png b/docs/source/images/not_worth_it.png deleted file mode 100644 index 9ca16342..00000000 Binary files a/docs/source/images/not_worth_it.png and /dev/null differ diff --git a/docs/source/images/output_list.png b/docs/source/images/output_list.png deleted file mode 100644 index 30a23889..00000000 Binary files a/docs/source/images/output_list.png and /dev/null differ diff --git a/docs/source/images/path_to_sod_bin.png b/docs/source/images/path_to_sod_bin.png deleted file mode 100644 index 35a47ec2..00000000 Binary files a/docs/source/images/path_to_sod_bin.png and /dev/null differ diff --git a/docs/source/images/pick_travel_times.png b/docs/source/images/pick_travel_times.png deleted file mode 100644 index b88d6a3c..00000000 Binary files a/docs/source/images/pick_travel_times.png and /dev/null differ diff --git a/docs/source/images/pkl_to_sac_conversion.png b/docs/source/images/pkl_to_sac_conversion.png deleted file mode 100644 index 43674bd1..00000000 Binary files a/docs/source/images/pkl_to_sac_conversion.png and /dev/null differ diff --git a/docs/source/images/profile_file.png b/docs/source/images/profile_file.png deleted file mode 100644 index 047fe8ed..00000000 Binary files a/docs/source/images/profile_file.png and /dev/null differ diff --git a/docs/source/images/profile_home.png b/docs/source/images/profile_home.png deleted file mode 100644 index 96e80dc8..00000000 Binary files a/docs/source/images/profile_home.png and /dev/null differ diff --git a/docs/source/images/prog-egplot.png b/docs/source/images/prog-egplot.png deleted file mode 100644 index 656c9f5f..00000000 Binary files a/docs/source/images/prog-egplot.png and /dev/null differ diff --git a/docs/source/images/prog-egsac.png b/docs/source/images/prog-egsac.png deleted file mode 100644 index 37a2f575..00000000 Binary files a/docs/source/images/prog-egsac.png and /dev/null differ diff --git a/docs/source/images/python_console.png b/docs/source/images/python_console.png deleted file mode 100644 index 12fb449b..00000000 Binary files a/docs/source/images/python_console.png and /dev/null differ diff --git a/docs/source/images/python_version.png b/docs/source/images/python_version.png deleted file mode 100644 index 2e2d1e50..00000000 Binary files a/docs/source/images/python_version.png and /dev/null differ diff --git a/docs/source/images/qttpick_gui.png b/docs/source/images/qttpick_gui.png deleted file mode 100644 index 99a92617..00000000 Binary files a/docs/source/images/qttpick_gui.png and /dev/null differ diff --git a/docs/source/images/qttpick_gui_filter_stack.png b/docs/source/images/qttpick_gui_filter_stack.png deleted file mode 100644 index 41732fa5..00000000 Binary files a/docs/source/images/qttpick_gui_filter_stack.png and /dev/null differ diff --git a/docs/source/images/qttpick_gui_filter_trace.png b/docs/source/images/qttpick_gui_filter_trace.png deleted file mode 100644 index 162d13f0..00000000 Binary files a/docs/source/images/qttpick_gui_filter_trace.png and /dev/null differ diff --git a/docs/source/images/qttpick_gui_p1.png b/docs/source/images/qttpick_gui_p1.png deleted file mode 100644 index 76de4951..00000000 Binary files a/docs/source/images/qttpick_gui_p1.png and /dev/null differ diff --git a/docs/source/images/qttpick_gui_p2.png b/docs/source/images/qttpick_gui_p2.png deleted file mode 100644 index 2fcf34a0..00000000 Binary files a/docs/source/images/qttpick_gui_p2.png and /dev/null differ diff --git a/docs/source/images/residue.png b/docs/source/images/residue.png deleted file mode 100644 index 8d22170c..00000000 Binary files a/docs/source/images/residue.png and /dev/null differ diff --git a/docs/source/images/sac_installed.png b/docs/source/images/sac_installed.png deleted file mode 100644 index abcb3f03..00000000 Binary files a/docs/source/images/sac_installed.png and /dev/null differ diff --git a/docs/source/images/sac_to_pkl_conversion.png b/docs/source/images/sac_to_pkl_conversion.png deleted file mode 100644 index d7619ea5..00000000 Binary files a/docs/source/images/sac_to_pkl_conversion.png and /dev/null differ diff --git a/docs/source/images/sacppk.png b/docs/source/images/sacppk.png deleted file mode 100644 index 587c33b6..00000000 Binary files a/docs/source/images/sacppk.png and /dev/null differ diff --git a/docs/source/images/saved-smaller-time-window.png b/docs/source/images/saved-smaller-time-window.png deleted file mode 100644 index afe1fbe9..00000000 Binary files a/docs/source/images/saved-smaller-time-window.png and /dev/null differ diff --git a/docs/source/images/saving_types.png b/docs/source/images/saving_types.png deleted file mode 100644 index a60bd52e..00000000 Binary files a/docs/source/images/saving_types.png and /dev/null differ diff --git a/docs/source/images/selected-time-window-t2.png b/docs/source/images/selected-time-window-t2.png deleted file mode 100644 index 6fe6eff9..00000000 Binary files a/docs/source/images/selected-time-window-t2.png and /dev/null differ diff --git a/docs/source/images/selecting-time-window-highlight.png b/docs/source/images/selecting-time-window-highlight.png deleted file mode 100644 index 1087928e..00000000 Binary files a/docs/source/images/selecting-time-window-highlight.png and /dev/null differ diff --git a/docs/source/images/site-package-contents.png b/docs/source/images/site-package-contents.png deleted file mode 100644 index 777ac9e2..00000000 Binary files a/docs/source/images/site-package-contents.png and /dev/null differ diff --git a/docs/source/images/site_package_location.png b/docs/source/images/site_package_location.png deleted file mode 100644 index 487a2e9b..00000000 Binary files a/docs/source/images/site_package_location.png and /dev/null differ diff --git a/docs/source/images/sod_installed_query.png b/docs/source/images/sod_installed_query.png deleted file mode 100644 index 3b6e7474..00000000 Binary files a/docs/source/images/sod_installed_query.png and /dev/null differ diff --git a/docs/source/images/sod_location.png b/docs/source/images/sod_location.png deleted file mode 100644 index 48e1bcc4..00000000 Binary files a/docs/source/images/sod_location.png and /dev/null differ diff --git a/docs/source/images/sorting-interface.png b/docs/source/images/sorting-interface.png deleted file mode 100644 index 9026e10d..00000000 Binary files a/docs/source/images/sorting-interface.png and /dev/null differ diff --git a/docs/source/images/startup_disk.png b/docs/source/images/startup_disk.png deleted file mode 100644 index 4e497e43..00000000 Binary files a/docs/source/images/startup_disk.png and /dev/null differ diff --git a/docs/source/images/system_preferences.png b/docs/source/images/system_preferences.png deleted file mode 100644 index 9ca8b226..00000000 Binary files a/docs/source/images/system_preferences.png and /dev/null differ diff --git a/docs/source/images/upgrade-profile.png b/docs/source/images/upgrade-profile.png deleted file mode 100644 index 7463bfd7..00000000 Binary files a/docs/source/images/upgrade-profile.png and /dev/null differ diff --git a/docs/source/index.rst b/docs/source/index.rst deleted file mode 100644 index a5de8250..00000000 --- a/docs/source/index.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. AIMBAT documentation master file, created by - sphinx-quickstart on Wed May 21 16:31:30 2014. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to AIMBAT's documentation! -================================== - -.. toctree:: - :maxdepth: 4 - :numbered: - :caption: Contents: - - readme - installation - usage - developing - citations - credits - changelog - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/source/installation.rst b/docs/source/installation.rst deleted file mode 100644 index d773c91d..00000000 --- a/docs/source/installation.rst +++ /dev/null @@ -1,79 +0,0 @@ -========================= -Installation and Upgrades -========================= - -Requirements ------------- - -Python -~~~~~~ -AIMBAT is built on top of `standard Python `_ and uses several extra Python libraries as well. We develop and test AIMBAT on Python versions 3.6 and newer. AIMBAT may run on older versions too, but we strongly suggest upgrading Python should you be running an older version (not just for AIMBAT!). - -Compilers -~~~~~~~~~ -Fortran -^^^^^^^ -Fortran is an optional dependency used to compile a fast cross-correlation routine during AIMBAT installation. AIMBAT will fall back to a Python cross-correlation routine if Fortran is not available, but it is slower. We therefore highly recommend installing a Fortran compiler (e.g. `gfortran `_). - -C -^ -While AIMBAT itself does not use C, some of the Python libraries it uses potentially require a C compiler during installation. This may vary depending on computer platform, or Python version/distribution used. - -Operating System -~~~~~~~~~~~~~~~~ -AIMBAT is designed to run on UNIX like systems (e.g. Mac OSX and Linux). Installation on Windows is probably possible (since Python can be installed on almost any platform), though untested. - -Installing AIMBAT ------------------ -pip - Python package installer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -AIMBAT is available as a package from the `Python Package Index `_. This means it can be easily installed with the ``pip`` command (available by default since Python version 3.4). - -.. caution:: It is possible to have multiple versions of Python installed on a computer. If this is the case, then there will also be multiple versions of the ``pip`` command. It is therefore important to use the ``pip`` command belonging to the Python version you intend to use for AIMBAT! Running ``pip --version`` will show you which Python version it belongs to. - -.. note:: On some systems Python 2 and Python 3 are installed alongside eachother. Typically there is a ``pip`` command belonging to Python 2 and a ``pip3`` command belonging to Python 3. - -conda users -~~~~~~~~~~~ -If you are using conda to manage Python packages, we recommend installing AIMBAT dependencies with ``conda`` before installing AIMBAT with ``pip``. To do so issue this command:: - - $ conda install scipy numpy matplotlib pyqtgraph pyyaml pyproj - -.. note:: Similarly, if you are using a package manager on Linux, or something like brew or macports on OSX, you may want to install these dependencies (if available) via those mechanisms instead of ``pip``. - - -Installing AIMBAT with pip -~~~~~~~~~~~~~~~~~~~~~~~~~~ -To install the latest stable version of AIMBAT and all dependencies not already installed, simply issue this command:: - - $ pip install pysmo.aimbat - -.. caution:: Unless you know what you are doing, we recommend to *not* install AIMBAT with administrative priveliges (i.e. using sudo or the root account). If the above command fails due to insuffienct rights, run the same command with the ``--user`` flag:: - - $ pip install --user pysmo.aimbat - -If you wish to install the latest developement version of AIMBAT *instead* of the stable release:: - - $ pip install git+https://github.com/pysmo/aimbat - -.. note:: It is possible to install the stable release alongside the development version. Please read :ref:`Developing AIMBAT` for instructions. - -Example Data -~~~~~~~~~~~~ -Get the repository `data-example `_ from Github. There is some example code inside `data-example/example_pkl_files` that will be needed for later demonstrations. - -Upgrading AIMBAT ----------------- -Upgrading AIMBAT with ``pip`` is done with the same command used to install, with the addition of the ``-U`` flag:: - - $ pip install -U pysmo.aimbat - -.. note:: If you used the ``--user`` flag during installation you also need to use it while upgrading - -Uninstalling AIMBAT -------------------- -To remove aimbat from your system with ``pip`` run this command:: - - $ pip uninstall pysmo.aimbat - -.. note:: Unfortunately ``pip`` currently does not remove dependencies that were automatically installed. We suggest running ``pip list`` to see the installed packages, which can then also be removed using ``pip uninstall`` diff --git a/docs/source/readme.rst b/docs/source/readme.rst deleted file mode 100644 index a6210d3d..00000000 --- a/docs/source/readme.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../README.rst diff --git a/docs/source/usage.rst b/docs/source/usage.rst deleted file mode 100644 index ee19c4de..00000000 --- a/docs/source/usage.rst +++ /dev/null @@ -1,10 +0,0 @@ -============ -Using AIMBAT -============ - -.. include:: usage/sac.rst -.. include:: usage/sacioAIMBAT.rst -.. include:: usage/parameterConfiguration.rst -.. include:: usage/SACdataAccess.rst -.. include:: usage/PickingTravelTimes.rst -.. include:: usage/PickingTravelTimesQt.rst diff --git a/docs/source/usage/PickingTravelTimes.rst b/docs/source/usage/PickingTravelTimes.rst deleted file mode 100644 index 1ffec357..00000000 --- a/docs/source/usage/PickingTravelTimes.rst +++ /dev/null @@ -1,199 +0,0 @@ -Measuring Teleseismic Body Wave Arrival Times ---------------------------------------------- - -The core idea in using AIMBAT to measure teleseismic body wave arrival times has two parts: - -* automated phase alignment, to reduce user processing time, and -* interactive quality control, to retain valuable user inputs. - -Automated Phase Alignment -~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ICCS algorithm calculates an array stack from predicted time picks, cross-correlates each seismogram with the array stack to find the time lags at maximum cross-correlation, then uses the new time picks to update the array stack in an iterative process. The MCCC algorithm cross-correlates each possible pair of seismograms and uses a least-squares method to calculate an optimized set of relative arrival times. Our method combines ICCS and MCCC in a four-step procedure using four anchoring time picks :math:`_0T_i,\,_1T_i,\,_2T_i,` and :math:`_3T_i`. - -(a) Coarse alignment by ICCS -(b) Pick phase arrival at the array stack -(c) Refined alignment by ICCS -(d) Final alignment by MCCC - -The one-time manual phase picking at the array stack in step (b) allows the measurement of absolute arrival times. The detailed methodology and procedure can be found in [LouVanDerLee2013]_. - -.. table:: Time picks and their SAC headers used in the procedure for measuring teleseismic body wave arrival times. - - +------+-----------+-------------+----------------+-------------+---------------+-------------+ - | Step | Algorithm | Input | Output | - + + +-------------+----------------+-------------+---------------+-------------+ - | | | Time Window | Time Pick | Time Header | Time Pick | Time Header | - +------+-----------+-------------+----------------+-------------+---------------+-------------+ - | (a) | ICCS | :math:`W_a` | :math:`_0T_i` | **T0** | :math:`_1T_i` | **T1** | - +------+-----------+-------------+----------------+-------------+---------------+-------------+ - | (b) | ICCS | :math:`W_b` | :math:`_2T'_i` | **T2** | :math:`_2T_i` | **T2** | - +------+-----------+-------------+----------------+-------------+---------------+-------------+ - | (d) | MCCS | :math:`W_b` | :math:`_2T_i` | **T2** | :math:`_3T_i` | **T3** | - +------+-----------+-------------+----------------+-------------+---------------+-------------+ - -The ICCS and MCCC algorithms are implemented in two modules ``pysmo.aimbat.algiccs`` and ``pysmo.aimbat.algmccc``, and can be executed in scripts ``iccs.py`` and ``mccc.py`` respectively. - -Picking Travel Times -~~~~~~~~~~~~~~~~~~~~ - -This section explains how to run the program :code:`aimbat-ttpick` to get the travel times you want. - - -Getting into the right directory -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -In the terminal, cd into the directory with all of the ``pkl`` files you want to run. You want to run either the ``BHT`` or ``BHZ`` files. ``BHT`` files are for S-waves and ``BHZ`` files are for P-waves. ``PKL`` is a bundle of ``SAC`` files. Each ``SAC`` file is a seismogram, but since there may be many seismograms from various stations for each event, we bundle them into a ``PKL`` file so we only have to import one file into AIMBAT, not a few hundred of them. - - -Running aimbat-ttpick -^^^^^^^^^^^^^^^^^^^^^ - -Run ``aimbat-ttpick -p P `` for ``BHZ`` files or ``aimbat-ttpick -p S `` for ``BHT`` files. A GUI should pop up if you successfully ran it. Note that if you click on the buttons, they will not work until you move your mouse off them; this is a problem we are hoping to fix. - -You can get some example data to test this out by downloading the Github repository `data-example `_. Now, cd into the folder `example_pkl_files`, which has several pickle files for seismic events. Type:: - - aimbat-ttpick -p P 20110915.19310408.bhz.pkl - -and a python GUI should pop up. - -.. image:: images/pick_travel_times.png - -At the top of the GUI is the scaled sum of all of the seismograms known as the array stack, which gives a characteristic waveform of the event for the stations involved. Beneath this is a page of seismograms, with the corresponding station and various quality factors listed on the right. ``CCC`` is the cross-correlation coefficient between that seismogram and the array stack, ``SNR`` is the signal-to-noise ratio, and ``COH`` is the coherence between that seismogram and the array stack. - - -Initial deselection of bad seismograms -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Bad seismograms are those whose waveforms look nothing like the array stack above. By default, the seismograms are sorted by quality, so bad seismograms will likely be at the top. In order to deselect these, click on the waveforms themselves (not the fill) and wait a second or two for them to turn gray. The user can develop criteria for which seismograms to deselect and which to keep. Simply deselecting all seismograms below a certain quality threshold can decrease time but may lead to good seismograms being deselected or bad seismograms remaining. - -Remember to save your work periodically once you start picking your travel times. Otherwise, if AIMBAT crashes, you will lose your work. - -Align -^^^^^ - -The first step after deselecting seismograms is to press ``Align``. This will recalculate both the array stack and the T1 picks for the seismograms, not including the deselected seismograms. Do not press ``Align`` after pressing ``Sync`` unless you wish to remove any ``T2`` picks that have been made. - - -Sync, refine, and setting time window -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -After hitting the ``Align`` button, place the cursor on the array stack where the first motion of the seismogram, either up or down, occurs. Press ``t`` and ``2`` simultaneously on the keyboard to select the arrival time. Now press ``Sync``. Use the mouse to drag and select the desired time window on the seismogram on the array stack. This time window is the portion of the seismogram on which cross-correlation will be run. The time window should begin 2-10 seconds before the first arrival and include a few seconds of the first motion of the waveform. The final time window should be smaller than the default window to increase the accuracy of the cross-correlation. - -.. image:: images/selecting-time-window-highlight.png - -Next, set the cursor over the array stack and press the ``w`` key. If the new time window has been saved, a message noting the new size of the time window will be printed in the terminal. The entire width of the x-axis is now colored green and will be stored as the time window to use for the cross-correlations. Press ``Save headers only`` if you wish to keep this time window for future applications. - -Now press ``Refine`` and all the seismograms will align with the smaller time window. Note that the ``Weighted average quality`` printed to the terminal may decrease significantly, but this is likely due to the fact that the time window is smaller than the original. - - -Filtering -^^^^^^^^^ - -If you wish to apply a filter to your data, hit the ``Filter`` button, and a window will pop up for you to use the `Butterworth filter `_ to filter your data. - -.. image:: images/filtering-interface.png - -The defaults used for filtering are: - -+----------------+----------+ -| Variable | Default | -+================+==========+ -| Order | 2 | -+----------------+----------+ -| Filter Type | Bandpass | -+----------------+----------+ -| Low Frequency | 0.05 Hz | -+----------------+----------+ -| High Frequency | 0.25 Hz | -+----------------+----------+ - -You can change the order and filter type by selecting the option you want. In order to set corner frequencies for the filter, select the low frequency and the high frequency you want on the lower figure by clicking. Press ``Apply`` to filter the seismograms when you are satisfied with the filter parameters chosen. - - -Finalize -^^^^^^^^ - -Hit ``Finalize`` to run the multi-channel cross-correlation. Do not hit ``Align`` or ``Refine`` again, or all your previous picks will be written over. A warning will pop up to check if you really do want to hit these two buttons if you do click on them. - - -SACP2 to check for outlier seismograms -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Hit ``SACP2`` and go to the last figure, (d). Zoom in to have a better look. Zooming in doesnโ€™t always work well; close and reopen the ``SACP2`` window if there are problems. - -Click on the outliers that stray from the main group of stacked seismograms. The terminal will output the names of the seismograms that you clicked on, so you can return to the main GUI window and readjust the travel times. Note: hitting ``SACP2`` before hitting ``Finalize`` will often cause AIMBAT to close, so make sure you have finalized before using SACP2. - -.. image:: images/SACP2_popup.png - - -Go through the badly aligned seismograms and realign the travel times manually -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -By default, the worst seismograms are on the first page, and as you click through the pages, the quality of the seismograms gradually gets better. Keep using ``t2`` to realign the arrival times so that the peaks of all the seismograms are nicely aligned. Remember to zoom in to have a better look. - -However, you may wish to sort the seismograms in alphabetical order or by azimuth so that you can find the bad seismogrrams and correct them more easily. Hit the ``Sort`` button and a window will pop up for you to choose which sorting method to use. In this case, choose ``File`` to sort the files by station name alphabetically, or choose ``AZ`` to sort the files by azimuth from the event epicenter. The seismograms are stretched to fit together, but they may be scaled differently. - - -What the Alignments Stand For -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* T0: Theoretical Arrival -* T1: Pick from initial cross correlation -* T2: Travel Time pick -* T3: MCCC pick -* T4: Zoom in - - -Post Processing -~~~~~~~~~~~~~~~ - -Getting the output -^^^^^^^^^^^^^^^^^^ - -In the same folder as the initial PKL file you ran ``aimbat-ttpick`` on, you can find the output list with extension ``.mcp``, which contains the travel time arrivals. - -.. image:: images/output_list.png - -``mccc delay`` is `t3+average arrival times`, and `t0_times` are the theoretical arrival times. `delay_times` are obtained by taking `t3-t0`. - -Disclaimer about delay times -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -`t0` depends on hypocenter location, origin time, and reference model. We compute the delay time by finding `t3-t0`, but it does not have elliptic, topological, or crust corrections. - - -Getting the stations of the seismograms chosen -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Run ``getsta.py`` in the additional scripts (not on Github for now). It gives the unique list of stations where the seismograms came from. You need to run it with the list of all ``pkl`` files chosen after you saved to. To do this, type ``./getsta.py *.pkl``. - -.. image:: images/count_stations.png - - -Visualizing Stations on a map -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -After running:: - - aimbat-ttpick - -Hit ``Map of Stations`` in order to get a visual respresentation of where exactly each station is. Dots represent circles used for computing delay times; black triangles represent discarded stations. Click on a dot to get the station name in the terminal. - -.. image:: images/basemap_stations.png - - - -Picking Travel Times does not work -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you run ``aimbat-ttick .bhz.pkl``, a GUI will pop up for you to manually pick the travel times by pressing the keyboard. If typing on the keyboard as directed does not allow you to pick travel times, it could be a problem with the keyboard settings, or the matplotlib backend. - -To fix this, first look for the .matplotlib directory. It is hidden in your home directory, so do ``ls -a`` to find it. - -Once you have found the ``.matplotlib`` directory, cd into it, and then look for the ``matplotlibrc`` file. -Inside that file, ensure the backend is set to:: - - backend : TkAgg - -Make sure to comment out the other backends. diff --git a/docs/source/usage/PickingTravelTimesQt.rst b/docs/source/usage/PickingTravelTimesQt.rst deleted file mode 100644 index 60acab22..00000000 --- a/docs/source/usage/PickingTravelTimesQt.rst +++ /dev/null @@ -1,48 +0,0 @@ -Alternative Qt GUI for Measuring Arrival Times ----------------------------------------------- - -The `Matplotlib `_ GUI is slow for interactive plotting. -An additional GUI based on `pyqtgraph `_ was built since v1.0.0 to speed up plotting. -Similar to the old GUI, run:: - aimbat-qttpick -to launch the Qt GUI. Phase of the seismogram (``P`` or ``S``), if not given in command line, can be automatically found based on file names including ``BHZ`` or ``BHT``. Here is aGn example snapshot: - -.. image:: images/qttpick_gui.png - -The AIMBAT philosophy of using the five-step (``Align``, ``Pick``, ``Sync``, ``Refine``, and ``Finalize``) procedure for automated and interactive phase arrival time measurement is the same. - -Some GUI behavior remains the same: - -* the phase picking steps of ``Align``, ``Pick``, ``Sync``, ``Refine``, and ``Finalize``. -* mouse clicking waveforms to change trace selection status. -* keyboard interaction: ``t[0-9]`` to pick time, and ``w`` to set time window. -* Click Button `Sac P2` to overlay all traces relative to time picks - -Some components are different: - -* Choose sort and filter options in a parameter tree and apply in the same GUI window. -* All traces plotted in one long page, instead of multiple pages. -* Still Possible to plot a subset of traces. Click button to add more traces to the plotting window. -* `Pyqtgraph mouse events `_: e.g., right mouse button drag to zoom in and out. -* Time window is plotted as a `pyqtgraph.LinearRegionItem `_ instead of Matplotlib Span Selector. To change time window size, just drag either side line and move. Still press key ``w`` to set time window. -* A vertical hair indicating the time axis value is always plotted follow the mouse movement. - -In the above example, 37 selected seismograms are plotted initially. During the arrival time measurement procedure, traces sorting order is changed after time window size or sorting parameters are changed. Trace 37, 38, 39 are missing in the GUI. You can optionally click ``Plot More Traces`` Button to fill the gap. You can also zoom out vertically and plot more traces. - -Here is an example of filtering seismograms. First choose filtering parameters in the parameter tree and test on the stack by clicking Button ``Confirm_Filt_Parameters`` and Button ``Filter on Stack/Traces``. Then applied filter to traces after parameters are finalized. - -.. image:: images/qttpick_gui_filter_stack.png - -.. image:: images/qttpick_gui_filter_trace.png - - -Some QC tools are available in this Qt GUI. Click Button ``Sac P1`` and ``Sac P2`` to plot traces relative to four time picks T0, T1, T2, and T3. Click Button ``Plot Delay Times`` to plot absolute delay times in a map view. - -.. image:: images/qttpick_gui_p1.png - -.. image:: images/qttpick_gui_p2.png - -.. image:: images/20110915.19310408.mcp.png - -More details might be added here in the future. - diff --git a/docs/source/usage/SACdataAccess.rst b/docs/source/usage/SACdataAccess.rst deleted file mode 100644 index e97e2abb..00000000 --- a/docs/source/usage/SACdataAccess.rst +++ /dev/null @@ -1,195 +0,0 @@ -SAC Data Access ---------------- - -NOTE: All ``.sac`` files must include origin time, hypocenter, as well as station coordinates and elevation in their headers. - -Python Object for SAC File -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``pysmo.core.sac`` package is developed to read and write individual SAC files. -The Python class ``SacIO`` of module ``pysmo.core.sac.sacio`` opens a SAC file and returns an object including data and all SAC header variables as their attributes. Modifications of object attributes are saved to file. It is written purely in Python so that it also runs with `Jython `_. - -`egsac.py` -^^^^^^^^^^ - -The ``/example-scripts/egsac.py`` script gives a simple example to read, resample, and plot a seismogram using pysmo, Scipy, and Matplotlib. You can type the codes in a Python/iPython shell, or run as a script in the data example directory ``/data-example/Event_2011.09.15.19.31.04.080``, hereafter referred to as ``. - -.. image:: images/prog-egsac.png - -Resampling Seismograms -^^^^^^^^^^^^^^^^^^^^^^ - -In this example, a SAC file named ``TA.109C.\_\_.BHZ.sac`` is read in as a sacfile object. The time array is calculated from SAC headers. The data array is resampled from interval 0.025 to 2.0 seconds using Scipy's signalprocessing module. - -Add the following codes to write the resampled seismogram to file ``TA.109C.\_\_.BHZ.sac``:: - - sacobj.delta = deltanew - sacobj.npts = nptsnew - sacobj.data = y2 - -.. image:: images/egsac-109c.png - - -Python Pickle for SAC Files -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``pysmo.core.sac.sacio`` module converts SAC files to ``SacIO`` objects. Any modification of the objects are instantly written to files. In data processing, the user may want to abandon changes made earlier, which brings the need of a buffer for the ``SacIO`` objects. - -The ``SacDataHdrs`` class in the ``pysmo.aimbat.sacpickle`` module is written on top of ``pysmo.SacIO`` to serves this purpose by reading a SAC file and returning a ``sacdh`` object that is very similar to the ``sacfile`` object. Essentially, the ``sacdh`` object is a copy of the ``sacfile`` object in the memory, except that SAC headers 't0-t9', 'user0-user9', and 'kuser0-kuser2' are saved in three Python lists. - -A ``gsac`` object of the ``SacGroup`` class consists of a group of ``sacdh`` objects from event-based SAC data files, earthquake hypocenter information, and station locations. -An additional step is required to save changes in the ``gsac`` object to files. - -In order to avoid frequent SAC file I/O, the ``pickle/cPickle`` module is used for serializing and de-serializing the ``gsac`` object structure. Thus the data processing efficiency is improved because reading and writing of SAC files are done only once each before and after data processing. Script ``aimbat-sac2pkl`` does the conversions between SAC files and Python pickles. - -Its usage message can be printed out by running at command line:: - - aimbat-sac2pkl -h - -and the result is displayed in the figure below. For example, in the data example directory ````, run:: - - aimbat-sac2pkl -s *Z -o 20110915.19310408.bhz.pkl -d 0.025 - -to read 163 vertical component seismograms at a sample interval of 0.025 s and convert to a ``gsac`` object, which is saved in the pickle file ``20110915.19310408.bhz.pkl``. - -To save disk space, compressed pickle files in ``gz`` and ``bz2`` formats can be generated by:: - - aimbat-sac2pkl -s *Z -o 20110915.19310408.bhz.pkl -d 0.025 -z gz - aimbat-sac2pkl -s *Z -o 20110915.19310408.bhz.pkl -d 0.025 -z bz2 - -at the cost of more CPU time. - -After processing, run:: - - aimbat-sac2pkl 20110915.19310408.bhz.pkl -p - -to convert the pickle file to SAC files. - -.. image:: images/help-sac2pkl.png - -See the doc string of ``pysmo.aimbat.sacpickle`` by typing in a python console:: - - from pysmo.aimbat import sacpickle - print(sacpickle.\_\_doc\_\_) - -and also the documentation on `pickle `_ for more information about the Python data structure, pickling, and unpickling. - - - -SAC Plotting and Phase Picking -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. image:: images/help-sacplot.png - -SAC plotting and phase picking functionalities are replicated and enhanced based on the GUI neutral widgets (such as Button and SpanSelector) and the event (keyboard and mouse events such as ``key\_press\_event`` and ``mouse\_motion\_event`` handling API of Matplotlib. - -They are implemented in two modules, ``pysmo.aimbat.plotphase`` and ``pysmo.aimbat.pickphase``, which are used by corresponding scripts ``aimbat-sacplot`` and ``aimbat-sacppk`` executable at command line. Their help messages are displayed in the figures below. - - -.. image:: images/help-sacppk.png - -.. image:: images/prog-egplot.png - - -SAC Plotting -~~~~~~~~~~~~ - -Options "-i, -z, -d, -a, and -b" of ``aimbat-sacplot`` set the seismogram plotting baseline as file index, zero, epicentral distance in degrees, azimuth, and back-azimuth, respectively. -The user can run ``aimbat-sacplot`` directly with the options, or run individual scripts -``aimbat-sacp1``, ``aimbat-sacp2``, ``aimbat-sacprs``, ``aimbat-sacpaz``, and ``aimbat-sacpbaz``, which preset the baseline options and plot seismograms in SAC p1 style, p2 style, record section, and relative to azimuth and back-azimuth. The following commands are equivalent:: - - aimbat-sacplot -i, aimbat-sacp1 - aimbat-sacplot -z, aimbat-sacp2 - aimbat-sacplot -d, aimbat-sacprs - aimbat-sacplot -a, aimbat-sacpaz - aimbat-sacplot -b, aimbat-sacpbaz - -Input data files need to be supplied to the scripts in the form of either a list of SAC files or a pickle file that includes multiple SAC files. For example, a ``bhz.pkl`` file is generated from 22 vertical component seismograms ``TA.[1-K]*Z`` by running:: - - aimbat-sac2pkl TA.[1-K]*BHZ -o bhz.pkl -d0.025 - -in the data example directory ````. Then the two commands are equivalent:: - - aimbat-sacp1 TA.[1-K]*Z - -or:: - - aimbat-sacp1 bhz.pkl - -For large numbers of seismograms, the pickle file is suggested because of faster loading. - -Besides using the standard ``aimbat-sacplot`` script, the user can modify its ``getAxes`` function in their own script to customize figure size and axes attributes. Script ``egplot.py`` is such an example in which SAC p1, p2 styles and record section plotting are drawn in three axes in the same figure canvas. Run:: - - egplot.py TA.[1-K]*Z -f1 -C - -at command line to produce the figure below. - -.. image:: images/egplot.png - -The "-C" option uses random color for each seismogram. -The "-f1" option fills the positive signals of waveform with less transparency. -In the script, "opts.ynorm" sets the waveform normalization and "opts.reltime=0" sets the time axis relative to time pick t0. - -An improvement over SAC is that the program outputs the filename when the seismogram is clicked on by the mouse. This is enabled by the event handling API and is mostly introduced for use in SAC p2 style plotting when seismograms are plotted on top of each other. It is especially useful when a large number of seismograms create difficulties in labeling. - -Another improvement is easier window zooming enabled by the SpanSelector widget and the event handling API. Select a time span by mouse clicking and dragging to zoom in a waveform section. -Press the 'z' key to zoom out to the previous time range. - - -SAC Phase Picking ------------------ - -SAC plotting (``pysmo.aimbat.plotphase``) does not involve change in data files, but phase picking (``pysmo.aimbat.pickphase``) does. A GUI is built for the user to interactively pick phase arrival times. The figure below is an example screen shot running:: - - aimbat-sacppk 20110915.19310408.bhz.pkl -w - -in the data example directory ````. - - -Following SAC convention, the user can set a time pick by pressing the 't' key and number keys '0-9'. The x location of the mouse position is saved to corresponding SAC headers 't0-t9'. -Time window zooming in ``pysmo.aimbat.pickphase`` is implemented in the same way as in ``pysmo.aimbat.plotphase`` to replace SAC's combination of the 'x' key and mouse click. -Zooming out key is set to 'z' because the 'o' key is used for another purpose by Matplotlib. -The filename printing out by mouse clicking feature is also available in ``pysmo.aimbat.pickphase``. - -A major improvement over SAC is picking a time window in addition to time picks. -Pressing the 'w' key to save the current time axis range to two user-defined SAC header variables. A transparent green span is plotted within the time window, as shown in the figure below. - -.. image:: images/sacppk.png - -Another major improvement involves quality control with convenient operations to (de)select seismograms. In the GUI above, there are two divisions of selected and deleted seismograms. -Selected seismograms with a positive trace number are displayed with blue wiggles, while deleted seismograms with negative trace numbers are plotted in gray. The user can simply click on a certain seismogram to switch the selection status, either to exclude it or bring it back for inclusion. The trace selection status is stored in a user-defined SAC header variable. - -In SAC, command ``ppk p 10`` plots 10 seismograms on each page. Pressing the 'b' and 'n' keys to navigate through pages. The number of seismograms plotted on each page is controlled by command line option:: - - -m maxsel maxdel - -for ``aimbat-sacppk``. The ``Prev`` and ``Next`` buttons are for page navigation and the ``Save`` Button saves the change in time picks and time window to files. The default values for maxsel and maxdel are 25 and 5, which means a maximum of 30 seismograms on each page. - -In the figure displayed, there are 26 seismograms on the first page because only 1 seismogram is deleted. On the next page, there are 30 selected seismograms. To plot 50 seismograms on each page, run:: - - aimbat-sacppk 20110915.19310408.bhz.pkl -w -m 45 5 - -and there would be 4 total pages and 13 seismograms on the last page. - -To plot seismograms relative to time pick t0 and fill the positive and negative wiggles of waveform, run:: - - aimbat-sacppk 20110915.19310408.bhz.pkl -w -r0 -f1 - -To sort seismograms by epicentral distance in increase and decrease orders, run:: - - aimbat-sacppk 20110915.19310408.bhz.pkl -w -sdist - aimbat-sacppk 20110915.19310408.bhz.pkl -w -sdist- - - -Sorting by azimuth and back-azimuth is similar:: - - aimbat-sacppk 20110915.19310408.bhz.pkl -w -saz - aimbat-sacppk 20110915.19310408.bhz.pkl -w -sbaz - -The help message of the ``aimbat-iccs`` script is shown below: - -.. image:: images/help-iccs.png - -The help message of the ``aimbat-mccs`` script is shown below: - -.. image:: images/help-mccc.png diff --git a/docs/source/usage/parameterConfiguration.rst b/docs/source/usage/parameterConfiguration.rst deleted file mode 100644 index b3d52e36..00000000 --- a/docs/source/usage/parameterConfiguration.rst +++ /dev/null @@ -1,182 +0,0 @@ -Parameter Configuration ------------------------ - -Backend -~~~~~~~ - -`Matplotlib `_ works with six GUI (Graphical User Interface) toolkits: - -#. WX -#. Tk -#. Qt(4) -#. FTK -#. Fltk -#. macosx - -The GUI of AIMBAT uses the following to support interactive plotting: - -#. `GUI neutral widgets `_ -#. `GUI neutral event handling API (Application Programming Interface) `_ - -Visit these pages for an `explanation of the backend `_ and `how to customize it `_. - -AIMBAT uses the default toolkit ``Tk`` and backend ``TkAgg``. - -In the latest version, user does not need to setup the backend for the SAC plotting functions. - -Configuration File -~~~~~~~~~~~~~~~~~~ - -Parameters for the package can be set up by a configuration file ``ttdefaults.conf``, which is interpreted by the module ConfigParser. This configuration file is searched in the following order: - -#. file ``ttdefaults.conf`` in the current working directory -#. file ``.aimbat/ttdefaults.conf`` in your ``HOME`` directory -#. a file specified by environment variable ``TTCONFIG`` -#. file ``ttdefaults.conf`` in the directory where AIMBAT is installed - -Python scripts in the ``/pysmo-aimbat-0.1.2/scripts`` can be executed from the command line. The command line arguments are parsed by the optparse module to improve the scripts' exitability. If conflicts existed, the command line options override the default parameters given in the configuration file ``ttdefaults.conf``. Run the scripts with the ``-h`` option for the usage messages. - -Example of AIMBAT configuration file `ttdefaults.conf` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -+------------------------------+---------------------------------------------------------------+ -| ttdefaults.conf | Description | -+==============================+===============================================================+ -| [sacplot] | | -+------------------------------+---------------------------------------------------------------+ -| colorwave = blue | Color of waveform | -+------------------------------+---------------------------------------------------------------+ -| colorwavedel = gray | Color of waveform which is deselected | -+------------------------------+---------------------------------------------------------------+ -| colortwfill = green | Color of time window fill | -+------------------------------+---------------------------------------------------------------+ -| colortwsele = red | Color of time window selection | -+------------------------------+---------------------------------------------------------------+ -| alphatwfill = 0.2 | Transparency of time window fill | -+------------------------------+---------------------------------------------------------------+ -| alphatwsele = 0.6 | Transparency of time window selection | -+------------------------------+---------------------------------------------------------------+ -| npick = 6 | Number of time picks (plot picks: t0-t5) | -+------------------------------+---------------------------------------------------------------+ -| pickcolors = kmrcgyb | Colors of time picks | -+------------------------------+---------------------------------------------------------------+ -| pickstyles | Line styles of time picks (use second one if ran out of color)| -+------------------------------+---------------------------------------------------------------+ -| figsize = 8 10 | Figure size for `plotphase.py` | -+------------------------------+---------------------------------------------------------------+ -| rectseis = 0.1 0.06 0.76 0.9 | Axes rectangle size within the figure | -+------------------------------+---------------------------------------------------------------+ -| minspan = 5 | Minimum sample points for SpanSelector to select time window | -+------------------------------+---------------------------------------------------------------+ -|srate = -1 | Sample rate for loading SAC data. | -| | Read from first file if srate < 0 | -+------------------------------+---------------------------------------------------------------+ - -+---------------------------------+--------------------------------------------------+ -| [sachdrs] | -+=================================+==================================================+ -| twhdrs = user8 user9 | SAC headers for time window beginning and ending | -+---------------------------------+--------------------------------------------------+ -| ichdrs = t0 t1 t2 | SAC headers for ICCS time picks | -+---------------------------------+--------------------------------------------------+ -| mchdrs = t2 t3 | SAC headers for MCCC input and output time picks | -+---------------------------------+--------------------------------------------------+ -| hdrsel = kuser0 | SAC header for seismogram selection status | -+---------------------------------+--------------------------------------------------+ -| qfactors = ccc snr coh | Quality factors: cross-correlation coefficient, | -| | signal-to-noise ratio, time domain coherence | -+---------------------------------+--------------------------------------------------+ -| qheaders = user0 user1 user2 | SAC Headers for quality factors | -+---------------------------------+--------------------------------------------------+ -| qweights = 0.3333 0.3333 0.3333 | Weights for quality factors | -+---------------------------------+--------------------------------------------------+ - -+-------------------------+---------------------------------------------------------------------+ -| [iccs] or Align/Refine | | -+=========================+=====================================================================+ -| srate = -1 | Sample rate for loading SAC data. Read from first file if srate < 0 | -+-------------------------+---------------------------------------------------------------------+ -| xcorr_modu = xcorrf90 | Module for calculating cross-correlation: | -| | xcorr for Numpy or xcorrf90 for Fortran | -+-------------------------+---------------------------------------------------------------------+ -| xcorr_func = xcorr_fast | Function for calculating cross-correlation: | -| | xcorr_full/fast/faster, reverse polarity allowed | -| | xcorr_full/fast/faster_polarity, reverse polarity not allowed | -+-------------------------+---------------------------------------------------------------------+ -| shift = 10 | Sample shift for running coarse cross-correlation | -+-------------------------+---------------------------------------------------------------------+ -| maxiter = 10 | Maximum number of iteration | -+-------------------------+---------------------------------------------------------------------+ -| convepsi = 0.001 | Convergence criterion: epsilon | -+-------------------------+---------------------------------------------------------------------+ -|convtype = coef | Type of convergence criterion: coef for correlation coefficient, | -| | or resi for residual | -+-------------------------+---------------------------------------------------------------------+ -| stackwgt = coef | Weight each trace when calculating array stack | -+-------------------------+---------------------------------------------------------------------+ -| fstack = fstack.sac | SAC file name for the array stack | -+-------------------------+---------------------------------------------------------------------+ - -+---------------------------+------------------------------------------------------------------+ -| [mccc] | | -+===========================+==================================================================+ -| srate = -1 | Sample rate for loading SAC data. | -| | Read from first file if srate :math:`< 0` | -+---------------------------+------------------------------------------------------------------+ -| ofilename = mc | Output file name of MCCC. | -+---------------------------+------------------------------------------------------------------+ -| xcorr_modu = xcorrf90 | Module for calculating cross-correlation: | -| | xcorr for Numpy or xcorrf90 for Fortran | -+---------------------------+------------------------------------------------------------------+ -| xcorr_func = xcorr_fast | Function for calculating cross-correlation: | -| | xcorr_full/fast/faster, reverse polarity allowed | -| | xcorr_full/fast/faster_polarity, reverse polarity not allowed | -+---------------------------+------------------------------------------------------------------+ -| shift = 10 | Sample shift for running coarse cross-correlation | -+---------------------------+------------------------------------------------------------------+ -| extraweight = 1000 | Weight for the zero-mean equation in MCCC weighted lsqr solution | -+---------------------------+------------------------------------------------------------------+ -| lsqr = nowe | Type of lsqr solution: no weight | -+---------------------------+------------------------------------------------------------------+ -| #lsqr = lnco | Type of lsqr solution: weighted by correlation coefficient, | -| | solved by lapack | -+---------------------------+------------------------------------------------------------------+ -| #lsqr = lnre | Type of lsqr solution: weighted by residual, solved by lapack | -+---------------------------+------------------------------------------------------------------+ -| rcfile = .mcccrc | Configuration file for MCCC parameters (deprecated) | -+---------------------------+------------------------------------------------------------------+ -| evlist = event.list | File for event hypocenter and origin time (deprecated) | -+---------------------------+------------------------------------------------------------------+ - -+--------------------------+--------------------------------------------------------+ -| signal | | -+==========================+========================================================+ -| tapertype = hanning | Taper type | -+--------------------------+--------------------------------------------------------+ -| taperwidth = 0.1 | Taper width | -+--------------------------+--------------------------------------------------------+ -| fhdrBand = kuser1 | SAC Header to store filter type | -+--------------------------+--------------------------------------------------------+ -| fhdrApply = kuser1 | SAC Header to store applying filter or not | -+--------------------------+--------------------------------------------------------+ -| fhdrRevPass = user4 | SAC Header to store reverse pass of filter | -+--------------------------+--------------------------------------------------------+ -| fhdrLowFreq = user5 | SAC Header to store low frequency of band pass filter | -+--------------------------+--------------------------------------------------------+ -| fhdrHighFreq = user6 | SAC Header to store high frequency of band pass filter | -+--------------------------+--------------------------------------------------------+ -| fhdrOrder = user7 | SAC Header to store order of band pass filter | -+--------------------------+--------------------------------------------------------+ -| fvalApply = 0 | Value of applying filter or not | -+--------------------------+--------------------------------------------------------+ -| fvalBand = bandpass | Value of filter type | -+--------------------------+--------------------------------------------------------+ -| fvalRevPass = 0 | Value of reverse pass filter | -+--------------------------+--------------------------------------------------------+ -| fvalLowFreq = 0.05 | Value of low frequency of band pass filter | -+--------------------------+--------------------------------------------------------+ -| fvalHighFreq = 2 | Value of high frequency of band pass | -+--------------------------+--------------------------------------------------------+ -| fvalOrder = 2 | Value oforder of band pass filter | -+--------------------------+--------------------------------------------------------+ - diff --git a/docs/source/usage/sac.rst b/docs/source/usage/sac.rst deleted file mode 100644 index aa88a139..00000000 --- a/docs/source/usage/sac.rst +++ /dev/null @@ -1,4 +0,0 @@ -Seismic Analysis Code (SAC) ---------------------------- - -AIMBAT uses `Seismic Analysis Code (SAC) `_ formatting for some of the files it runs and outputs. To get SAC, you will need to fill out a software request form available on the IRIS website. diff --git a/docs/source/usage/sacioAIMBAT.rst b/docs/source/usage/sacioAIMBAT.rst deleted file mode 100644 index bdd98880..00000000 --- a/docs/source/usage/sacioAIMBAT.rst +++ /dev/null @@ -1,33 +0,0 @@ -SAC Input/Output procedures for AIMBAT --------------------------------------- - -Aimbat converts SAC files to python pickle data structure to increase -data processing efficiency by avoiding frequent SAC file I/O. - -Reading and writing SAC files is done only once each before and after data processing, and -intermediate processing is performed on python objects and pickles. - -Converting from SAC to PKL files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Place the SAC files you want to convert to a pickle (PKL) file into the same folder. -Suppose, for instance, they are BHZ channels. Note that the SAC files must be of the -same channel. cd into that folder, and run:: - - aimbat-sac2pkl -s *.BHZ.sac - -The output should be a PKL file in the same folder as the sac files. - -.. image:: images/sac_to_pkl_conversion.png - - -Converting from PKL to SAC files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -cd into the folder containing the PKL file that you wish to convert into SAC files, and run:: - - aimbat-sac2pkl --p2s .pkl - -The SAC files contained within will output into the same folder as the PKL file is stored in. - -.. image:: images/pkl_to_sac_conversion.png diff --git a/docs/user-guide/cli.md b/docs/usage/cli.md similarity index 100% rename from docs/user-guide/cli.md rename to docs/usage/cli.md diff --git a/docs/user-guide/gen_ref_pages.py b/docs/usage/gen_ref_pages.py similarity index 100% rename from docs/user-guide/gen_ref_pages.py rename to docs/usage/gen_ref_pages.py diff --git a/docs/user-guide/gpl-3.0.md b/docs/usage/gpl-3.0.md similarity index 100% rename from docs/user-guide/gpl-3.0.md rename to docs/usage/gpl-3.0.md diff --git a/docs/user-guide/gui.md b/docs/usage/gui.md similarity index 100% rename from docs/user-guide/gui.md rename to docs/usage/gui.md diff --git a/docs/user-guide/overview.md b/docs/usage/index.md similarity index 64% rename from docs/user-guide/overview.md rename to docs/usage/index.md index df3cc068..a1db4314 100644 --- a/docs/user-guide/overview.md +++ b/docs/usage/index.md @@ -3,14 +3,11 @@ Once [installed](../first-steps/installation.md), AIMBAT can be used in several ways: - As a [command line](cli.md) application. -- Within a [notebook](/examples/tutorial)[^notebook]. - As a [GUI](gui.md) (graphical user interface) application. -[^notebook]: [Jupyter Lab/Notebook](https://jupyter.org/) is *not* bundled with AIMBAT. - Complete walkthroughs for each of these options are presented in the following sections. !!! tip AIMBAT project files are independent of user interface. In other words, - existing projects can be opened in any way (cli, notebook, gui). + existing projects can be opened in any way (cli or gui). diff --git a/docs/user-guide/changelog.md b/docs/user-guide/changelog.md deleted file mode 100644 index 2752165b..00000000 --- a/docs/user-guide/changelog.md +++ /dev/null @@ -1 +0,0 @@ ---8<-- "changelog.md" diff --git a/flake.lock b/flake.lock index 3ffa88a5..a743962b 100644 --- a/flake.lock +++ b/flake.lock @@ -18,27 +18,9 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "nixgl": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" }, "locked": { @@ -88,9 +70,9 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", "nixgl": "nixgl", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "systems": "systems_2" } }, "systems": { diff --git a/flake.nix b/flake.nix index ace814e1..3e003df5 100644 --- a/flake.nix +++ b/flake.nix @@ -3,62 +3,61 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + systems.url = "github:nix-systems/default"; nixgl.url = "github:nix-community/nixgl"; }; outputs = { self, nixpkgs, - flake-utils, + systems, nixgl, ... - } @ inputs: - flake-utils.lib.eachDefaultSystem ( - system: let + }: + let + eachSystem = nixpkgs.lib.genAttrs (import systems); + in { + devShells = eachSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [nixgl.overlay]; }; in { - devShells = { - default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ - uv - ruff - (python314.withPackages (ps: with ps; [tox])) - python313 - python312 - gnumake - sqlitebrowser - ]; + default = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ + uv + ruff + (python314.withPackages (ps: with ps; [tox])) + python313 + python312 + gnumake + sqlitebrowser + ]; - shellHook = '' - export LD_LIBRARY_PATH=${with pkgs; - lib.makeLibraryPath [ - stdenv.cc.cc.lib - zlib - zstd - libX11 - libGL - glib - libxkbcommon - fontconfig - freetype - dbus - wayland - ]}:$LD_LIBRARY_PATH - export UV_PYTHON=$(which python3.14) - export UV_NO_MANAGED_PYTHON=true - [ ! -d .venv ] && uv venv --system-site-packages - uv sync --locked --all-extras - VENV=.venv - export MPLBACKEND=QtAgg - source $VENV/bin/activate - ''; - }; + shellHook = '' + export LD_LIBRARY_PATH=${with pkgs; + lib.makeLibraryPath [ + stdenv.cc.cc.lib + zlib + zstd + libX11 + libGL + glib + libxkbcommon + fontconfig + freetype + dbus + wayland + ]}:$LD_LIBRARY_PATH + export UV_PYTHON=$(which python3.14) + export UV_NO_MANAGED_PYTHON=true + [ ! -d .venv ] && uv venv --system-site-packages + uv sync --locked --all-extras + export MPLBACKEND=QtAgg + source .venv/bin/activate + ''; }; - formatter = pkgs.nixpkgs-fmt; - } - ); + }); + formatter = eachSystem (system: (import nixpkgs {inherit system;}).nixpkgs-fmt); + }; } diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index a3e6a96f..00000000 --- a/mkdocs.yml +++ /dev/null @@ -1,163 +0,0 @@ -site_name: AIMBAT -copyright: Copyright © 2024-2026 Simon Lloyd - -# Repository -repo_name: pysmo/aimbat -repo_url: https://github.com/pysmo/aimbat - -# Configuration -theme: - name: material - features: - # - announce.dismiss - - content.action.edit - - content.action.view - - content.code.annotate - - content.code.copy - - content.footnote.tooltips - - content.tooltips - - content.tabs.link - - navigation.footer - - navigation.indexes - # - navigation.sections - # - navigation.tabs - - navigation.top - palette: - # Palette toggle for automatic mode - - media: "(prefers-color-scheme)" - toggle: - icon: material/brightness-auto - name: Switch to light mode - - # Palette toggle for light mode - - media: "(prefers-color-scheme: light)" - scheme: default - primary: purple - accent: purple - toggle: - icon: material/brightness-7 - name: Switch to dark mode - - # Palette toggle for dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: purple - accent: purple - toggle: - icon: material/brightness-4 - name: Switch to system preference - -extra_javascript: - - javascripts/asciinema-player.min.js - - javascripts/katex.js - - https://unpkg.com/katex@0/dist/katex.min.js - - https://unpkg.com/katex@0/dist/contrib/auto-render.min.js - -extra_css: - - css/asciinema-player.css - - css/material.css - - css/mermaid.css - - css/mkdocstrings.css - - https://unpkg.com/katex@0/dist/katex.min.css - -extra: - version: - provider: mike - -markdown_extensions: - - admonition - - attr_list - - footnotes - - md_in_html - - toc: - permalink: "#" - - pymdownx.details - - pymdownx.highlight - - pymdownx.inlinehilite - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format "" - - pymdownx.snippets - - pymdownx.tabbed: - alternate_style: true - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg - - pymdownx.arithmatex: - generic: - true - # - markdown_include.include: - # base_path: docs - # - termynal: - # prompt_literal_start: - # - "$" - # - ">" - # - ">>>" - -plugins: - - search - - autorefs - - bibtex: - bib_file: docs/refs.bib - - mkdocs-jupyter: - ignore: - - docs/gen_ref_pages.py - - docs/snippets/*.py - # - gen-files: - # scripts: - # - docs/user-guide/gen_ref_pages.py - # - literate-nav: - # nav_file: SUMMARY.md - - section-index - - mkdocstrings: - handlers: - python: - options: - allow_inspection: true - backlinks: tree - # docstring_section_style: spacy - docstring_style: google - # extensions: - # - griffe_fieldz - # force_inspection: true - inherited_members: true - modernize_annotations: true - parameter_headings: true - separate_signature: true - # show_if_no_docstring: false - show_inheritance_diagram: true - show_overloads: false - show_signature_annotations: true - show_symbol_type_heading: true - show_symbol_type_toc: true - signature_crossrefs: true - # with_preloaded_modules: true - trim_doctest_flags: true - import: - - https://docs.pysmo.org/objects.inv - - https://docs.python.org/3/objects.inv - - https://numpy.org/doc/stable/objects.inv - - https://docs.scipy.org/doc/scipy/objects.inv - - https://matplotlib.org/stable/objects.inv - - termynal - -nav: - - Home: index.md - - First Steps: - - Installation: first-steps/installation.md - - Data & Conventions: first-steps/data.md - - Workflow & Strategy: first-steps/workflow.md - - User Guide: - - user-guide/overview.md - - user-guide/cli.md - - examples/tutorial.ipynb - - user-guide/gui.md - - Getting Help: user-guide/help.md - - API Reference: - - reference/index.md - - aimbat.cli: reference/cli.md - - aimbat.lib: reference/lib.md - - Contributors: user-guide/contributors.md - - Changelog: user-guide/changelog.md diff --git a/pyproject.toml b/pyproject.toml index dbdaff93..8c106bab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,6 @@ dependencies = [ "matplotlib>=3.10.6", "pyside6>=6.9.2", "pyqtgraph>=0.13.7", - "jupyter-rfb>=0.5.3", "cyclopts>=3.24.0", "pydantic-settings>=2.10.1", ] @@ -37,7 +36,6 @@ aimbat = "aimbat.app:app" [dependency-groups] test = [ - "nbmake>=1.5.5", "pytest>=8.4.2", "pytest-cov>=7.0.0", "pytest-dependency>=0.6.0", @@ -48,20 +46,12 @@ test = [ "ruff>=0.13.0", ] dev = [ - "black[jupyter]>=25.1.0", + "black>=26.1.0", ] docs = [ - "ipympl>=0.9.7", - "jupyterlab>=4.4.7", - "markdown-include>=0.8.1", - "mkdocs-bibtex>=4.4.0", - "mkdocs-gen-files>=0.5.0", - "mkdocs-jupyter>=0.25.1", - "mkdocs-literate-nav>=0.6.2", - "mkdocs-material>=9.6.19", - "mkdocs-section-index>=0.3.10", - "mkdocstrings[python]>=0.30.0", - "termynal>=0.13.1", + "git-cliff>=2.12.0", + "mkdocstrings-python>=2.0.2", + "zensical>=0.0.23", ] [tool.uv] diff --git a/src/aimbat/cli/iccs.py b/src/aimbat/cli/iccs.py index 019d28fd..52252627 100644 --- a/src/aimbat/cli/iccs.py +++ b/src/aimbat/cli/iccs.py @@ -134,11 +134,7 @@ def cli_iccs_plot_seismograms( iccs_parameters: IccsPlotParameters | None = None, global_parameters: GlobalParameters | None = None, ) -> None: - """Plot the ICCS seismograms of the active event as an image. - - Parameters: - pad: Add extra padding to the time window for plotting. - """ + """Plot the ICCS seismograms of the active event as an image.""" iccs_parameters = iccs_parameters or IccsPlotParameters() global_parameters = global_parameters or GlobalParameters() diff --git a/src/aimbat/lib/common.py b/src/aimbat/lib/common.py index d1686b4f..21d3a27a 100644 --- a/src/aimbat/lib/common.py +++ b/src/aimbat/lib/common.py @@ -76,23 +76,6 @@ def uuid_shortener( return reverse_uuid_dict[aimbat_obj.id] -# NOTE: https://stackoverflow.com/questions/15411967/how-can-i-check-if-code-is-executed-in-the-ipython-notebook -def check_for_notebook() -> bool: - """Check if we ware running inside a jupyter notebook.""" - import IPython.core.getipython as getipython - - try: - shell = getipython.get_ipython().__class__.__name__ - if shell == "ZMQInteractiveShell": - return True # Jupyter notebook or qtconsole - elif shell == "TerminalInteractiveShell": - return False # Terminal running IPython - else: - return False # Other type (?) - except NameError: - return False # Probably standard Python interpreter - - # ------------------------------------------------- # Styling # ------------------------------------------------- diff --git a/src/aimbat/lib/event.py b/src/aimbat/lib/event.py index e089dc26..ff5ccb41 100644 --- a/src/aimbat/lib/event.py +++ b/src/aimbat/lib/event.py @@ -100,7 +100,7 @@ def set_active_event_by_id(session: Session, event_id: UUID) -> None: Parameters: session: SQL session. - id: ID of AIMBAT Event to set as active one. + event_id: ID of AIMBAT Event to set as active one. Raises: ValueError: If no event with the given ID is found. diff --git a/src/aimbat/lib/project.py b/src/aimbat/lib/project.py index 345165ee..a0dcaa8a 100644 --- a/src/aimbat/lib/project.py +++ b/src/aimbat/lib/project.py @@ -100,9 +100,6 @@ def delete_project() -> None: def print_project_info() -> None: """Show AIMBAT project information. - Parameters: - engine: Database engine. - Raises: RuntimeError: If no project found. """ diff --git a/src/aimbat/lib/seismogram.py b/src/aimbat/lib/seismogram.py index a68b7991..597a14d1 100644 --- a/src/aimbat/lib/seismogram.py +++ b/src/aimbat/lib/seismogram.py @@ -1,11 +1,6 @@ from aimbat.logger import logger from aimbat.lib.db import engine -from aimbat.lib.common import ( - check_for_notebook, - uuid_shortener, - make_table, - TABLE_STYLING, -) +from aimbat.lib.common import uuid_shortener, make_table, TABLE_STYLING from aimbat.lib.models import ( AimbatEvent, AimbatSeismogram, @@ -26,9 +21,8 @@ from rich.console import Console from sqlmodel import Session, select from sqlalchemy.exc import NoResultFound -from typing import overload, Literal +from typing import overload from collections.abc import Sequence -from pyqtgraph.jupyter import PlotWidget # type: ignore from matplotlib.figure import Figure import aimbat.lib.event as event import uuid @@ -348,13 +342,7 @@ def dump_seismogram_table() -> None: dump_to_json(aimbat_seismograms) -@overload -def plot_seismograms(use_qt: Literal[True]) -> PlotWidget: ... -@overload -def plot_seismograms(use_qt: Literal[False] = False) -> Figure: ... -@overload -def plot_seismograms(use_qt: bool = False) -> Figure | PlotWidget: ... -def plot_seismograms(use_qt: bool = False) -> Figure | PlotWidget: +def plot_seismograms(use_qt: bool = False) -> Figure: """Plot all seismograms for a particular event ordered by great circle distance. Parameters: @@ -386,10 +374,7 @@ def plot_seismograms(use_qt: bool = False) -> Figure | PlotWidget: plot_widget = None if use_qt: - if check_for_notebook(): - plot_widget = PlotWidget(width=200) - else: - plot_widget = pg.plot(title=title) + plot_widget = pg.plot(title=title) axis = pg.DateAxisItem() plot_widget.setAxisItems({"bottom": axis}) plot_widget.setLabel("bottom", xlabel) @@ -413,9 +398,7 @@ def plot_seismograms(use_qt: bool = False) -> Figure | PlotWidget: scalex=True, scaley=True, ) - if use_qt and isinstance(plot_widget, PlotWidget): - return plot_widget - elif not use_qt: + if not use_qt: plt.xlabel(xlabel=xlabel) plt.ylabel(ylabel=ylabel) plt.gcf().autofmt_xdate() diff --git a/tests/lib/test_lib_common.py b/tests/lib/test_lib_common.py index 22c9e653..6aa36a03 100644 --- a/tests/lib/test_lib_common.py +++ b/tests/lib/test_lib_common.py @@ -1,5 +1,4 @@ from sqlmodel import Session -from types import SimpleNamespace from aimbat.lib.models import AimbatStation from collections.abc import Iterator import pytest @@ -78,49 +77,3 @@ def test_uuid_shortener( assert ( uuid_shortener(session_with_stations, aimbat_station) == str(test_uuid)[:2] ) - - -@pytest.mark.parametrize( - "shell, expected", - [ - ("ZMQInteractiveShell", True), - ("TerminalInteractiveShell", False), - ("SomeOtherShell", False), - ("raise", False), - ], -) -def test_ipython_class_name2( - monkeypatch: pytest.MonkeyPatch, shell: str, expected: bool -) -> None: - """Not quite sure what the point of this test is...""" - import IPython.core.getipython as getipython - from aimbat.lib.common import check_for_notebook - - # Create a fake class object with a custom __name__ - fake_class = SimpleNamespace(__name__=shell) - - # Create a fake IPython instance with a custom __class__ - class FakeIPython: - @property # type: ignore - def __class__(self): # type: ignore - return fake_class - - def fake_get_ipython() -> FakeIPython: - return FakeIPython() - - def raise_name_error() -> None: - raise NameError - - monkeypatch.setattr( - getipython, - "get_ipython", - raise_name_error if shell == "raise" else fake_get_ipython, - ) - - if shell != "raise": - assert getipython.get_ipython().__class__.__name__ == shell - else: - with pytest.raises(NameError): - getipython.get_ipython() - - assert check_for_notebook() is expected diff --git a/uv.lock b/uv.lock index 8de40410..ce183b90 100644 --- a/uv.lock +++ b/uv.lock @@ -1,10 +1,6 @@ version = 1 revision = 3 requires-python = ">=3.12, <3.15" -resolution-markers = [ - "python_full_version >= '3.14'", - "python_full_version < '3.14'", -] [[package]] name = "aimbat" @@ -12,7 +8,6 @@ version = "2.0.0.dev0" source = { editable = "." } dependencies = [ { name = "cyclopts" }, - { name = "jupyter-rfb" }, { name = "loguru" }, { name = "matplotlib" }, { name = "pydantic-settings" }, @@ -25,23 +20,14 @@ dependencies = [ [package.dev-dependencies] dev = [ - { name = "black", extra = ["jupyter"] }, + { name = "black" }, ] docs = [ - { name = "ipympl" }, - { name = "jupyterlab" }, - { name = "markdown-include" }, - { name = "mkdocs-bibtex" }, - { name = "mkdocs-gen-files" }, - { name = "mkdocs-jupyter" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-material" }, - { name = "mkdocs-section-index" }, - { name = "mkdocstrings", extra = ["python"] }, - { name = "termynal" }, + { name = "git-cliff" }, + { name = "mkdocstrings-python" }, + { name = "zensical" }, ] test = [ - { name = "nbmake" }, { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-dependency" }, @@ -55,7 +41,6 @@ test = [ [package.metadata] requires-dist = [ { name = "cyclopts", specifier = ">=3.24.0" }, - { name = "jupyter-rfb", specifier = ">=0.5.3" }, { name = "loguru", specifier = ">=0.7.3" }, { name = "matplotlib", specifier = ">=3.10.6" }, { name = "pydantic-settings", specifier = ">=2.10.1" }, @@ -67,22 +52,13 @@ requires-dist = [ ] [package.metadata.requires-dev] -dev = [{ name = "black", extras = ["jupyter"], specifier = ">=25.1.0" }] +dev = [{ name = "black", specifier = ">=26.1.0" }] docs = [ - { name = "ipympl", specifier = ">=0.9.7" }, - { name = "jupyterlab", specifier = ">=4.4.7" }, - { name = "markdown-include", specifier = ">=0.8.1" }, - { name = "mkdocs-bibtex", specifier = ">=4.4.0" }, - { name = "mkdocs-gen-files", specifier = ">=0.5.0" }, - { name = "mkdocs-jupyter", specifier = ">=0.25.1" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6.2" }, - { name = "mkdocs-material", specifier = ">=9.6.19" }, - { name = "mkdocs-section-index", specifier = ">=0.3.10" }, - { name = "mkdocstrings", extras = ["python"], specifier = ">=0.30.0" }, - { name = "termynal", specifier = ">=0.13.1" }, + { name = "git-cliff", specifier = ">=2.12.0" }, + { name = "mkdocstrings-python", specifier = ">=2.0.2" }, + { name = "zensical", specifier = ">=0.0.23" }, ] test = [ - { name = "nbmake", specifier = ">=1.5.5" }, { name = "pytest", specifier = ">=8.4.2" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-dependency", specifier = ">=0.6.0" }, @@ -115,89 +91,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" }, ] -[[package]] -name = "appnope" -version = "0.1.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, -] - -[[package]] -name = "argon2-cffi" -version = "25.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "argon2-cffi-bindings" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0e/89/ce5af8a7d472a67cc819d5d998aa8c82c5d860608c4db9f46f1162d7dab9/argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1", size = 45706, upload-time = "2025-06-03T06:55:32.073Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741", size = 14657, upload-time = "2025-06-03T06:55:30.804Z" }, -] - -[[package]] -name = "argon2-cffi-bindings" -version = "25.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/db8af0df73c1cf454f71b2bbe5e356b8c1f8041c979f505b3d3186e520a9/argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d", size = 1783441, upload-time = "2025-07-30T10:02:05.147Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/97/3c0a35f46e52108d4707c44b95cfe2afcafc50800b5450c197454569b776/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f", size = 54393, upload-time = "2025-07-30T10:01:40.97Z" }, - { url = "https://files.pythonhosted.org/packages/9d/f4/98bbd6ee89febd4f212696f13c03ca302b8552e7dbf9c8efa11ea4a388c3/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b", size = 29328, upload-time = "2025-07-30T10:01:41.916Z" }, - { url = "https://files.pythonhosted.org/packages/43/24/90a01c0ef12ac91a6be05969f29944643bc1e5e461155ae6559befa8f00b/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3c6702abc36bf3ccba3f802b799505def420a1b7039862014a65db3205967f5a", size = 31269, upload-time = "2025-07-30T10:01:42.716Z" }, - { url = "https://files.pythonhosted.org/packages/d4/d3/942aa10782b2697eee7af5e12eeff5ebb325ccfb86dd8abda54174e377e4/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c70058c6ab1e352304ac7e3b52554daadacd8d453c1752e547c76e9c99ac44", size = 86558, upload-time = "2025-07-30T10:01:43.943Z" }, - { url = "https://files.pythonhosted.org/packages/0d/82/b484f702fec5536e71836fc2dbc8c5267b3f6e78d2d539b4eaa6f0db8bf8/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2fd3bfbff3c5d74fef31a722f729bf93500910db650c925c2d6ef879a7e51cb", size = 92364, upload-time = "2025-07-30T10:01:44.887Z" }, - { url = "https://files.pythonhosted.org/packages/c9/c1/a606ff83b3f1735f3759ad0f2cd9e038a0ad11a3de3b6c673aa41c24bb7b/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4f9665de60b1b0e99bcd6be4f17d90339698ce954cfd8d9cf4f91c995165a92", size = 85637, upload-time = "2025-07-30T10:01:46.225Z" }, - { url = "https://files.pythonhosted.org/packages/44/b4/678503f12aceb0262f84fa201f6027ed77d71c5019ae03b399b97caa2f19/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba92837e4a9aa6a508c8d2d7883ed5a8f6c308c89a4790e1e447a220deb79a85", size = 91934, upload-time = "2025-07-30T10:01:47.203Z" }, - { url = "https://files.pythonhosted.org/packages/f0/c7/f36bd08ef9bd9f0a9cff9428406651f5937ce27b6c5b07b92d41f91ae541/argon2_cffi_bindings-25.1.0-cp314-cp314t-win32.whl", hash = "sha256:84a461d4d84ae1295871329b346a97f68eade8c53b6ed9a7ca2d7467f3c8ff6f", size = 28158, upload-time = "2025-07-30T10:01:48.341Z" }, - { url = "https://files.pythonhosted.org/packages/b3/80/0106a7448abb24a2c467bf7d527fe5413b7fdfa4ad6d6a96a43a62ef3988/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b55aec3565b65f56455eebc9b9f34130440404f27fe21c3b375bf1ea4d8fbae6", size = 32597, upload-time = "2025-07-30T10:01:49.112Z" }, - { url = "https://files.pythonhosted.org/packages/05/b8/d663c9caea07e9180b2cb662772865230715cbd573ba3b5e81793d580316/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:87c33a52407e4c41f3b70a9c2d3f6056d88b10dad7695be708c5021673f55623", size = 28231, upload-time = "2025-07-30T10:01:49.92Z" }, - { url = "https://files.pythonhosted.org/packages/1d/57/96b8b9f93166147826da5f90376e784a10582dd39a393c99bb62cfcf52f0/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500", size = 54121, upload-time = "2025-07-30T10:01:50.815Z" }, - { url = "https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44", size = 29177, upload-time = "2025-07-30T10:01:51.681Z" }, - { url = "https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0", size = 31090, upload-time = "2025-07-30T10:01:53.184Z" }, - { url = "https://files.pythonhosted.org/packages/c1/93/44365f3d75053e53893ec6d733e4a5e3147502663554b4d864587c7828a7/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6", size = 81246, upload-time = "2025-07-30T10:01:54.145Z" }, - { url = "https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a", size = 87126, upload-time = "2025-07-30T10:01:55.074Z" }, - { url = "https://files.pythonhosted.org/packages/72/70/7a2993a12b0ffa2a9271259b79cc616e2389ed1a4d93842fac5a1f923ffd/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d", size = 80343, upload-time = "2025-07-30T10:01:56.007Z" }, - { url = "https://files.pythonhosted.org/packages/78/9a/4e5157d893ffc712b74dbd868c7f62365618266982b64accab26bab01edc/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99", size = 86777, upload-time = "2025-07-30T10:01:56.943Z" }, - { url = "https://files.pythonhosted.org/packages/74/cd/15777dfde1c29d96de7f18edf4cc94c385646852e7c7b0320aa91ccca583/argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2", size = 27180, upload-time = "2025-07-30T10:01:57.759Z" }, - { url = "https://files.pythonhosted.org/packages/e2/c6/a759ece8f1829d1f162261226fbfd2c6832b3ff7657384045286d2afa384/argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98", size = 31715, upload-time = "2025-07-30T10:01:58.56Z" }, - { url = "https://files.pythonhosted.org/packages/42/b9/f8d6fa329ab25128b7e98fd83a3cb34d9db5b059a9847eddb840a0af45dd/argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94", size = 27149, upload-time = "2025-07-30T10:01:59.329Z" }, -] - -[[package]] -name = "arrow" -version = "1.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "python-dateutil" }, - { name = "tzdata" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" }, -] - -[[package]] -name = "asttokens" -version = "3.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, -] - -[[package]] -name = "async-lru" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ef/c3/bbf34f15ea88dfb649ab2c40f9d75081784a50573a9ea431563cab64adb8/async_lru-2.1.0.tar.gz", hash = "sha256:9eeb2fecd3fe42cc8a787fc32ead53a3a7158cc43d039c3c55ab3e4e5b2a80ed", size = 12041, upload-time = "2026-01-17T22:52:18.931Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/e9/eb6a5db5ac505d5d45715388e92bced7a5bb556facc4d0865d192823f2d2/async_lru-2.1.0-py3-none-any.whl", hash = "sha256:fa12dcf99a42ac1280bc16c634bbaf06883809790f6304d85cdab3f666f33a7e", size = 6933, upload-time = "2026-01-17T22:52:17.389Z" }, -] - [[package]] name = "attrs" version = "25.4.0" @@ -219,29 +112,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/51/b4/51f8a8110319adbe8ef25ba63c4069511ba4474014abdf644afa1adbba31/attrs_strict-1.0.1-py3-none-any.whl", hash = "sha256:36ed5955d8798d4cf1d183362f151fb230a10d40558f78e2d943b63c1269c9d2", size = 14103, upload-time = "2023-08-14T16:58:50.222Z" }, ] -[[package]] -name = "babel" -version = "2.18.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, -] - -[[package]] -name = "backrefs" -version = "6.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/86/e3/bb3a439d5cb255c4774724810ad8073830fac9c9dee123555820c1bcc806/backrefs-6.1.tar.gz", hash = "sha256:3bba1749aafe1db9b915f00e0dd166cba613b6f788ffd63060ac3485dc9be231", size = 7011962, upload-time = "2025-11-15T14:52:08.323Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/ee/c216d52f58ea75b5e1841022bbae24438b19834a29b163cb32aa3a2a7c6e/backrefs-6.1-py310-none-any.whl", hash = "sha256:2a2ccb96302337ce61ee4717ceacfbf26ba4efb1d55af86564b8bbaeda39cac1", size = 381059, upload-time = "2025-11-15T14:51:59.758Z" }, - { url = "https://files.pythonhosted.org/packages/e6/9a/8da246d988ded941da96c7ed945d63e94a445637eaad985a0ed88787cb89/backrefs-6.1-py311-none-any.whl", hash = "sha256:e82bba3875ee4430f4de4b6db19429a27275d95a5f3773c57e9e18abc23fd2b7", size = 392854, upload-time = "2025-11-15T14:52:01.194Z" }, - { url = "https://files.pythonhosted.org/packages/37/c9/fd117a6f9300c62bbc33bc337fd2b3c6bfe28b6e9701de336b52d7a797ad/backrefs-6.1-py312-none-any.whl", hash = "sha256:c64698c8d2269343d88947c0735cb4b78745bd3ba590e10313fbf3f78c34da5a", size = 398770, upload-time = "2025-11-15T14:52:02.584Z" }, - { url = "https://files.pythonhosted.org/packages/eb/95/7118e935b0b0bd3f94dfec2d852fd4e4f4f9757bdb49850519acd245cd3a/backrefs-6.1-py313-none-any.whl", hash = "sha256:4c9d3dc1e2e558965202c012304f33d4e0e477e1c103663fd2c3cc9bb18b0d05", size = 400726, upload-time = "2025-11-15T14:52:04.093Z" }, - { url = "https://files.pythonhosted.org/packages/1d/72/6296bad135bfafd3254ae3648cd152980a424bd6fed64a101af00cc7ba31/backrefs-6.1-py314-none-any.whl", hash = "sha256:13eafbc9ccd5222e9c1f0bec563e6d2a6d21514962f11e7fc79872fd56cbc853", size = 412584, upload-time = "2025-11-15T14:52:05.233Z" }, - { url = "https://files.pythonhosted.org/packages/02/e3/a4fa1946722c4c7b063cc25043a12d9ce9b4323777f89643be74cef2993c/backrefs-6.1-py39-none-any.whl", hash = "sha256:a9e99b8a4867852cad177a6430e31b0f6e495d65f8c6c134b68c14c3c95bf4b0", size = 381058, upload-time = "2025-11-15T14:52:06.698Z" }, -] - [[package]] name = "beartype" version = "0.22.9" @@ -251,19 +121,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload-time = "2025-12-13T06:50:28.266Z" }, ] -[[package]] -name = "beautifulsoup4" -version = "4.14.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "soupsieve" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, -] - [[package]] name = "black" version = "26.1.0" @@ -296,29 +153,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl", hash = "sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede", size = 204010, upload-time = "2026-01-18T04:50:09.978Z" }, ] -[package.optional-dependencies] -jupyter = [ - { name = "ipython" }, - { name = "tokenize-rt" }, -] - -[[package]] -name = "bleach" -version = "6.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "webencodings" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" }, -] - -[package.optional-dependencies] -css = [ - { name = "tinycss2" }, -] - [[package]] name = "cattrs" version = "25.3.0" @@ -341,120 +175,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, ] -[[package]] -name = "cffi" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, - { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, - { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, - { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, - { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, - { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, - { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, - { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, - { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, - { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, - { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, -] - [[package]] name = "click" version = "8.3.1" @@ -476,15 +196,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] -[[package]] -name = "comm" -version = "0.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, -] - [[package]] name = "contourpy" version = "1.3.3" @@ -660,42 +371,12 @@ wheels = [ ] [[package]] -name = "debugpy" -version = "1.8.20" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/57/7f34f4736bfb6e00f2e4c96351b07805d83c9a7b33d28580ae01374430f7/debugpy-1.8.20-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:4ae3135e2089905a916909ef31922b2d733d756f66d87345b3e5e52b7a55f13d", size = 2550686, upload-time = "2026-01-29T23:03:42.023Z" }, - { url = "https://files.pythonhosted.org/packages/ab/78/b193a3975ca34458f6f0e24aaf5c3e3da72f5401f6054c0dfd004b41726f/debugpy-1.8.20-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:88f47850a4284b88bd2bfee1f26132147d5d504e4e86c22485dfa44b97e19b4b", size = 4310588, upload-time = "2026-01-29T23:03:43.314Z" }, - { url = "https://files.pythonhosted.org/packages/c1/55/f14deb95eaf4f30f07ef4b90a8590fc05d9e04df85ee379712f6fb6736d7/debugpy-1.8.20-cp312-cp312-win32.whl", hash = "sha256:4057ac68f892064e5f98209ab582abfee3b543fb55d2e87610ddc133a954d390", size = 5331372, upload-time = "2026-01-29T23:03:45.526Z" }, - { url = "https://files.pythonhosted.org/packages/a1/39/2bef246368bd42f9bd7cba99844542b74b84dacbdbea0833e610f384fee8/debugpy-1.8.20-cp312-cp312-win_amd64.whl", hash = "sha256:a1a8f851e7cf171330679ef6997e9c579ef6dd33c9098458bd9986a0f4ca52e3", size = 5372835, upload-time = "2026-01-29T23:03:47.245Z" }, - { url = "https://files.pythonhosted.org/packages/15/e2/fc500524cc6f104a9d049abc85a0a8b3f0d14c0a39b9c140511c61e5b40b/debugpy-1.8.20-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:5dff4bb27027821fdfcc9e8f87309a28988231165147c31730128b1c983e282a", size = 2539560, upload-time = "2026-01-29T23:03:48.738Z" }, - { url = "https://files.pythonhosted.org/packages/90/83/fb33dcea789ed6018f8da20c5a9bc9d82adc65c0c990faed43f7c955da46/debugpy-1.8.20-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:84562982dd7cf5ebebfdea667ca20a064e096099997b175fe204e86817f64eaf", size = 4293272, upload-time = "2026-01-29T23:03:50.169Z" }, - { url = "https://files.pythonhosted.org/packages/a6/25/b1e4a01bfb824d79a6af24b99ef291e24189080c93576dfd9b1a2815cd0f/debugpy-1.8.20-cp313-cp313-win32.whl", hash = "sha256:da11dea6447b2cadbf8ce2bec59ecea87cc18d2c574980f643f2d2dfe4862393", size = 5331208, upload-time = "2026-01-29T23:03:51.547Z" }, - { url = "https://files.pythonhosted.org/packages/13/f7/a0b368ce54ffff9e9028c098bd2d28cfc5b54f9f6c186929083d4c60ba58/debugpy-1.8.20-cp313-cp313-win_amd64.whl", hash = "sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7", size = 5372930, upload-time = "2026-01-29T23:03:53.585Z" }, - { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" }, - { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" }, - { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" }, - { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" }, - { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" }, -] - -[[package]] -name = "decorator" -version = "5.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, -] - -[[package]] -name = "defusedxml" -version = "0.7.1" +name = "deepmerge" +version = "2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a8/3a/b0ba594708f1ad0bc735884b3ad854d3ca3bdc1d741e56e40bbda6263499/deepmerge-2.0.tar.gz", hash = "sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20", size = 19890, upload-time = "2024-08-30T05:31:50.308Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/e5d2c1c67d19841e9edc74954c827444ae826978499bde3dfc1d007c8c11/deepmerge-2.0-py3-none-any.whl", hash = "sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00", size = 13475, upload-time = "2024-08-30T05:31:48.659Z" }, ] [[package]] @@ -716,24 +397,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, ] -[[package]] -name = "executing" -version = "2.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, -] - -[[package]] -name = "fastjsonschema" -version = "2.21.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, -] - [[package]] name = "filelock" version = "3.24.0" @@ -784,15 +447,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" }, ] -[[package]] -name = "fqdn" -version = "1.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" }, -] - [[package]] name = "ghp-import" version = "2.1.0" @@ -805,6 +459,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, ] +[[package]] +name = "git-cliff" +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/cf/dff8cd706d2e30e264cb3b9880235607188fb3ad596bfe6282147165bdcd/git_cliff-2.12.0.tar.gz", hash = "sha256:57b96b1f61167f85395353d6f47a89944b4882c03880312d53c09dacecb7ff86", size = 102106, upload-time = "2026-01-20T17:46:12.602Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/a5/dc5f800f6a6dc175faa0787653119754dbbe81a9db1274e041443690287b/git_cliff-2.12.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e9ee9aa29e9435211712fdab4b5ec9fb432c4bc9d244e39351b2be57aeba7999", size = 6879200, upload-time = "2026-01-20T17:45:55.964Z" }, + { url = "https://files.pythonhosted.org/packages/d7/b6/0e251bd49700e767c47d8d524a690ad713a3aed4318074278438042b8f25/git_cliff-2.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e18512138db5ef57302155b1163c0a2cf43c3d79071a5e083883b65bb990218c", size = 6456349, upload-time = "2026-01-20T17:45:58.202Z" }, + { url = "https://files.pythonhosted.org/packages/5e/63/4e8780f60ad28e8c26ae2b2b365daff9ffa84cb441a5d5bf62c42a75e75a/git_cliff-2.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d24c3e334fdf309c59802ea1a9cd3828e92c8c7cacdd619bcabdc638e00e2ade", size = 6916209, upload-time = "2026-01-20T17:45:59.931Z" }, + { url = "https://files.pythonhosted.org/packages/71/83/0bfab93065e10bcbe97e6136ccf6c1e8552715ef61c11eb678c397ff5fb0/git_cliff-2.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1aa25b05a0315d0f58fc2ac21503538ca749fc3dd7476ee5d6bdf380d9f26ab", size = 7305605, upload-time = "2026-01-20T17:46:01.991Z" }, + { url = "https://files.pythonhosted.org/packages/30/eb/78f624e387c1d9084ca7bcec3a8f28fda9fbbfbeb18c71465a727ee677b5/git_cliff-2.12.0-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:91eafd2f3ecf226b9a9c2a6c54d96df6042479927b48a97fcf46b728e8744bf1", size = 6927694, upload-time = "2026-01-20T17:46:03.798Z" }, + { url = "https://files.pythonhosted.org/packages/49/3f/735ddcb426c9f77498a039e9398162345c59f29c7990fbf22a530a15fb97/git_cliff-2.12.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:26c9771a50a039252c67803f4c7f187f2ce9c5eea336b8cef890e94483af7a9d", size = 7118983, upload-time = "2026-01-20T17:46:05.535Z" }, + { url = "https://files.pythonhosted.org/packages/f0/97/68a5bd8063904fc43df7811e713483ccd831a877751283c6514dfb5b079e/git_cliff-2.12.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:168f48b82f81ab8e1625d42adb739471623e25bd0a7e25b8c70490bad9e90e2b", size = 7541855, upload-time = "2026-01-20T17:46:07.348Z" }, + { url = "https://files.pythonhosted.org/packages/f7/00/2ed0bf7d71340c20906c1317db50cd6c14bdf0c90fa68a62885c9daf40a9/git_cliff-2.12.0-py3-none-win32.whl", hash = "sha256:4bc609a748c1c3493fe3e00a48305d343255ddff80e564fbf8eb954aac387784", size = 6354818, upload-time = "2026-01-20T17:46:09.117Z" }, + { url = "https://files.pythonhosted.org/packages/c0/fd/679d54e4ed37fdbadb58080219af8f35b5f659dd25e47ab1951b6349d1d0/git_cliff-2.12.0-py3-none-win_amd64.whl", hash = "sha256:c992b5756298251ecdd4db8abe087e90d00327f9eaf0c2470a44dbff64377d07", size = 7303564, upload-time = "2026-01-20T17:46:11.154Z" }, +] + [[package]] name = "greenlet" version = "3.3.1" @@ -931,120 +602,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] -[[package]] -name = "ipykernel" -version = "6.31.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "appnope", marker = "sys_platform == 'darwin'" }, - { name = "comm" }, - { name = "debugpy" }, - { name = "ipython" }, - { name = "jupyter-client" }, - { name = "jupyter-core" }, - { name = "matplotlib-inline" }, - { name = "nest-asyncio" }, - { name = "packaging" }, - { name = "psutil" }, - { name = "pyzmq" }, - { name = "tornado" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a5/1d/d5ba6edbfe6fae4c3105bca3a9c889563cc752c7f2de45e333164c7f4846/ipykernel-6.31.0.tar.gz", hash = "sha256:2372ce8bc1ff4f34e58cafed3a0feb2194b91fc7cad0fc72e79e47b45ee9e8f6", size = 167493, upload-time = "2025-10-20T11:42:39.948Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/d8/502954a4ec0efcf264f99b65b41c3c54e65a647d9f0d6f62cd02227d242c/ipykernel-6.31.0-py3-none-any.whl", hash = "sha256:abe5386f6ced727a70e0eb0cf1da801fa7c5fa6ff82147747d5a0406cd8c94af", size = 117003, upload-time = "2025-10-20T11:42:37.502Z" }, -] - -[[package]] -name = "ipympl" -version = "0.10.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ipython" }, - { name = "ipywidgets" }, - { name = "matplotlib" }, - { name = "numpy" }, - { name = "pillow" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/16/9c/f79e29f6262e821a15757662aa11cbb1db0a51ef836a32a46ddcb25e6832/ipympl-0.10.0.tar.gz", hash = "sha256:eda69602a010af2a42e8ebd069b0ee0dbe8df7fc69d7c1e8b99fece0a2fe613f", size = 3595672, upload-time = "2026-01-21T20:19:47.971Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl", hash = "sha256:a09c4f0ff86490cc62aed45e53b912fb706e3ec3506c4a51ce4a670d6667f5ce", size = 519020, upload-time = "2026-01-21T20:19:46.325Z" }, -] - -[[package]] -name = "ipython" -version = "9.10.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "decorator" }, - { name = "ipython-pygments-lexers" }, - { name = "jedi" }, - { name = "matplotlib-inline" }, - { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, - { name = "prompt-toolkit" }, - { name = "pygments" }, - { name = "stack-data" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a6/60/2111715ea11f39b1535bed6024b7dec7918b71e5e5d30855a5b503056b50/ipython-9.10.0.tar.gz", hash = "sha256:cd9e656be97618a0676d058134cd44e6dc7012c0e5cb36a9ce96a8c904adaf77", size = 4426526, upload-time = "2026-02-02T10:00:33.594Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/aa/898dec789a05731cd5a9f50605b7b44a72bd198fd0d4528e11fc610177cc/ipython-9.10.0-py3-none-any.whl", hash = "sha256:c6ab68cc23bba8c7e18e9b932797014cc61ea7fd6f19de180ab9ba73e65ee58d", size = 622774, upload-time = "2026-02-02T10:00:31.503Z" }, -] - -[[package]] -name = "ipython-pygments-lexers" -version = "1.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, -] - -[[package]] -name = "ipywidgets" -version = "8.1.8" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "comm" }, - { name = "ipython" }, - { name = "jupyterlab-widgets" }, - { name = "traitlets" }, - { name = "widgetsnbextension" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, -] - -[[package]] -name = "isoduration" -version = "20.11.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "arrow" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, -] - -[[package]] -name = "jedi" -version = "0.19.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "parso" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, -] - [[package]] name = "jinja2" version = "3.1.6" @@ -1057,255 +614,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] -[[package]] -name = "json5" -version = "0.13.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/77/e8/a3f261a66e4663f22700bc8a17c08cb83e91fbf086726e7a228398968981/json5-0.13.0.tar.gz", hash = "sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf", size = 52441, upload-time = "2026-01-01T19:42:14.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/9e/038522f50ceb7e74f1f991bf1b699f24b0c2bbe7c390dd36ad69f4582258/json5-0.13.0-py3-none-any.whl", hash = "sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc", size = 36163, upload-time = "2026-01-01T19:42:13.962Z" }, -] - -[[package]] -name = "jsonpointer" -version = "3.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, -] - -[[package]] -name = "jsonschema" -version = "4.26.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "jsonschema-specifications" }, - { name = "referencing" }, - { name = "rpds-py" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, -] - -[package.optional-dependencies] -format-nongpl = [ - { name = "fqdn" }, - { name = "idna" }, - { name = "isoduration" }, - { name = "jsonpointer" }, - { name = "rfc3339-validator" }, - { name = "rfc3986-validator" }, - { name = "rfc3987-syntax" }, - { name = "uri-template" }, - { name = "webcolors" }, -] - -[[package]] -name = "jsonschema-specifications" -version = "2025.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "referencing" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, -] - -[[package]] -name = "jupyter-client" -version = "8.8.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jupyter-core" }, - { name = "python-dateutil" }, - { name = "pyzmq" }, - { name = "tornado" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" }, -] - -[[package]] -name = "jupyter-core" -version = "5.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "platformdirs" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, -] - -[[package]] -name = "jupyter-events" -version = "0.12.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jsonschema", extra = ["format-nongpl"] }, - { name = "packaging" }, - { name = "python-json-logger" }, - { name = "pyyaml" }, - { name = "referencing" }, - { name = "rfc3339-validator" }, - { name = "rfc3986-validator" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9d/c3/306d090461e4cf3cd91eceaff84bede12a8e52cd821c2d20c9a4fd728385/jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b", size = 62196, upload-time = "2025-02-03T17:23:41.485Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/48/577993f1f99c552f18a0428731a755e06171f9902fa118c379eb7c04ea22/jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb", size = 19430, upload-time = "2025-02-03T17:23:38.643Z" }, -] - -[[package]] -name = "jupyter-lsp" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jupyter-server" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/5a/9066c9f8e94ee517133cd98dba393459a16cd48bba71a82f16a65415206c/jupyter_lsp-2.3.0.tar.gz", hash = "sha256:458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245", size = 54823, upload-time = "2025-08-27T17:47:34.671Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/60/1f6cee0c46263de1173894f0fafcb3475ded276c472c14d25e0280c18d6d/jupyter_lsp-2.3.0-py3-none-any.whl", hash = "sha256:e914a3cb2addf48b1c7710914771aaf1819d46b2e5a79b0f917b5478ec93f34f", size = 76687, upload-time = "2025-08-27T17:47:33.15Z" }, -] - -[[package]] -name = "jupyter-rfb" -version = "0.5.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ipywidgets" }, - { name = "numpy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/65/bd/a86fc38afc6003f6a828bb45637edd03420b1593683eb6fff63bffd6ff1a/jupyter_rfb-0.5.4.tar.gz", hash = "sha256:7363c9aab583aca87950dab5ae72472d73efbb71c829a4fbacd6dd22a979b454", size = 757101, upload-time = "2025-11-07T10:17:02.54Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/71/706ba64f41c4bfe5fbbba32dc2302e99fb1e6b3218cfe5f6294b1641a481/jupyter_rfb-0.5.4-py3-none-any.whl", hash = "sha256:aa8839fcde7faefe8f373faee3f2fe800896082caa02534f7c240d3f421d28ec", size = 31436, upload-time = "2025-11-07T10:17:00.794Z" }, -] - -[[package]] -name = "jupyter-server" -version = "2.17.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "argon2-cffi" }, - { name = "jinja2" }, - { name = "jupyter-client" }, - { name = "jupyter-core" }, - { name = "jupyter-events" }, - { name = "jupyter-server-terminals" }, - { name = "nbconvert" }, - { name = "nbformat" }, - { name = "packaging" }, - { name = "prometheus-client" }, - { name = "pywinpty", marker = "os_name == 'nt'" }, - { name = "pyzmq" }, - { name = "send2trash" }, - { name = "terminado" }, - { name = "tornado" }, - { name = "traitlets" }, - { name = "websocket-client" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/ac/e040ec363d7b6b1f11304cc9f209dac4517ece5d5e01821366b924a64a50/jupyter_server-2.17.0.tar.gz", hash = "sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5", size = 731949, upload-time = "2025-08-21T14:42:54.042Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/80/a24767e6ca280f5a49525d987bf3e4d7552bf67c8be07e8ccf20271f8568/jupyter_server-2.17.0-py3-none-any.whl", hash = "sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f", size = 388221, upload-time = "2025-08-21T14:42:52.034Z" }, -] - -[[package]] -name = "jupyter-server-terminals" -version = "0.5.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywinpty", marker = "os_name == 'nt'" }, - { name = "terminado" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f4/a7/bcd0a9b0cbba88986fe944aaaf91bfda603e5a50bda8ed15123f381a3b2f/jupyter_server_terminals-0.5.4.tar.gz", hash = "sha256:bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5", size = 31770, upload-time = "2026-01-14T16:53:20.213Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/2d/6674563f71c6320841fc300911a55143925112a72a883e2ca71fba4c618d/jupyter_server_terminals-0.5.4-py3-none-any.whl", hash = "sha256:55be353fc74a80bc7f3b20e6be50a55a61cd525626f578dcb66a5708e2007d14", size = 13704, upload-time = "2026-01-14T16:53:18.738Z" }, -] - -[[package]] -name = "jupyterlab" -version = "4.5.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "async-lru" }, - { name = "httpx" }, - { name = "ipykernel" }, - { name = "jinja2" }, - { name = "jupyter-core" }, - { name = "jupyter-lsp" }, - { name = "jupyter-server" }, - { name = "jupyterlab-server" }, - { name = "notebook-shim" }, - { name = "packaging" }, - { name = "setuptools" }, - { name = "tornado" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7c/6b/21af7c0512bdf67e0c54c121779a1f2a97a164a7657e13fced79db8fa5a0/jupyterlab-4.5.4.tar.gz", hash = "sha256:c215f48d8e4582bd2920ad61cc6a40d8ebfef7e5a517ae56b8a9413c9789fdfb", size = 23943597, upload-time = "2026-02-11T00:26:55.308Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/9f/a70972ece62ead2d81acc6223188f6d18a92f665ccce17796a0cdea4fcf5/jupyterlab-4.5.4-py3-none-any.whl", hash = "sha256:cc233f70539728534669fb0015331f2a3a87656207b3bb2d07916e9289192f12", size = 12391867, upload-time = "2026-02-11T00:26:51.23Z" }, -] - -[[package]] -name = "jupyterlab-pygments" -version = "0.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" }, -] - -[[package]] -name = "jupyterlab-server" -version = "2.28.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "babel" }, - { name = "jinja2" }, - { name = "json5" }, - { name = "jsonschema" }, - { name = "jupyter-server" }, - { name = "packaging" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/90153f189e421e93c4bb4f9e3f59802a1f01abd2ac5cf40b152d7f735232/jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c", size = 76996, upload-time = "2025-10-22T13:59:18.37Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/07/a000fe835f76b7e1143242ab1122e6362ef1c03f23f83a045c38859c2ae0/jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968", size = 59830, upload-time = "2025-10-22T13:59:16.767Z" }, -] - -[[package]] -name = "jupyterlab-widgets" -version = "3.0.16" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, -] - -[[package]] -name = "jupytext" -version = "1.19.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py" }, - { name = "mdit-py-plugins" }, - { name = "nbformat" }, - { name = "packaging" }, - { name = "pyyaml" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/13/a5/80c02f307c8ce863cb33e27daf049315e9d96979e14eead700923b5ec9cc/jupytext-1.19.1.tar.gz", hash = "sha256:82587c07e299173c70ed5e8ec7e75183edf1be289ed518bab49ad0d4e3d5f433", size = 4307829, upload-time = "2026-01-25T21:35:13.276Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/16/5a/736dd2f4535dbf3bf26523f9158c011389ef88dd06ec2eef67fd744f1c7b/jupytext-1.19.1-py3-none-any.whl", hash = "sha256:d8975035155d034bdfde5c0c37891425314b7ea8d3a6c4b5d18c294348714cd9", size = 170478, upload-time = "2026-01-25T21:35:11.17Z" }, -] - [[package]] name = "kiwisolver" version = "1.4.9" @@ -1378,24 +686,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" }, ] -[[package]] -name = "lark" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, -] - -[[package]] -name = "latexcodec" -version = "3.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/27/dd/4270b2c5e2ee49316c3859e62293bd2ea8e382339d63ab7bbe9f39c0ec3b/latexcodec-3.0.1.tar.gz", hash = "sha256:e78a6911cd72f9dec35031c6ec23584de6842bfbc4610a9678868d14cdfb0357", size = 31222, upload-time = "2025-06-17T18:47:34.051Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl", hash = "sha256:a9eb8200bff693f0437a69581f7579eb6bca25c4193515c09900ce76451e452e", size = 18532, upload-time = "2025-06-17T18:47:30.726Z" }, -] - [[package]] name = "librt" version = "0.8.0" @@ -1478,18 +768,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, ] -[[package]] -name = "markdown-include" -version = "0.8.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ad/d8/66bf162fe6c1adb619f94a6da599323eecacf15b6d57469d0fd0421c10df/markdown-include-0.8.1.tar.gz", hash = "sha256:1d0623e0fc2757c38d35df53752768356162284259d259c486b4ab6285cdbbe3", size = 21873, upload-time = "2023-02-07T09:47:26.608Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/e2/c4d20b21a05fe0fee571649cebc05f7f72e80b1a743f932e7326125e6c9e/markdown_include-0.8.1-py3-none-any.whl", hash = "sha256:32f0635b9cfef46997b307e2430022852529f7a5b87c0075c504283e7cc7db53", size = 18837, upload-time = "2023-02-07T09:47:25.03Z" }, -] - [[package]] name = "markdown-it-py" version = "4.0.0" @@ -1619,30 +897,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, ] -[[package]] -name = "matplotlib-inline" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, -] - -[[package]] -name = "mdit-py-plugins" -version = "0.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b2/fd/a756d36c0bfba5f6e39a1cdbdbfdd448dc02692467d83816dff4592a1ebc/mdit_py_plugins-0.5.0.tar.gz", hash = "sha256:f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6", size = 44655, upload-time = "2025-08-11T07:25:49.083Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/86/dd6e5db36df29e76c7a7699123569a4a18c1623ce68d826ed96c62643cae/mdit_py_plugins-0.5.0-py3-none-any.whl", hash = "sha256:07a08422fc1936a5d26d146759e9155ea466e842f5ab2f7d2266dd084c8dab1f", size = 57205, upload-time = "2025-08-11T07:25:47.597Z" }, -] - [[package]] name = "mdurl" version = "0.1.2" @@ -1661,15 +915,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, ] -[[package]] -name = "mistune" -version = "3.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/55/d01f0c4b45ade6536c51170b9043db8b2ec6ddf4a35c7ea3f5f559ac935b/mistune-3.2.0.tar.gz", hash = "sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a", size = 95467, upload-time = "2025-12-23T11:36:34.994Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/f7/4a5e785ec9fbd65146a27b6b70b6cdc161a66f2024e4b04ac06a67f5578b/mistune-3.2.0-py3-none-any.whl", hash = "sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1", size = 53598, upload-time = "2025-12-23T11:36:33.211Z" }, -] - [[package]] name = "mkdocs" version = "1.6.1" @@ -1708,36 +953,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/28/de/a3e710469772c6a89595fc52816da05c1e164b4c866a89e3cb82fb1b67c5/mkdocs_autorefs-1.4.4-py3-none-any.whl", hash = "sha256:834ef5408d827071ad1bc69e0f39704fa34c7fc05bc8e1c72b227dfdc5c76089", size = 25530, upload-time = "2026-02-10T15:23:53.817Z" }, ] -[[package]] -name = "mkdocs-bibtex" -version = "4.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mkdocs" }, - { name = "pybtex" }, - { name = "pypandoc" }, - { name = "requests" }, - { name = "responses" }, - { name = "setuptools" }, - { name = "validators" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/37/e7518cabcf1f11e99b973b850f753d632588ce329d634c2517b3b450fc5c/mkdocs_bibtex-4.4.0.tar.gz", hash = "sha256:32a1e0624ab0e0edc3539a90a5ffe0a2cb965f03ad5df8746a9fc9e049b6778b", size = 34852, upload-time = "2025-07-01T14:57:36.464Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/ef/2a0971707b21f5490a557c9e1b0ac428d5d47e7ef604536d092ca186a28c/mkdocs_bibtex-4.4.0-py3-none-any.whl", hash = "sha256:fc0ce0f9641b63f900585a48cc09f5817345bbaba1435abf361e21fafe279723", size = 14449, upload-time = "2025-07-01T14:57:35.273Z" }, -] - -[[package]] -name = "mkdocs-gen-files" -version = "0.6.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mkdocs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/61/35/f26349f7fa18414eb2e25d75a6fa9c7e3186c36e1d227c0b2d785a7bd5c4/mkdocs_gen_files-0.6.0.tar.gz", hash = "sha256:52022dc14dcc0451e05e54a8f5d5e7760351b6701eff816d1e9739577ec5635e", size = 8642, upload-time = "2025-11-23T12:13:22.124Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/ec/72417415563c60ae01b36f0d497f1f4c803972f447ef4fb7f7746d6e07db/mkdocs_gen_files-0.6.0-py3-none-any.whl", hash = "sha256:815af15f3e2dbfda379629c1b95c02c8e6f232edf2a901186ea3b204ab1135b2", size = 8182, upload-time = "2025-11-23T12:13:20.756Z" }, -] - [[package]] name = "mkdocs-get-deps" version = "0.2.0" @@ -1752,78 +967,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, ] -[[package]] -name = "mkdocs-jupyter" -version = "0.25.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ipykernel" }, - { name = "jupytext" }, - { name = "mkdocs" }, - { name = "mkdocs-material" }, - { name = "nbconvert" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/23/6ffb8d2fd2117aa860a04c6fe2510b21bc3c3c085907ffdd851caba53152/mkdocs_jupyter-0.25.1.tar.gz", hash = "sha256:0e9272ff4947e0ec683c92423a4bfb42a26477c103ab1a6ab8277e2dcc8f7afe", size = 1626747, upload-time = "2024-10-15T14:56:32.373Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/37/5f1fd5c3f6954b3256f8126275e62af493b96fb6aef6c0dbc4ee326032ad/mkdocs_jupyter-0.25.1-py3-none-any.whl", hash = "sha256:3f679a857609885d322880e72533ef5255561bbfdb13cfee2a1e92ef4d4ad8d8", size = 1456197, upload-time = "2024-10-15T14:56:29.854Z" }, -] - -[[package]] -name = "mkdocs-literate-nav" -version = "0.6.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mkdocs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f6/5f/99aa379b305cd1c2084d42db3d26f6de0ea9bf2cc1d10ed17f61aff35b9a/mkdocs_literate_nav-0.6.2.tar.gz", hash = "sha256:760e1708aa4be86af81a2b56e82c739d5a8388a0eab1517ecfd8e5aa40810a75", size = 17419, upload-time = "2025-03-18T21:53:09.711Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl", hash = "sha256:0a6489a26ec7598477b56fa112056a5e3a6c15729f0214bea8a4dbc55bd5f630", size = 13261, upload-time = "2025-03-18T21:53:08.1Z" }, -] - -[[package]] -name = "mkdocs-material" -version = "9.7.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "babel" }, - { name = "backrefs" }, - { name = "colorama" }, - { name = "jinja2" }, - { name = "markdown" }, - { name = "mkdocs" }, - { name = "mkdocs-material-extensions" }, - { name = "paginate" }, - { name = "pygments" }, - { name = "pymdown-extensions" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/27/e2/2ffc356cd72f1473d07c7719d82a8f2cbd261666828614ecb95b12169f41/mkdocs_material-9.7.1.tar.gz", hash = "sha256:89601b8f2c3e6c6ee0a918cc3566cb201d40bf37c3cd3c2067e26fadb8cce2b8", size = 4094392, upload-time = "2025-12-18T09:49:00.308Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/32/ed071cb721aca8c227718cffcf7bd539620e9799bbf2619e90c757bfd030/mkdocs_material-9.7.1-py3-none-any.whl", hash = "sha256:3f6100937d7d731f87f1e3e3b021c97f7239666b9ba1151ab476cabb96c60d5c", size = 9297166, upload-time = "2025-12-18T09:48:56.664Z" }, -] - -[[package]] -name = "mkdocs-material-extensions" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, -] - -[[package]] -name = "mkdocs-section-index" -version = "0.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mkdocs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/93/40/4aa9d3cfa2ac6528b91048847a35f005b97ec293204c02b179762a85b7f2/mkdocs_section_index-0.3.10.tar.gz", hash = "sha256:a82afbda633c82c5568f0e3b008176b9b365bf4bd8b6f919d6eff09ee146b9f8", size = 14446, upload-time = "2025-04-05T20:56:45.387Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/01/53/76c109e6f822a6d19befb0450c87330b9a6ce52353de6a9dda7892060a1f/mkdocs_section_index-0.3.10-py3-none-any.whl", hash = "sha256:bc27c0d0dc497c0ebaee1fc72839362aed77be7318b5ec0c30628f65918e4776", size = 8796, upload-time = "2025-04-05T20:56:43.975Z" }, -] - [[package]] name = "mkdocstrings" version = "1.0.3" @@ -1841,11 +984,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/41/1cf02e3df279d2dd846a1bf235a928254eba9006dd22b4a14caa71aed0f7/mkdocstrings-1.0.3-py3-none-any.whl", hash = "sha256:0d66d18430c2201dc7fe85134277382baaa15e6b30979f3f3bdbabd6dbdb6046", size = 35523, upload-time = "2026-02-07T14:31:39.27Z" }, ] -[package.optional-dependencies] -python = [ - { name = "mkdocstrings-python" }, -] - [[package]] name = "mkdocstrings-python" version = "2.0.2" @@ -1882,116 +1020,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, - { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, - { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, - { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, - { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, - { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, - { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, - { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, -] - -[[package]] -name = "mypy-extensions" -version = "1.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, -] - -[[package]] -name = "nbclient" -version = "0.10.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jupyter-client" }, - { name = "jupyter-core" }, - { name = "nbformat" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" }, -] - -[[package]] -name = "nbconvert" -version = "7.17.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "beautifulsoup4" }, - { name = "bleach", extra = ["css"] }, - { name = "defusedxml" }, - { name = "jinja2" }, - { name = "jupyter-core" }, - { name = "jupyterlab-pygments" }, - { name = "markupsafe" }, - { name = "mistune" }, - { name = "nbclient" }, - { name = "nbformat" }, - { name = "packaging" }, - { name = "pandocfilters" }, - { name = "pygments" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/38/47/81f886b699450d0569f7bc551df2b1673d18df7ff25cc0c21ca36ed8a5ff/nbconvert-7.17.0.tar.gz", hash = "sha256:1b2696f1b5be12309f6c7d707c24af604b87dfaf6d950794c7b07acab96dda78", size = 862855, upload-time = "2026-01-29T16:37:48.478Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/4b/8d5f796a792f8a25f6925a96032f098789f448571eb92011df1ae59e8ea8/nbconvert-7.17.0-py3-none-any.whl", hash = "sha256:4f99a63b337b9a23504347afdab24a11faa7d86b405e5c8f9881cd313336d518", size = 261510, upload-time = "2026-01-29T16:37:46.322Z" }, -] - -[[package]] -name = "nbformat" -version = "5.10.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "fastjsonschema" }, - { name = "jsonschema" }, - { name = "jupyter-core" }, - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" }, -] - -[[package]] -name = "nbmake" -version = "1.5.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ipykernel" }, - { name = "nbclient" }, - { name = "nbformat" }, - { name = "pygments" }, - { name = "pytest" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/43/9a/aae201cee5639e1d562b3843af8fd9f8d018bb323e776a2b973bdd5fc64b/nbmake-1.5.5.tar.gz", hash = "sha256:239dc868ea13a7c049746e2aba2c229bd0f6cdbc6bfa1d22f4c88638aa4c5f5c", size = 85929, upload-time = "2024-12-23T18:33:46.774Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/be/b257e12f9710819fde40adc972578bee6b72c5992da1bc8369bef2597756/nbmake-1.5.5-py3-none-any.whl", hash = "sha256:c6fbe6e48b60cacac14af40b38bf338a3b88f47f085c54ac5b8639ff0babaf4b", size = 12818, upload-time = "2024-12-23T18:33:44.566Z" }, -] - -[[package]] -name = "nest-asyncio" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, + { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, + { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, + { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, + { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, + { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, + { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, + { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, ] [[package]] -name = "notebook-shim" -version = "0.2.4" +name = "mypy-extensions" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jupyter-server" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167, upload-time = "2024-02-14T23:35:18.353Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] [[package]] @@ -2094,33 +1140,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] -[[package]] -name = "paginate" -version = "0.5.7" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, -] - -[[package]] -name = "pandocfilters" -version = "1.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, -] - -[[package]] -name = "parso" -version = "0.8.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, -] - [[package]] name = "pathspec" version = "1.0.4" @@ -2130,18 +1149,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, ] -[[package]] -name = "pexpect" -version = "4.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ptyprocess" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, -] - [[package]] name = "pillow" version = "12.1.1" @@ -2229,95 +1236,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] -[[package]] -name = "prometheus-client" -version = "0.24.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f0/58/a794d23feb6b00fc0c72787d7e87d872a6730dd9ed7c7b3e954637d8f280/prometheus_client-0.24.1.tar.gz", hash = "sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9", size = 85616, upload-time = "2026-01-14T15:26:26.965Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl", hash = "sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055", size = 64057, upload-time = "2026-01-14T15:26:24.42Z" }, -] - -[[package]] -name = "prompt-toolkit" -version = "3.0.52" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "wcwidth" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, -] - -[[package]] -name = "psutil" -version = "7.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, - { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, - { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, - { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, - { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, - { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, - { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, - { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, - { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, - { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, - { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, - { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, - { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, - { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, - { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, - { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, - { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, - { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, - { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, - { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, -] - -[[package]] -name = "ptyprocess" -version = "0.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, -] - -[[package]] -name = "pure-eval" -version = "0.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, -] - -[[package]] -name = "pybtex" -version = "0.25.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "latexcodec" }, - { name = "pyyaml" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5f/bc/c2be05ca72f8c103670e983df8be26d1e288bc6556f487fa8cccaa27779f/pybtex-0.25.1.tar.gz", hash = "sha256:9eaf90267c7e83e225af89fea65c370afbf65f458220d3946a9e3049e1eca491", size = 406157, upload-time = "2025-06-26T13:27:41.903Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/68/ceb5d6679baa326261f5d3e5113d9cfed6efef2810afd9f18bffb8ed312b/pybtex-0.25.1-py2.py3-none-any.whl", hash = "sha256:9053b0d619409a0a83f38abad5d9921de5f7b3ede00742beafcd9f10ad0d8c5c", size = 127437, upload-time = "2025-06-26T13:27:43.585Z" }, -] - -[[package]] -name = "pycparser" -version = "3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, -] - [[package]] name = "pydantic" version = "2.12.5" @@ -2429,24 +1347,15 @@ wheels = [ [[package]] name = "pymdown-extensions" -version = "10.20.1" +version = "10.21" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown" }, { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1e/6c/9e370934bfa30e889d12e61d0dae009991294f40055c238980066a7fbd83/pymdown_extensions-10.20.1.tar.gz", hash = "sha256:e7e39c865727338d434b55f1dd8da51febcffcaebd6e1a0b9c836243f660740a", size = 852860, upload-time = "2026-01-24T05:56:56.758Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/40/6d/b6ee155462a0156b94312bdd82d2b92ea56e909740045a87ccb98bf52405/pymdown_extensions-10.20.1-py3-none-any.whl", hash = "sha256:24af7feacbca56504b313b7b418c4f5e1317bb5fea60f03d57be7fcc40912aa0", size = 268768, upload-time = "2026-01-24T05:56:54.537Z" }, -] - -[[package]] -name = "pypandoc" -version = "1.16.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/18/9f5f70567b97758625335209b98d5cb857e19aa1a9306e9749567a240634/pypandoc-1.16.2.tar.gz", hash = "sha256:7a72a9fbf4a5dc700465e384c3bb333d22220efc4e972cb98cf6fc723cdca86b", size = 31477, upload-time = "2025-11-13T16:30:29.608Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/63/06673d1eb6d8f83c0ea1f677d770e12565fb516928b4109c9e2055656a9e/pymdown_extensions-10.21.tar.gz", hash = "sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5", size = 853363, upload-time = "2026-02-15T20:44:06.748Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/e9/b145683854189bba84437ea569bfa786f408c8dc5bc16d8eb0753f5583bf/pypandoc-1.16.2-py3-none-any.whl", hash = "sha256:c200c1139c8e3247baf38d1e9279e85d9f162499d1999c6aa8418596558fe79b", size = 19451, upload-time = "2025-11-13T16:30:07.66Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2c/5b079febdc65e1c3fb2729bf958d18b45be7113828528e8a0b5850dd819a/pymdown_extensions-10.21-py3-none-any.whl", hash = "sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f", size = 268877, upload-time = "2026-02-15T20:44:05.464Z" }, ] [[package]] @@ -2709,15 +1618,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, ] -[[package]] -name = "python-json-logger" -version = "4.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, -] - [[package]] name = "pytokens" version = "0.4.1" @@ -2747,24 +1647,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de", size = 13729, upload-time = "2026-01-30T01:03:45.029Z" }, ] -[[package]] -name = "pywinpty" -version = "3.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f7/54/37c7370ba91f579235049dc26cd2c5e657d2a943e01820844ffc81f32176/pywinpty-3.0.3.tar.gz", hash = "sha256:523441dc34d231fb361b4b00f8c99d3f16de02f5005fd544a0183112bcc22412", size = 31309, upload-time = "2026-02-04T21:51:09.524Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/d4/aeb5e1784d2c5bff6e189138a9ca91a090117459cea0c30378e1f2db3d54/pywinpty-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:c9081df0e49ffa86d15db4a6ba61530630e48707f987df42c9d3313537e81fc0", size = 2113098, upload-time = "2026-02-04T21:54:37.711Z" }, - { url = "https://files.pythonhosted.org/packages/b9/53/7278223c493ccfe4883239cf06c823c56460a8010e0fc778eef67858dc14/pywinpty-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:15e79d870e18b678fb8a5a6105fd38496b55697c66e6fc0378236026bc4d59e9", size = 234901, upload-time = "2026-02-04T21:53:31.35Z" }, - { url = "https://files.pythonhosted.org/packages/e5/cb/58d6ed3fd429c96a90ef01ac9a617af10a6d41469219c25e7dc162abbb71/pywinpty-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9c91dbb026050c77bdcef964e63a4f10f01a639113c4d3658332614544c467ab", size = 2112686, upload-time = "2026-02-04T21:52:03.035Z" }, - { url = "https://files.pythonhosted.org/packages/fd/50/724ed5c38c504d4e58a88a072776a1e880d970789deaeb2b9f7bd9a5141a/pywinpty-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:fe1f7911805127c94cf51f89ab14096c6f91ffdcacf993d2da6082b2142a2523", size = 234591, upload-time = "2026-02-04T21:52:29.821Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ad/90a110538696b12b39fd8758a06d70ded899308198ad2305ac68e361126e/pywinpty-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:3f07a6cf1c1d470d284e614733c3d0f726d2c85e78508ea10a403140c3c0c18a", size = 2112360, upload-time = "2026-02-04T21:55:33.397Z" }, - { url = "https://files.pythonhosted.org/packages/44/0f/7ffa221757a220402bc79fda44044c3f2cc57338d878ab7d622add6f4581/pywinpty-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:15c7c0b6f8e9d87aabbaff76468dabf6e6121332c40fc1d83548d02a9d6a3759", size = 233107, upload-time = "2026-02-04T21:51:45.455Z" }, - { url = "https://files.pythonhosted.org/packages/28/88/2ff917caff61e55f38bcdb27de06ee30597881b2cae44fbba7627be015c4/pywinpty-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:d4b6b7b0fe0cdcd02e956bd57cfe9f4e5a06514eecf3b5ae174da4f951b58be9", size = 2113282, upload-time = "2026-02-04T21:52:08.188Z" }, - { url = "https://files.pythonhosted.org/packages/63/32/40a775343ace542cc43ece3f1d1fce454021521ecac41c4c4573081c2336/pywinpty-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:34789d685fc0d547ce0c8a65e5a70e56f77d732fa6e03c8f74fefb8cbb252019", size = 234207, upload-time = "2026-02-04T21:51:58.687Z" }, - { url = "https://files.pythonhosted.org/packages/8d/54/5d5e52f4cb75028104ca6faf36c10f9692389b1986d34471663b4ebebd6d/pywinpty-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0c37e224a47a971d1a6e08649a1714dac4f63c11920780977829ed5c8cadead1", size = 2112910, upload-time = "2026-02-04T21:52:30.976Z" }, - { url = "https://files.pythonhosted.org/packages/0a/44/dcd184824e21d4620b06c7db9fbb15c3ad0a0f1fa2e6de79969fb82647ec/pywinpty-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c4e9c3dff7d86ba81937438d5819f19f385a39d8f592d4e8af67148ceb4f6ab5", size = 233425, upload-time = "2026-02-04T21:51:56.754Z" }, -] - [[package]] name = "pyyaml" version = "6.0.3" @@ -2823,125 +1705,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, ] -[[package]] -name = "pyzmq" -version = "27.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "implementation_name == 'pypy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, - { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, - { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, - { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, - { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, - { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, - { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, - { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, - { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, - { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, - { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, - { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, - { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, - { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, - { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, - { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, - { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, - { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, - { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, - { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, - { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, - { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, - { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, - { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, - { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, - { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, - { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, - { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, - { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, - { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, -] - -[[package]] -name = "referencing" -version = "0.37.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "rpds-py" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, -] - -[[package]] -name = "requests" -version = "2.32.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, -] - -[[package]] -name = "responses" -version = "0.25.8" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyyaml" }, - { name = "requests" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0e/95/89c054ad70bfef6da605338b009b2e283485835351a9935c7bfbfaca7ffc/responses-0.25.8.tar.gz", hash = "sha256:9374d047a575c8f781b94454db5cab590b6029505f488d12899ddb10a4af1cf4", size = 79320, upload-time = "2025-08-08T19:01:46.709Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/4c/cc276ce57e572c102d9542d383b2cfd551276581dc60004cb94fe8774c11/responses-0.25.8-py3-none-any.whl", hash = "sha256:0c710af92def29c8352ceadff0c3fe340ace27cf5af1bbe46fb71275bcd2831c", size = 34769, upload-time = "2025-08-08T19:01:45.018Z" }, -] - -[[package]] -name = "rfc3339-validator" -version = "0.1.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, -] - -[[package]] -name = "rfc3986-validator" -version = "0.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" }, -] - -[[package]] -name = "rfc3987-syntax" -version = "1.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "lark" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" }, -] - [[package]] name = "rich" version = "14.3.2" @@ -2968,87 +1731,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/13/2f/b4530fbf948867702d0a3f27de4a6aab1d156f406d72852ab902c4d04de9/rich_rst-1.3.2-py3-none-any.whl", hash = "sha256:a99b4907cbe118cf9d18b0b44de272efa61f15117c61e39ebdc431baf5df722a", size = 12567, upload-time = "2025-10-14T16:49:42.953Z" }, ] -[[package]] -name = "rpds-py" -version = "0.30.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, - { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, - { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, - { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, - { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, - { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, - { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, - { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, - { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, - { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, - { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, - { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, - { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, - { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, - { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, - { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, - { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, - { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, - { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, - { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, - { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, - { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, - { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, - { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, - { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, - { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, - { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, - { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, - { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, - { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, - { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, - { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, - { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, - { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, - { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, - { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, - { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, - { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, - { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, - { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, - { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, - { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, - { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, - { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, - { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, - { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, - { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, - { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, - { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, - { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, - { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, - { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, - { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, - { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, - { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, - { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, - { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, - { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, - { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, - { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, - { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, - { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, - { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, - { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, - { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, - { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, - { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, -] - [[package]] name = "ruff" version = "0.15.1" @@ -3147,15 +1829,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/51/e3/20233497e4a27956e7392c3f7879e6ee7f767f268079f24f4b089b70f563/scipy_stubs-1.17.0.2-py3-none-any.whl", hash = "sha256:99d1aa75b7d72a7ee36a68d18bcf1149f62ab577bbd1236c65c471b3b465d824", size = 586137, upload-time = "2026-01-22T19:17:05.802Z" }, ] -[[package]] -name = "send2trash" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c5/f0/184b4b5f8d00f2a92cf96eec8967a3d550b52cf94362dad1100df9e48d57/send2trash-2.1.0.tar.gz", hash = "sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459", size = 17255, upload-time = "2026-01-14T06:27:36.056Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl", hash = "sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c", size = 17610, upload-time = "2026-01-14T06:27:35.218Z" }, -] - [[package]] name = "setuptools" version = "82.0.0" @@ -3186,15 +1859,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] -[[package]] -name = "soupsieve" -version = "2.8.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, -] - [[package]] name = "sqlalchemy" version = "2.0.46" @@ -3250,20 +1914,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/63/39/13891bae4658133b489a4d8b6a2f193d56110e392289560f312748e796dc/sqlmodel-0.0.33-py3-none-any.whl", hash = "sha256:9045bb4d97d2ba099c5a068ee9525af2d106972dda1ff8488e187ce50556bf73", size = 27444, upload-time = "2026-02-11T15:23:38.678Z" }, ] -[[package]] -name = "stack-data" -version = "0.6.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "asttokens" }, - { name = "executing" }, - { name = "pure-eval" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, -] - [[package]] name = "termcolor" version = "3.3.0" @@ -3273,81 +1923,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/33/d1/8bb87d21e9aeb323cc03034f5eaf2c8f69841e40e4853c2627edf8111ed3/termcolor-3.3.0-py3-none-any.whl", hash = "sha256:cf642efadaf0a8ebbbf4bc7a31cec2f9b5f21a9f726f4ccbb08192c9c26f43a5", size = 7734, upload-time = "2025-12-29T12:55:20.718Z" }, ] -[[package]] -name = "terminado" -version = "0.18.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "ptyprocess", marker = "os_name != 'nt'" }, - { name = "pywinpty", marker = "os_name == 'nt'" }, - { name = "tornado" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701, upload-time = "2024-03-12T14:34:39.026Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, -] - -[[package]] -name = "termynal" -version = "0.13.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/a6/099ed030e3e534ec91aec84dfe2cb11cea6ec8dcbec454fe569cdbbb4888/termynal-0.13.1.tar.gz", hash = "sha256:c7abecfdbda3ccdeee2723049a70f0e2e7f63e1973bb9b8f0b3fe6c1bfb391cd", size = 174253, upload-time = "2025-09-01T13:03:35.02Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/72/6949a512f16653cecebb737b8512ee76ca078d8e0e4e948d7322b528fb4d/termynal-0.13.1-py3-none-any.whl", hash = "sha256:7a1605a4d4ed38bf851bf25f842aafa52ef29786d52762aecee59622ed030592", size = 10628, upload-time = "2025-09-01T13:03:34.236Z" }, -] - -[[package]] -name = "tinycss2" -version = "1.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "webencodings" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" }, -] - -[[package]] -name = "tokenize-rt" -version = "6.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/69/ed/8f07e893132d5051d86a553e749d5c89b2a4776eb3a579b72ed61f8559ca/tokenize_rt-6.2.0.tar.gz", hash = "sha256:8439c042b330c553fdbe1758e4a05c0ed460dbbbb24a606f11f0dee75da4cad6", size = 5476, upload-time = "2025-05-23T23:48:00.035Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/33/f0/3fe8c6e69135a845f4106f2ff8b6805638d4e85c264e70114e8126689587/tokenize_rt-6.2.0-py2.py3-none-any.whl", hash = "sha256:a152bf4f249c847a66497a4a95f63376ed68ac6abf092a2f7cfb29d044ecff44", size = 6004, upload-time = "2025-05-23T23:47:58.812Z" }, -] - -[[package]] -name = "tornado" -version = "6.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, - { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, - { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, - { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, - { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, - { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, - { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, - { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, - { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, - { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, - { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, -] - -[[package]] -name = "traitlets" -version = "5.14.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, -] - [[package]] name = "typing-extensions" version = "4.15.0" @@ -3369,42 +1944,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] -[[package]] -name = "tzdata" -version = "2025.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, -] - -[[package]] -name = "uri-template" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" }, -] - -[[package]] -name = "urllib3" -version = "2.6.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, -] - -[[package]] -name = "validators" -version = "0.35.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/66/a435d9ae49850b2f071f7ebd8119dd4e84872b01630d6736761e6e7fd847/validators-0.35.0.tar.gz", hash = "sha256:992d6c48a4e77c81f1b4daba10d16c3a9bb0dbb79b3a19ea847ff0928e70497a", size = 73399, upload-time = "2025-05-01T05:42:06.7Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/6e/3e955517e22cbdd565f2f8b2e73d52528b14b8bcfdb04f62466b071de847/validators-0.35.0-py3-none-any.whl", hash = "sha256:e8c947097eae7892cb3d26868d637f79f47b4a0554bc6b80065dfe5aac3705dd", size = 44712, upload-time = "2025-05-01T05:42:04.203Z" }, -] - [[package]] name = "watchdog" version = "6.0.0" @@ -3430,55 +1969,38 @@ wheels = [ ] [[package]] -name = "wcwidth" -version = "0.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, -] - -[[package]] -name = "webcolors" -version = "25.10.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload-time = "2025-10-31T07:51:03.977Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload-time = "2025-10-31T07:51:01.778Z" }, -] - -[[package]] -name = "webencodings" -version = "0.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, -] - -[[package]] -name = "websocket-client" -version = "1.9.0" +name = "win32-setctime" +version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867, upload-time = "2024-12-07T15:28:28.314Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, + { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" }, ] [[package]] -name = "widgetsnbextension" -version = "4.0.15" +name = "zensical" +version = "0.0.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +dependencies = [ + { name = "click" }, + { name = "deepmerge" }, + { name = "markdown" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "pyyaml" }, ] - -[[package]] -name = "win32-setctime" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867, upload-time = "2024-12-07T15:28:28.314Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/a3/ab/a65452b4e769552fd5a78c4996d6cf322630d896ddfd55c5433d96485e8b/zensical-0.0.23.tar.gz", hash = "sha256:5c4fc3aaf075df99d8cf41b9f2566e4d588180d9a89493014d3607dfe50ac4bc", size = 3822451, upload-time = "2026-02-11T21:24:38.373Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/86/035aa02bd36d26a03a1885bc22a73d4fe61ba0e21d0033cc42baf13d24f6/zensical-0.0.23-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:35d6d3eb803fe73a67187a1a25443408bd02a8dd50e151f4a4bafd40de3f0928", size = 12242966, upload-time = "2026-02-11T21:24:05.894Z" }, + { url = "https://files.pythonhosted.org/packages/be/68/335dfbb7efc972964f0610736a0ad243dd8a5dcc2ec76b9ddb84c847a4a4/zensical-0.0.23-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:5973267460a190f348f24d445ff0c01e8ed334fd075947687b305e68257f6b18", size = 12125173, upload-time = "2026-02-11T21:24:08.507Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/d567da04fbeb077df5cf06a94f947af829ebef0ff5ca7d0ba4910a6cbdf6/zensical-0.0.23-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:953adf1f0b346a6c65fc6e05e6cc1c38a6440fec29c50c76fb29700cc1927006", size = 12489636, upload-time = "2026-02-11T21:24:10.91Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6e/481a3ecf8a7b63a35c67f5be1ea548185d55bb1dacead54f76a9550197b2/zensical-0.0.23-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:49c1cbd6131dafa056be828e081759184f9b8dd24b99bf38d1e77c8c31b0c720", size = 12421313, upload-time = "2026-02-11T21:24:13.9Z" }, + { url = "https://files.pythonhosted.org/packages/ba/aa/a95481547f708432636f5f8155917c90d877c244c62124a084f7448b60b2/zensical-0.0.23-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5b7fe22c5d33b2b91899c5df7631ad4ce9cccfabac2560cc92ba73eafe2d297", size = 12761031, upload-time = "2026-02-11T21:24:17.016Z" }, + { url = "https://files.pythonhosted.org/packages/c1/9f/ce1c5af9afd11fe3521a90441aba48c484f98730c6d833d69ee4387ae2e9/zensical-0.0.23-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a3679d6bf6374f503afb74d9f6061da5de83c25922f618042b63a30b16f0389", size = 12527415, upload-time = "2026-02-11T21:24:19.558Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b8/13a5d4d99f3b77e7bf4e791ef991a611ca2f108ed7eddf20858544ab0a91/zensical-0.0.23-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:54d981e21a19c3dcec6e7fa77c4421db47389dfdff20d29fea70df8e1be4062e", size = 12665352, upload-time = "2026-02-11T21:24:22.703Z" }, + { url = "https://files.pythonhosted.org/packages/ad/84/3d0a187ed941826ca26b19a661c41685d8017b2a019afa0d353eb2ebbdba/zensical-0.0.23-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:afde7865cc3c79c99f6df4a911d638fb2c3b472a1b81367d47163f8e3c36f910", size = 12689042, upload-time = "2026-02-11T21:24:26.118Z" }, + { url = "https://files.pythonhosted.org/packages/f0/65/12466408f428f2cf7140b32d484753db0891debae3c956f4c076b51eeb17/zensical-0.0.23-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:c484674d7b0a3e6d39db83914db932249bccdef2efaf8a5669671c66c16f584d", size = 12834779, upload-time = "2026-02-11T21:24:28.788Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ab/0771ac6ffb30e4f04c20374e3beca9e71c3f81112219cdbd86cdc0e3d337/zensical-0.0.23-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:927d12fe2851f355fb3206809e04641d6651bdd2ff4afe9c205721aa3a32aa82", size = 12797057, upload-time = "2026-02-11T21:24:31.383Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ce/fbd45c00a1cba15508ea3c29b121b4be010254eb65c1512bf11f4478496c/zensical-0.0.23-cp310-abi3-win32.whl", hash = "sha256:ffb79db4244324e9cc063d16adff25a40b145153e5e76d75e0012ba3c05af25d", size = 11837823, upload-time = "2026-02-11T21:24:33.869Z" }, + { url = "https://files.pythonhosted.org/packages/37/82/0aebaa8e7d2e6314a85d9b7ff3f7fc74837a94086b56a9d5d8f2240e9b9c/zensical-0.0.23-cp310-abi3-win_amd64.whl", hash = "sha256:a8cfe240dca75231e8e525985366d010d09ee73aec0937930e88f7230694ce01", size = 12036837, upload-time = "2026-02-11T21:24:36.163Z" }, ] diff --git a/zensical.toml b/zensical.toml new file mode 100644 index 00000000..bec37247 --- /dev/null +++ b/zensical.toml @@ -0,0 +1,165 @@ +[project] +site_name = "AIMBAT" +site_description = "Aimbat documentation." +site_author = "Simon Lloyd" +site_url = "https://aimbat.pysmo.org/" +copyright = """ +Copyright © 2012 - 2026 Simon Lloyd +""" +repo_name = "pysmo/aimbat" +repo_url = "https://github.com/pysmo/aimbat" +nav = [ + { "Home" = "index.md" }, + { "First steps" = [ + {"Installation" = "first-steps/installation.md"}, + {"Data & Conventions" = "first-steps/data.md"}, + {"Workflow & Strategy" = "first-steps/workflow.md"}, + ] }, + { "Usage" = [ + {"Using AIMBAT" = "usage/index.md"}, + "usage/cli.md", + "usage/gui.md", + ] }, + { "API reference" = [ + "api/index.md", + "api/cli.md", + "api/lib.md", + ] }, + { "Getting Help" = "help.md"}, + {"Contributors" = "contributors.md"}, + {"Changelog" = "changelog.md"}, +] + +extra_css = [ + "css/mermaid.css", + "css/asciinema-player.css", + "https://unpkg.com/katex@0/dist/katex.min.css", + # "css/mkdocstrings.css" + # "css/material.css", +] +extra_javascript = [ + "javascripts/asciinema-player.min.js", + "javascripts/katex.js", + "https://unpkg.com/katex@0/dist/katex.min.js", + "https://unpkg.com/katex@0/dist/contrib/auto-render.min.js", + ] + +[project.theme] +# variant = "classic" +#custom_dir = "overrides" +#favicon = "images/favicon.png" +language = "en" +features = [ + "announce.dismiss", + "content.action.edit", + #"content.action.view", + "content.code.annotate", + "content.code.copy", + "content.code.select", + "content.footnote.tooltips", + "content.tabs.link", + "content.tooltips", + # "header.autohide", + # "navigation.expand", + "navigation.footer", + "navigation.indexes", + "navigation.instant", + "navigation.instant.prefetch", + "navigation.instant.progress", + "navigation.path", + "navigation.prune", + # "navigation.sections", + "navigation.tabs", + # "navigation.tabs.sticky", + "navigation.top", + "navigation.tracking", + "search.highlight", + "toc.follow", + #"toc.integrate", +] + +[[project.theme.palette]] +media = "(prefers-color-scheme)" +toggle.icon = "lucide/sun-moon" +toggle.name = "Switch to light mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: light)" +scheme = "default" +primary = "indigo" +accent = "purple" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: dark)" +scheme = "slate" +primary = "indigo" +accent = "purple" +toggle.icon = "lucide/moon" +toggle.name = "Switch to system preference" + +#[project.theme.font] +#text = "Inter" +#code = "Jetbrains Mono" + +[project.theme.icon] +#logo = "lucide/smile" +repo = "fontawesome/brands/github" + +[[project.extra.social]] +icon = "fontawesome/brands/github" +link = "https://github.com/pysmo/aimbat" + +[project.markdown_extensions.abbr] +[project.markdown_extensions.admonition] +[project.markdown_extensions.attr_list] +[project.markdown_extensions.pymdownx.emoji] +emoji_index = "zensical.extensions.emoji.twemoji" +emoji_generator = "zensical.extensions.emoji.to_svg" +[project.markdown_extensions.footnotes] +[project.markdown_extensions.md_in_html] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.highlight] +anchor_linenums = true +line_spans = "__span" +pygments_lang_class = true +default_lang = "python" +[project.markdown_extensions.pymdownx.inlinehilite] +[project.markdown_extensions.pymdownx.snippets] +[project.markdown_extensions.pymdownx.superfences] +custom_fences = [ + { name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" }, +] +[project.markdown_extensions.pymdownx.tabbed] +alternate_style = true +[project.plugins.mkdocstrings.handlers.python] +paths = ["src"] +inventories = [ + "https://docs.pysmo.org/objects.inv", + "https://docs.python.org/3/objects.inv", + "https://numpy.org/doc/stable/objects.inv", + "https://docs.scipy.org/doc/scipy/objects.inv", + "https://matplotlib.org/stable/objects.inv", +] +[project.plugins.mkdocstrings.handlers.python.options] +allow_inspection = true +backlinks = "tree" +# docstring_section_style = "list" +docstring_style = "google" +# force_inspection = true +inherited_members = true +parameter_headings = false +modernize_annotations = true +separate_signature = true +show_bases = true +show_inheritance_diagram = false +show_overloads = false +show_source = true +show_signature_annotations = true +show_symbol_type_heading = true +show_symbol_type_toc = true +signature_crossrefs = true +[project.plugins.mkdocstrings.handlers.python.options.extra] +trim_doctest_flags = true +type_parameter_headings = true