From 2b398c75bf1b9ea088686e20bfbb9044a58a956c Mon Sep 17 00:00:00 2001 From: Aleksei Filatov Date: Mon, 7 Aug 2023 18:19:08 +0300 Subject: [PATCH] tmp --- .github/workflows/workflow.yml | 170 +- .gitignore | 16 +- .../chadmin/__init__.py => .install-deps | 0 Makefile | 241 ++- README.md | 3 + {src/ch_tools => ch_tools}/__init__.py | 0 {src/ch_tools => ch_tools}/chadmin/README.md | 0 .../internal => ch_tools/chadmin}/__init__.py | 0 .../chadmin/chadmin_cli.py | 0 .../chadmin/cli/__init__.py | 0 .../chadmin/cli/chs3_backup_group.py | 0 .../chadmin/cli/config_command.py | 0 .../chadmin/cli/crash_log_group.py | 0 .../chadmin/cli/data_store_group.py | 0 .../chadmin/cli/database_group.py | 0 .../chadmin/cli/diagnostics_command.py | 0 .../chadmin/cli/dictionary_group.py | 0 .../chadmin/cli/disk_group.py | 0 .../chadmin/cli/list_async_metrics_command.py | 0 .../chadmin/cli/list_events_command.py | 0 .../chadmin/cli/list_functions_command.py | 0 .../chadmin/cli/list_macros_command.py | 0 .../chadmin/cli/list_metrics_command.py | 0 .../chadmin/cli/list_settings_command.py | 0 .../chadmin/cli/merge_group.py | 0 .../chadmin/cli/mutation_group.py | 0 .../chadmin/cli/object_storage_group.py | 0 .../chadmin/cli/part_group.py | 0 .../chadmin/cli/part_log_group.py | 0 .../chadmin/cli/partition_group.py | 0 .../chadmin/cli/process_group.py | 0 .../chadmin/cli/query_log_group.py | 0 .../chadmin/cli/replicated_fetch_group.py | 0 .../chadmin/cli/replication_queue_group.py | 0 .../chadmin/cli/restore_replica_command.py | 0 .../chadmin/cli/stack_trace_command.py | 0 .../chadmin/cli/table_group.py | 0 .../chadmin/cli/table_replica_group.py | 0 .../chadmin/cli/thread_log_group.py | 0 .../chadmin/cli/wait_started_command.py | 0 .../chadmin/cli/zookeeper_group.py | 0 .../chadmin/internal}/__init__.py | 0 .../chadmin/internal/backup.py | 0 .../chadmin/internal/diagnostics}/__init__.py | 0 .../chadmin/internal/diagnostics/data.py | 0 .../chadmin/internal/diagnostics/diagnose.py | 0 .../chadmin/internal/diagnostics/formatter.py | 0 .../chadmin/internal/diagnostics/query.py | 0 .../chadmin/internal/diagnostics/utils.py | 0 .../chadmin/internal/dictionary.py | 0 .../internal/object_storage/__init__.py | 0 .../object_storage/collect_metadata.py | 0 .../internal/object_storage/s3_cleanup.py | 0 .../object_storage/s3_disk_configuration.py | 0 .../internal/object_storage/s3_iterator.py | 0 .../object_storage/s3_local_metadata.py | 0 .../chadmin/internal/part.py | 0 .../chadmin/internal/partition.py | 0 .../chadmin/internal/process.py | 0 .../chadmin/internal/system.py | 0 .../chadmin/internal/table.py | 0 .../chadmin/internal/table_replica.py | 0 .../chadmin/internal/utils.py | 0 .../chadmin/internal/zookeeper.py | 0 .../cli => ch_tools/common}/__init__.py | 0 {src/ch_tools => ch_tools}/common/backup.py | 0 .../common/cli}/__init__.py | 0 .../common/cli/context_settings.py | 0 .../common/cli/formatting.py | 0 .../common/cli/parameters.py | 0 .../common/cli/progress_bar.py | 0 .../ch_tools => ch_tools}/common/cli/utils.py | 0 {src/ch_tools => ch_tools}/common/cli/yaml.py | 0 .../common/clickhouse}/__init__.py | 0 .../common/clickhouse/client/__init__.py | 0 .../clickhouse/client/clickhouse_client.py | 0 .../common/clickhouse/client/error.py | 0 .../clickhouse/client/query_output_format.py | 0 .../common/clickhouse/client/retry.py | 0 .../common/clickhouse/client/utils.py | 0 .../common/clickhouse/config/__init__.py | 0 .../common/clickhouse/config/clickhouse.py | 0 .../clickhouse/config/clickhouse_keeper.py | 0 .../common/clickhouse/config/path.py | 0 .../common/clickhouse/config/users.py | 0 .../common/clickhouse/config/utils.py | 0 .../common/clickhouse/config/zookeeper.py | 0 {src/ch_tools => ch_tools}/common/dbaas.py | 0 {src/ch_tools => ch_tools}/common/result.py | 0 .../common/type/__init__.py | 0 .../common/type/typed_enum.py | 0 {src/ch_tools => ch_tools}/common/utils.py | 0 .../monrun_checks/README.md | 0 .../monrun_checks}/__init__.py | 0 .../monrun_checks/ch_backup.py | 0 .../monrun_checks/ch_core_dumps.py | 0 .../monrun_checks/ch_dist_tables.py | 0 .../monrun_checks/ch_geobase.py | 0 .../monrun_checks/ch_keeper.py | 0 .../monrun_checks/ch_log_errors.py | 0 .../monrun_checks/ch_ping.py | 0 .../monrun_checks/ch_replication_lag.py | 0 .../monrun_checks/ch_resetup_state.py | 0 .../monrun_checks/ch_ro_replica.py | 0 .../monrun_checks/ch_s3_backup_orphaned.py | 0 .../monrun_checks/ch_system_queues.py | 0 .../monrun_checks/ch_tls.py | 0 .../monrun_checks/clickhouse_client.py | 0 .../monrun_checks/clickhouse_info.py | 0 .../monrun_checks/exceptions.py | 0 .../monrun_checks/ext_ip_dns.py | 0 .../monrun_checks/main.py | 0 .../monrun_checks/status.py | 0 .../monrun_checks_keeper/README.md | 0 .../monrun_checks_keeper}/__init__.py | 0 .../monrun_checks_keeper/keeper_commands.py | 0 .../monrun_checks_keeper/main.py | 0 .../monrun_checks_keeper/status.py | 0 .../s3_credentials/README.md | 0 ch_tools/s3_credentials/__init__.py | 0 .../s3_credentials/main.py | 0 debian/changelog | 188 +- debian/compat | 2 +- debian/debhelper-build-stamp | 1 + debian/rules | 0 poetry.lock | 1823 +++++++++++++++++ pyproject.toml | 152 +- pyproject.toml_bak | 131 ++ 128 files changed, 2477 insertions(+), 250 deletions(-) rename src/ch_tools/chadmin/__init__.py => .install-deps (100%) rename {src/ch_tools => ch_tools}/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/README.md (100%) rename {src/ch_tools/chadmin/internal => ch_tools/chadmin}/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/chadmin_cli.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/chs3_backup_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/config_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/crash_log_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/data_store_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/database_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/diagnostics_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/dictionary_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/disk_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_async_metrics_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_events_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_functions_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_macros_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_metrics_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/list_settings_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/merge_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/mutation_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/object_storage_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/part_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/part_log_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/partition_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/process_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/query_log_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/replicated_fetch_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/replication_queue_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/restore_replica_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/stack_trace_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/table_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/table_replica_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/thread_log_group.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/wait_started_command.py (100%) rename {src/ch_tools => ch_tools}/chadmin/cli/zookeeper_group.py (100%) rename {src/ch_tools/chadmin/internal/diagnostics => ch_tools/chadmin/internal}/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/backup.py (100%) rename {src/ch_tools/common => ch_tools/chadmin/internal/diagnostics}/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/diagnostics/data.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/diagnostics/diagnose.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/diagnostics/formatter.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/diagnostics/query.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/diagnostics/utils.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/dictionary.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/__init__.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/collect_metadata.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/s3_cleanup.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/s3_disk_configuration.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/s3_iterator.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/object_storage/s3_local_metadata.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/part.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/partition.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/process.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/system.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/table.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/table_replica.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/utils.py (100%) rename {src/ch_tools => ch_tools}/chadmin/internal/zookeeper.py (100%) rename {src/ch_tools/common/cli => ch_tools/common}/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/backup.py (100%) rename {src/ch_tools/common/clickhouse => ch_tools/common/cli}/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/cli/context_settings.py (100%) rename {src/ch_tools => ch_tools}/common/cli/formatting.py (100%) rename {src/ch_tools => ch_tools}/common/cli/parameters.py (100%) rename {src/ch_tools => ch_tools}/common/cli/progress_bar.py (100%) rename {src/ch_tools => ch_tools}/common/cli/utils.py (100%) rename {src/ch_tools => ch_tools}/common/cli/yaml.py (100%) rename {src/ch_tools/monrun_checks => ch_tools/common/clickhouse}/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/clickhouse_client.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/error.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/query_output_format.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/retry.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/client/utils.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/clickhouse.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/clickhouse_keeper.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/path.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/users.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/utils.py (100%) rename {src/ch_tools => ch_tools}/common/clickhouse/config/zookeeper.py (100%) rename {src/ch_tools => ch_tools}/common/dbaas.py (100%) rename {src/ch_tools => ch_tools}/common/result.py (100%) rename {src/ch_tools => ch_tools}/common/type/__init__.py (100%) rename {src/ch_tools => ch_tools}/common/type/typed_enum.py (100%) rename {src/ch_tools => ch_tools}/common/utils.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/README.md (100%) rename {src/ch_tools/monrun_checks_keeper => ch_tools/monrun_checks}/__init__.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_backup.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_core_dumps.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_dist_tables.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_geobase.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_keeper.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_log_errors.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_ping.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_replication_lag.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_resetup_state.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_ro_replica.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_s3_backup_orphaned.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_system_queues.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ch_tls.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/clickhouse_client.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/clickhouse_info.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/exceptions.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/ext_ip_dns.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/main.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks/status.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks_keeper/README.md (100%) rename {src/ch_tools/s3_credentials => ch_tools/monrun_checks_keeper}/__init__.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks_keeper/keeper_commands.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks_keeper/main.py (100%) rename {src/ch_tools => ch_tools}/monrun_checks_keeper/status.py (100%) rename {src/ch_tools => ch_tools}/s3_credentials/README.md (100%) create mode 100644 ch_tools/s3_credentials/__init__.py rename {src/ch_tools => ch_tools}/s3_credentials/main.py (100%) create mode 100644 debian/debhelper-build-stamp mode change 100644 => 100755 debian/rules create mode 100644 poetry.lock create mode 100644 pyproject.toml_bak diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 75feffde..d162c1a1 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -1,53 +1,37 @@ name: main on: - push: { branches: [main] } + push: { branches: [main, try_poetry] } pull_request: { branches: [main] } concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true +env: + # The latest version with support of Python 3.6 + POETRY_VERSION: 1.1.15 jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - uses: actions/setup-python@v4 - with: { python-version: "3.11", cache: pip } - - run: pip install .[test] - - {name: "lint: black", run: black --check --diff . } - - {name: "lint: isort", run: isort --check --diff . } - # Temporarily disabled due to bugs in typing in click library - # https://github.com/pallets/click/pull/2559 - # https://github.com/python/mypy/issues/13250 - # https://github.com/python/mypy/issues/13449 - #- {name: "lint: mypy", run: make mypy } - - push_to_dockerhub: - runs-on: ubuntu-latest - env: - CLICKHOUSE_VERSIONS: "21.8.15.7, 22.3.20.29, 22.8.19.10, 23.3.4.17, 23.4.4.16, 23.5.3.24, latest" - if: ${{ github.event_name == 'push' }} - steps: - - uses: actions/checkout@v3 - - name: login to dockerhub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: build and push base images - uses: docker/bake-action@v3 - with: - files: tests/bake.hcl - push: true + with: { python-version: "3.11", cache: poetry } - build: + - run: | + pip install poetry==${{ env.POETRY_VERSION }} + poetry config virtualenvs.in-project true + poetry install --no-root + + - run: make lint + + tests: needs: lint + runs-on: ubuntu-latest strategy: matrix: target: - {python: "3.6.15", ubuntu: "20.04"} - {python: "3.10.12", ubuntu: "latest"} - # a copy-paste of the above as github CI can't use env context in matrices clickhouse: - "21.8.15.7" - "22.3.20.29" @@ -56,30 +40,73 @@ jobs: - "23.4.4.16" - "23.5.3.24" - "latest" + env: + CLICKHOUSE_VERSION=${{ matrix.clickhouse }} + steps: + - run: | + pip install poetry==${{ env.POETRY_VERSION }} + poetry config virtualenvs.in-project true + poetry install --no-root + + - run: make unit_tests + + - run: make integration_tests + + - name: publish test report + uses: mikepenz/action-junit-report@v3 + if: always() + with: + report_paths: 'tests/reports/*.xml' + + + # push_to_dockerhub: + # runs-on: ubuntu-latest + # env: + # CLICKHOUSE_VERSIONS: "21.8.15.7, 22.3.20.29, 22.8.19.10, 23.3.4.17, 23.4.4.16, 23.5.3.24, latest" + # if: ${{ github.event_name == 'push' }} + # steps: + # - uses: actions/checkout@v3 + # - name: login to dockerhub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + # - name: build and push base images + # uses: docker/bake-action@v3 + # with: + # files: tests/bake.hcl + # push: true + + build: + needs: tests + strategy: + matrix: + target: + - {python: "3.6.15", ubuntu: "20.04"} + - {python: "3.10.12", ubuntu: "latest"} + # a copy-paste of the above as github CI can't use env context in matrices runs-on: ubuntu-${{ matrix.target.ubuntu }} steps: - uses: actions/checkout@v3 + - name: set up python ${{ matrix.target.python }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.target.python }} - cache: pip + cache: poetry - name: install dependencies - # language=sh run: | - pip install '.[test]' + pip install poetry==${{ env.POETRY_VERSION }} + poetry config virtualenvs.in-project true + poetry install --no-root - name: build project - # language=sh - run: | - make prepare-version - flit build --no-use-vcs + run: make build - name: upload wheel uses: actions/upload-artifact@v3 - if: ${{ matrix.clickhouse == 'latest' }} with: name: ch_tools_py${{ matrix.target.python }}.whl path: dist/*.whl @@ -87,41 +114,15 @@ jobs: - name: upload sdist uses: actions/upload-artifact@v3 - if: ${{ matrix.clickhouse == 'latest' }} with: name: ch_tools_py${{ matrix.target.python }}.tar.gz path: dist/*.tar.gz if-no-files-found: error - - {name: run unit tests, run: pytest} - - - name: prepare integration tests - # language=sh - run: | - cd tests - CLICKHOUSE_VERSION=${{ matrix.clickhouse }} python3 -m env_control create - cd .. - - - name: run integration tests - # language=sh - run: | - cd tests - behave --show-timings --junit -D skip_setup - cd .. - - - name: publish test report - uses: mikepenz/action-junit-report@v3 - if: always() - with: - report_paths: 'tests/reports/*.xml' - - name: prepare build deb - if: ${{ matrix.clickhouse == 'latest' }} run: sudo apt install python3-venv debhelper devscripts - name: build deb - if: ${{ matrix.clickhouse == 'latest' }} - # language=sh run: | # deb building implicitly cleans dist/ cp dist/*.tar.gz ch_tools.tar.gz @@ -130,8 +131,6 @@ jobs: sudo make build-deb-package - name: test deb - if: ${{ matrix.clickhouse == 'latest' }} - # language=sh run: | sudo make uninstall sudo apt-get install -q -y ./out/ch-tools*.deb @@ -142,26 +141,25 @@ jobs: - name: upload deb package artifact uses: actions/upload-artifact@v3 - if: ${{ matrix.clickhouse == 'latest' }} with: name: ch-tools_py-${{ matrix.target.python }}_ubuntu-${{ matrix.target.ubuntu }}.deb path: out/ch-tools*.deb if-no-files-found: error - - name: create a release - uses: softprops/action-gh-release@v1 - if: ${{ matrix.clickhouse == 'latest' && matrix.target.ubuntu == 'latest' && startsWith(github.ref, 'refs/tags/') }} - with: - generate_release_notes: true - fail_on_unmatched_files: true - files: | - *.whl - *.tar.gz - out/ch-tools*.deb - - - name: publish to pypi - if: ${{ matrix.clickhouse == 'latest' && matrix.target.ubuntu == 'latest' && startsWith(github.ref, 'refs/tags/') }} - run: flit publish --no-use-vcs - env: - FLIT_USERNAME: "__token__" - FLIT_PASSWORD: "${{ secrets.PYPI_TOKEN }}" + # - name: create a release + # uses: softprops/action-gh-release@v1 + # if: ${{ matrix.target.ubuntu == 'latest' && startsWith(github.ref, 'refs/tags/') }} + # with: + # generate_release_notes: true + # fail_on_unmatched_files: true + # files: | + # *.whl + # *.tar.gz + # out/ch-tools*.deb + + # - name: publish to pypi + # if: ${{ matrix.target.ubuntu == 'latest' && startsWith(github.ref, 'refs/tags/') }} + # run: flit publish --no-use-vcs + # env: + # FLIT_USERNAME: "__token__" + # FLIT_PASSWORD: "${{ secrets.PYPI_TOKEN }}" diff --git a/.gitignore b/.gitignore index 685d90b4..9d38dcf7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,16 @@ .DS_Store .idea -build/ -dist/ -.python-version -__pycache__ -venv/ .mypy_cache/ +.python-version .pytype/ +.session_conf.sav +__pycache__ +build/ cython_debug/ -tests/staging/ +dist/ +out/ tests/reports/ -.session_conf.sav +tests/staging/ +venv/ version.txt +.install-deps diff --git a/src/ch_tools/chadmin/__init__.py b/.install-deps similarity index 100% rename from src/ch_tools/chadmin/__init__.py rename to .install-deps diff --git a/Makefile b/Makefile index 03d28a1e..9a3f9f0b 100644 --- a/Makefile +++ b/Makefile @@ -1,159 +1,242 @@ #!/usr/bin/make -f -PREFIX=/opt/yandex/ch-tools -INSTALL_DIR=$(DESTDIR)$(PREFIX) +ifndef VERBOSE +.SILENT: +endif + +SHELL := bash +.ONESHELL: +.SHELLFLAGS := -eu -o pipefail -c +.DELETE_ON_ERROR: +MAKEFLAGS += --warn-undefined-variables +MAKEFLAGS += --no-builtin-rules + +PYTHON ?= python3.6 +PREFIX ?= /opt/yandex/ch-tools +OUTPUT_DIR ?= out + +# It is used by DEB building tools to install a program to temporary +# directory before packaging +DESTDIR ?= + +INSTALL_DIR = $(DESTDIR)$(PREFIX) +BIN_DIR = $(INSTALL_DIR)/bin +SYMLINK_BIN_DIR = $(DESTDIR)/usr/bin + +WHL_FILE = ch_tools-*.whl +VENV_DIR = .venv +VERSION_FILE = version.txt +INSTALL_DEPS_MARKER = .install-deps + .PHONY: install install: install-python-package install-symlinks install-bash-completions configure-logs ; + +.PHONY: install-dependencies +install-dependencies: $(INSTALL_DEPS_MARKER) ; + + .PHONY: uninstall uninstall: uninstall-python-package uninstall-symlinks uninstall-bash-completions uninstall-logrotate ; + +.PHONY: check-poetry +check-poetry: + if [ -z $$(command -v poetry 2> /dev/null) ]; then + echo "Poetry could not be found. See https://python-poetry.org/docs/"; + exit 1; + fi + + +$(VENV_DIR): + poetry env use $(PYTHON) + + +.PHONY: venv +venv: check-poetry $(VENV_DIR) ; + + +$(INSTALL_DEPS_MARKER): check-poetry venv pyproject.toml + poetry install --no-root + touch $(INSTALL_DEPS_MARKER) + + +.PHONY: lint +lint: install-dependencies + poetry run black --check --diff ch_tools tests + poetry run isort --recursive --diff ch_tools tests + + +.PHONY: unit-tests +unit-tests: install-dependencies + poetry run $(PYTHON) -m pytest tests/unit + + +.PHONY: integration-tests +integration-tests: install-dependencies build-python-package + cd tests + poetry run $(PYTHON) -m env_control create + poetry run behave --show-timings --junit -D skip_setup + + .PHONY: install-python-package install-python-package: build-python-package - @echo 'Installing ch-tools' + echo 'Installing ch-tools' - python3 -m venv $(INSTALL_DIR) - rm -f $(INSTALL_DIR)/bin/activate* - $(INSTALL_DIR)/bin/pip install -U pip + # Prepare new virual environment + poetry run $(PYTHON) -m venv $(INSTALL_DIR) + rm -f $(BIN_DIR)/activate* - $(INSTALL_DIR)/bin/pip install --no-compile ch_tools.tar.gz + # Install python package + $(BIN_DIR)/pip install --upgrade pip + $(BIN_DIR)/pip install --no-compile dist/$(WHL_FILE) + # Clean python's artefacts find $(INSTALL_DIR) -name __pycache__ -type d -exec rm -rf {} + + + # Remove DESTDIR prefix from script's shebangs if it's present test -n '$(DESTDIR)' \ && grep -l -r -F '#!$(INSTALL_DIR)' $(INSTALL_DIR) \ | xargs sed -i -e 's|$(INSTALL_DIR)|$(PREFIX)|' \ || true -.PHONY: build-python-package -build-python-package: ch_tools.tar.gz ; - @echo 'Cleaning up residuals from building of Python package' - rm -rf venv dist - -ch_tools.tar.gz: venv-build prepare-version - @echo 'Building Python package' - venv/bin/flit build --no-use-vcs - mv dist/*.tar.gz $@ +.PHONY: build-python-package +build-python-package: prepare-version clean-dist + echo 'Building python packages...' + poetry build -.PHONY: venv-build -venv-build: venv/bin/python3 ; -venv/bin/python3: - @echo 'Setting up build venv' +.PHONY: clean-dist +clean-dist: + echo 'Cleaning up residuals from building of Python package' + sudo rm -rf dist - python3 -m venv venv - venv/bin/pip install -U pip flit .PHONY: uninstall-python-package uninstall-python-package: - @echo 'Uninstalling ch-tools' + echo 'Uninstalling ch-tools' rm -rf $(INSTALL_DIR) + .PHONY: install-symlinks install-symlinks: - @echo 'Creating symlinks to /usr/bin/' + echo 'Creating symlinks to $(SYMLINK_BIN_DIR)' - mkdir -p $(DESTDIR)/usr/bin/ + mkdir -p $(SYMLINK_BIN_DIR) $(foreach bin, chadmin ch-monitoring keeper-monitoring ch-s3-credentials, \ - ln -sf $(PREFIX)/bin/$(bin) $(DESTDIR)/usr/bin/ ; \ - ) + ln -sf $(PREFIX)/bin/$(bin) $(SYMLINK_BIN_DIR);) + .PHONY: uninstall-symlinks uninstall-symlinks: - @echo 'Removing symlinks from /usr/bin/' + echo 'Removing symlinks from $(SYMLINK_BIN_DIR)' $(foreach bin, chadmin ch-monitoring keeper-monitoring ch-s3-credentials, \ - rm -f $(DESTDIR)/usr/bin/$(bin) ; \ - ) + rm -f $(SYMLINK_BIN_DIR)/$(bin);) + .PHONY: install-bash-completions install-bash-completions: - @echo 'Creating bash completions' + echo 'Creating bash completions' mkdir -p $(DESTDIR)/etc/bash_completion.d/ $(foreach bin, chadmin ch-monitoring keeper-monitoring, \ - cp resources/completion/$(bin)-completion.bash $(DESTDIR)/etc/bash_completion.d/$(bin) ; \ - ) + cp resources/completion/$(bin)-completion.bash $(DESTDIR)/etc/bash_completion.d/$(bin);) + .PHONY: uninstall-bash-completions uninstall-bash-completions: - @echo 'Removing bash completions' + echo 'Removing bash completions' $(foreach bin, chadmin ch-monitoring keeper-monitoring, \ - rm -f $(DESTDIR)/etc/bash_completion.d/$(bin) ; \ - ) + rm -f $(DESTDIR)/etc/bash_completion.d/$(bin);) + .PHONY: configure-logs configure-logs: - @echo 'Configuring logging' + echo 'Configuring logging' mkdir -p $(DESTDIR)/etc/logrotate.d/ $(foreach bin, chadmin clickhouse-monitoring keeper-monitoring, \ mkdir -p $(DESTDIR)/var/log/$(bin) ; \ chmod 775 $(DESTDIR)/var/log/$(bin) ; \ - cp resources/logrotate/$(bin).logrotate $(DESTDIR)/etc/logrotate.d/$(bin) ; \ - ) + cp resources/logrotate/$(bin).logrotate $(DESTDIR)/etc/logrotate.d/$(bin);) + .PHONY: uninstall-logrotate uninstall-logrotate: - @echo 'Removing log rotation rules' + echo 'Removing log rotation rules' $(foreach bin, chadmin clickhouse-monitoring keeper-monitoring, \ - rm -f $(DESTDIR)/etc/logrotate.d/$(bin) ; \ - ) + rm -f $(DESTDIR)/etc/logrotate.d/$(bin);) + .PHONY: prepare-changelog prepare-changelog: prepare-version - @echo 'Bumping version into Debian package changelog' - DEBFULLNAME="Yandex LLC" DEBEMAIL="ch-tools@yandex-team.ru" dch --force-bad-version --distribution stable -v `cat version.txt` Autobuild + echo 'Bumping version into Debian package changelog' + DEBFULLNAME="Yandex LLC" DEBEMAIL="ch-tools@yandex-team.ru" dch --force-bad-version --distribution stable -v $$(cat $(VERSION_FILE)) Autobuild + .PHONY: prepare-version -prepare-version: version.txt - @echo "Version: `cat version.txt`" +prepare-version: $(VERSION_FILE) + echo "Version: $$(cat $(VERSION_FILE))" + + +$(VERSION_FILE): + # Generate version + echo "2.$$(git rev-list HEAD --count).$$(git rev-parse --short HEAD | xargs -I {} printf '%d' 0x{})" > $ + # Replace version in src/ch_tools/__init__.py + sed -ie "s/__version__ = \"[0-9\.]\+\"/__version__ = \"$$(cat $@)\"/" src/ch_tools/__init__.py + # Replace version in pyproject.toml + poetry version $$(cat $@) -version.txt: - @echo "2.$$(git rev-list HEAD --count).$$(git rev-parse --short HEAD | perl -ne 'print hex $$_')" > $@ - @# Replace version in pyproject.toml - sed -ie "s/__version__ = \"[0-9\.]\+\"/__version__ = \"`cat $@`\"/" src/ch_tools/__init__.py .PHONY: build-deb-package -build-deb-package: prepare-changelog - cd debian && debuild --check-dirname-level 0 --preserve-env --no-lintian --no-tgz-check -uc -us - mkdir out && mv ../ch-tools*.deb out/ +build-deb-package: prepare-changelog + # Build DEB package + (cd debian && poetry run debuild --check-dirname-level 0 --preserve-env --no-lintian --no-tgz-check -uc -us) + # Move DEB package to output dir + DEB_FILE=$$(echo ../ch-tools*.deb) + mkdir -p $(OUTPUT_DIR) && mv $$DEB_FILE $(OUTPUT_DIR) + # Remove other build artefacts + rm $${DEB_FILE%_*.deb}* + .PHONY: clean clean: - @echo 'Cleaning up' + echo 'Cleaning up' rm -rf build rm -rf debian/files debian/.debhelper rm -rf debian/ch-tools* + .PHONY: help help: - @echo "Base targets:" - @echo " prepare-changelog Add an autobuild version entity to changelog" - @echo " prepare-version Update version based on latest commit" - @echo " build-python-package Build 'ch-tools' Python package" - @echo " build-deb-package Build 'ch-tools' debian package" - @echo " clean Clean up after building debian package" - @echo "" - @echo "--------------------------------------------------------------------------------" - @echo "" - @echo "Debian package build targets:" - @echo " install Install 'ch-tools' debian package" - @echo " uninstall Uninstall 'ch-tools' debian package" - @echo "" - @echo " install-python-package Install 'ch-tools' python package" - @echo " uninstall-python-package Uninstall 'ch-tools' python package" - @echo " install-symlinks Install symlinks to /usr/bin/" - @echo " uninstall-symlinks Uninstall symlinks from /usr/bin/" - @echo " install-bash-completions Install to /etc/bash_completion.d/" - @echo " uninstall-bash-completions Uninstall from /etc/bash_completion.d/" - @echo " configure-logs Install log rotation rules to /etc/logrotate.d/ and create log dirs" - @echo " uninstall-logrotate Uninstall log rotation rules from /etc/logrotate.d/" - @echo "" - @echo "--------------------------------------------------------------------------------" - @echo "" - @echo " help Show this help message." + echo "Base targets:" + echo " prepare-changelog Add an autobuild version entity to changelog" + echo " prepare-version Update version based on latest commit" + echo " build-python-package Build 'ch-tools' Python package" + echo " build-deb-package Build 'ch-tools' debian package" + echo " clean Clean up after building debian package" + echo "" + echo "--------------------------------------------------------------------------------" + echo "" + echo "Debian package build targets:" + echo " install Install 'ch-tools' debian package" + echo " uninstall Uninstall 'ch-tools' debian package" + echo "" + echo " install-python-package Install 'ch-tools' python package" + echo " uninstall-python-package Uninstall 'ch-tools' python package" + echo " install-symlinks Install symlinks to /usr/bin/" + echo " uninstall-symlinks Uninstall symlinks from /usr/bin/" + echo " install-bash-completions Install to /etc/bash_completion.d/" + echo " uninstall-bash-completions Uninstall from /etc/bash_completion.d/" + echo " configure-logs Install log rotation rules to /etc/logrotate.d/ and create log dirs" + echo " uninstall-logrotate Uninstall log rotation rules from /etc/logrotate.d/" + echo "" + echo "--------------------------------------------------------------------------------" + echo "" + echo " help Show this help message." diff --git a/README.md b/README.md index ca7df611..17a163b1 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ pip install .[test] flit build --no-use-vcs flit install +# For building deb packages +sudo apt install python3-venv debhelper devscripts + # lint black . isort . diff --git a/src/ch_tools/__init__.py b/ch_tools/__init__.py similarity index 100% rename from src/ch_tools/__init__.py rename to ch_tools/__init__.py diff --git a/src/ch_tools/chadmin/README.md b/ch_tools/chadmin/README.md similarity index 100% rename from src/ch_tools/chadmin/README.md rename to ch_tools/chadmin/README.md diff --git a/src/ch_tools/chadmin/internal/__init__.py b/ch_tools/chadmin/__init__.py similarity index 100% rename from src/ch_tools/chadmin/internal/__init__.py rename to ch_tools/chadmin/__init__.py diff --git a/src/ch_tools/chadmin/chadmin_cli.py b/ch_tools/chadmin/chadmin_cli.py similarity index 100% rename from src/ch_tools/chadmin/chadmin_cli.py rename to ch_tools/chadmin/chadmin_cli.py diff --git a/src/ch_tools/chadmin/cli/__init__.py b/ch_tools/chadmin/cli/__init__.py similarity index 100% rename from src/ch_tools/chadmin/cli/__init__.py rename to ch_tools/chadmin/cli/__init__.py diff --git a/src/ch_tools/chadmin/cli/chs3_backup_group.py b/ch_tools/chadmin/cli/chs3_backup_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/chs3_backup_group.py rename to ch_tools/chadmin/cli/chs3_backup_group.py diff --git a/src/ch_tools/chadmin/cli/config_command.py b/ch_tools/chadmin/cli/config_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/config_command.py rename to ch_tools/chadmin/cli/config_command.py diff --git a/src/ch_tools/chadmin/cli/crash_log_group.py b/ch_tools/chadmin/cli/crash_log_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/crash_log_group.py rename to ch_tools/chadmin/cli/crash_log_group.py diff --git a/src/ch_tools/chadmin/cli/data_store_group.py b/ch_tools/chadmin/cli/data_store_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/data_store_group.py rename to ch_tools/chadmin/cli/data_store_group.py diff --git a/src/ch_tools/chadmin/cli/database_group.py b/ch_tools/chadmin/cli/database_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/database_group.py rename to ch_tools/chadmin/cli/database_group.py diff --git a/src/ch_tools/chadmin/cli/diagnostics_command.py b/ch_tools/chadmin/cli/diagnostics_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/diagnostics_command.py rename to ch_tools/chadmin/cli/diagnostics_command.py diff --git a/src/ch_tools/chadmin/cli/dictionary_group.py b/ch_tools/chadmin/cli/dictionary_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/dictionary_group.py rename to ch_tools/chadmin/cli/dictionary_group.py diff --git a/src/ch_tools/chadmin/cli/disk_group.py b/ch_tools/chadmin/cli/disk_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/disk_group.py rename to ch_tools/chadmin/cli/disk_group.py diff --git a/src/ch_tools/chadmin/cli/list_async_metrics_command.py b/ch_tools/chadmin/cli/list_async_metrics_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_async_metrics_command.py rename to ch_tools/chadmin/cli/list_async_metrics_command.py diff --git a/src/ch_tools/chadmin/cli/list_events_command.py b/ch_tools/chadmin/cli/list_events_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_events_command.py rename to ch_tools/chadmin/cli/list_events_command.py diff --git a/src/ch_tools/chadmin/cli/list_functions_command.py b/ch_tools/chadmin/cli/list_functions_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_functions_command.py rename to ch_tools/chadmin/cli/list_functions_command.py diff --git a/src/ch_tools/chadmin/cli/list_macros_command.py b/ch_tools/chadmin/cli/list_macros_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_macros_command.py rename to ch_tools/chadmin/cli/list_macros_command.py diff --git a/src/ch_tools/chadmin/cli/list_metrics_command.py b/ch_tools/chadmin/cli/list_metrics_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_metrics_command.py rename to ch_tools/chadmin/cli/list_metrics_command.py diff --git a/src/ch_tools/chadmin/cli/list_settings_command.py b/ch_tools/chadmin/cli/list_settings_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/list_settings_command.py rename to ch_tools/chadmin/cli/list_settings_command.py diff --git a/src/ch_tools/chadmin/cli/merge_group.py b/ch_tools/chadmin/cli/merge_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/merge_group.py rename to ch_tools/chadmin/cli/merge_group.py diff --git a/src/ch_tools/chadmin/cli/mutation_group.py b/ch_tools/chadmin/cli/mutation_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/mutation_group.py rename to ch_tools/chadmin/cli/mutation_group.py diff --git a/src/ch_tools/chadmin/cli/object_storage_group.py b/ch_tools/chadmin/cli/object_storage_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/object_storage_group.py rename to ch_tools/chadmin/cli/object_storage_group.py diff --git a/src/ch_tools/chadmin/cli/part_group.py b/ch_tools/chadmin/cli/part_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/part_group.py rename to ch_tools/chadmin/cli/part_group.py diff --git a/src/ch_tools/chadmin/cli/part_log_group.py b/ch_tools/chadmin/cli/part_log_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/part_log_group.py rename to ch_tools/chadmin/cli/part_log_group.py diff --git a/src/ch_tools/chadmin/cli/partition_group.py b/ch_tools/chadmin/cli/partition_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/partition_group.py rename to ch_tools/chadmin/cli/partition_group.py diff --git a/src/ch_tools/chadmin/cli/process_group.py b/ch_tools/chadmin/cli/process_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/process_group.py rename to ch_tools/chadmin/cli/process_group.py diff --git a/src/ch_tools/chadmin/cli/query_log_group.py b/ch_tools/chadmin/cli/query_log_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/query_log_group.py rename to ch_tools/chadmin/cli/query_log_group.py diff --git a/src/ch_tools/chadmin/cli/replicated_fetch_group.py b/ch_tools/chadmin/cli/replicated_fetch_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/replicated_fetch_group.py rename to ch_tools/chadmin/cli/replicated_fetch_group.py diff --git a/src/ch_tools/chadmin/cli/replication_queue_group.py b/ch_tools/chadmin/cli/replication_queue_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/replication_queue_group.py rename to ch_tools/chadmin/cli/replication_queue_group.py diff --git a/src/ch_tools/chadmin/cli/restore_replica_command.py b/ch_tools/chadmin/cli/restore_replica_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/restore_replica_command.py rename to ch_tools/chadmin/cli/restore_replica_command.py diff --git a/src/ch_tools/chadmin/cli/stack_trace_command.py b/ch_tools/chadmin/cli/stack_trace_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/stack_trace_command.py rename to ch_tools/chadmin/cli/stack_trace_command.py diff --git a/src/ch_tools/chadmin/cli/table_group.py b/ch_tools/chadmin/cli/table_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/table_group.py rename to ch_tools/chadmin/cli/table_group.py diff --git a/src/ch_tools/chadmin/cli/table_replica_group.py b/ch_tools/chadmin/cli/table_replica_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/table_replica_group.py rename to ch_tools/chadmin/cli/table_replica_group.py diff --git a/src/ch_tools/chadmin/cli/thread_log_group.py b/ch_tools/chadmin/cli/thread_log_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/thread_log_group.py rename to ch_tools/chadmin/cli/thread_log_group.py diff --git a/src/ch_tools/chadmin/cli/wait_started_command.py b/ch_tools/chadmin/cli/wait_started_command.py similarity index 100% rename from src/ch_tools/chadmin/cli/wait_started_command.py rename to ch_tools/chadmin/cli/wait_started_command.py diff --git a/src/ch_tools/chadmin/cli/zookeeper_group.py b/ch_tools/chadmin/cli/zookeeper_group.py similarity index 100% rename from src/ch_tools/chadmin/cli/zookeeper_group.py rename to ch_tools/chadmin/cli/zookeeper_group.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/__init__.py b/ch_tools/chadmin/internal/__init__.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/__init__.py rename to ch_tools/chadmin/internal/__init__.py diff --git a/src/ch_tools/chadmin/internal/backup.py b/ch_tools/chadmin/internal/backup.py similarity index 100% rename from src/ch_tools/chadmin/internal/backup.py rename to ch_tools/chadmin/internal/backup.py diff --git a/src/ch_tools/common/__init__.py b/ch_tools/chadmin/internal/diagnostics/__init__.py similarity index 100% rename from src/ch_tools/common/__init__.py rename to ch_tools/chadmin/internal/diagnostics/__init__.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/data.py b/ch_tools/chadmin/internal/diagnostics/data.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/data.py rename to ch_tools/chadmin/internal/diagnostics/data.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/diagnose.py b/ch_tools/chadmin/internal/diagnostics/diagnose.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/diagnose.py rename to ch_tools/chadmin/internal/diagnostics/diagnose.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/formatter.py b/ch_tools/chadmin/internal/diagnostics/formatter.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/formatter.py rename to ch_tools/chadmin/internal/diagnostics/formatter.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/query.py b/ch_tools/chadmin/internal/diagnostics/query.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/query.py rename to ch_tools/chadmin/internal/diagnostics/query.py diff --git a/src/ch_tools/chadmin/internal/diagnostics/utils.py b/ch_tools/chadmin/internal/diagnostics/utils.py similarity index 100% rename from src/ch_tools/chadmin/internal/diagnostics/utils.py rename to ch_tools/chadmin/internal/diagnostics/utils.py diff --git a/src/ch_tools/chadmin/internal/dictionary.py b/ch_tools/chadmin/internal/dictionary.py similarity index 100% rename from src/ch_tools/chadmin/internal/dictionary.py rename to ch_tools/chadmin/internal/dictionary.py diff --git a/src/ch_tools/chadmin/internal/object_storage/__init__.py b/ch_tools/chadmin/internal/object_storage/__init__.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/__init__.py rename to ch_tools/chadmin/internal/object_storage/__init__.py diff --git a/src/ch_tools/chadmin/internal/object_storage/collect_metadata.py b/ch_tools/chadmin/internal/object_storage/collect_metadata.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/collect_metadata.py rename to ch_tools/chadmin/internal/object_storage/collect_metadata.py diff --git a/src/ch_tools/chadmin/internal/object_storage/s3_cleanup.py b/ch_tools/chadmin/internal/object_storage/s3_cleanup.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/s3_cleanup.py rename to ch_tools/chadmin/internal/object_storage/s3_cleanup.py diff --git a/src/ch_tools/chadmin/internal/object_storage/s3_disk_configuration.py b/ch_tools/chadmin/internal/object_storage/s3_disk_configuration.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/s3_disk_configuration.py rename to ch_tools/chadmin/internal/object_storage/s3_disk_configuration.py diff --git a/src/ch_tools/chadmin/internal/object_storage/s3_iterator.py b/ch_tools/chadmin/internal/object_storage/s3_iterator.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/s3_iterator.py rename to ch_tools/chadmin/internal/object_storage/s3_iterator.py diff --git a/src/ch_tools/chadmin/internal/object_storage/s3_local_metadata.py b/ch_tools/chadmin/internal/object_storage/s3_local_metadata.py similarity index 100% rename from src/ch_tools/chadmin/internal/object_storage/s3_local_metadata.py rename to ch_tools/chadmin/internal/object_storage/s3_local_metadata.py diff --git a/src/ch_tools/chadmin/internal/part.py b/ch_tools/chadmin/internal/part.py similarity index 100% rename from src/ch_tools/chadmin/internal/part.py rename to ch_tools/chadmin/internal/part.py diff --git a/src/ch_tools/chadmin/internal/partition.py b/ch_tools/chadmin/internal/partition.py similarity index 100% rename from src/ch_tools/chadmin/internal/partition.py rename to ch_tools/chadmin/internal/partition.py diff --git a/src/ch_tools/chadmin/internal/process.py b/ch_tools/chadmin/internal/process.py similarity index 100% rename from src/ch_tools/chadmin/internal/process.py rename to ch_tools/chadmin/internal/process.py diff --git a/src/ch_tools/chadmin/internal/system.py b/ch_tools/chadmin/internal/system.py similarity index 100% rename from src/ch_tools/chadmin/internal/system.py rename to ch_tools/chadmin/internal/system.py diff --git a/src/ch_tools/chadmin/internal/table.py b/ch_tools/chadmin/internal/table.py similarity index 100% rename from src/ch_tools/chadmin/internal/table.py rename to ch_tools/chadmin/internal/table.py diff --git a/src/ch_tools/chadmin/internal/table_replica.py b/ch_tools/chadmin/internal/table_replica.py similarity index 100% rename from src/ch_tools/chadmin/internal/table_replica.py rename to ch_tools/chadmin/internal/table_replica.py diff --git a/src/ch_tools/chadmin/internal/utils.py b/ch_tools/chadmin/internal/utils.py similarity index 100% rename from src/ch_tools/chadmin/internal/utils.py rename to ch_tools/chadmin/internal/utils.py diff --git a/src/ch_tools/chadmin/internal/zookeeper.py b/ch_tools/chadmin/internal/zookeeper.py similarity index 100% rename from src/ch_tools/chadmin/internal/zookeeper.py rename to ch_tools/chadmin/internal/zookeeper.py diff --git a/src/ch_tools/common/cli/__init__.py b/ch_tools/common/__init__.py similarity index 100% rename from src/ch_tools/common/cli/__init__.py rename to ch_tools/common/__init__.py diff --git a/src/ch_tools/common/backup.py b/ch_tools/common/backup.py similarity index 100% rename from src/ch_tools/common/backup.py rename to ch_tools/common/backup.py diff --git a/src/ch_tools/common/clickhouse/__init__.py b/ch_tools/common/cli/__init__.py similarity index 100% rename from src/ch_tools/common/clickhouse/__init__.py rename to ch_tools/common/cli/__init__.py diff --git a/src/ch_tools/common/cli/context_settings.py b/ch_tools/common/cli/context_settings.py similarity index 100% rename from src/ch_tools/common/cli/context_settings.py rename to ch_tools/common/cli/context_settings.py diff --git a/src/ch_tools/common/cli/formatting.py b/ch_tools/common/cli/formatting.py similarity index 100% rename from src/ch_tools/common/cli/formatting.py rename to ch_tools/common/cli/formatting.py diff --git a/src/ch_tools/common/cli/parameters.py b/ch_tools/common/cli/parameters.py similarity index 100% rename from src/ch_tools/common/cli/parameters.py rename to ch_tools/common/cli/parameters.py diff --git a/src/ch_tools/common/cli/progress_bar.py b/ch_tools/common/cli/progress_bar.py similarity index 100% rename from src/ch_tools/common/cli/progress_bar.py rename to ch_tools/common/cli/progress_bar.py diff --git a/src/ch_tools/common/cli/utils.py b/ch_tools/common/cli/utils.py similarity index 100% rename from src/ch_tools/common/cli/utils.py rename to ch_tools/common/cli/utils.py diff --git a/src/ch_tools/common/cli/yaml.py b/ch_tools/common/cli/yaml.py similarity index 100% rename from src/ch_tools/common/cli/yaml.py rename to ch_tools/common/cli/yaml.py diff --git a/src/ch_tools/monrun_checks/__init__.py b/ch_tools/common/clickhouse/__init__.py similarity index 100% rename from src/ch_tools/monrun_checks/__init__.py rename to ch_tools/common/clickhouse/__init__.py diff --git a/src/ch_tools/common/clickhouse/client/__init__.py b/ch_tools/common/clickhouse/client/__init__.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/__init__.py rename to ch_tools/common/clickhouse/client/__init__.py diff --git a/src/ch_tools/common/clickhouse/client/clickhouse_client.py b/ch_tools/common/clickhouse/client/clickhouse_client.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/clickhouse_client.py rename to ch_tools/common/clickhouse/client/clickhouse_client.py diff --git a/src/ch_tools/common/clickhouse/client/error.py b/ch_tools/common/clickhouse/client/error.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/error.py rename to ch_tools/common/clickhouse/client/error.py diff --git a/src/ch_tools/common/clickhouse/client/query_output_format.py b/ch_tools/common/clickhouse/client/query_output_format.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/query_output_format.py rename to ch_tools/common/clickhouse/client/query_output_format.py diff --git a/src/ch_tools/common/clickhouse/client/retry.py b/ch_tools/common/clickhouse/client/retry.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/retry.py rename to ch_tools/common/clickhouse/client/retry.py diff --git a/src/ch_tools/common/clickhouse/client/utils.py b/ch_tools/common/clickhouse/client/utils.py similarity index 100% rename from src/ch_tools/common/clickhouse/client/utils.py rename to ch_tools/common/clickhouse/client/utils.py diff --git a/src/ch_tools/common/clickhouse/config/__init__.py b/ch_tools/common/clickhouse/config/__init__.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/__init__.py rename to ch_tools/common/clickhouse/config/__init__.py diff --git a/src/ch_tools/common/clickhouse/config/clickhouse.py b/ch_tools/common/clickhouse/config/clickhouse.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/clickhouse.py rename to ch_tools/common/clickhouse/config/clickhouse.py diff --git a/src/ch_tools/common/clickhouse/config/clickhouse_keeper.py b/ch_tools/common/clickhouse/config/clickhouse_keeper.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/clickhouse_keeper.py rename to ch_tools/common/clickhouse/config/clickhouse_keeper.py diff --git a/src/ch_tools/common/clickhouse/config/path.py b/ch_tools/common/clickhouse/config/path.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/path.py rename to ch_tools/common/clickhouse/config/path.py diff --git a/src/ch_tools/common/clickhouse/config/users.py b/ch_tools/common/clickhouse/config/users.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/users.py rename to ch_tools/common/clickhouse/config/users.py diff --git a/src/ch_tools/common/clickhouse/config/utils.py b/ch_tools/common/clickhouse/config/utils.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/utils.py rename to ch_tools/common/clickhouse/config/utils.py diff --git a/src/ch_tools/common/clickhouse/config/zookeeper.py b/ch_tools/common/clickhouse/config/zookeeper.py similarity index 100% rename from src/ch_tools/common/clickhouse/config/zookeeper.py rename to ch_tools/common/clickhouse/config/zookeeper.py diff --git a/src/ch_tools/common/dbaas.py b/ch_tools/common/dbaas.py similarity index 100% rename from src/ch_tools/common/dbaas.py rename to ch_tools/common/dbaas.py diff --git a/src/ch_tools/common/result.py b/ch_tools/common/result.py similarity index 100% rename from src/ch_tools/common/result.py rename to ch_tools/common/result.py diff --git a/src/ch_tools/common/type/__init__.py b/ch_tools/common/type/__init__.py similarity index 100% rename from src/ch_tools/common/type/__init__.py rename to ch_tools/common/type/__init__.py diff --git a/src/ch_tools/common/type/typed_enum.py b/ch_tools/common/type/typed_enum.py similarity index 100% rename from src/ch_tools/common/type/typed_enum.py rename to ch_tools/common/type/typed_enum.py diff --git a/src/ch_tools/common/utils.py b/ch_tools/common/utils.py similarity index 100% rename from src/ch_tools/common/utils.py rename to ch_tools/common/utils.py diff --git a/src/ch_tools/monrun_checks/README.md b/ch_tools/monrun_checks/README.md similarity index 100% rename from src/ch_tools/monrun_checks/README.md rename to ch_tools/monrun_checks/README.md diff --git a/src/ch_tools/monrun_checks_keeper/__init__.py b/ch_tools/monrun_checks/__init__.py similarity index 100% rename from src/ch_tools/monrun_checks_keeper/__init__.py rename to ch_tools/monrun_checks/__init__.py diff --git a/src/ch_tools/monrun_checks/ch_backup.py b/ch_tools/monrun_checks/ch_backup.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_backup.py rename to ch_tools/monrun_checks/ch_backup.py diff --git a/src/ch_tools/monrun_checks/ch_core_dumps.py b/ch_tools/monrun_checks/ch_core_dumps.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_core_dumps.py rename to ch_tools/monrun_checks/ch_core_dumps.py diff --git a/src/ch_tools/monrun_checks/ch_dist_tables.py b/ch_tools/monrun_checks/ch_dist_tables.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_dist_tables.py rename to ch_tools/monrun_checks/ch_dist_tables.py diff --git a/src/ch_tools/monrun_checks/ch_geobase.py b/ch_tools/monrun_checks/ch_geobase.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_geobase.py rename to ch_tools/monrun_checks/ch_geobase.py diff --git a/src/ch_tools/monrun_checks/ch_keeper.py b/ch_tools/monrun_checks/ch_keeper.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_keeper.py rename to ch_tools/monrun_checks/ch_keeper.py diff --git a/src/ch_tools/monrun_checks/ch_log_errors.py b/ch_tools/monrun_checks/ch_log_errors.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_log_errors.py rename to ch_tools/monrun_checks/ch_log_errors.py diff --git a/src/ch_tools/monrun_checks/ch_ping.py b/ch_tools/monrun_checks/ch_ping.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_ping.py rename to ch_tools/monrun_checks/ch_ping.py diff --git a/src/ch_tools/monrun_checks/ch_replication_lag.py b/ch_tools/monrun_checks/ch_replication_lag.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_replication_lag.py rename to ch_tools/monrun_checks/ch_replication_lag.py diff --git a/src/ch_tools/monrun_checks/ch_resetup_state.py b/ch_tools/monrun_checks/ch_resetup_state.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_resetup_state.py rename to ch_tools/monrun_checks/ch_resetup_state.py diff --git a/src/ch_tools/monrun_checks/ch_ro_replica.py b/ch_tools/monrun_checks/ch_ro_replica.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_ro_replica.py rename to ch_tools/monrun_checks/ch_ro_replica.py diff --git a/src/ch_tools/monrun_checks/ch_s3_backup_orphaned.py b/ch_tools/monrun_checks/ch_s3_backup_orphaned.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_s3_backup_orphaned.py rename to ch_tools/monrun_checks/ch_s3_backup_orphaned.py diff --git a/src/ch_tools/monrun_checks/ch_system_queues.py b/ch_tools/monrun_checks/ch_system_queues.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_system_queues.py rename to ch_tools/monrun_checks/ch_system_queues.py diff --git a/src/ch_tools/monrun_checks/ch_tls.py b/ch_tools/monrun_checks/ch_tls.py similarity index 100% rename from src/ch_tools/monrun_checks/ch_tls.py rename to ch_tools/monrun_checks/ch_tls.py diff --git a/src/ch_tools/monrun_checks/clickhouse_client.py b/ch_tools/monrun_checks/clickhouse_client.py similarity index 100% rename from src/ch_tools/monrun_checks/clickhouse_client.py rename to ch_tools/monrun_checks/clickhouse_client.py diff --git a/src/ch_tools/monrun_checks/clickhouse_info.py b/ch_tools/monrun_checks/clickhouse_info.py similarity index 100% rename from src/ch_tools/monrun_checks/clickhouse_info.py rename to ch_tools/monrun_checks/clickhouse_info.py diff --git a/src/ch_tools/monrun_checks/exceptions.py b/ch_tools/monrun_checks/exceptions.py similarity index 100% rename from src/ch_tools/monrun_checks/exceptions.py rename to ch_tools/monrun_checks/exceptions.py diff --git a/src/ch_tools/monrun_checks/ext_ip_dns.py b/ch_tools/monrun_checks/ext_ip_dns.py similarity index 100% rename from src/ch_tools/monrun_checks/ext_ip_dns.py rename to ch_tools/monrun_checks/ext_ip_dns.py diff --git a/src/ch_tools/monrun_checks/main.py b/ch_tools/monrun_checks/main.py similarity index 100% rename from src/ch_tools/monrun_checks/main.py rename to ch_tools/monrun_checks/main.py diff --git a/src/ch_tools/monrun_checks/status.py b/ch_tools/monrun_checks/status.py similarity index 100% rename from src/ch_tools/monrun_checks/status.py rename to ch_tools/monrun_checks/status.py diff --git a/src/ch_tools/monrun_checks_keeper/README.md b/ch_tools/monrun_checks_keeper/README.md similarity index 100% rename from src/ch_tools/monrun_checks_keeper/README.md rename to ch_tools/monrun_checks_keeper/README.md diff --git a/src/ch_tools/s3_credentials/__init__.py b/ch_tools/monrun_checks_keeper/__init__.py similarity index 100% rename from src/ch_tools/s3_credentials/__init__.py rename to ch_tools/monrun_checks_keeper/__init__.py diff --git a/src/ch_tools/monrun_checks_keeper/keeper_commands.py b/ch_tools/monrun_checks_keeper/keeper_commands.py similarity index 100% rename from src/ch_tools/monrun_checks_keeper/keeper_commands.py rename to ch_tools/monrun_checks_keeper/keeper_commands.py diff --git a/src/ch_tools/monrun_checks_keeper/main.py b/ch_tools/monrun_checks_keeper/main.py similarity index 100% rename from src/ch_tools/monrun_checks_keeper/main.py rename to ch_tools/monrun_checks_keeper/main.py diff --git a/src/ch_tools/monrun_checks_keeper/status.py b/ch_tools/monrun_checks_keeper/status.py similarity index 100% rename from src/ch_tools/monrun_checks_keeper/status.py rename to ch_tools/monrun_checks_keeper/status.py diff --git a/src/ch_tools/s3_credentials/README.md b/ch_tools/s3_credentials/README.md similarity index 100% rename from src/ch_tools/s3_credentials/README.md rename to ch_tools/s3_credentials/README.md diff --git a/ch_tools/s3_credentials/__init__.py b/ch_tools/s3_credentials/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/ch_tools/s3_credentials/main.py b/ch_tools/s3_credentials/main.py similarity index 100% rename from src/ch_tools/s3_credentials/main.py rename to ch_tools/s3_credentials/main.py diff --git a/debian/changelog b/debian/changelog index cb30719a..5faf2418 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,189 @@ -ch-tools (1.0.0) UNRELEASED; urgency=low +ch-tools (2.526.48925339) stable; urgency=medium + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 17:50:44 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 17:43:00 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 17:40:59 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 16:47:08 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 16:40:16 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 13:05:55 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 12:57:14 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 11:59:08 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 11:56:31 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 11:53:47 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 11:35:16 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:58:11 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:37:24 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:23:24 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:12:55 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:12:09 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 10:11:36 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 09:42:30 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 09:41:29 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 09:37:49 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Mon, 07 Aug 2023 09:28:10 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 17:17:26 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 17:17:08 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 17:04:03 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 17:02:34 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:58:38 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:56:23 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:52:31 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:48:17 +0300 + +ch-tools (2.526.48925339) stable; urgency=medium + + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:40:36 +0300 + +ch-tools (2.526.48925339) stable; urgency=low + + [ Dmitry Starov ] * Initial Release. - -- Dmitry Starov Thu, 01 Jun 2023 16:00:00 +0300 + [ Yandex LLC ] + * Autobuild + + -- Yandex LLC Sun, 06 Aug 2023 16:38:55 +0300 diff --git a/debian/compat b/debian/compat index ec635144..b1bd38b6 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -9 +13 diff --git a/debian/debhelper-build-stamp b/debian/debhelper-build-stamp new file mode 100644 index 00000000..46ead9c8 --- /dev/null +++ b/debian/debhelper-build-stamp @@ -0,0 +1 @@ +ch-tools diff --git a/debian/rules b/debian/rules old mode 100644 new mode 100755 diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..52253d14 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1823 @@ +[[package]] +name = "atomicwrites" +version = "1.4.1" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "attrs" +version = "22.2.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +cov = ["attrs", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] +dev = ["attrs"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] +tests = ["attrs", "zope.interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=0.971,<0.990)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist"] +tests_no_zope = ["cloudpickle", "hypothesis", "mypy (>=0.971,<0.990)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist"] + +[[package]] +name = "bcrypt" +version = "4.0.1" +description = "Modern password hashing for your software and your servers" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +tests = ["pytest (>=3.2.1,!=3.3.0)"] +typecheck = ["mypy"] + +[[package]] +name = "behave" +version = "1.2.6" +description = "behave is behaviour-driven development, Python style" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[package.dependencies] +parse = ">=1.8.2" +parse-type = ">=0.4.2" +six = ">=1.11" + +[package.extras] +develop = ["coverage", "invoke (>=0.21.0)", "modernize (>=0.5)", "path.py (>=8.1.2)", "pathlib", "pycmd", "pylint", "pytest (>=3.0)", "pytest-cov", "tox"] +docs = ["sphinx (>=1.6)", "sphinx-bootstrap-theme (>=0.6)"] + +[[package]] +name = "black" +version = "22.8.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +click = ">=8.0.0" +dataclasses = {version = ">=0.6", markers = "python_version < \"3.7\""} +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} +typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "boto3" +version = "1.23.10" +description = "The AWS SDK for Python" +category = "main" +optional = false +python-versions = ">= 3.6" + +[package.dependencies] +botocore = ">=1.26.10,<1.27.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.5.0,<0.6.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.26.10" +description = "Low-level, data-driven core of boto 3." +category = "main" +optional = false +python-versions = ">= 3.6" + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = ">=1.25.4,<1.27" + +[package.extras] +crt = ["awscrt (==0.13.8)"] + +[[package]] +name = "cached-property" +version = "1.5.2" +description = "A decorator for caching properties in classes." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "certifi" +version = "2023.7.22" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "2.0.12" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.5.0" + +[package.extras] +unicode_backport = ["unicodedata2"] + +[[package]] +name = "click" +version = "8.0.4" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} + +[[package]] +name = "cloup" +version = "0.15.1" +description = "Adds features to Click: option groups, constraints, subcommand sections and help themes." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +click = ">=7.1,<9.0" +typing-extensions = {version = "*", markers = "python_version <= \"3.8\""} + +[[package]] +name = "colorama" +version = "0.4.5" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "cryptography" +version = "40.0.2" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.12" + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] +pep8test = ["black", "check-manifest", "mypy", "ruff"] +sdist = ["setuptools-rust (>=0.11.4)"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] +tox = ["tox"] + +[[package]] +name = "dataclasses" +version = "0.8" +description = "A backport of the dataclasses module for Python 3.6" +category = "dev" +optional = false +python-versions = ">=3.6, <3.7" + +[[package]] +name = "deepdiff" +version = "5.7.0" +description = "Deep Difference and Search of any Python object/data." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +ordered-set = "4.0.2" + +[package.extras] +cli = ["clevercsv (==0.7.1)", "click (==8.0.3)", "pyyaml (==5.4.1)", "toml (==0.10.2)"] + +[[package]] +name = "distro" +version = "1.8.0" +description = "Distro - an OS platform information API" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "dnspython" +version = "2.1.0" +description = "DNS toolkit" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +curio = ["curio (>=1.2)", "sniffio (>=1.1)"] +dnssec = ["cryptography (>=2.6)"] +doh = ["requests", "requests-toolbelt"] +idna = ["idna (>=2.1)"] +trio = ["sniffio (>=1.1)", "trio (>=0.14.0)"] + +[[package]] +name = "docker" +version = "5.0.3" +description = "A Python library for the Docker Engine API." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +paramiko = {version = ">=2.4.2", optional = true, markers = "extra == \"ssh\""} +pywin32 = {version = "227", markers = "sys_platform == \"win32\""} +requests = ">=2.14.2,<2.18.0 || >2.18.0" +websocket-client = ">=0.32.0" + +[package.extras] +ssh = ["paramiko (>=2.4.2)"] +tls = ["cryptography (>=3.4.7)", "idna (>=2.0.0)", "pyOpenSSL (>=17.5.0)"] + +[[package]] +name = "docker-compose" +version = "1.29.2" +description = "Multi-container orchestration for Docker" +category = "dev" +optional = false +python-versions = ">=3.4" + +[package.dependencies] +cached-property = {version = ">=1.2.0,<2", markers = "python_version < \"3.8\""} +colorama = {version = ">=0.4,<1", markers = "sys_platform == \"win32\""} +distro = ">=1.5.0,<2" +docker = {version = ">=5", extras = ["ssh"]} +dockerpty = ">=0.4.1,<1" +docopt = ">=0.6.1,<1" +jsonschema = ">=2.5.1,<4" +python-dotenv = ">=0.13.0,<1" +PyYAML = ">=3.10,<6" +requests = ">=2.20.0,<3" +texttable = ">=0.9.0,<2" +websocket-client = ">=0.32.0,<1" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2)"] +tests = ["ddt (>=1.2.2,<2)", "pytest (<6)"] + +[[package]] +name = "dockerpty" +version = "0.4.1" +description = "Python library to use the pseudo-tty of a docker container" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +six = ">=1.3.0" + +[[package]] +name = "docopt" +version = "0.6.2" +description = "Pythonic argument parser, that will make you smile" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "docutils" +version = "0.18.1" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "file-read-backwards" +version = "3.0.0" +description = "Memory efficient way of reading files line-by-line from the end of file" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "flit" +version = "3.9.0" +description = "A simple packaging tool for simple packages." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +docutils = "*" +flit_core = ">=3.9.0" +requests = "*" +tomli-w = "*" + +[package.extras] +doc = ["pygments-github-lexers", "sphinx", "sphinxcontrib-github-alt"] +test = ["pytest (>=2.7.3)", "pytest-cov", "responses", "testpath", "tomli"] + +[[package]] +name = "flit-core" +version = "3.9.0" +description = "Distribution-building parts of Flit. See flit package for more information" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "humanfriendly" +version = "10.0" +description = "Human friendly output for text interfaces using Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +pyreadline = {version = "*", markers = "sys_platform == \"win32\" and python_version < \"3.8\""} +pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_version >= \"3.8\""} + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "importlib-metadata" +version = "4.8.3" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy", "pytest-perf (>=0.9.2)"] + +[[package]] +name = "importlib-resources" +version = "5.4.0" +description = "Read resources from Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "isort" +version = "4.3.21" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +toml = {version = "*", optional = true, markers = "extra == \"pyproject\""} + +[package.extras] +pipfile = ["pipreqs", "requirementslib"] +pyproject = ["toml"] +requirements = ["pip-api", "pipreqs"] +xdg_home = ["appdirs (>=1.4.0)"] + +[[package]] +name = "jinja2" +version = "3.0.3" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jmespath" +version = "0.10.0" +description = "JSON Matching Expressions" +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "jsonschema" +version = "3.2.0" +description = "An implementation of JSON Schema validation for Python" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +attrs = ">=17.4.0" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +pyrsistent = ">=0.14.0" +six = ">=1.11.0" + +[package.extras] +format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] +format_nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] + +[[package]] +name = "kazoo" +version = "2.9.0" +description = "\"Higher Level Zookeeper Client\"" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +alldeps = ["Sphinx (>=1.2.2)", "eventlet (>=0.17.1)", "flake8", "gevent (>=1.2)", "pure-sasl (>=0.5.1)"] +dev = ["flake8"] +docs = ["Sphinx (>=1.2.2)"] +eventlet = ["eventlet (>=0.17.1)"] +gevent = ["gevent (>=1.2)"] +sasl = ["pure-sasl (>=0.5.1)"] +test = ["eventlet (>=0.17.1)", "gevent (>=1.2)", "mock", "objgraph", "pytest", "pytest-cov"] + +[[package]] +name = "lxml" +version = "4.9.3" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["beautifulsoup4"] +source = ["Cython (>=0.29.35)"] + +[[package]] +name = "markupsafe" +version = "2.0.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mypy" +version = "0.971" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "ordered-set" +version = "4.0.2" +description = "A set that remembers its order, and allows looking up its items by their index in that order." +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "paramiko" +version = "3.3.1" +description = "SSH2 protocol library" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +bcrypt = ">=3.2" +cryptography = ">=3.3" +pynacl = ">=1.5" + +[package.extras] +all = ["gssapi (>=1.4.1)", "invoke (>=2.0)", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8)"] +gssapi = ["gssapi (>=1.4.1)", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8)"] +invoke = ["invoke (>=2.0)"] + +[[package]] +name = "parse" +version = "1.19.1" +description = "parse() is the opposite of format()" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "parse-type" +version = "0.6.2" +description = "Simplifies to build parse types based on the parse module" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*" + +[package.dependencies] +parse = {version = ">=1.18.0", markers = "python_version >= \"3.0\""} +six = ">=1.15" + +[package.extras] +develop = ["build (>=0.5.1)", "coverage (>=4.4)", "pylint", "pytest (<5.0)", "pytest (>=5.0)", "pytest-cov", "pytest-html (>=1.19.0)", "ruff", "tox (>=2.8,<4.0)", "twine (>=1.13.0)", "virtualenv (<20.22.0)", "virtualenv (>=20.0.0)"] +docs = ["Sphinx (>=1.6)", "sphinx-bootstrap-theme (>=0.6.0)"] +testing = ["pytest (<5.0)", "pytest (>=5.0)", "pytest-html (>=1.19.0)"] + +[[package]] +name = "pathspec" +version = "0.9.0" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[[package]] +name = "platformdirs" +version = "2.4.0" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "psutil" +version = "5.9.5" +description = "Cross-platform lib for process and system monitoring in Python." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pygments" +version = "2.14.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyhamcrest" +version = "2.0.4" +description = "Hamcrest framework for matcher objects" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["black", "flake8", "pyhamcrest", "pytest-mypy", "towncrier", "tox", "tox-asdf", "twine"] +docs = ["alabaster (>=0.7,<1.0)", "sphinx (>=4.0,<5.0)"] +tests = ["coverage", "dataclasses", "mypy (!=0.940)", "pytest (>=5.0)", "pytest-mypy-plugins", "pytest-sugar", "pytest-xdist", "types-dataclasses", "types-mock"] +tests-numpy = ["numpy", "pyhamcrest"] + +[[package]] +name = "pynacl" +version = "1.5.0" +description = "Python binding to the Networking and Cryptography (NaCl) library" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.4.1" + +[package.extras] +docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] +tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] + +[[package]] +name = "pyopenssl" +version = "23.2.0" +description = "Python wrapper module around the OpenSSL library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cryptography = ">=38.0.0,<40.0.0 || >40.0.0,<40.0.1 || >40.0.1,<42" + +[package.extras] +docs = ["sphinx (!=5.2.0,!=5.2.0.post0)", "sphinx-rtd-theme"] +test = ["flaky", "pretend", "pytest (>=3.0.1)"] + +[[package]] +name = "pyparsing" +version = "3.0.7" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyreadline" +version = "2.1" +description = "A python implmementation of GNU readline." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyreadline3" +version = "3.4.1" +description = "A python implementation of GNU readline." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyrsistent" +version = "0.18.0" +description = "Persistent/Functional/Immutable data structures" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pytest" +version = "7.0.1" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +tomli = ">=1.0.0" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "0.20.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "pywin32" +version = "227" +description = "Python for Window Extensions" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pyyaml" +version = "5.4.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[[package]] +name = "requests" +version = "2.27.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} +idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] + +[[package]] +name = "s3transfer" +version = "0.5.2" +description = "An Amazon S3 Transfer Manager" +category = "main" +optional = false +python-versions = ">= 3.6" + +[package.dependencies] +botocore = ">=1.12.36,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tabulate" +version = "0.8.10" +description = "Pretty-print tabular data" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +widechars = ["wcwidth"] + +[[package]] +name = "tenacity" +version = "8.2.2" +description = "Retry code until it succeeds" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +doc = ["reno", "sphinx", "tornado (>=4.5)"] + +[[package]] +name = "termcolor" +version = "1.1.0" +description = "ANSII Color formatting for output in terminal." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "texttable" +version = "1.6.7" +description = "module to create simple ASCII tables" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tomli" +version = "1.2.3" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "tomli-w" +version = "0.4.0" +description = "A lil' TOML writer" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "tqdm" +version = "4.64.1" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} +importlib-resources = {version = "*", markers = "python_version < \"3.7\""} + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "types-pyopenssl" +version = "23.2.0.2" +description = "Typing stubs for pyOpenSSL" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +cryptography = ">=35.0.0" + +[[package]] +name = "types-python-dateutil" +version = "2.8.19.14" +description = "Typing stubs for python-dateutil" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "types-pyyaml" +version = "6.0.12.11" +description = "Typing stubs for PyYAML" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "types-requests" +version = "2.31.0.2" +description = "Typing stubs for requests" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +types-urllib3 = "*" + +[[package]] +name = "types-setuptools" +version = "68.0.0.3" +description = "Typing stubs for setuptools" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "types-tabulate" +version = "0.9.0.3" +description = "Typing stubs for tabulate" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "types-urllib3" +version = "1.26.25.14" +description = "Typing stubs for urllib3" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "typing-extensions" +version = "4.1.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "urllib3" +version = "1.26.16" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "websocket-client" +version = "0.59.0" +description = "WebSocket client for Python with low level API options" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +six = "*" + +[[package]] +name = "xmltodict" +version = "0.13.0" +description = "Makes working with XML feel like you are working with JSON" +category = "main" +optional = false +python-versions = ">=3.4" + +[[package]] +name = "zipp" +version = "3.6.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["func-timeout", "jaraco.itertools", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] + +[metadata] +lock-version = "1.1" +python-versions = ">=3.6.2" +content-hash = "abace0c04f2fa567a0b7de65fd5b16f40c94942e63aee5d6891049f716e4b125" + +[metadata.files] +atomicwrites = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] +attrs = [ + {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, + {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, +] +bcrypt = [ + {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"}, + {file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"}, + {file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"}, + {file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"}, +] +behave = [ + {file = "behave-1.2.6-py2.py3-none-any.whl", hash = "sha256:ebda1a6c9e5bfe95c5f9f0a2794e01c7098b3dde86c10a95d8621c5907ff6f1c"}, + {file = "behave-1.2.6.tar.gz", hash = "sha256:b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86"}, +] +black = [ + {file = "black-22.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd"}, + {file = "black-22.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27"}, + {file = "black-22.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747"}, + {file = "black-22.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869"}, + {file = "black-22.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90"}, + {file = "black-22.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe"}, + {file = "black-22.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342"}, + {file = "black-22.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab"}, + {file = "black-22.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3"}, + {file = "black-22.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e"}, + {file = "black-22.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c"}, + {file = "black-22.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5"}, + {file = "black-22.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411"}, + {file = "black-22.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3"}, + {file = "black-22.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c"}, + {file = "black-22.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497"}, + {file = "black-22.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c"}, + {file = "black-22.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41"}, + {file = "black-22.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec"}, + {file = "black-22.8.0-py3-none-any.whl", hash = "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4"}, + {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, +] +boto3 = [ + {file = "boto3-1.23.10-py3-none-any.whl", hash = "sha256:40d08614f17a69075e175c02c5d5aab69a6153fd50e40fa7057b913ac7bf40e7"}, + {file = "boto3-1.23.10.tar.gz", hash = "sha256:2a4395e3241c20eef441d7443a5e6eaa0ee3f7114653fb9d9cef41587526f7bd"}, +] +botocore = [ + {file = "botocore-1.26.10-py3-none-any.whl", hash = "sha256:8a4a984bf901ccefe40037da11ba2abd1ddbcb3b490a492b7f218509c99fc12f"}, + {file = "botocore-1.26.10.tar.gz", hash = "sha256:5df2cf7ebe34377470172bd0bbc582cf98c5cbd02da0909a14e9e2885ab3ae9c"}, +] +cached-property = [ + {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, + {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, +] +certifi = [ + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, +] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, + {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, +] +click = [ + {file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"}, + {file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"}, +] +cloup = [ + {file = "cloup-0.15.1-py2.py3-none-any.whl", hash = "sha256:9358fd1f4949ef88355d37e733d93d65045f4090b52b8de8d4c34cca9a1e7a08"}, + {file = "cloup-0.15.1.tar.gz", hash = "sha256:8008b480a77d8a112c78702f64675adbdf59fadc39e391f3ba8bcac9c4d4cd86"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +cryptography = [ + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c"}, + {file = "cryptography-40.0.2-cp36-abi3-win32.whl", hash = "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9"}, + {file = "cryptography-40.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404"}, + {file = "cryptography-40.0.2.tar.gz", hash = "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99"}, +] +dataclasses = [ + {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"}, + {file = "dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97"}, +] +deepdiff = [ + {file = "deepdiff-5.7.0-py3-none-any.whl", hash = "sha256:1ffb38c3b5d9174eb2df95850c93aee55ec00e19396925036a2e680f725079e0"}, + {file = "deepdiff-5.7.0.tar.gz", hash = "sha256:838766484e323dcd9dec6955926a893a83767dc3f3f94542773e6aa096efe5d4"}, +] +distro = [ + {file = "distro-1.8.0-py3-none-any.whl", hash = "sha256:99522ca3e365cac527b44bde033f64c6945d90eb9f769703caaec52b09bbd3ff"}, + {file = "distro-1.8.0.tar.gz", hash = "sha256:02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8"}, +] +dnspython = [ + {file = "dnspython-2.1.0-py3-none-any.whl", hash = "sha256:95d12f6ef0317118d2a1a6fc49aac65ffec7eb8087474158f42f26a639135216"}, + {file = "dnspython-2.1.0.zip", hash = "sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"}, +] +docker = [ + {file = "docker-5.0.3-py2.py3-none-any.whl", hash = "sha256:7a79bb439e3df59d0a72621775d600bc8bc8b422d285824cb37103eab91d1ce0"}, + {file = "docker-5.0.3.tar.gz", hash = "sha256:d916a26b62970e7c2f554110ed6af04c7ccff8e9f81ad17d0d40c75637e227fb"}, +] +docker-compose = [ + {file = "docker-compose-1.29.2.tar.gz", hash = "sha256:4c8cd9d21d237412793d18bd33110049ee9af8dab3fe2c213bbd0733959b09b7"}, + {file = "docker_compose-1.29.2-py2.py3-none-any.whl", hash = "sha256:8d5589373b35c8d3b1c8c1182c6e4a4ff14bffa3dd0b605fcd08f73c94cef809"}, +] +dockerpty = [ + {file = "dockerpty-0.4.1.tar.gz", hash = "sha256:69a9d69d573a0daa31bcd1c0774eeed5c15c295fe719c61aca550ed1393156ce"}, +] +docopt = [ + {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"}, +] +docutils = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] +file-read-backwards = [ + {file = "file_read_backwards-3.0.0-py2.py3-none-any.whl", hash = "sha256:09fbac8bbf6d72c053c6e789768671002806c572d210fbe6861088a4a8bd0968"}, + {file = "file_read_backwards-3.0.0.tar.gz", hash = "sha256:512c3e534043527a8fae2a0b7151aa255f2da303e77fd40f7dcf42a1e091cc26"}, +] +flit = [ + {file = "flit-3.9.0-py3-none-any.whl", hash = "sha256:076c3aaba5ac24cf0ad3251f910900d95a08218e6bcb26f21fef1036cc4679ca"}, + {file = "flit-3.9.0.tar.gz", hash = "sha256:d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7"}, +] +flit-core = [ + {file = "flit_core-3.9.0-py3-none-any.whl", hash = "sha256:7aada352fb0c7f5538c4fafeddf314d3a6a92ee8e2b1de70482329e42de70301"}, + {file = "flit_core-3.9.0.tar.gz", hash = "sha256:72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba"}, +] +humanfriendly = [ + {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, + {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, +] +idna = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, + {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, +] +importlib-resources = [ + {file = "importlib_resources-5.4.0-py3-none-any.whl", hash = "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45"}, + {file = "importlib_resources-5.4.0.tar.gz", hash = "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isort = [ + {file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"}, + {file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"}, +] +jinja2 = [ + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, +] +jmespath = [ + {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, + {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, +] +jsonschema = [ + {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, + {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, +] +kazoo = [ + {file = "kazoo-2.9.0-py2.py3-none-any.whl", hash = "sha256:b73dd6829ae6b3a78cd37ba393749f9d30860dbe39debb27c36eff159949a14e"}, + {file = "kazoo-2.9.0.tar.gz", hash = "sha256:800318c7f3dab648cdf616dfb25bdabeefab2a6837aa6951e0fa3ff80e656969"}, +] +lxml = [ + {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, + {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, + {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, + {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, + {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, + {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, + {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, + {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76"}, + {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23"}, + {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f"}, + {file = "lxml-4.9.3-cp310-cp310-win32.whl", hash = "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85"}, + {file = "lxml-4.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d"}, + {file = "lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b"}, + {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120"}, + {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6"}, + {file = "lxml-4.9.3-cp311-cp311-win32.whl", hash = "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305"}, + {file = "lxml-4.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc"}, + {file = "lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4"}, + {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be"}, + {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13"}, + {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, + {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, + {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, + {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, + {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, + {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, + {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, + {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, + {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, + {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, + {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, + {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, + {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, + {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, + {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, + {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, + {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, + {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, + {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, + {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, + {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, + {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, + {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, + {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, + {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, + {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9"}, + {file = "lxml-4.9.3.tar.gz", hash = "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"}, +] +markupsafe = [ + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, + {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, +] +mypy = [ + {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, + {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, + {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, + {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, + {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, + {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, + {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, + {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, + {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, + {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, + {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, + {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, + {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, + {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, + {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, + {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, + {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, + {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, + {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, +] +mypy-extensions = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] +ordered-set = [ + {file = "ordered-set-4.0.2.tar.gz", hash = "sha256:ba93b2df055bca202116ec44b9bead3df33ea63a7d5827ff8e16738b97f33a95"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +paramiko = [ + {file = "paramiko-3.3.1-py3-none-any.whl", hash = "sha256:b7bc5340a43de4287bbe22fe6de728aa2c22468b2a849615498dd944c2f275eb"}, + {file = "paramiko-3.3.1.tar.gz", hash = "sha256:6a3777a961ac86dbef375c5f5b8d50014a1a96d0fd7f054a43bc880134b0ff77"}, +] +parse = [ + {file = "parse-1.19.1-py2.py3-none-any.whl", hash = "sha256:371ed3800dc63983832159cc9373156613947707bc448b5215473a219dbd4362"}, + {file = "parse-1.19.1.tar.gz", hash = "sha256:cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464"}, +] +parse-type = [ + {file = "parse_type-0.6.2-py2.py3-none-any.whl", hash = "sha256:06d39a8b70fde873eb2a131141a0e79bb34a432941fb3d66fad247abafc9766c"}, + {file = "parse_type-0.6.2.tar.gz", hash = "sha256:79b1f2497060d0928bc46016793f1fca1057c4aacdf15ef876aa48d75a73a355"}, +] +pathspec = [ + {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, + {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, +] +platformdirs = [ + {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"}, + {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +psutil = [ + {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, + {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, + {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, + {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, + {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, + {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, + {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, + {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pygments = [ + {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, + {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, +] +pyhamcrest = [ + {file = "pyhamcrest-2.0.4-py3-none-any.whl", hash = "sha256:60a41d4783b9d56c9ec8586635d2301db5072b3ea8a51c32dd03c408ae2b0f79"}, + {file = "pyhamcrest-2.0.4.tar.gz", hash = "sha256:b5d9ce6b977696286cf232ce2adf8969b4d0b045975b0936ac9005e84e67e9c1"}, +] +pynacl = [ + {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"}, + {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"}, +] +pyopenssl = [ + {file = "pyOpenSSL-23.2.0-py3-none-any.whl", hash = "sha256:24f0dc5227396b3e831f4c7f602b950a5e9833d292c8e4a2e06b709292806ae2"}, + {file = "pyOpenSSL-23.2.0.tar.gz", hash = "sha256:276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac"}, +] +pyparsing = [ + {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, + {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, +] +pyreadline = [ + {file = "pyreadline-2.1.win-amd64.exe", hash = "sha256:9ce5fa65b8992dfa373bddc5b6e0864ead8f291c94fbfec05fbd5c836162e67b"}, + {file = "pyreadline-2.1.win32.exe", hash = "sha256:65540c21bfe14405a3a77e4c085ecfce88724743a4ead47c66b84defcf82c32e"}, + {file = "pyreadline-2.1.zip", hash = "sha256:4530592fc2e85b25b1a9f79664433da09237c1a270e4d78ea5aa3a2c7229e2d1"}, +] +pyreadline3 = [ + {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, + {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, +] +pyrsistent = [ + {file = "pyrsistent-0.18.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"}, + {file = "pyrsistent-0.18.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:da6e5e818d18459fa46fac0a4a4e543507fe1110e808101277c5a2b5bab0cd2d"}, + {file = "pyrsistent-0.18.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5e4395bbf841693eaebaa5bb5c8f5cdbb1d139e07c975c682ec4e4f8126e03d2"}, + {file = "pyrsistent-0.18.0-cp36-cp36m-win32.whl", hash = "sha256:527be2bfa8dc80f6f8ddd65242ba476a6c4fb4e3aedbf281dfbac1b1ed4165b1"}, + {file = "pyrsistent-0.18.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2aaf19dc8ce517a8653746d98e962ef480ff34b6bc563fc067be6401ffb457c7"}, + {file = "pyrsistent-0.18.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58a70d93fb79dc585b21f9d72487b929a6fe58da0754fa4cb9f279bb92369396"}, + {file = "pyrsistent-0.18.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4916c10896721e472ee12c95cdc2891ce5890898d2f9907b1b4ae0f53588b710"}, + {file = "pyrsistent-0.18.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:73ff61b1411e3fb0ba144b8f08d6749749775fe89688093e1efef9839d2dcc35"}, + {file = "pyrsistent-0.18.0-cp37-cp37m-win32.whl", hash = "sha256:b29b869cf58412ca5738d23691e96d8aff535e17390128a1a52717c9a109da4f"}, + {file = "pyrsistent-0.18.0-cp37-cp37m-win_amd64.whl", hash = "sha256:097b96f129dd36a8c9e33594e7ebb151b1515eb52cceb08474c10a5479e799f2"}, + {file = "pyrsistent-0.18.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:772e94c2c6864f2cd2ffbe58bb3bdefbe2a32afa0acb1a77e472aac831f83427"}, + {file = "pyrsistent-0.18.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c1a9ff320fa699337e05edcaae79ef8c2880b52720bc031b219e5b5008ebbdef"}, + {file = "pyrsistent-0.18.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cd3caef37a415fd0dae6148a1b6957a8c5f275a62cca02e18474608cb263640c"}, + {file = "pyrsistent-0.18.0-cp38-cp38-win32.whl", hash = "sha256:e79d94ca58fcafef6395f6352383fa1a76922268fa02caa2272fff501c2fdc78"}, + {file = "pyrsistent-0.18.0-cp38-cp38-win_amd64.whl", hash = "sha256:a0c772d791c38bbc77be659af29bb14c38ced151433592e326361610250c605b"}, + {file = "pyrsistent-0.18.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d5ec194c9c573aafaceebf05fc400656722793dac57f254cd4741f3c27ae57b4"}, + {file = "pyrsistent-0.18.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:6b5eed00e597b5b5773b4ca30bd48a5774ef1e96f2a45d105db5b4ebb4bca680"}, + {file = "pyrsistent-0.18.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:48578680353f41dca1ca3dc48629fb77dfc745128b56fc01096b2530c13fd426"}, + {file = "pyrsistent-0.18.0-cp39-cp39-win32.whl", hash = "sha256:f3ef98d7b76da5eb19c37fda834d50262ff9167c65658d1d8f974d2e4d90676b"}, + {file = "pyrsistent-0.18.0-cp39-cp39-win_amd64.whl", hash = "sha256:404e1f1d254d314d55adb8d87f4f465c8693d6f902f67eb6ef5b4526dc58e6ea"}, + {file = "pyrsistent-0.18.0.tar.gz", hash = "sha256:773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b"}, +] +pytest = [ + {file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"}, + {file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +python-dotenv = [ + {file = "python-dotenv-0.20.0.tar.gz", hash = "sha256:b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f"}, + {file = "python_dotenv-0.20.0-py3-none-any.whl", hash = "sha256:d92a187be61fe482e4fd675b6d52200e7be63a12b724abbf931a40ce4fa92938"}, +] +pywin32 = [ + {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, + {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, + {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, + {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, + {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, + {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, + {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, + {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, + {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, + {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, + {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, + {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, +] +pyyaml = [ + {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, + {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, + {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, + {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, + {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, + {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, + {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, + {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, + {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, +] +requests = [ + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, +] +s3transfer = [ + {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"}, + {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +tabulate = [ + {file = "tabulate-0.8.10-py3-none-any.whl", hash = "sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc"}, + {file = "tabulate-0.8.10-py3.8.egg", hash = "sha256:436f1c768b424654fce8597290d2764def1eea6a77cfa5c33be00b1bc0f4f63d"}, + {file = "tabulate-0.8.10.tar.gz", hash = "sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519"}, +] +tenacity = [ + {file = "tenacity-8.2.2-py3-none-any.whl", hash = "sha256:2f277afb21b851637e8f52e6a613ff08734c347dc19ade928e519d7d2d8569b0"}, + {file = "tenacity-8.2.2.tar.gz", hash = "sha256:43af037822bd0029025877f3b2d97cc4d7bb0c2991000a3d59d71517c5c969e0"}, +] +termcolor = [ + {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, +] +texttable = [ + {file = "texttable-1.6.7-py2.py3-none-any.whl", hash = "sha256:b7b68139aa8a6339d2c320ca8b1dc42d13a7831a346b446cb9eb385f0c76310c"}, + {file = "texttable-1.6.7.tar.gz", hash = "sha256:290348fb67f7746931bcdfd55ac7584ecd4e5b0846ab164333f0794b121760f2"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, + {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, +] +tomli-w = [ + {file = "tomli_w-0.4.0-py3-none-any.whl", hash = "sha256:83a8b8df5174e0ab949783200fa0f1e382c5ae5f53d714c226775bc0592c5906"}, + {file = "tomli_w-0.4.0.tar.gz", hash = "sha256:47643abe03b628b6e214c38cf0816dca7b63888e503ec8580d251e331c0526b6"}, +] +tqdm = [ + {file = "tqdm-4.64.1-py2.py3-none-any.whl", hash = "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1"}, + {file = "tqdm-4.64.1.tar.gz", hash = "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4"}, +] +typed-ast = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] +types-pyopenssl = [ + {file = "types-pyOpenSSL-23.2.0.2.tar.gz", hash = "sha256:6a010dac9ecd42b582d7dd2cc3e9e40486b79b3b64bb2fffba1474ff96af906d"}, + {file = "types_pyOpenSSL-23.2.0.2-py3-none-any.whl", hash = "sha256:19536aa3debfbe25a918cf0d898e9f5fbbe6f3594a429da7914bf331deb1b342"}, +] +types-python-dateutil = [ + {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, + {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, +] +types-pyyaml = [ + {file = "types-PyYAML-6.0.12.11.tar.gz", hash = "sha256:7d340b19ca28cddfdba438ee638cd4084bde213e501a3978738543e27094775b"}, + {file = "types_PyYAML-6.0.12.11-py3-none-any.whl", hash = "sha256:a461508f3096d1d5810ec5ab95d7eeecb651f3a15b71959999988942063bf01d"}, +] +types-requests = [ + {file = "types-requests-2.31.0.2.tar.gz", hash = "sha256:6aa3f7faf0ea52d728bb18c0a0d1522d9bfd8c72d26ff6f61bfc3d06a411cf40"}, + {file = "types_requests-2.31.0.2-py3-none-any.whl", hash = "sha256:56d181c85b5925cbc59f4489a57e72a8b2166f18273fd8ba7b6fe0c0b986f12a"}, +] +types-setuptools = [ + {file = "types-setuptools-68.0.0.3.tar.gz", hash = "sha256:d57ae6076100b5704b3cc869fdefc671e1baf4c2cd6643f84265dfc0b955bf05"}, + {file = "types_setuptools-68.0.0.3-py3-none-any.whl", hash = "sha256:fec09e5c18264c5c09351c00be01a34456fb7a88e457abe97401325f84ad9d36"}, +] +types-tabulate = [ + {file = "types-tabulate-0.9.0.3.tar.gz", hash = "sha256:197651f9d6467193cd166d8500116a6d3a26f2a4eb2db093bc9535ee1c0be55e"}, + {file = "types_tabulate-0.9.0.3-py3-none-any.whl", hash = "sha256:462d1b62e01728416e8277614d6a3eb172d53a8efaf04a04a973ff2dd45238f6"}, +] +types-urllib3 = [ + {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, + {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, +] +typing-extensions = [ + {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, + {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, +] +urllib3 = [ + {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, + {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, +] +websocket-client = [ + {file = "websocket-client-0.59.0.tar.gz", hash = "sha256:d376bd60eace9d437ab6d7ee16f4ab4e821c9dae591e1b783c58ebd8aaf80c5c"}, + {file = "websocket_client-0.59.0-py2.py3-none-any.whl", hash = "sha256:2e50d26ca593f70aba7b13a489435ef88b8fc3b5c5643c1ce8808ff9b40f0b32"}, +] +xmltodict = [ + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, +] +zipp = [ + {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, + {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, +] diff --git a/pyproject.toml b/pyproject.toml index c5deb9be..470750e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,42 +1,46 @@ [build-system] -requires = ["flit_core >=3.2,<4"] -build-backend = "flit_core.buildapi" +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" -[project] +[tool.poetry] name = "ch-tools" -license = { file = "LICENSE" } -dynamic = ["version", "description"] +version = "2.526.48925339" +license = "MIT" +description = "ch-tools is a set of tools for administration and diagnostics of ClickHouse DBMS." authors = [ - {name = "Alexander Burmak", email = "alex-burmak@yandex-team.ru"}, - {name = "Dmitry Starov", email="dstaroff@yandex-team.ru"}, - {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, - {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, - {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, - {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, - {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, - {name = "Evgeny Dyukov", email="secwall@yandex-team.ru"}, - {name = "Evgeny Strizhnev", email="estrizhnev@yandex-team.ru"}, - {name = "Vadim Volodin", email="vadim-volodin@yandex-team.ru"}, - {name = "Anton Chaporgin", email="chapson@yandex-team.ru"}, - {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, - {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, + "Alexander Burmak ", + "Dmitry Starov ", + # {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, + # {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, + # {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, + # {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, + # {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, + # {name = "Evgeny Dyukov", email="secwall@yandex-team.ru"}, + # {name = "Evgeny Strizhnev", email="estrizhnev@yandex-team.ru"}, + # {name = "Vadim Volodin", email="vadim-volodin@yandex-team.ru"}, + # {name = "Anton Chaporgin", email="chapson@yandex-team.ru"}, + # {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, + # {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, ] maintainers = [ - {name = "Alexander Burmak", email = "alex-burmak@yandex-team.ru"}, - {name = "Dmitry Starov", email="dstaroff@yandex-team.ru"}, - {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, - {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, - {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, - {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, - {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, - {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, - {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, + "Alexander Burmak ", + # {name = "Dmitry Starov", email="dstaroff@yandex-team.ru"}, + # {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, + # {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, + # {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, + # {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, + # {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, + # {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, + # {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, ] readme = "README.md" +repository = "https://github.com/yandex/ch-tools" +homepage = "https://github.com/yandex/ch-tools" + keywords=[ "clickhouse", "database", @@ -67,61 +71,59 @@ classifiers = [ "Typing :: Typed", ] -requires-python = ">=3.6.2" - -dependencies = [ - "boto3", - "click", - "cloup", - "deepdiff", - "dnspython", - "file_read_backwards", - "humanfriendly", - "jinja2", - "kazoo", - "lxml", - "psutil", - "pygments", - "pyopenssl", - "python-dateutil", - "pyyaml", - "requests", - "tabulate", - "tenacity", - "termcolor", - "tqdm", - "xmltodict", - "typing-extensions" -] +# packages -[tool.flit.sdist] +# [tool.flit.sdist] +# include = ["resources/"] include = ["resources/"] -[project.urls] -Source = "https://github.com/yandex/ch-tools" +# requires-python = ">=3.6.2" -[project.optional-dependencies] -test = [ - "flit", - "black", - "isort", - "mypy", - "types-pyyaml", - "types-requests", - "types-python-dateutil", - "types-tabulate", - "types-pyOpenSSL", - "types-setuptools", +[tool.poetry.dependencies] +python = ">=3.6.2" +boto3 = "*" +click = "*" +cloup = "*" +deepdiff = "*" +dnspython = "*" +file_read_backwards = "*" +humanfriendly = "*" +jinja2 = "*" +kazoo = "*" +lxml = "*" +psutil = "*" +pygments = "*" +pyopenssl = "*" +python-dateutil = "*" +pyyaml = "*" +requests = "*" +tabulate = "*" +tenacity = "*" +termcolor = "*" +tqdm = "*" +xmltodict = "*" +typing-extensions = "*" + +[tool.poetry.dev-dependencies] +flit = "*" +black = "*" +isort = {version = "*", extras = ["pyproject"]} +mypy = "*" +types-pyyaml = "*" +types-requests = "*" +types-python-dateutil = "*" +types-tabulate = "*" +types-pyOpenSSL = "*" +types-setuptools = "*" #pylint = "^2.13" #bandit = "*" - "behave", - "docker", - "docker-compose", - "pyhamcrest", - "pytest" -] +behave = "*" +docker = "*" +docker-compose = "*" +pyhamcrest = "*" +pytest = "*" -[project.scripts] +[tool.poetry.scripts] chadmin = "ch_tools.chadmin.chadmin_cli:main" ch-monitoring = "ch_tools.monrun_checks.main:main" keeper-monitoring = "ch_tools.monrun_checks_keeper.main:main" diff --git a/pyproject.toml_bak b/pyproject.toml_bak new file mode 100644 index 00000000..c5deb9be --- /dev/null +++ b/pyproject.toml_bak @@ -0,0 +1,131 @@ +[build-system] +requires = ["flit_core >=3.2,<4"] +build-backend = "flit_core.buildapi" + +[project] +name = "ch-tools" +license = { file = "LICENSE" } +dynamic = ["version", "description"] + +authors = [ + {name = "Alexander Burmak", email = "alex-burmak@yandex-team.ru"}, + {name = "Dmitry Starov", email="dstaroff@yandex-team.ru"}, + {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, + {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, + {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, + {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, + {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, + {name = "Evgeny Dyukov", email="secwall@yandex-team.ru"}, + {name = "Evgeny Strizhnev", email="estrizhnev@yandex-team.ru"}, + {name = "Vadim Volodin", email="vadim-volodin@yandex-team.ru"}, + {name = "Anton Chaporgin", email="chapson@yandex-team.ru"}, + {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, + {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, +] + +maintainers = [ + {name = "Alexander Burmak", email = "alex-burmak@yandex-team.ru"}, + {name = "Dmitry Starov", email="dstaroff@yandex-team.ru"}, + {name = "Anton Ivashkin", email="iantonspb@yandex-team.ru"}, + {name = "Grigory Pervakov", email="pervakovg@yandex-team.ru"}, + {name = "Petr Nuzhnov", email="petrnuzhnov@yandex-team.ru"}, + {name = "Egor Medvedev", email="egor-medvedev@yandex-team.ru"}, + {name = "Aleksei Filatov", email="alexfvk@yandex-team.ru"}, + {name = "Evgenii Kopanev", email="ekopanev@yandex-team.ru"}, + {name = "Mikhail Kot", email="myrrc@yandex-team.ru"}, +] + +readme = "README.md" + +keywords=[ + "clickhouse", + "database", + "monitoring", + "diagnostics", + "administration", +] + +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: MIT License", + "Operating System :: MacOS", + "Operating System :: POSIX :: BSD", + "Operating System :: POSIX :: Linux", + "Operating System :: Unix", + "Environment :: Console", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Database", + "Typing :: Typed", +] + +requires-python = ">=3.6.2" + +dependencies = [ + "boto3", + "click", + "cloup", + "deepdiff", + "dnspython", + "file_read_backwards", + "humanfriendly", + "jinja2", + "kazoo", + "lxml", + "psutil", + "pygments", + "pyopenssl", + "python-dateutil", + "pyyaml", + "requests", + "tabulate", + "tenacity", + "termcolor", + "tqdm", + "xmltodict", + "typing-extensions" +] + +[tool.flit.sdist] +include = ["resources/"] + +[project.urls] +Source = "https://github.com/yandex/ch-tools" + +[project.optional-dependencies] +test = [ + "flit", + "black", + "isort", + "mypy", + "types-pyyaml", + "types-requests", + "types-python-dateutil", + "types-tabulate", + "types-pyOpenSSL", + "types-setuptools", +#pylint = "^2.13" +#bandit = "*" + "behave", + "docker", + "docker-compose", + "pyhamcrest", + "pytest" +] + +[project.scripts] +chadmin = "ch_tools.chadmin.chadmin_cli:main" +ch-monitoring = "ch_tools.monrun_checks.main:main" +keeper-monitoring = "ch_tools.monrun_checks_keeper.main:main" +ch-s3-credentials = "ch_tools.s3_credentials.main:main" + +[tool.isort] +profile = "black"