From 3d2bbdfa44cf5a8c4de3bd430e24f5cb2d018958 Mon Sep 17 00:00:00 2001 From: Major Hayden Date: Fri, 18 Oct 2024 09:45:38 -0500 Subject: [PATCH] Code import --- .editorconfig | 5 + .github/actions/setup-poetry-env/action.yml | 42 + .github/workflows/main.yml | 51 + .gitignore | 167 +++ .pre-commit-config.yaml | 22 + CONTRIBUTING.md | 133 +++ Makefile | 37 + poetry.lock | 1143 +++++++++++++++++++ poetry.toml | 2 + pyproject.toml | 93 ++ tests/conftest.py | 18 + tests/example_docs/RHSA-2022_0886.md | 943 +++++++++++++++ tests/test_splitter.py | 59 + textprep/__init__.py | 10 + textprep/splitter.py | 39 + tox.ini | 16 + 16 files changed, 2780 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/actions/setup-poetry-env/action.yml create mode 100644 .github/workflows/main.yml create mode 100644 .gitignore create mode 100644 .pre-commit-config.yaml create mode 100644 CONTRIBUTING.md create mode 100644 Makefile create mode 100644 poetry.lock create mode 100644 poetry.toml create mode 100644 pyproject.toml create mode 100644 tests/conftest.py create mode 100644 tests/example_docs/RHSA-2022_0886.md create mode 100644 tests/test_splitter.py create mode 100644 textprep/__init__.py create mode 100644 textprep/splitter.py create mode 100644 tox.ini diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9395b54 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +max_line_length = 120 + +[*.json] +indent_style = space +indent_size = 4 diff --git a/.github/actions/setup-poetry-env/action.yml b/.github/actions/setup-poetry-env/action.yml new file mode 100644 index 0000000..1538d72 --- /dev/null +++ b/.github/actions/setup-poetry-env/action.yml @@ -0,0 +1,42 @@ +name: "setup-poetry-env" +description: "Composite action to setup the Python and poetry environment." + +inputs: + python-version: + required: false + description: "The python version to use" + default: "3.12" + +runs: + using: "composite" + steps: + - name: Set up python + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + + - name: Install Poetry + env: + POETRY_VERSION: "1.7.1" + run: curl -sSL https://install.python-poetry.org | python - -y + shell: bash + + - name: Add Poetry to Path + run: echo "$HOME/.local/bin" >> $GITHUB_PATH + shell: bash + + - name: Configure Poetry virtual environment in project + run: poetry config virtualenvs.in-project true + shell: bash + + - name: Load cached venv + id: cached-poetry-dependencies + uses: actions/cache@v4 + with: + path: .venv + key: venv-${{ runner.os }}-${{ inputs.python-version }}-${{ hashFiles('poetry.lock') }} + + - name: Install dependencies + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction + shell: bash diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..d5d7bc8 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,51 @@ +name: Main + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + quality: + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} + + - name: Set up the environment + uses: ./.github/actions/setup-poetry-env + + - name: Run checks + run: make check + + tests-and-type-check: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.12", "3.13"] + fail-fast: false + defaults: + run: + shell: bash + steps: + - name: Check out + uses: actions/checkout@v4 + + - name: Set up the environment + uses: ./.github/actions/setup-poetry-env + with: + python-version: ${{ matrix.python-version }} + + - name: Run tests + run: poetry run pytest tests --cov --cov-config=pyproject.toml --cov-report=xml + + - name: Check typing + run: poetry run mypy + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f64e26a --- /dev/null +++ b/.gitignore @@ -0,0 +1,167 @@ +docs/source + +# From https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# Vscode config files +.vscode/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..4461dbb --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v5.0.0" + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: "v0.7.0" + hooks: + - id: ruff + args: [--exit-non-zero-on-fix] + - id: ruff-format + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: "v4.0.0-alpha.8" + hooks: + - id: prettier diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..acb6003 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,133 @@ +# Contributing to `textprep` + +Contributions are welcome, and they are greatly appreciated! +Every little bit helps, and credit will always be given. + +You can contribute in many ways: + +# Types of Contributions + +## Report Bugs + +Report bugs at https://github.com/major/textprep/issues + +If you are reporting a bug, please include: + +- Your operating system name and version. +- Any details about your local setup that might be helpful in troubleshooting. +- Detailed steps to reproduce the bug. + +## Fix Bugs + +Look through the GitHub issues for bugs. +Anything tagged with "bug" and "help wanted" is open to whoever wants to implement a fix for it. + +## Implement Features + +Look through the GitHub issues for features. +Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it. + +## Write Documentation + +Cookiecutter PyPackage could always use more documentation, whether as part of the official docs, in docstrings, or even on the web in blog posts, articles, and such. + +## Submit Feedback + +The best way to send feedback is to file an issue at https://github.com/major/textprep/issues. + +If you are proposing a new feature: + +- Explain in detail how it would work. +- Keep the scope as narrow as possible, to make it easier to implement. +- Remember that this is a volunteer-driven project, and that contributions + are welcome :) + +# Get Started! + +Ready to contribute? Here's how to set up `textprep` for local development. +Please note this documentation assumes you already have `poetry` and `Git` installed and ready to go. + +1. Fork the `textprep` repo on GitHub. + +2. Clone your fork locally: + +```bash +cd +git clone git@github.com:YOUR_NAME/textprep.git +``` + +3. Now we need to install the environment. Navigate into the directory + +```bash +cd textprep +``` + +If you are using `pyenv`, select a version to use locally. (See installed versions with `pyenv versions`) + +```bash +pyenv local +``` + +Then, install and activate the environment with: + +```bash +poetry install +poetry shell +``` + +4. Install pre-commit to run linters/formatters at commit time: + +```bash +poetry run pre-commit install +``` + +5. Create a branch for local development: + +```bash +git checkout -b name-of-your-bugfix-or-feature +``` + +Now you can make your changes locally. + +6. Don't forget to add test cases for your added functionality to the `tests` directory. + +7. When you're done making changes, check that your changes pass the formatting tests. + +```bash +make check +``` + +Now, validate that all unit tests are passing: + +```bash +make test +``` + +9. Before raising a pull request you should also run tox. + This will run the tests across different versions of Python: + +```bash +tox +``` + +This requires you to have multiple versions of python installed. +This step is also triggered in the CI/CD pipeline, so you could also choose to skip this step locally. + +10. Commit your changes and push your branch to GitHub: + +```bash +git add . +git commit -m "Your detailed description of your changes." +git push origin name-of-your-bugfix-or-feature +``` + +11. Submit a pull request through the GitHub website. + +# Pull Request Guidelines + +Before you submit a pull request, check that it meets these guidelines: + +1. The pull request should include tests. + +2. If the pull request adds functionality, the docs should be updated. + Put your new functionality into a function with a docstring, and add the feature to the list in `README.md`. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1dfdb93 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +.PHONY: install +install: ## Install the poetry environment and install the pre-commit hooks + @echo "🚀 Creating virtual environment using pyenv and poetry" + @poetry install + @ poetry run pre-commit install + @poetry shell + +.PHONY: check +check: ## Run code quality tools. + @echo "🚀 Checking Poetry lock file consistency with 'pyproject.toml': Running poetry check --lock" + @poetry check --lock + @echo "🚀 Linting code: Running pre-commit" + @poetry run pre-commit run -a + @echo "🚀 Static type checking: Running mypy" + @poetry run mypy + @echo "🚀 Checking for obsolete dependencies: Running deptry" + @poetry run deptry . + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @poetry run pytest --doctest-modules + +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + @poetry build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @rm -rf dist + +.PHONY: help +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' + +.DEFAULT_GOAL := help diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..8699378 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1143 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.6.2.post1" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, + {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "cachetools" +version = "5.5.0" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, +] + +[[package]] +name = "certifi" +version = "2024.8.30" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "chardet" +version = "5.2.0" +description = "Universal encoding detector for Python 3" +optional = false +python-versions = ">=3.7" +files = [ + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.6.3" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6da42bbcec130b188169107ecb6ee7bd7b4c849d24c9370a0c884cf728d8e976"}, + {file = "coverage-7.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c222958f59b0ae091f4535851cbb24eb57fc0baea07ba675af718fb5302dddb2"}, + {file = "coverage-7.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab84a8b698ad5a6c365b08061920138e7a7dd9a04b6feb09ba1bfae68346ce6d"}, + {file = "coverage-7.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70a6756ce66cd6fe8486c775b30889f0dc4cb20c157aa8c35b45fd7868255c5c"}, + {file = "coverage-7.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c2e6fa98032fec8282f6b27e3f3986c6e05702828380618776ad794e938f53a"}, + {file = "coverage-7.6.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:921fbe13492caf6a69528f09d5d7c7d518c8d0e7b9f6701b7719715f29a71e6e"}, + {file = "coverage-7.6.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6d99198203f0b9cb0b5d1c0393859555bc26b548223a769baf7e321a627ed4fc"}, + {file = "coverage-7.6.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:87cd2e29067ea397a47e352efb13f976eb1b03e18c999270bb50589323294c6e"}, + {file = "coverage-7.6.3-cp310-cp310-win32.whl", hash = "sha256:a3328c3e64ea4ab12b85999eb0779e6139295bbf5485f69d42cf794309e3d007"}, + {file = "coverage-7.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:bca4c8abc50d38f9773c1ec80d43f3768df2e8576807d1656016b9d3eeaa96fd"}, + {file = "coverage-7.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c51ef82302386d686feea1c44dbeef744585da16fcf97deea2a8d6c1556f519b"}, + {file = "coverage-7.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ca37993206402c6c35dc717f90d4c8f53568a8b80f0bf1a1b2b334f4d488fba"}, + {file = "coverage-7.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c77326300b839c44c3e5a8fe26c15b7e87b2f32dfd2fc9fee1d13604347c9b38"}, + {file = "coverage-7.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e484e479860e00da1f005cd19d1c5d4a813324e5951319ac3f3eefb497cc549"}, + {file = "coverage-7.6.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c6c0f4d53ef603397fc894a895b960ecd7d44c727df42a8d500031716d4e8d2"}, + {file = "coverage-7.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:37be7b5ea3ff5b7c4a9db16074dc94523b5f10dd1f3b362a827af66a55198175"}, + {file = "coverage-7.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:43b32a06c47539fe275106b376658638b418c7cfdfff0e0259fbf877e845f14b"}, + {file = "coverage-7.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee77c7bef0724165e795b6b7bf9c4c22a9b8468a6bdb9c6b4281293c6b22a90f"}, + {file = "coverage-7.6.3-cp311-cp311-win32.whl", hash = "sha256:43517e1f6b19f610a93d8227e47790722c8bf7422e46b365e0469fc3d3563d97"}, + {file = "coverage-7.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:04f2189716e85ec9192df307f7c255f90e78b6e9863a03223c3b998d24a3c6c6"}, + {file = "coverage-7.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27bd5f18d8f2879e45724b0ce74f61811639a846ff0e5c0395b7818fae87aec6"}, + {file = "coverage-7.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d546cfa78844b8b9c1c0533de1851569a13f87449897bbc95d698d1d3cb2a30f"}, + {file = "coverage-7.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9975442f2e7a5cfcf87299c26b5a45266ab0696348420049b9b94b2ad3d40234"}, + {file = "coverage-7.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:583049c63106c0555e3ae3931edab5669668bbef84c15861421b94e121878d3f"}, + {file = "coverage-7.6.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2341a78ae3a5ed454d524206a3fcb3cec408c2a0c7c2752cd78b606a2ff15af4"}, + {file = "coverage-7.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a4fb91d5f72b7e06a14ff4ae5be625a81cd7e5f869d7a54578fc271d08d58ae3"}, + {file = "coverage-7.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e279f3db904e3b55f520f11f983cc8dc8a4ce9b65f11692d4718ed021ec58b83"}, + {file = "coverage-7.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aa23ce39661a3e90eea5f99ec59b763b7d655c2cada10729ed920a38bfc2b167"}, + {file = "coverage-7.6.3-cp312-cp312-win32.whl", hash = "sha256:52ac29cc72ee7e25ace7807249638f94c9b6a862c56b1df015d2b2e388e51dbd"}, + {file = "coverage-7.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:40e8b1983080439d4802d80b951f4a93d991ef3261f69e81095a66f86cf3c3c6"}, + {file = "coverage-7.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9134032f5aa445ae591c2ba6991d10136a1f533b1d2fa8f8c21126468c5025c6"}, + {file = "coverage-7.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:99670790f21a96665a35849990b1df447993880bb6463a0a1d757897f30da929"}, + {file = "coverage-7.6.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc7d6b380ca76f5e817ac9eef0c3686e7834c8346bef30b041a4ad286449990"}, + {file = "coverage-7.6.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f7b26757b22faf88fcf232f5f0e62f6e0fd9e22a8a5d0d5016888cdfe1f6c1c4"}, + {file = "coverage-7.6.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c59d6a4a4633fad297f943c03d0d2569867bd5372eb5684befdff8df8522e39"}, + {file = "coverage-7.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f263b18692f8ed52c8de7f40a0751e79015983dbd77b16906e5b310a39d3ca21"}, + {file = "coverage-7.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79644f68a6ff23b251cae1c82b01a0b51bc40c8468ca9585c6c4b1aeee570e0b"}, + {file = "coverage-7.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:71967c35828c9ff94e8c7d405469a1fb68257f686bca7c1ed85ed34e7c2529c4"}, + {file = "coverage-7.6.3-cp313-cp313-win32.whl", hash = "sha256:e266af4da2c1a4cbc6135a570c64577fd3e6eb204607eaff99d8e9b710003c6f"}, + {file = "coverage-7.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:ea52bd218d4ba260399a8ae4bb6b577d82adfc4518b93566ce1fddd4a49d1dce"}, + {file = "coverage-7.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8d4c6ea0f498c7c79111033a290d060c517853a7bcb2f46516f591dab628ddd3"}, + {file = "coverage-7.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:331b200ad03dbaa44151d74daeb7da2cf382db424ab923574f6ecca7d3b30de3"}, + {file = "coverage-7.6.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54356a76b67cf8a3085818026bb556545ebb8353951923b88292556dfa9f812d"}, + {file = "coverage-7.6.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ebec65f5068e7df2d49466aab9128510c4867e532e07cb6960075b27658dca38"}, + {file = "coverage-7.6.3-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d33a785ea8354c480515e781554d3be582a86297e41ccbea627a5c632647f2cd"}, + {file = "coverage-7.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f7ddb920106bbbbcaf2a274d56f46956bf56ecbde210d88061824a95bdd94e92"}, + {file = "coverage-7.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:70d24936ca6c15a3bbc91ee9c7fc661132c6f4c9d42a23b31b6686c05073bde5"}, + {file = "coverage-7.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c30e42ea11badb147f0d2e387115b15e2bd8205a5ad70d6ad79cf37f6ac08c91"}, + {file = "coverage-7.6.3-cp313-cp313t-win32.whl", hash = "sha256:365defc257c687ce3e7d275f39738dcd230777424117a6c76043459db131dd43"}, + {file = "coverage-7.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:23bb63ae3f4c645d2d82fa22697364b0046fbafb6261b258a58587441c5f7bd0"}, + {file = "coverage-7.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:da29ceabe3025a1e5a5aeeb331c5b1af686daab4ff0fb4f83df18b1180ea83e2"}, + {file = "coverage-7.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df8c05a0f574d480947cba11b947dc41b1265d721c3777881da2fb8d3a1ddfba"}, + {file = "coverage-7.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec1e3b40b82236d100d259854840555469fad4db64f669ab817279eb95cd535c"}, + {file = "coverage-7.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4adeb878a374126f1e5cf03b87f66279f479e01af0e9a654cf6d1509af46c40"}, + {file = "coverage-7.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43d6a66e33b1455b98fc7312b124296dad97a2e191c80320587234a77b1b736e"}, + {file = "coverage-7.6.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1990b1f4e2c402beb317840030bb9f1b6a363f86e14e21b4212e618acdfce7f6"}, + {file = "coverage-7.6.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:12f9515d875859faedb4144fd38694a761cd2a61ef9603bf887b13956d0bbfbb"}, + {file = "coverage-7.6.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:99ded130555c021d99729fabd4ddb91a6f4cc0707df4b1daf912c7850c373b13"}, + {file = "coverage-7.6.3-cp39-cp39-win32.whl", hash = "sha256:c3a79f56dee9136084cf84a6c7c4341427ef36e05ae6415bf7d787c96ff5eaa3"}, + {file = "coverage-7.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:aac7501ae73d4a02f4b7ac8fcb9dc55342ca98ffb9ed9f2dfb8a25d53eda0e4d"}, + {file = "coverage-7.6.3-pp39.pp310-none-any.whl", hash = "sha256:b9853509b4bf57ba7b1f99b9d866c422c9c5248799ab20e652bbb8a184a38181"}, + {file = "coverage-7.6.3.tar.gz", hash = "sha256:bb7d5fe92bd0dc235f63ebe9f8c6e0884f7360f88f3411bfed1350c872ef2054"}, +] + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "deptry" +version = "0.16.2" +description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." +optional = false +python-versions = ">=3.8" +files = [ + {file = "deptry-0.16.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:24bfbae07bd6533c852c795e8d88d05a8ad0801bec0d3662e1a37db763c52540"}, + {file = "deptry-0.16.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:fc881688a2eaeafe51c0617d32a6535057bccdb74559cc667109f48f81cd976e"}, + {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fed4b692f556e4c80acb42cec93e3b5fdc7fc2323049c2a0cfd9dfc4a9c7033e"}, + {file = "deptry-0.16.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ec508a932d8f06c3bd1aa7a4548d5dbec92c3060d42eedcda3be9729bd7c3b"}, + {file = "deptry-0.16.2-cp38-abi3-win_amd64.whl", hash = "sha256:eb92e9aacde66cfe001d6318eb0851ae0ca26fea441defed4765a47644daf8bb"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dfdceca2fbc87f4bce04df4207914a5eb37e67fb2107579ad2e88107c22d2456"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:96ab62dd5f4658735aac72d0e49f6d896eabf50a0e4e2cdecb436a1362aa696b"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e4408fa5a8d146b55bc40f0829fb875efef33174a2679bd9954ce988b9bc0d7"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af976afc2a0583f48dc25f616d2566fecd7af5080675c8eccb161def88d93503"}, + {file = "deptry-0.16.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd86c9d34aa75b91fb72b34110f0660b2277bf9a95fe9cae3ead36d465bc44ac"}, + {file = "deptry-0.16.2.tar.gz", hash = "sha256:f0f752cf6f5e9f7445a79fcf195b772cd2d4b889cd260e23867dd8013caa74c1"}, +] + +[package.dependencies] +click = ">=8.0.0,<9" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.6" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"}, + {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httpx" +version = "0.27.2" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +description = "Apply JSON-Patches (RFC 6902)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, + {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, +] + +[package.dependencies] +jsonpointer = ">=1.9" + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "langchain-core" +version = "0.3.12" +description = "Building applications with LLMs through composability" +optional = false +python-versions = "<4.0,>=3.9" +files = [ + {file = "langchain_core-0.3.12-py3-none-any.whl", hash = "sha256:46050d34f5fa36dc57dca971c6a26f505643dd05ee0492c7ac286d0a78a82037"}, + {file = "langchain_core-0.3.12.tar.gz", hash = "sha256:98a3c078e375786aa84939bfd1111263af2f3bc402bbe2cac9fa18a387459cf2"}, +] + +[package.dependencies] +jsonpatch = ">=1.33,<2.0" +langsmith = ">=0.1.125,<0.2.0" +packaging = ">=23.2,<25" +pydantic = [ + {version = ">=2.5.2,<3.0.0", markers = "python_full_version < \"3.12.4\""}, + {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""}, +] +PyYAML = ">=5.3" +tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0" +typing-extensions = ">=4.7" + +[[package]] +name = "langchain-text-splitters" +version = "0.3.0" +description = "LangChain text splitting utilities" +optional = false +python-versions = "<4.0,>=3.9" +files = [ + {file = "langchain_text_splitters-0.3.0-py3-none-any.whl", hash = "sha256:e84243e45eaff16e5b776cd9c81b6d07c55c010ebcb1965deb3d1792b7358e83"}, + {file = "langchain_text_splitters-0.3.0.tar.gz", hash = "sha256:f9fe0b4d244db1d6de211e7343d4abc4aa90295aa22e1f0c89e51f33c55cd7ce"}, +] + +[package.dependencies] +langchain-core = ">=0.3.0,<0.4.0" + +[[package]] +name = "langsmith" +version = "0.1.136" +description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." +optional = false +python-versions = "<4.0,>=3.8.1" +files = [ + {file = "langsmith-0.1.136-py3-none-any.whl", hash = "sha256:cad2215eb7a754ee259878e19c558f4f8d3795aa1b699f087d4500e640f80d0a"}, + {file = "langsmith-0.1.136.tar.gz", hash = "sha256:5c0de01a313db70dd9a85845c0f416a69b5b653b3e98ba413d7d41e8851315b1"}, +] + +[package.dependencies] +httpx = ">=0.23.0,<1" +orjson = ">=3.9.14,<4.0.0" +pydantic = [ + {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""}, + {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""}, +] +requests = ">=2,<3" +requests-toolbelt = ">=1.0.0,<2.0.0" + +[[package]] +name = "mypy" +version = "1.12.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4397081e620dc4dc18e2f124d5e1d2c288194c2c08df6bdb1db31c38cd1fe1ed"}, + {file = "mypy-1.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:684a9c508a283f324804fea3f0effeb7858eb03f85c4402a967d187f64562469"}, + {file = "mypy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cabe4cda2fa5eca7ac94854c6c37039324baaa428ecbf4de4567279e9810f9e"}, + {file = "mypy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:060a07b10e999ac9e7fa249ce2bdcfa9183ca2b70756f3bce9df7a92f78a3c0a"}, + {file = "mypy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0eff042d7257f39ba4ca06641d110ca7d2ad98c9c1fb52200fe6b1c865d360ff"}, + {file = "mypy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b86de37a0da945f6d48cf110d5206c5ed514b1ca2614d7ad652d4bf099c7de7"}, + {file = "mypy-1.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20c7c5ce0c1be0b0aea628374e6cf68b420bcc772d85c3c974f675b88e3e6e57"}, + {file = "mypy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a64ee25f05fc2d3d8474985c58042b6759100a475f8237da1f4faf7fcd7e6309"}, + {file = "mypy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:faca7ab947c9f457a08dcb8d9a8664fd438080e002b0fa3e41b0535335edcf7f"}, + {file = "mypy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:5bc81701d52cc8767005fdd2a08c19980de9ec61a25dbd2a937dfb1338a826f9"}, + {file = "mypy-1.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8462655b6694feb1c99e433ea905d46c478041a8b8f0c33f1dab00ae881b2164"}, + {file = "mypy-1.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:923ea66d282d8af9e0f9c21ffc6653643abb95b658c3a8a32dca1eff09c06475"}, + {file = "mypy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ebf9e796521f99d61864ed89d1fb2926d9ab6a5fab421e457cd9c7e4dd65aa9"}, + {file = "mypy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e478601cc3e3fa9d6734d255a59c7a2e5c2934da4378f3dd1e3411ea8a248642"}, + {file = "mypy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:c72861b7139a4f738344faa0e150834467521a3fba42dc98264e5aa9507dd601"}, + {file = "mypy-1.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52b9e1492e47e1790360a43755fa04101a7ac72287b1a53ce817f35899ba0521"}, + {file = "mypy-1.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:48d3e37dd7d9403e38fa86c46191de72705166d40b8c9f91a3de77350daa0893"}, + {file = "mypy-1.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f106db5ccb60681b622ac768455743ee0e6a857724d648c9629a9bd2ac3f721"}, + {file = "mypy-1.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:233e11b3f73ee1f10efada2e6da0f555b2f3a5316e9d8a4a1224acc10e7181d3"}, + {file = "mypy-1.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:4ae8959c21abcf9d73aa6c74a313c45c0b5a188752bf37dace564e29f06e9c1b"}, + {file = "mypy-1.12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eafc1b7319b40ddabdc3db8d7d48e76cfc65bbeeafaa525a4e0fa6b76175467f"}, + {file = "mypy-1.12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9b9ce1ad8daeb049c0b55fdb753d7414260bad8952645367e70ac91aec90e07e"}, + {file = "mypy-1.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfe012b50e1491d439172c43ccb50db66d23fab714d500b57ed52526a1020bb7"}, + {file = "mypy-1.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2c40658d4fa1ab27cb53d9e2f1066345596af2f8fe4827defc398a09c7c9519b"}, + {file = "mypy-1.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:dee78a8b9746c30c1e617ccb1307b351ded57f0de0d287ca6276378d770006c0"}, + {file = "mypy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b5df6c8a8224f6b86746bda716bbe4dbe0ce89fd67b1fa4661e11bfe38e8ec8"}, + {file = "mypy-1.12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5feee5c74eb9749e91b77f60b30771563327329e29218d95bedbe1257e2fe4b0"}, + {file = "mypy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:77278e8c6ffe2abfba6db4125de55f1024de9a323be13d20e4f73b8ed3402bd1"}, + {file = "mypy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dcfb754dea911039ac12434d1950d69a2f05acd4d56f7935ed402be09fad145e"}, + {file = "mypy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:06de0498798527451ffb60f68db0d368bd2bae2bbfb5237eae616d4330cc87aa"}, + {file = "mypy-1.12.0-py3-none-any.whl", hash = "sha256:fd313226af375d52e1e36c383f39bf3836e1f192801116b31b090dfcd3ec5266"}, + {file = "mypy-1.12.0.tar.gz", hash = "sha256:65a22d87e757ccd95cbbf6f7e181e6caa87128255eb2b6be901bb71b26d8a99d"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +typing-extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "orjson" +version = "3.10.7" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +files = [ + {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, + {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, + {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, + {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, + {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, + {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, + {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, + {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, + {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, + {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, + {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, + {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, + {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, + {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, + {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, + {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, + {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, + {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, + {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, + {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "4.0.1" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"}, + {file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pydantic" +version = "2.9.2" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"}, + {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.23.4" +typing-extensions = [ + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.23.4" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"}, + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"}, + {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"}, + {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"}, + {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"}, + {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"}, + {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"}, + {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"}, + {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"}, + {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"}, + {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"}, + {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"}, + {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"}, + {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"}, + {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pyproject-api" +version = "1.8.0" +description = "API to interact with the python pyproject.toml based projects" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228"}, + {file = "pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496"}, +] + +[package.dependencies] +packaging = ">=24.1" + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.3.3)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=75.1)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pytest-randomly" +version = "3.15.0" +description = "Pytest plugin to randomly order tests and control random.seed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_randomly-3.15.0-py3-none-any.whl", hash = "sha256:0516f4344b29f4e9cdae8bce31c4aeebf59d0b9ef05927c33354ff3859eeeca6"}, + {file = "pytest_randomly-3.15.0.tar.gz", hash = "sha256:b908529648667ba5e54723088edd6f82252f540cc340d748d1fa985539687047"}, +] + +[package.dependencies] +pytest = "*" + +[[package]] +name = "pytest-sugar" +version = "1.0.0" +description = "pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly)." +optional = false +python-versions = "*" +files = [ + {file = "pytest-sugar-1.0.0.tar.gz", hash = "sha256:6422e83258f5b0c04ce7c632176c7732cab5fdb909cb39cca5c9139f81276c0a"}, + {file = "pytest_sugar-1.0.0-py3-none-any.whl", hash = "sha256:70ebcd8fc5795dc457ff8b69d266a4e2e8a74ae0c3edc749381c64b5246c8dfd"}, +] + +[package.dependencies] +packaging = ">=21.3" +pytest = ">=6.2.0" +termcolor = ">=2.1.0" + +[package.extras] +dev = ["black", "flake8", "pre-commit"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +description = "A utility belt for advanced users of python-requests" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, + {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, +] + +[package.dependencies] +requests = ">=2.0.1,<3.0.0" + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "termcolor" +version = "2.5.0" +description = "ANSI color formatting for output in terminal" +optional = false +python-versions = ">=3.9" +files = [ + {file = "termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8"}, + {file = "termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f"}, +] + +[package.extras] +tests = ["pytest", "pytest-cov"] + +[[package]] +name = "tox" +version = "4.23.0" +description = "tox is a generic virtualenv management and test command line tool" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tox-4.23.0-py3-none-any.whl", hash = "sha256:46da40afb660e46238c251280eb910bdaf00b390c7557c8e4bb611f422e9db12"}, + {file = "tox-4.23.0.tar.gz", hash = "sha256:a6bd7d54231d755348d3c3a7b450b5bf6563833716d1299a1619587a1b77a3bf"}, +] + +[package.dependencies] +cachetools = ">=5.5" +chardet = ">=5.2" +colorama = ">=0.4.6" +filelock = ">=3.16.1" +packaging = ">=24.1" +platformdirs = ">=4.3.6" +pluggy = ">=1.5" +pyproject-api = ">=1.8" +virtualenv = ">=20.26.6" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "virtualenv" +version = "20.27.0" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.27.0-py3-none-any.whl", hash = "sha256:44a72c29cceb0ee08f300b314848c86e57bf8d1f13107a5e671fb9274138d655"}, + {file = "virtualenv-20.27.0.tar.gz", hash = "sha256:2ca56a68ed615b8fe4326d11a0dca5dfbe8fd68510fb6c6349163bed3c15f2b2"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.12,<4.0" +content-hash = "86332d52bd3e21c657ce64f19010aefe8951f8d9c569df4bf030edfd9aa0c3e7" diff --git a/poetry.toml b/poetry.toml new file mode 100644 index 0000000..ab1033b --- /dev/null +++ b/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..32222aa --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,93 @@ +[tool.poetry] +name = "textprep" +version = "0.0.1" +description = "Prepare various Red Hat test sources for RAG." +authors = ["Major Hayden "] +repository = "https://github.com/major/textprep" +documentation = "https://major.github.io/textprep/" +readme = "README.md" +packages = [ + {include = "textprep"} +] + +[tool.poetry.dependencies] +python = ">=3.12,<4.0" +langchain-text-splitters = "^0.3.0" + +[tool.poetry.group.dev.dependencies] +pytest = "^8.3.3" +deptry = "^0.16.2" +mypy = "^1.12.0" +pre-commit = "^4.0.1" +tox = "^4.23.0" +pytest-sugar = "^1.0.0" +pytest-randomly = "^3.15.0" +pytest-cov = "^5.0.0" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.mypy] +files = ["textprep"] +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" + + +[tool.pytest.ini_options] +testpaths = ["tests"] +addopts = ["--cov=textprep", "--cov-report=term-missing", "--cov-report=html"] + +[tool.ruff] +target-version = "py312" +line-length = 120 +fix = true +select = [ + # flake8-2020 + "YTT", + # flake8-bandit + "S", + # flake8-bugbear + "B", + # flake8-builtins + "A", + # flake8-comprehensions + "C4", + # flake8-debugger + "T10", + # flake8-simplify + "SIM", + # isort + "I", + # mccabe + "C90", + # pycodestyle + "E", "W", + # pyflakes + "F", + # pygrep-hooks + "PGH", + # pyupgrade + "UP", + # ruff + "RUF", + # tryceratops + "TRY", +] +ignore = [ + # LineTooLong + "E501", + # DoNotAssignLambda + "E731", +] + +[tool.ruff.format] +preview = true + +[tool.ruff.per-file-ignores] +"tests/*" = ["S101"] diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..7a5ae1e --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,18 @@ +"""Pytest's configuration file.""" + +import pytest + + +def load_example_doc(doctype: str): + """Load an example document.""" + example_docs = { + "errata": "RHSA-2022_0886.md", + } + with open(f"tests/example_docs/{example_docs[doctype]}") as f: + return f.read() + + +@pytest.fixture +def errata_doc(): + """Load an example errata document.""" + return load_example_doc("errata") diff --git a/tests/example_docs/RHSA-2022_0886.md b/tests/example_docs/RHSA-2022_0886.md new file mode 100644 index 0000000..27ae61b --- /dev/null +++ b/tests/example_docs/RHSA-2022_0886.md @@ -0,0 +1,943 @@ ++++ +title = '''RHSA-2022:0886 - Moderate: virt:rhel and virt-devel:rhel security update - Red Hat Customer Portal''' +path = "/errata/RHSA-2022:0886" +template = "erratum.html" +[extra] +document_kind="errata" +original_title='''RHSA-2022:0886 - Moderate: virt:rhel and virt-devel:rhel security update''' +solr_index="true" +modified="2022-03-15T09:10:14Z" +issued="2022-03-15T09:10:17Z" +id="RHSA-2022:0886" +view_uri="/errata/RHSA-2022:0886" +portal_advisory_type="Security Advisory" +portal_synopsis='''Moderate: virt:rhel and virt-devel:rhel security update''' +portal_severity="Moderate" +portal_product_names=["Red Hat CodeReady Linux Builder for ARM 64","Red Hat Enterprise Linux for Power, little endian - Extended Update Support","Red Hat CodeReady Linux Builder for ARM 64 - Extended Update Support","Red Hat Enterprise Linux Server - TUS","Red Hat CodeReady Linux Builder for Power, little endian - Extended Update Support","Red Hat Enterprise Linux for IBM z Systems","Red Hat Enterprise Linux for x86_64","Red Hat Enterprise Linux for x86_64 - Extended Update Support","Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update Support","Red Hat Enterprise Linux Server for Power LE - Update Services for SAP Solutions","Red Hat Enterprise Linux for ARM 64 - Extended Update Support","Red Hat Enterprise Linux for Power, little endian","Red Hat Enterprise Linux for IBM z Systems - Extended Update Support","Red Hat Enterprise Linux for x86_64 - Update Services for SAP Solutions","Red Hat CodeReady Linux Builder for IBM z Systems","Red Hat CodeReady Linux Builder for Power, little endian","Red Hat Enterprise Linux for ARM 64","Red Hat CodeReady Linux Builder for x86_64","Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support","Red Hat Enterprise Linux Server - AUS"] +portal_product_filter=["Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for ARM 64|8|aarch64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for Power, little endian - Extended Update Support|8.6|ppc64le","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for ARM 64 - Extended Update Support|8.6|aarch64","Red Hat Enterprise Linux|Red Hat Enterprise Linux Server - TUS|8.8|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for Power, little endian - Extended Update Support|8.8|ppc64le","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for Power, little endian - Extended Update Support|8.6|ppc64le","Red Hat Enterprise Linux|Red Hat Enterprise Linux for IBM z Systems|8|s390x","Red Hat Enterprise Linux|Red Hat Enterprise Linux for x86_64|8|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for x86_64 - Extended Update Support|8.6|x86_64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for Power, little endian - Extended Update Support|8.8|ppc64le","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update Support|8.6|s390x","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update Support|8.8|s390x","Red Hat Enterprise Linux|Red Hat Enterprise Linux Server for Power LE - Update Services for SAP Solutions|8.8|ppc64le","Red Hat Enterprise Linux|Red Hat Enterprise Linux for ARM 64 - Extended Update Support|8.8|aarch64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for Power, little endian|8|ppc64le","Red Hat Enterprise Linux|Red Hat Enterprise Linux for IBM z Systems - Extended Update Support|8.6|s390x","Red Hat Enterprise Linux|Red Hat Enterprise Linux for x86_64 - Update Services for SAP Solutions|8.8|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for IBM z Systems - Extended Update Support|8.8|s390x","Red Hat Enterprise Linux|Red Hat Enterprise Linux for x86_64 - Extended Update Support|8.8|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux for ARM 64 - Extended Update Support|8.6|aarch64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for IBM z Systems|8|s390x","Red Hat Enterprise Linux|Red Hat Enterprise Linux Server - TUS|8.6|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux Server for Power LE - Update Services for SAP Solutions|8.6|ppc64le","Red Hat Enterprise Linux|Red Hat Enterprise Linux for x86_64 - Update Services for SAP Solutions|8.6|x86_64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for Power, little endian|8|ppc64le","Red Hat Enterprise Linux|Red Hat Enterprise Linux for ARM 64|8|aarch64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for x86_64|8|x86_64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support|8.6|x86_64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support|8.8|x86_64","Red Hat Enterprise Linux|Red Hat Enterprise Linux Server - AUS|8.6|x86_64","Red Hat Enterprise Linux|Red Hat CodeReady Linux Builder for ARM 64 - Extended Update Support|8.8|aarch64"] +portal_summary='''An update for the virt:rhel and virt-devel:rhel modules is now available for Red Hat Enterprise Linux 8. + +Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section.''' +breadcrumbs=[["/", "Home"], ["/errata-search", "Red Hat Product Errata"]] +last_crumb='''RHSA-2022:0886''' ++++ + +--- + +## Synopsis + +Moderate: virt:rhel and virt-devel:rhel security update + +## Type/Severity + +Security Advisory Moderate + +## Topic + +An update for the virt:rhel and virt-devel:rhel modules is now available for Red Hat Enterprise Linux 8. + +Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. + +## Description + +Kernel-based Virtual Machine (KVM) offers a full virtualization solution for Linux on numerous hardware platforms. The virt:rhel module contains packages which provide user-space components used to run virtual machines using KVM. The packages also provide APIs for managing and interacting with the virtualized +systems. + +Security Fix(es): + +* QEMU: virtiofsd: potential privilege escalation via CVE-2018-13405 (CVE-2022-0358) + +For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section. + +## Solution + +For details on how to apply this update, which includes the changes described in this advisory, refer to: + + + +## Affected Products + +Product | Version | Arch +-|-|- +Red Hat Enterprise Linux for x86_64|8|x86_64 +Red Hat Enterprise Linux for x86_64 - Update Services for SAP Solutions|8.8|x86_64 +Red Hat Enterprise Linux for x86_64 - Update Services for SAP Solutions|8.6|x86_64 +Red Hat Enterprise Linux for x86_64 - Extended Update Support|8.8|x86_64 +Red Hat Enterprise Linux for x86_64 - Extended Update Support|8.6|x86_64 +Red Hat Enterprise Linux for Power, little endian|8|ppc64le +Red Hat Enterprise Linux for Power, little endian - Extended Update Support|8.8|ppc64le +Red Hat Enterprise Linux for Power, little endian - Extended Update Support|8.6|ppc64le +Red Hat Enterprise Linux for IBM z Systems|8|s390x +Red Hat Enterprise Linux for IBM z Systems - Extended Update Support|8.8|s390x +Red Hat Enterprise Linux for IBM z Systems - Extended Update Support|8.6|s390x +Red Hat Enterprise Linux for ARM 64|8|aarch64 +Red Hat Enterprise Linux for ARM 64 - Extended Update Support|8.8|aarch64 +Red Hat Enterprise Linux for ARM 64 - Extended Update Support|8.6|aarch64 +Red Hat Enterprise Linux Server for Power LE - Update Services for SAP Solutions|8.8|ppc64le +Red Hat Enterprise Linux Server for Power LE - Update Services for SAP Solutions|8.6|ppc64le +Red Hat Enterprise Linux Server - TUS|8.8|x86_64 +Red Hat Enterprise Linux Server - TUS|8.6|x86_64 +Red Hat Enterprise Linux Server - AUS|8.6|x86_64 +Red Hat CodeReady Linux Builder for x86_64|8|x86_64 +Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support|8.8|x86_64 +Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support|8.6|x86_64 +Red Hat CodeReady Linux Builder for Power, little endian|8|ppc64le +Red Hat CodeReady Linux Builder for Power, little endian - Extended Update Support|8.8|ppc64le +Red Hat CodeReady Linux Builder for Power, little endian - Extended Update Support|8.6|ppc64le +Red Hat CodeReady Linux Builder for IBM z Systems|8|s390x +Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update Support|8.8|s390x +Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update Support|8.6|s390x +Red Hat CodeReady Linux Builder for ARM 64|8|aarch64 +Red Hat CodeReady Linux Builder for ARM 64 - Extended Update Support|8.8|aarch64 +Red Hat CodeReady Linux Builder for ARM 64 - Extended Update Support|8.6|aarch64 + +## Updated Packages + + - libguestfs-rsync-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - qemu-img-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-daemon-driver-qemu-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-block-curl-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-daemon-driver-secret-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - seabios-bin-1.13.0-2.module+el8.3.0+7353+9de0a3cc.noarch.rpm + - supermin-5.1.19-10.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libguestfs-javadoc-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - libvirt-python-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.src.rpm + - libvirt-debugsource-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libiscsi-devel-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - libguestfs-debugsource-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-xfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-libs-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-debugsource-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-python-6.0.0-1.module+el8.3.0+6423+e4cb6418.src.rpm + - qemu-kvm-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - ruby-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-inspect-icons-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - libvirt-daemon-driver-storage-logical-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - perl-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libvirt-daemon-driver-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - perl-Sys-Virt-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libguestfs-tools-c-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-qemu-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-nss-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - lua-guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.src.rpm + - libvirt-daemon-driver-storage-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-storage-scsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - netcf-devel-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - qemu-kvm-block-rbd-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libguestfs-gobject-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - lua-guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - nbdkit-ssh-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - qemu-guest-agent-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - seabios-1.13.0-2.module+el8.3.0+7353+9de0a3cc.src.rpm + - ruby-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-tools-c-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - nbdkit-xz-filter-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libiscsi-utils-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - virt-dib-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libnbd-debugsource-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libvirt-client-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - SLOF-20191022-3.git899d9883.module+el8.3.0+6423+e4cb6418.src.rpm + - nbdkit-server-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-daemon-driver-storage-disk-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - python3-libvirt-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - qemu-kvm-block-iscsi-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-lock-sanlock-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-network-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.src.rpm + - ruby-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - qemu-img-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libguestfs-java-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-storage-rbd-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-storage-mpath-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-block-curl-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libguestfs-rescue-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libguestfs-java-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-storage-core-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdfuse-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - perl-Sys-Guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - nbdkit-basic-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libguestfs-gobject-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - qemu-kvm-common-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - nbdkit-curl-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - perl-Sys-Virt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - nbdkit-gzip-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - supermin-debugsource-5.1.19-10.module+el8.3.0+6423+e4cb6418.s390x.rpm + - nbdkit-basic-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libvirt-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-python-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - nbdkit-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - netcf-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - perl-Sys-Guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-client-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-nss-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-common-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-daemon-driver-storage-iscsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-python-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-daemon-driver-nodedev-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.src.rpm + - netcf-libs-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - libvirt-daemon-driver-nodedev-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-admin-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-block-ssh-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-daemon-config-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - netcf-debugsource-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - qemu-kvm-core-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - nbdkit-example-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-daemon-driver-storage-core-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-debugsource-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - ruby-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-gobject-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-storage-gluster-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - python3-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libiscsi-debugsource-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - libvirt-daemon-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-block-ssh-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libvirt-daemon-driver-storage-gluster-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-guest-agent-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - libiscsi-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - netcf-libs-0.2.8-12.module+el8.1.0+4066+0f1aadab.s390x.rpm + - libguestfs-gfs2-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-basic-filters-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - nbdkit-example-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - qemu-kvm-core-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - nbdkit-bash-completion-1.16.2-4.module+el8.3.0+6922+fd575af8.noarch.rpm + - supermin-debuginfo-5.1.19-10.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libvirt-daemon-driver-storage-iscsi-direct-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-kvm-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-ssh-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.src.rpm + - qemu-kvm-block-rbd-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - virt-dib-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.src.rpm + - libvirt-bash-completion-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - nbdkit-linuxdisk-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - nbdkit-1.16.2-4.module+el8.3.0+6922+fd575af8.src.rpm + - libvirt-daemon-driver-storage-rbd-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - python3-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - qemu-kvm-block-iscsi-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - nbdkit-curl-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - nbdkit-gzip-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - python3-libvirt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - nbdkit-server-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-dbus-debuginfo-1.3.0-2.module+el8.3.0+6423+e4cb6418.s390x.rpm + - qemu-kvm-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - nbdfuse-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libguestfs-bash-completion-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - libvirt-daemon-driver-storage-logical-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libguestfs-man-pages-ja-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-storage-disk-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - qemu-kvm-4.2.0-59.module+el8.5.0+14169+68d2f392.2.src.rpm + - nbdkit-linuxdisk-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - seavgabios-bin-1.13.0-2.module+el8.3.0+7353+9de0a3cc.noarch.rpm + - libvirt-docs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-interface-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-lock-sanlock-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-secret-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-storage-mpath-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-libs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-xz-filter-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-daemon-driver-storage-iscsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-dbus-debugsource-1.3.0-2.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.src.rpm + - sgabios-0.20170427git-3.module+el8.1.0+4066+0f1aadab.src.rpm + - sgabios-bin-0.20170427git-3.module+el8.1.0+4066+0f1aadab.noarch.rpm + - supermin-devel-5.1.19-10.module+el8.3.0+6423+e4cb6418.s390x.rpm + - perl-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libvirt-devel-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - python3-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libguestfs-java-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - SLOF-20191022-3.git899d9883.module+el8.3.0+6423+e4cb6418.noarch.rpm + - libvirt-daemon-driver-storage-iscsi-direct-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libguestfs-tools-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.s390x.rpm + - libvirt-daemon-driver-storage-scsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - python3-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - python3-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-driver-interface-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - hivex-debugsource-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - nbdkit-basic-filters-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - supermin-5.1.19-10.module+el8.3.0+6423+e4cb6418.src.rpm + - libvirt-admin-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - libvirt-daemon-driver-nwfilter-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - python3-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - libvirt-daemon-config-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.s390x.rpm + - nbdkit-devel-1.16.2-4.module+el8.3.0+6922+fd575af8.s390x.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.src.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - libguestfs-man-pages-uk-1.40.2-28.module+el8.5.0+10717+67be7ac4.noarch.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.src.rpm + - libiscsi-utils-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.s390x.rpm + - libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - libvirt-daemon-driver-secret-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - supermin-devel-5.1.19-10.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - qemu-kvm-block-ssh-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - qemu-img-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libiscsi-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libvirt-daemon-driver-storage-iscsi-direct-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - qemu-kvm-common-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libguestfs-gobject-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-debugsource-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-interface-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-gfs2-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - supermin-5.1.19-10.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libiscsi-utils-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - nbdkit-linuxdisk-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-interface-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - netcf-devel-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libvirt-daemon-driver-storage-core-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-storage-mpath-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-storage-logical-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-gobject-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - nbdkit-vddk-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - qemu-kvm-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-daemon-driver-storage-disk-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - supermin-debugsource-5.1.19-10.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libvirt-daemon-driver-storage-iscsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-nwfilter-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - hivex-debugsource-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libvirt-daemon-driver-storage-iscsi-direct-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-server-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-kvm-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libnbd-debugsource-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-daemon-driver-secret-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - python3-libvirt-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libguestfs-benchmarking-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-python-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - nbdkit-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - python3-libvirt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - nbdkit-xz-filter-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - nbdkit-example-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-storage-core-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-nss-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - ruby-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - nbdkit-devel-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-admin-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-nodedev-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - qemu-kvm-block-rbd-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - nbdkit-ssh-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - supermin-debuginfo-5.1.19-10.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - qemu-kvm-core-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-daemon-config-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - perl-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - python3-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - qemu-kvm-core-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-docs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-dbus-debugsource-1.3.0-2.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libvirt-daemon-driver-nodedev-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-daemon-driver-storage-logical-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-linuxdisk-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - qemu-kvm-block-gluster-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - qemu-kvm-block-curl-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - qemu-kvm-common-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libguestfs-gobject-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - nbdkit-ssh-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-server-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-storage-iscsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-basic-filters-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - qemu-kvm-block-curl-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - nbdkit-gzip-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-driver-storage-rbd-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-devel-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-admin-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdfuse-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-daemon-driver-storage-rbd-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - python3-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - virt-v2v-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - qemu-kvm-block-gluster-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libvirt-daemon-driver-storage-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-java-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - nbdkit-xz-filter-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - nbdkit-gzip-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - python3-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - qemu-img-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - qemu-kvm-block-rbd-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libguestfs-java-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - lua-guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - ruby-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libvirt-daemon-driver-storage-gluster-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - ruby-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libvirt-lock-sanlock-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libiscsi-devel-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - netcf-libs-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-dbus-debuginfo-1.3.0-2.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libvirt-client-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - python3-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - python3-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-daemon-config-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-libs-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - lua-guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-daemon-driver-storage-mpath-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-python-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - sgabios-0.20170427git-3.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - perl-Sys-Virt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - netcf-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libvirt-daemon-driver-qemu-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-python-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - virt-v2v-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-client-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - python3-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - perl-Sys-Guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - qemu-guest-agent-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libiscsi-debugsource-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-rsync-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libguestfs-tools-c-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-daemon-driver-storage-scsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-basic-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libguestfs-debugsource-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - nbdkit-curl-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - nbdkit-debugsource-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libvirt-daemon-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-vddk-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - netcf-libs-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libguestfs-rescue-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - libguestfs-java-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - qemu-kvm-debugsource-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - nbdkit-example-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - netcf-debugsource-0.2.8-12.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libvirt-daemon-driver-storage-gluster-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-tools-c-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-daemon-driver-storage-scsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - qemu-kvm-block-iscsi-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - virt-dib-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-lock-sanlock-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - perl-Sys-Guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - virt-dib-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libguestfs-xfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - qemu-kvm-block-ssh-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-daemon-driver-storage-disk-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-nss-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libguestfs-benchmarking-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-daemon-driver-qemu-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - libvirt-libs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdkit-curl-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - nbdkit-basic-filters-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - seabios-1.13.0-2.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - qemu-kvm-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-daemon-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - perl-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-bash-completion-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - nbdfuse-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - qemu-guest-agent-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libiscsi-utils-1.18.0-8.module+el8.1.0+4066+0f1aadab.x86_64.rpm + - libvirt-daemon-driver-network-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.x86_64.rpm + - perl-Sys-Virt-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.x86_64.rpm + - qemu-kvm-block-iscsi-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - nbdkit-basic-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.x86_64.rpm + - ruby-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libiscsi-debugsource-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - libvirt-debugsource-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - sgabios-0.20170427git-3.module+el8.1.0+4066+0f1aadab.i686.rpm + - libvirt-daemon-driver-nwfilter-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libiscsi-devel-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - libiscsi-utils-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - libvirt-daemon-driver-storage-core-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libvirt-daemon-driver-storage-iscsi-direct-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-secret-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-core-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - python3-libvirt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - qemu-kvm-tests-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - ocaml-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - libvirt-daemon-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - netcf-libs-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - libvirt-daemon-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-config-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - perl-Sys-Virt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - ocaml-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - perl-Sys-Virt-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-admin-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-config-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-iscsi-direct-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ruby-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-bash-completion-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - netcf-debugsource-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - ocaml-hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-daemon-driver-storage-rbd-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - qemu-kvm-tests-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.x86_64.rpm + - libvirt-libs-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libvirt-daemon-driver-storage-disk-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-libs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - nbdfuse-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - ocaml-libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-daemon-driver-storage-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - netcf-devel-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - python3-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libvirt-daemon-driver-storage-logical-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - netcf-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - ruby-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-docs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - ocaml-hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - python3-libvirt-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-daemon-driver-storage-rbd-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-client-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-nodedev-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-client-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-daemon-driver-interface-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-nodedev-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-iscsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-logical-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libnbd-debugsource-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-dbus-debuginfo-1.3.0-2.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-daemon-driver-storage-scsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-disk-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-storage-scsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libvirt-dbus-debugsource-1.3.0-2.module+el8.3.0+6423+e4cb6418.i686.rpm + - libvirt-nss-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-python-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - ocaml-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-devel-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.x86_64.rpm + - perl-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-daemon-driver-storage-mpath-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-admin-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - perl-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - python3-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-nss-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - netcf-libs-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.i686.rpm + - python3-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - ocaml-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - python3-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libvirt-daemon-driver-storage-mpath-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - libvirt-daemon-driver-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-daemon-driver-network-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - libiscsi-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - hivex-debugsource-1.3.18-21.module+el8.5.0+10709+b3edb581.i686.rpm + - libiscsi-utils-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.i686.rpm + - nbdfuse-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - ocaml-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.x86_64.rpm + - libvirt-daemon-driver-interface-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.i686.rpm + - libvirt-daemon-driver-secret-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.i686.rpm + - ocaml-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.x86_64.rpm + - libvirt-daemon-driver-storage-iscsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.i686.rpm + - ocaml-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - ocaml-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - ocaml-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - ocaml-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - ocaml-libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - ocaml-libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - qemu-kvm-tests-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - qemu-kvm-tests-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - ocaml-hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - ocaml-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - ocaml-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - nbdfuse-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - nbdkit-example-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - ruby-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - netcf-devel-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libvirt-daemon-driver-secret-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - qemu-guest-agent-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - ruby-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - supermin-5.1.19-10.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - libvirt-daemon-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-python-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - python3-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - libvirt-daemon-driver-storage-logical-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-nss-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - qemu-kvm-block-rbd-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - hivex-debugsource-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - libvirt-daemon-driver-storage-scsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libguestfs-debugsource-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - lua-guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - qemu-kvm-core-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libvirt-admin-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-qemu-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-client-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libguestfs-gobject-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-storage-rbd-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - python3-libvirt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-iscsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-nss-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - qemu-kvm-block-iscsi-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - nbdkit-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-bash-completion-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - ruby-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - libvirt-daemon-driver-storage-disk-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - lua-guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libguestfs-benchmarking-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-storage-mpath-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-iscsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-python-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - qemu-kvm-block-rbd-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libguestfs-java-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-devel-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-ssh-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libvirt-docs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - netcf-libs-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libguestfs-tools-c-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-admin-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-rbd-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdfuse-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - libguestfs-xfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - python3-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - python3-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - python3-libvirt-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - qemu-img-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - nbdkit-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-devel-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - qemu-kvm-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libiscsi-utils-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libguestfs-rescue-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - qemu-kvm-core-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libvirt-libs-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-lock-sanlock-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-server-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - qemu-kvm-block-ssh-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libvirt-daemon-driver-storage-iscsi-direct-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libguestfs-java-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libiscsi-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libvirt-daemon-kvm-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-config-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-gluster-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - perl-Sys-Virt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - virt-dib-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - supermin-debuginfo-5.1.19-10.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - supermin-debugsource-5.1.19-10.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - perl-Sys-Guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - python3-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-network-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-gluster-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-debugsource-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-iscsi-direct-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-dbus-debugsource-1.3.0-2.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - libvirt-daemon-driver-storage-disk-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - python3-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - libiscsi-debugsource-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libnbd-debugsource-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - nbdkit-example-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - perl-Sys-Virt-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - qemu-guest-agent-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - qemu-kvm-common-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - qemu-kvm-common-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libvirt-dbus-debuginfo-1.3.0-2.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - libvirt-daemon-driver-qemu-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libguestfs-tools-c-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-libs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-server-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - netcf-debugsource-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - qemu-kvm-block-ssh-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libvirt-daemon-driver-nwfilter-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - qemu-img-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libguestfs-rsync-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libguestfs-gobject-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-interface-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - nbdkit-basic-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libvirt-daemon-driver-secret-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - netcf-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - nbdkit-linuxdisk-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libvirt-daemon-driver-storage-core-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-core-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-lock-sanlock-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-xz-filter-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-linuxdisk-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libvirt-daemon-driver-storage-logical-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libguestfs-java-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libiscsi-utils-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - netcf-libs-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - libiscsi-devel-1.18.0-8.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - supermin-devel-5.1.19-10.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - libvirt-daemon-driver-nodedev-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - qemu-kvm-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - nbdkit-debugsource-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-gzip-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - perl-Sys-Guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - virt-dib-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-nodedev-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-config-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.aarch64.rpm + - nbdkit-ssh-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - ruby-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - nbdkit-xz-filter-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libguestfs-gfs2-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - python3-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.aarch64.rpm + - perl-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - nbdkit-curl-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-basic-filters-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-python-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libvirt-daemon-driver-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - nbdkit-gzip-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - qemu-kvm-block-iscsi-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - nbdkit-curl-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - libguestfs-gobject-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libguestfs-benchmarking-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.aarch64.rpm + - libvirt-daemon-driver-interface-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-mpath-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-driver-storage-scsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - nbdkit-basic-filters-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - nbdkit-basic-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.aarch64.rpm + - perl-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.aarch64.rpm + - qemu-kvm-block-curl-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.aarch64.rpm + - qemu-kvm-block-curl-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - qemu-kvm-debugsource-4.2.0-59.module+el8.5.0+14169+68d2f392.2.aarch64.rpm + - libvirt-client-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.aarch64.rpm + - libvirt-daemon-kvm-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-disk-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-nss-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-dbus-1.3.0-2.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - libvirt-daemon-driver-storage-gluster-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-basic-filters-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - supermin-debuginfo-5.1.19-10.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - qemu-guest-agent-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libiscsi-utils-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - nbdkit-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-admin-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-bash-completion-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-rbd-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-nwfilter-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-devel-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdfuse-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - netcf-libs-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - lua-guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - perl-Sys-Guestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-daemon-driver-storage-core-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - libiscsi-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - nbdkit-example-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-daemon-driver-secret-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-logical-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-iscsi-direct-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-python-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - python3-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - supermin-5.1.19-10.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - virt-dib-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - qemu-img-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - ruby-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-daemon-driver-nodedev-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-rescue-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libguestfs-xfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdkit-xz-filter-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libiscsi-debuginfo-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - libvirt-lock-sanlock-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-lock-sanlock-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libiscsi-devel-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - nbdkit-gzip-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-daemon-driver-qemu-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-gfs2-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdkit-gzip-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - qemu-kvm-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - libvirt-daemon-driver-storage-mpath-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-winsupport-8.2-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - libguestfs-java-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdkit-curl-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - qemu-kvm-block-iscsi-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-daemon-driver-storage-gluster-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-python-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - nbdkit-server-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - python3-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - libvirt-daemon-driver-storage-iscsi-direct-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-docs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-nodedev-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-qemu-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - qemu-kvm-core-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - python3-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - nbdkit-server-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - nbdkit-python-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-daemon-driver-interface-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - qemu-kvm-common-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-daemon-driver-storage-iscsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-ssh-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-daemon-driver-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-logical-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - netcf-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - qemu-kvm-block-rbd-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libiscsi-debugsource-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - libguestfs-tools-c-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - netcf-devel-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - perl-Sys-Guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdkit-debugsource-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - netcf-libs-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - perl-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - libvirt-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-iscsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - perl-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - python3-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - python3-libvirt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - lua-guestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdfuse-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - libguestfs-java-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - nbdkit-example-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - nbdkit-linuxdisk-plugin-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-daemon-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-libs-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-debugsource-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libnbd-debugsource-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - nbdkit-basic-plugins-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - nbdkit-linuxdisk-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - netcf-debugsource-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - qemu-guest-agent-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-dbus-debuginfo-1.3.0-2.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - qemu-kvm-core-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - supermin-debugsource-5.1.19-10.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - libvirt-daemon-driver-network-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-basic-plugins-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - perl-Sys-Virt-debuginfo-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - qemu-kvm-common-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - libvirt-daemon-driver-secret-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - qemu-kvm-block-curl-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-daemon-driver-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-scsi-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-devel-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-daemon-driver-storage-scsi-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-admin-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-mpath-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-libs-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-xz-filter-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - perl-Sys-Virt-debugsource-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - python3-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - qemu-kvm-block-iscsi-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - perl-Sys-Virt-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - qemu-kvm-block-rbd-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - ruby-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - libguestfs-rsync-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - ruby-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-daemon-driver-interface-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libiscsi-utils-1.18.0-8.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - libvirt-daemon-driver-storage-rbd-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - qemu-kvm-block-curl-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libguestfs-gobject-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - qemu-img-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - qemu-kvm-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-daemon-config-nwfilter-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-basic-filters-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libvirt-dbus-debugsource-1.3.0-2.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - libvirt-daemon-config-network-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-java-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - qemu-kvm-block-ssh-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - qemu-kvm-debugsource-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libvirt-nss-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - virt-dib-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-client-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-client-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-ssh-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - qemu-kvm-block-ssh-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - ruby-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - python3-libvirt-6.0.0-1.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - supermin-devel-5.1.19-10.module+el8.3.0+6423+e4cb6418.ppc64le.rpm + - libvirt-daemon-driver-storage-core-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libvirt-daemon-driver-storage-disk-debuginfo-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-daemon-driver-storage-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - nbdkit-curl-plugin-debuginfo-1.16.2-4.module+el8.3.0+6922+fd575af8.ppc64le.rpm + - netcf-debuginfo-0.2.8-12.module+el8.1.0+4066+0f1aadab.ppc64le.rpm + - python3-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libguestfs-gobject-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libguestfs-gobject-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - hivex-debugsource-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - libguestfs-tools-c-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - libvirt-debugsource-6.0.0-37.1.module+el8.5.0+13858+39fdc467.ppc64le.rpm + - ocaml-libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - ocaml-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - ocaml-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - ocaml-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.s390x.rpm + - ocaml-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - ocaml-hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - ocaml-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.s390x.rpm + - ocaml-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - ocaml-libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.s390x.rpm + - qemu-kvm-tests-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - qemu-kvm-tests-4.2.0-59.module+el8.5.0+14169+68d2f392.2.s390x.rpm + - ocaml-libguestfs-devel-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - ocaml-hivex-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - ocaml-libnbd-debuginfo-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - qemu-kvm-tests-debuginfo-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - ocaml-hivex-debuginfo-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - ocaml-hivex-devel-1.3.18-21.module+el8.5.0+10709+b3edb581.ppc64le.rpm + - ocaml-libnbd-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - ocaml-libnbd-devel-1.2.2-1.module+el8.3.0+7353+9de0a3cc.ppc64le.rpm + - qemu-kvm-tests-4.2.0-59.module+el8.5.0+14169+68d2f392.2.ppc64le.rpm + - ocaml-libguestfs-debuginfo-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + - ocaml-libguestfs-1.40.2-28.module+el8.5.0+10717+67be7ac4.ppc64le.rpm + +## Fixes + + - [BZ - 2044863](https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2044863) + +## CVEs + + - [CVE-2022-0358](/security/cve/CVE-2022-0358/) + +## References + + - [](https://access.redhat.com/security/updates/classification/#moderate) + diff --git a/tests/test_splitter.py b/tests/test_splitter.py new file mode 100644 index 0000000..0ab603b --- /dev/null +++ b/tests/test_splitter.py @@ -0,0 +1,59 @@ +"""Test the splitter functions.""" + +from unittest import mock + +from textprep import splitter + + +def test_parse_frontmatter(): + """Test parsing frontmatter.""" + frontmatter = """ +key1 = "quoted value" +key2 = 'single quoted value' +key3 = '''triple quoted value''' +key4 = ["listitem1", "listitem2"] +""" + result = splitter.parse_frontmatter(frontmatter) + assert isinstance(result, dict) + assert len(result) == 4 + assert result == { + "key1": "quoted value", + "key2": "single quoted value", + "key3": "triple quoted value", + "key4": ["listitem1", "listitem2"], + } + + +@mock.patch("textprep.splitter.parse_frontmatter", return_value={"key": "value"}) +def test_parse_markdown(mock_parse_frontmatter): + """Test parsing markdown content.""" + content = """+++ +key = value ++++ + +## Markdown header + +Markdown content +""" + result = splitter.parse_markdown(content) + assert isinstance(result, dict) + assert len(result) == 2 + assert result["frontmatter"] == {"key": "value"} + assert result["content"][0].metadata["H2"] == "Markdown header" + assert result["content"][0].page_content == "Markdown content" + + +def test_split_markdown_by_headers_failure(): + """Test a document without content.""" + result = splitter.split_markdown_by_headers("") + assert result == [] + + +def test_parse_markdown_functional(errata_doc): + """Test parsing full markdown document.""" + result = splitter.parse_markdown(errata_doc) + assert isinstance(result, dict) + assert len(result) == 2 + assert "security update" in result["frontmatter"]["title"] + assert "Synopsis" in result["content"][0].metadata["H2"] + assert "Moderate" in result["content"][0].page_content diff --git a/textprep/__init__.py b/textprep/__init__.py new file mode 100644 index 0000000..113090b --- /dev/null +++ b/textprep/__init__.py @@ -0,0 +1,10 @@ +"""Top-level package for textprep.""" + +import logging +import sys + +logging.basicConfig( + stream=sys.stdout, + level=logging.INFO, + format="%(asctime)s;%(levelname)s;%(message)s", +) diff --git a/textprep/splitter.py b/textprep/splitter.py new file mode 100644 index 0000000..60a9060 --- /dev/null +++ b/textprep/splitter.py @@ -0,0 +1,39 @@ +"""Split Markdown files into their parts based on their headers.""" + +import tomllib + +from langchain_text_splitters import MarkdownHeaderTextSplitter + + +def parse_markdown(content: str) -> dict: + """Get the markdown content into a state that can be be traversed easily.""" + frontmatter, content = content.split("\n+++\n", 1) + + # Remove the leading '+++' from the frontmatter. + # The split above took care of the trailing '+++'. + frontmatter = frontmatter.strip("+").strip() + + # Remove any leading dashes from the content. + content = content.strip().strip("-").strip() + + return {"frontmatter": parse_frontmatter(frontmatter), "content": split_markdown_by_headers(content)} + + +def parse_frontmatter(frontmatter: str) -> dict: + """Parse the frontmatter in each document.""" + return tomllib.loads(frontmatter) + + +def split_markdown_by_headers(content: str) -> list: + headers_to_split_on = [ + ("#", "H1"), + ("##", "H2"), + ("###", "H3"), + ("####", "H4"), + ("#####", "H5"), + ("######", "H6"), + ] + + markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on) + doc_splits = markdown_splitter.split_text(content) + return list(doc_splits) if doc_splits else [] diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..20b0cab --- /dev/null +++ b/tox.ini @@ -0,0 +1,16 @@ +[tox] +skipsdist = true +envlist = py312, py313 + +[gh-actions] +python = + 3.12: py312 + 3.13: py313 + +[testenv] +passenv = PYTHON_VERSION +allowlist_externals = poetry +commands = + poetry install -v + pytest --doctest-modules tests --cov --cov-config=pyproject.toml --cov-report=xml + mypy